diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/web_editor/static/src/scss/secondary_variables.scss | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/web_editor/static/src/scss/secondary_variables.scss')
| -rw-r--r-- | addons/web_editor/static/src/scss/secondary_variables.scss | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/addons/web_editor/static/src/scss/secondary_variables.scss b/addons/web_editor/static/src/scss/secondary_variables.scss new file mode 100644 index 00000000..815e2c72 --- /dev/null +++ b/addons/web_editor/static/src/scss/secondary_variables.scss @@ -0,0 +1,137 @@ + +//------------------------------------------------------------------------------ +// Colors +//------------------------------------------------------------------------------ + +// Color combinations +$o-color-combinations: o-safe-nth($o-color-combinations-presets, $o-color-combinations-preset-number, ()) !default; +$-combination-additions: (); +@for $index from 1 through length($o-color-combinations) { + $combination: map-merge($o-base-color-combination, nth($o-color-combinations, $index)); + + @each $element, $color in $combination { + $-combination-additions: map-merge($-combination-additions, ( + 'o-cc#{$index}-#{$element}': $color, + )); + } +} + +// Colors +$o-color-palette: o-safe-nth($o-color-palettes, $o-color-palette-number, ()) !default; +// Original color palette can contain override of the default combinations (so keep 'null' values for this merge) +$o-color-palette: map-merge($-combination-additions, $o-color-palette); +$o-color-palette: map-merge($o-base-color-palette, o-map-omit($o-color-palette)); + +// Theme colors +$o-theme-color-palette: o-safe-nth($o-theme-color-palettes, $o-theme-color-palette-number, ()) !default; +@if not $o-support-13-0-color-system { + $o-theme-color-palette: map-remove($o-theme-color-palette, 'alpha', 'beta', 'gamma', 'delta', 'epsilon'); +} +$-main-color: map-get($o-color-palette, 'o-color-1'); +$-main-color-lightness: lightness($-main-color); +$o-theme-color-palette: map-merge(( + // color 1 and 2 are used to override primary and secondary BS4 + // colors by default, so that theme colors affect the default Odoo layouts + 'primary': $-main-color, + 'secondary': map-get($o-color-palette, 'o-color-2'), + + // BS light and dark colors are not used for any BS component, just + // for color utilities. By default, we set them to a very light and + // very dark version of a desaturate version of the main color + 'light': lighten(desaturate($-main-color, 80%), min(70%, max(0%, 97% - $-main-color-lightness))), // Does not increase over 97% lightness + 'dark': darken(desaturate($-main-color, 80%), min(70%, max(0%, $-main-color-lightness - 10%))), // Does not lower under 10% lightness +), o-map-omit($o-theme-color-palette)); +$o-theme-color-palette: map-merge($o-base-theme-color-palette, o-map-omit($o-theme-color-palette)); + +// Gray colors +// Extend grays with transparent ones (for some reason, BS4 create black-50 and +// white-50 but does not allow overridding that with variables). +$o-gray-color-palette: o-safe-nth($o-gray-color-palettes, $o-gray-color-palette-number, ()) !default; +$o-gray-color-palette: map-merge($o-transparent-grays, o-map-omit($o-gray-color-palette)); +$o-gray-color-palette: map-merge($o-base-gray-color-palette, o-map-omit($o-gray-color-palette)); + +$o-color-system-initialized: false; + +// Returns: +// - true if the given name is a css color or null +// - false if a potential valid color name +// - throws an error if the given arg cannot reference a color +@function check-color-identifier-type($name) { + $-type: type-of($name); + @if $-type == 'color' or $-type == 'null' { + @return true; + } @else if $-type != 'string' { + @error "Color name '#{$name}' is of unsupported type '#{$-type}'"; + } + @return false; +} +@function use-cc-bg($name) { + @if type-of($name) == 'number' { + // Preset number, let's return the background color of the related + // preset. + @return 'o-cc#{$name}-bg'; + } + @return $name; +} +// Looks up for the color related to the given name in the related odoo palettes +// following redirection a maximum number of time (by default none). +@function o-related-color($name, $max-recursions: 0, $original-name: $name, $use-cc-bg: false) { + @if $use-cc-bg { + $name: use-cc-bg($name); + } @else if type-of($name) == 'number' { + @return $name; + } + + @if $max-recursions < 0 or check-color-identifier-type($name) { + @return $name; + } + + $-value: null; + @if map-has-key($o-color-palette, $name) { + $-value: map-get($o-color-palette, $name); + } @else if map-has-key($o-theme-color-palette, $name) { + $-value: map-get($o-theme-color-palette, $name); + } @else if map-has-key($o-gray-color-palette, $name) { + $-value: map-get($o-gray-color-palette, $name); + } + @return o-related-color($-value, $max-recursions - 1, $original-name); +} +// Function which allows to retrieve a color value from a name, the color being +// either in $theme-colors, $grays or $colors maps. If those maps are not +// initialized yet, it will look up the color in the related odoo palettes. +@function o-color($name) { + $name: use-cc-bg($name); + + @if check-color-identifier-type($name) { + @return $name; + } + + // When the system is initialized, it means that the bootstrap maps have + // been configured and contain a direct mapping between color name -> css + // value. We can thus search in those. + @if $o-color-system-initialized { + @if map-has-key($colors, $name) { + @return color($name); + } + @if map-has-key($theme-colors, $name) { + @return theme-color($name); + } + @if map-has-key($grays, $name) { + @return gray($name); + } + } + + // If not initialized, search the css color value in selected color palettes + @return o-related-color($name, $max-recursions: 10, $use-cc-bg: true); +} + +// Same as 'increase-contrast' except that the color is not changed if the given +// related color name is part of the given exclusion list (default to a global +// exclusion list which can be extended by other apps). +$o-we-auto-contrast-exclusions: () !default; +@function auto-contrast($color1, $color2, $color1-name, $exclude: $o-we-auto-contrast-exclusions) { + @if index($exclude, $color1-name) { + @return $color1; + } + @return increase-contrast($color1, $color2); +} |
