summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/scss/secondary_variables.scss
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/web_editor/static/src/scss/secondary_variables.scss
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (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.scss137
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);
+}