SCSS öröklődés¶
Áttekintés¶
Az SCSS eszközök kezelése az Odoo-ban nem olyan egyszerű, mint néhány más környezetben, de rendkívül hatékony.
A modularitás kulcsfontosságú. Az alább leírt öröklési séma lehetővé teszi az Odoo számára, hogy:
testreszabja a Bootstrap CSS keretrendszert;
két különböző webkliens dizájnt kezeljen (Közösségi és Vállalati);
külön kezelje a backend és frontend csomagokat (beleértve a felhasználó weboldalának dizájnját);
kontekstuálisan csak a szükséges eszközöket töltse be;
több színsémát kezeljen (pl.: sötét mód);
az SCSS !default direktívája¶
„Direct variables’ overrides” are technically possible in SCSS but may lead to inconsistent results in complex environments like Odoo.
Indeed, since the compilation process acts across different interdependent bundles, re-assigning a variable in the „wrong spot” may lead to unexpected cascading results.
Az SCSS számos technikát kínál ezen problémák megoldására (pl.: shadowing), de a legkritikusabb eljárás az Odoo-ban a !default zászló használata.
A !default zászló használatakor a fordító csak akkor rendel értéket a változóhoz, ha az még nincs definiálva.
Ennek a technikának az eredményeként a változók hozzárendelési prioritása megegyezik az eszközök betöltési sorrendjével.
Example
customization_layer.scss¶$foo: red !default;
library.scss¶$foo: blue !default; // -> Already defined, line ignored.
$bar: black !default; // -> Not defined yet, value assigned.
component.scss¶.component {
color: $foo; // -> 'color: red;'
background: $bar; // -> 'background: black;'
}
Lásd még
!default zászló a SASS Dokumentáció oldalon
Odoo SCSS öröklési rendszere¶
A következő diagram szemlélteti a CSS és SCSS változók definiálásának fordítási sorrendjét.
↓ [Compilation starts]
⏐
↓ web.dark_mode_variables
⏐ ├─ Primary Variables
⏐ └─ Components Variables
⏐
↓ web._assets_primary_variables
⏐ ├─ Primary Variables (enterprise)
⏐ ├─ Components Variables (enterprise)
⏐ ├─ Primary Variables (community)
⏐ └─ Components Variables (community)
⏐
↓ web._assets_bootstrap
⏐
↓ web.assets_backend
⏐ ├─ ...
⏐ ├─ CSS variables definition
⏐ └─ CSS variables contextual adaptations
⏐
● [Visual result on screen]
Fontos
Ez a diagram hiányos, és nem felel meg a jelenlegi csomagok szervezésének. További információkért olvassa el a eszközcsomagok részt.