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/website/static/src/scss/secondary_variables.scss | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website/static/src/scss/secondary_variables.scss')
| -rw-r--r-- | addons/website/static/src/scss/secondary_variables.scss | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/addons/website/static/src/scss/secondary_variables.scss b/addons/website/static/src/scss/secondary_variables.scss new file mode 100644 index 00000000..53f8f9ed --- /dev/null +++ b/addons/website/static/src/scss/secondary_variables.scss @@ -0,0 +1,194 @@ +//------------------------------------------------------------------------------ +// Website customizations +//------------------------------------------------------------------------------ + +// Complete the base website values palette with the first defined font +$-first-font-name: nth(map-keys($o-theme-font-configs), 1); +@each $alias, $key in $o-font-aliases-to-keys { + @if map-get($o-base-website-values-palette, $key) == null { + $o-base-website-values-palette: map-merge($o-base-website-values-palette, ( + $key: $-first-font-name, + )); + } +} + +@function o-add-font-config($values) { + @each $alias, $key in $o-font-aliases-to-keys { + $font-name: map-get($values, $key); + $font-config: o-safe-get($o-theme-font-configs, $font-name, ()); + $font-properties: o-safe-get($font-config, 'properties', ()); + $type-font-properties: o-safe-get($font-properties, $alias, ()); + $values: map-merge($values, $type-font-properties); + } + @return $values; +} + +// Some fonts have been renamed in a stable version, and for retro compatibility +// for users which have a custom user_values.css as attachment with an old font +// already used, we map the old font with the new `similar` font +$o-fonts-similar: ( + 'Droid Serif': 'Noto Serif', + 'SinKinSans': 'Spartan', + 'Proxima': 'Montserrat', + 'Comic Sans MS': 'Comic Neue', + 'Fontastique': 'Bubblegum Sans', + 'Luminari': 'Eagle Lake', + 'Fecske': 'Marcellus', + 'Din Alternate': 'Roboto', +); + +@function o-map-font-aliases($values) { + $-values: $values; + @each $key in map-values($o-font-aliases-to-keys) { + $value: map-get($values, $key); + @if ($value and map-has-key($o-fonts-similar, $value)) { + $-values: map-merge($-values, ( + $key: map-get($o-fonts-similar, $value), + )); + } + } + @return $-values; +}; + +// By default, most website palette values are null. Each null value is +// automatically replaced with corresponsing values in chosen default values +// palette. +$-website-values-default: o-safe-nth($o-website-values-palettes, $o-website-values-palette-number, ()); +$-website-values-default: map-merge($o-base-website-values-palette, o-map-omit($-website-values-default)); +$o-user-website-values: o-map-font-aliases(o-map-omit($o-user-website-values)); +$-actual-user-website-values-palette: map-merge($-website-values-default, $o-user-website-values); +// Default font selection + User font selection have been merged, now need to +// add the right associated font default config +$-actual-user-website-values-palette: o-add-font-config($-actual-user-website-values-palette); +// Reforce the properties which already had a set values in the user map (the +// font properties override the default palette values but not the user ones) +$-actual-user-website-values-palette: map-merge($-actual-user-website-values-palette, $o-user-website-values); +$o-website-values-palettes: append($o-website-values-palettes, $-actual-user-website-values-palette); + +// Enable last website values palette, which is now the user customized one +$o-website-values-palette-number: length($o-website-values-palettes); +$o-website-values: $-actual-user-website-values-palette !default; +@function o-website-value($key) { + @return map-get($o-website-values, $key); +} + +$o-theme-navbar-logo-height: o-website-value('logo-height') !default; +$o-theme-navbar-fixed-logo-height: o-website-value('fixed-logo-height') !default; + +//------------------------------------------------------------------------------ +// Colors +//------------------------------------------------------------------------------ + +// First change the palette number to the actual user choice if any. +$-color-palettes-number: o-website-value('color-palettes-number'); +@if $-color-palettes-number { + $o-color-palette-number: $-color-palettes-number; + $o-theme-color-palette-number: $-color-palettes-number; + $o-gray-color-palette-number: $-color-palettes-number; +} + +$o-has-customized-13-0-color-system: + not not (map-get($o-user-theme-color-palette, 'primary') + or map-get($o-user-theme-color-palette, 'secondary') + or map-get($o-user-theme-color-palette, 'alpha') + or map-get($o-user-theme-color-palette, 'beta') + or map-get($o-user-theme-color-palette, 'gamma') + or map-get($o-user-theme-color-palette, 'delta') + or map-get($o-user-theme-color-palette, 'epsilon')); + +$o-has-customized-colors: + not not (length(map-keys(o-map-omit($o-user-color-palette))) > 0 + or map-get($o-user-theme-color-palette, 'success') + or map-get($o-user-theme-color-palette, 'info') + or map-get($o-user-theme-color-palette, 'warning') + or map-get($o-user-theme-color-palette, 'danger')); + +// Color palette +// ------------- + +// Add generic color palettes +$o-color-palettes: join($o-color-palettes, $o-theme-generic-color-palettes); + +// By default, most user color palette values are null. Each null value is +// automatically replaced with corresponsing colors in chosen default color +// palette. +$-palette-default: o-safe-nth($o-color-palettes, $o-color-palette-number, ()); +$-actual-user-color-palette: map-merge($-palette-default, o-map-omit($o-user-color-palette)); +$o-color-palettes: append($o-color-palettes, $-actual-user-color-palette); + +// Theme color palette +// ------------------- + +// alpha -> epsilon colors are from the old color system, this is kept for +// compatibility: Generate default theme color scheme if alpha is set +$-alpha: map-get($o-user-theme-color-palette, 'alpha'); +@if ($-alpha) { + $o-user-theme-color-palette: map-merge(( + beta: lighten(desaturate($-alpha, 60%), 30%), + gamma: desaturate(adjust-hue($-alpha, -45deg), 10%), + delta: desaturate(adjust-hue($-alpha, 45deg), 10%), + epsilon: desaturate(adjust-hue($-alpha, 180deg), 10%), + ), o-map-omit($o-user-theme-color-palette)); +} + +// By default, all user theme color palette values are null. Each null value is +// automatically replaced with corresponsing colors in chosen default theme +// color palette. +$-palette-default: o-safe-nth($o-theme-color-palettes, $o-theme-color-palette-number, ()); +$-actual-user-theme-color-palette: map-merge($-palette-default, o-map-omit($o-user-theme-color-palette)); +// Always remove the primary/secondary which were customizable in some theme +// in Odoo <= 13.3. The customer can always rechoose the right color in the +// Odoo color system as the first two ones are mapped to primary/secondary. +$-actual-user-theme-color-palette: map-remove($-actual-user-theme-color-palette, + 'primary', + 'secondary' +); +$o-theme-color-palettes: append($o-theme-color-palettes, $-actual-user-theme-color-palette); + +// --- + +// Enable last color and theme color palettes, which are now the user customized +// color palettes. +$o-original-color-palette-number: $o-color-palette-number; +$o-color-palette-number: length($o-color-palettes); +$o-theme-color-palette-number: length($o-theme-color-palettes); + +$o-we-auto-contrast-exclusions: () !default; +$o-we-auto-contrast-exclusions: join($o-we-auto-contrast-exclusions, map-keys(o-map-omit($o-user-color-palette))); + +//------------------------------------------------------------------------------ +// Fonts +//------------------------------------------------------------------------------ + +// Merge base fonts with user-added google fonts +@each $font-name in (o-website-value('google-fonts') or ()) { + $o-theme-font-configs: map-merge($o-theme-font-configs, ( + $font-name: ( + 'family': (quote($font-name), sans-serif), + 'url': quote($font-name) + ':300,300i,400,400i,700,700i', + ), + )); +} + +// Add odoo unicode support for all fonts +@each $font-name, $font-config in $o-theme-font-configs { + $o-theme-font-configs: map-merge($o-theme-font-configs, ( + $font-name: map-merge($font-config, ( + 'family': o-add-unicode-support-font(map-get($font-config, 'family')), + )), + )); +} + +// Function which allows to retrieve a base info (family, url, properties) about +// a component (base, navbar, ...)'s font. The font name is retrievable via a +// simple o-website-value call. +@function o-get-font-info($alias: 'base', $config-key: 'family') { + $key: map-get($o-font-aliases-to-keys, $alias); + $font-name: o-website-value($key); + $-font-config: o-safe-get($o-theme-font-configs, $font-name, ()); + @return map-get($-font-config, $config-key); +} +$o-theme-font: o-get-font-info('base') or (sans-serif,) !default; +$o-theme-headings-font: o-get-font-info('headings') or $o-theme-font !default; +$o-theme-navbar-font: o-get-font-info('navbar') or $o-theme-font !default; +$o-theme-buttons-font: o-get-font-info('buttons') or $o-theme-font !default; |
