diff options
| author | Volpeon <git@volpeon.ink> | 2026-07-22 12:27:09 +0200 |
|---|---|---|
| committer | Volpeon <git@volpeon.ink> | 2026-07-22 12:27:09 +0200 |
| commit | cc5329a5f4d3ea91cac93bc7f9b8f943b7ced226 (patch) | |
| tree | d16dea8f0a5edca2b610ecabeac5e93a4d98be2f /src/objects | |
| parent | Update _index.scss (diff) | |
| download | iro-design-cc5329a5f4d3ea91cac93bc7f9b8f943b7ced226.tar.gz iro-design-cc5329a5f4d3ea91cac93bc7f9b8f943b7ced226.tar.bz2 iro-design-cc5329a5f4d3ea91cac93bc7f9b8f943b7ced226.zip | |
Paths
Diffstat (limited to 'src/objects')
53 files changed, 3879 insertions, 2524 deletions
diff --git a/src/objects/_alert.scss b/src/objects/_alert.scss index c2a1c58..3aeb781 100644 --- a/src/objects/_alert.scss +++ b/src/objects/_alert.scss | |||
| @@ -1,44 +1,37 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:meta'; | 2 | @use "sass:meta"; |
| 3 | @use 'pkg:iro-sass/src/bem'; | 3 | @use "pkg:iro-sass/bem"; |
| 4 | @use 'pkg:iro-sass/src/props'; | 4 | @use "pkg:iro-sass/props"; |
| 5 | @use '../props' as *; | 5 | @use "../props" as *; |
| 6 | 6 | ||
| 7 | @forward 'alert.vars'; | 7 | @forward "alert.vars"; |
| 8 | @use 'alert.vars' as vars; | 8 | @use "alert.vars" as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables("vars")); |
| 12 | 12 | ||
| 13 | @include bem.object('alert') { | 13 | @include bem.object("alert") { |
| 14 | padding-block: props.get(vars.$pad-b); | 14 | padding-block: props.get(vars.$pad-b); |
| 15 | padding-inline: props.get(vars.$pad-i); | 15 | padding-inline: props.get(vars.$pad-i); |
| 16 | background-color: props.get(vars.$bg-color); | 16 | background-color: props.get(vars.$bg-color); |
| 17 | border: props.get(vars.$border-width) solid transparent; | 17 | border: props.get(vars.$border-width) solid transparent; |
| 18 | border-color: props.get(vars.$border-color); | 18 | border-color: props.get(vars.$border-color); |
| 19 | border-radius: props.get(vars.$rounding); | 19 | border-radius: props.get(vars.$rounding); |
| 20 | box-shadow: | 20 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) |
| 21 | props.get(vars.$shadow-x) | 21 | props.get(vars.$shadow-grow) props.get(vars.$shadow-color); |
| 22 | props.get(vars.$shadow-y) | ||
| 23 | props.get(vars.$shadow-blur) | ||
| 24 | props.get(vars.$shadow-grow) | ||
| 25 | props.get(vars.$shadow-color); | ||
| 26 | 22 | ||
| 27 | &::before { | 23 | &::before { |
| 28 | display: block; | 24 | display: block; |
| 29 | margin-block: -100em 100em; | 25 | margin-block: -100em 100em; |
| 30 | content: ''; | 26 | content: ""; |
| 31 | } | 27 | } |
| 32 | 28 | ||
| 33 | @each $mod, $theme in vars.$themes-config { | 29 | @each $mod, $theme in vars.$themes-config { |
| 34 | @include bem.modifier($mod) { | 30 | @include bem.modifier($mod) { |
| 35 | background-color: props.get(vars.$themes, $theme, --bg-color); | 31 | background-color: props.get(vars.$themes, $theme, --bg-color); |
| 36 | border-color: props.get(vars.$themes, $theme, --border-color); | 32 | border-color: props.get(vars.$themes, $theme, --border-color); |
| 37 | box-shadow: | 33 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) |
| 38 | props.get(vars.$shadow-x) | 34 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) |
| 39 | props.get(vars.$shadow-y) | ||
| 40 | props.get(vars.$shadow-blur) | ||
| 41 | props.get(vars.$shadow-grow) | ||
| 42 | props.get(vars.$themes, $theme, --shadow-color); | 35 | props.get(vars.$themes, $theme, --shadow-color); |
| 43 | } | 36 | } |
| 44 | } | 37 | } |
diff --git a/src/objects/_alert.vars.scss b/src/objects/_alert.vars.scss index bbd3dad..aedd917 100644 --- a/src/objects/_alert.vars.scss +++ b/src/objects/_alert.vars.scss | |||
| @@ -1,36 +1,50 @@ | |||
| 1 | @use 'pkg:iro-sass/src/props'; | 1 | @use "pkg:iro-sass/props"; |
| 2 | @use '../core.vars' as core; | 2 | @use "../core.vars" as core; |
| 3 | 3 | ||
| 4 | $border-width: props.def(--o-alert--border-width, props.get(core.$border-width--medium)) !default; | 4 | $border-width: props.def(--o-alert--border-width, props.get(core.$border-width--medium)) !default; |
| 5 | $pad-i: props.def(--o-alert--pad-i, props.get(core.$size--250)) !default; | 5 | $pad-i: props.def(--o-alert--pad-i, props.get(core.$size--250)) !default; |
| 6 | $pad-b: props.def(--o-alert--pad-b, props.get(core.$size--200)) !default; | 6 | $pad-b: props.def(--o-alert--pad-b, props.get(core.$size--200)) !default; |
| 7 | $rounding: props.def(--o-alert--rounding, props.get(core.$rounding)) !default; | 7 | $rounding: props.def(--o-alert--rounding, props.get(core.$rounding)) !default; |
| 8 | 8 | ||
| 9 | $shadow-x: props.def(--o-alert--shadow-x, props.get(core.$shadow--l2--x)) !default; | 9 | $shadow-x: props.def(--o-alert--shadow-x, props.get(core.$shadow--l2--x)) !default; |
| 10 | $shadow-y: props.def(--o-alert--shadow-y, props.get(core.$shadow--l2--y)) !default; | 10 | $shadow-y: props.def(--o-alert--shadow-y, props.get(core.$shadow--l2--y)) !default; |
| 11 | $shadow-blur: props.def(--o-alert--shadow-blur, props.get(core.$shadow--l2--blur)) !default; | 11 | $shadow-blur: props.def(--o-alert--shadow-blur, props.get(core.$shadow--l2--blur)) !default; |
| 12 | $shadow-grow: props.def(--o-alert--shadow-grow, props.get(core.$shadow--l2--grow)) !default; | 12 | $shadow-grow: props.def(--o-alert--shadow-grow, props.get(core.$shadow--l2--grow)) !default; |
| 13 | 13 | ||
| 14 | $bg-color: props.def(--o-alert--bg-color, props.get(core.$theme, --bg-l2), 'color') !default; | 14 | $bg-color: props.def(--o-alert--bg-color, props.get(core.$theme, --bg-l2), "color") !default; |
| 15 | $border-color: props.def(--o-alert--border-color, props.get(core.$theme, --text-mute-more) props.get(core.$theme, --text-mute-more) props.get(core.$theme, --text-mute), 'color') !default; | 15 | $border-color: props.def( |
| 16 | --o-alert--border-color, | ||
| 17 | props.get(core.$theme, --text-mute-more) props.get(core.$theme, --text-mute-more) | ||
| 18 | props.get(core.$theme, --text-mute), | ||
| 19 | "color" | ||
| 20 | ) !default; | ||
| 16 | 21 | ||
| 17 | $shadow-color: props.def(--o-alert--shadow-color, props.get(core.$transparent-colors, --black, --200), 'color') !default; | 22 | $shadow-color: props.def( |
| 23 | --o-alert--shadow-color, | ||
| 24 | props.get(core.$transparent-colors, --black, --200), | ||
| 25 | "color" | ||
| 26 | ) !default; | ||
| 18 | 27 | ||
| 19 | $themes-config: ( | 28 | $themes-config: ( |
| 20 | accent: --accent, | 29 | accent: --accent, |
| 21 | positive: --positive, | 30 | positive: --positive, |
| 22 | negative: --negative, | 31 | negative: --negative, |
| 23 | warning: --warning, | 32 | warning: --warning, |
| 24 | ) !default; | 33 | ) !default; |
| 25 | 34 | ||
| 26 | $themes: props.def(--o-alert, (), 'color'); | 35 | $themes: props.def(--o-alert, (), "color"); |
| 27 | 36 | ||
| 28 | @each $theme, $key in $themes-config { | 37 | @each $theme, $key in $themes-config { |
| 29 | $themes: props.merge($themes, ( | 38 | $themes: props.merge( |
| 30 | $key: ( | 39 | $themes, |
| 31 | --bg-color: props.get(core.$theme, --bg-l2), | 40 | ( |
| 32 | --border-color: props.get(core.$theme, $key, --700) props.get(core.$theme, $key, --700) props.get(core.$theme, $key, --800), | 41 | $key: ( |
| 33 | --shadow-color: props.get(core.$theme, $key, --200), | 42 | --bg-color: props.get(core.$theme, --bg-l2), |
| 43 | --border-color: props.get(core.$theme, $key, --700) | ||
| 44 | props.get(core.$theme, $key, --700) | ||
| 45 | props.get(core.$theme, $key, --800), | ||
| 46 | --shadow-color: props.get(core.$theme, $key, --200), | ||
| 47 | ), | ||
| 34 | ) | 48 | ) |
| 35 | )); | 49 | ); |
| 36 | } | 50 | } |
diff --git a/src/objects/_avatar.scss b/src/objects/_avatar.scss index 272c213..f805502 100644 --- a/src/objects/_avatar.scss +++ b/src/objects/_avatar.scss | |||
| @@ -1,118 +1,135 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'avatar.vars'; | 6 | @forward "avatar.vars"; |
| 7 | @use 'avatar.vars' as vars; | 7 | @use "avatar.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin status($indicator-size) { | 9 | @mixin status($indicator-size) { |
| 10 | @include bem.elem('status') { | 10 | @include bem.elem("status") { |
| 11 | inline-size: props.get($indicator-size); | 11 | inline-size: props.get($indicator-size); |
| 12 | block-size: props.get($indicator-size); | 12 | block-size: props.get($indicator-size); |
| 13 | 13 | ||
| 14 | @include bem.sibling-elem('content') { | 14 | @include bem.sibling-elem("content") { |
| 15 | mask-image: radial-gradient(circle calc(.5 * props.get($indicator-size) + props.get(vars.$indicator-spacing)) at | 15 | mask-image: radial-gradient( |
| 16 | calc(100% - .5 * props.get($indicator-size)) | 16 | circle calc(0.5 * props.get($indicator-size) + props.get(vars.$indicator-spacing)) |
| 17 | calc(100% - .5 * props.get($indicator-size)), | 17 | at calc(100% - 0.5 * props.get($indicator-size)) |
| 18 | transparent 95%, | 18 | calc(100% - 0.5 * props.get($indicator-size)), |
| 19 | #fff); | 19 | transparent 95%, |
| 20 | #fff | ||
| 21 | ); | ||
| 20 | } | 22 | } |
| 21 | } | 23 | } |
| 22 | } | 24 | } |
| 23 | 25 | ||
| 24 | @mixin styles { | 26 | @mixin styles { |
| 25 | @include materialize-at-root(meta.module-variables('vars')); | 27 | @include materialize-at-root(meta.module-variables("vars")); |
| 26 | 28 | ||
| 27 | @include bem.object('avatar') { | 29 | @include bem.object("avatar") { |
| 28 | position: relative; | 30 | position: relative; |
| 29 | display: inline-block; | 31 | display: inline-block; |
| 30 | font-style: normal; | 32 | font-style: normal; |
| 31 | vertical-align: .05em; | 33 | vertical-align: 0.05em; |
| 32 | border-radius: props.get(vars.$rounding); | 34 | border-radius: props.get(vars.$rounding); |
| 33 | 35 | ||
| 34 | &::after { | 36 | &::after { |
| 35 | position: absolute; | 37 | position: absolute; |
| 36 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); | 38 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 37 | z-index: 1; | 39 | z-index: 1; |
| 38 | display: none; | 40 | display: none; |
| 39 | pointer-events: none; | 41 | pointer-events: none; |
| 40 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 42 | outline: props.get(vars.$key-focus--border-color) solid |
| 41 | content: ''; | 43 | props.get(vars.$key-focus--border-width); |
| 42 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 44 | content: ""; |
| 43 | border-radius: props.get(vars.$rounding); | 45 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 44 | box-shadow: | 46 | border-radius: props.get(vars.$rounding); |
| 45 | 0 | 47 | box-shadow: 0 0 0 |
| 46 | 0 | 48 | calc( |
| 47 | 0 | 49 | props.get(vars.$key-focus--border-width) + |
| 48 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | 50 | props.get(vars.$key-focus--outline-width) |
| 51 | ) | ||
| 49 | props.get(vars.$key-focus--outline-color); | 52 | props.get(vars.$key-focus--outline-color); |
| 50 | } | 53 | } |
| 51 | 54 | ||
| 52 | @include bem.elem('status') { | 55 | @include bem.elem("status") { |
| 53 | position: absolute; | 56 | position: absolute; |
| 54 | inset-block-end: 0; | 57 | inset-block-end: 0; |
| 55 | inset-inline-end: 0; | 58 | inset-inline-end: 0; |
| 56 | } | 59 | } |
| 57 | 60 | ||
| 58 | @include bem.elem('icon') { | 61 | @include bem.elem("icon") { |
| 59 | position: absolute; | 62 | position: absolute; |
| 60 | inset-block-end: 0; | 63 | inset-block-end: 0; |
| 61 | inset-inline-end: 0; | 64 | inset-inline-end: 0; |
| 62 | display: flex; | 65 | display: flex; |
| 63 | align-items: flex-end; | 66 | align-items: flex-end; |
| 64 | justify-content: flex-end; | 67 | justify-content: flex-end; |
| 65 | inline-size: props.get(vars.$icon-size); | 68 | inline-size: props.get(vars.$icon-size); |
| 66 | block-size: props.get(vars.$icon-size); | 69 | block-size: props.get(vars.$icon-size); |
| 67 | 70 | ||
| 68 | @include bem.sibling-elem('content') { | 71 | @include bem.sibling-elem("content") { |
| 69 | clip-path: props.get(vars.$icon-mask); | 72 | clip-path: props.get(vars.$icon-mask); |
| 70 | } | 73 | } |
| 71 | } | 74 | } |
| 72 | 75 | ||
| 73 | @include bem.elem('content') { | 76 | @include bem.elem("content") { |
| 74 | display: block; | 77 | display: block; |
| 75 | inline-size: props.get(vars.$size); | 78 | inline-size: props.get(vars.$size); |
| 76 | block-size: props.get(vars.$size); | 79 | block-size: props.get(vars.$size); |
| 77 | font-size: props.get(vars.$font-size); | 80 | font-size: props.get(vars.$font-size); |
| 78 | line-height: props.get(vars.$size); | 81 | line-height: props.get(vars.$size); |
| 79 | text-align: center; | 82 | text-align: center; |
| 80 | object-fit: cover; | 83 | object-fit: cover; |
| 81 | object-position: center center; | 84 | object-position: center center; |
| 82 | border-radius: props.get(vars.$rounding); | 85 | border-radius: props.get(vars.$rounding); |
| 83 | } | 86 | } |
| 84 | 87 | ||
| 85 | @include bem.modifier('circle') { | 88 | @include bem.modifier("circle") { |
| 86 | border-radius: 100%; | 89 | border-radius: 100%; |
| 87 | 90 | ||
| 88 | &::after { | 91 | &::after { |
| 89 | border-radius: 100%; | 92 | border-radius: 100%; |
| 90 | } | 93 | } |
| 91 | 94 | ||
| 92 | @include bem.elem('content') { | 95 | @include bem.elem("content") { |
| 93 | border-radius: 100%; | 96 | border-radius: 100%; |
| 94 | } | 97 | } |
| 95 | } | 98 | } |
| 96 | 99 | ||
| 97 | @include bem.modifier('placeholder') { | 100 | @include bem.modifier("placeholder") { |
| 98 | @include bem.elem('content') { | 101 | @include bem.elem("content") { |
| 99 | background-color: hsl(0, 0%, props.get(vars.$bg-color--l)); | 102 | background-color: hsl(0, 0%, props.get(vars.$bg-color--l)); |
| 100 | } | 103 | } |
| 101 | } | 104 | } |
| 102 | 105 | ||
| 103 | @include bem.modifier('colored') { | 106 | @include bem.modifier("colored") { |
| 104 | @include bem.elem('content') { | 107 | @include bem.elem("content") { |
| 105 | color: #fff; | 108 | color: #fff; |
| 106 | background-color: hsl(props.get(vars.$bg-color--h), props.get(vars.$bg-color--s), props.get(vars.$bg-color--l)); | 109 | background-color: hsl( |
| 110 | props.get(vars.$bg-color--h), | ||
| 111 | props.get(vars.$bg-color--s), | ||
| 112 | props.get(vars.$bg-color--l) | ||
| 113 | ); | ||
| 107 | } | 114 | } |
| 108 | } | 115 | } |
| 109 | 116 | ||
| 110 | @include bem.modifier('colored-gradient') { | 117 | @include bem.modifier("colored-gradient") { |
| 111 | @include bem.elem('content') { | 118 | @include bem.elem("content") { |
| 112 | color: #fff; | 119 | color: #fff; |
| 113 | background: linear-gradient(props.get(vars.$bg-angle), | 120 | background: linear-gradient( |
| 114 | hsl(props.get(vars.$bg-color--h), props.get(vars.$bg-color--s), props.get(vars.$bg-color--l)), | 121 | props.get(vars.$bg-angle), |
| 115 | hsl(props.get(vars.$bg-color-2--h), props.get(vars.$bg-color-2--s), props.get(vars.$bg-color-2--l))); | 122 | hsl( |
| 123 | props.get(vars.$bg-color--h), | ||
| 124 | props.get(vars.$bg-color--s), | ||
| 125 | props.get(vars.$bg-color--l) | ||
| 126 | ), | ||
| 127 | hsl( | ||
| 128 | props.get(vars.$bg-color-2--h), | ||
| 129 | props.get(vars.$bg-color-2--s), | ||
| 130 | props.get(vars.$bg-color-2--l) | ||
| 131 | ) | ||
| 132 | ); | ||
| 116 | } | 133 | } |
| 117 | } | 134 | } |
| 118 | 135 | ||
| @@ -122,19 +139,19 @@ | |||
| 122 | @include bem.modifier($mod) { | 139 | @include bem.modifier($mod) { |
| 123 | @include status($indicator-size); | 140 | @include status($indicator-size); |
| 124 | 141 | ||
| 125 | @include bem.elem('icon') { | 142 | @include bem.elem("icon") { |
| 126 | inline-size: props.get($icon-size); | 143 | inline-size: props.get($icon-size); |
| 127 | block-size: props.get($icon-size); | 144 | block-size: props.get($icon-size); |
| 128 | 145 | ||
| 129 | @include bem.sibling-elem('content') { | 146 | @include bem.sibling-elem("content") { |
| 130 | clip-path: props.get($icon-mask); | 147 | clip-path: props.get($icon-mask); |
| 131 | } | 148 | } |
| 132 | } | 149 | } |
| 133 | 150 | ||
| 134 | @include bem.elem('content') { | 151 | @include bem.elem("content") { |
| 135 | inline-size: props.get($size); | 152 | inline-size: props.get($size); |
| 136 | block-size: props.get($size); | 153 | block-size: props.get($size); |
| 137 | font-size: props.get($font-size); | 154 | font-size: props.get($font-size); |
| 138 | line-height: props.get($size); | 155 | line-height: props.get($size); |
| 139 | } | 156 | } |
| 140 | } | 157 | } |
diff --git a/src/objects/_avatar.vars.scss b/src/objects/_avatar.vars.scss index 467d7cc..7d1c342 100644 --- a/src/objects/_avatar.vars.scss +++ b/src/objects/_avatar.vars.scss | |||
| @@ -1,79 +1,102 @@ | |||
| 1 | @use 'sass:math'; | 1 | @use "sass:math"; |
| 2 | 2 | ||
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | @function icon-mask($p) { | 6 | @function icon-mask($p) { |
| 7 | $offset: 0.15 * math.div(0.5, $p); | 7 | $offset: 0.15 * math.div(0.5, $p); |
| 8 | @return 'data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg"><defs><clipPath id="avatar_mask" clipPathUnits="objectBoundingBox"><path d="M 0,0 H 1 V #{$p} H #{$p + $offset} C #{$p + 0.055},#{$p} #{$p},#{$p + 0.055} #{$p},#{$p + $offset} V 1 H 0 Z" /></clipPath></defs></svg>#avatar_mask'; | 8 | @return 'data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg"><defs><clipPath id="avatar_mask" clipPathUnits="objectBoundingBox"><path d="M 0,0 H 1 V #{$p} H #{$p + $offset} C #{$p + 0.055},#{$p} #{$p},#{$p + 0.055} #{$p},#{$p + $offset} V 1 H 0 Z" /></clipPath></defs></svg>#avatar_mask'; |
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | $size: props.def(--o-avatar--size, props.get(core.$size--500)) !default; | 11 | $size: props.def(--o-avatar--size, props.get(core.$size--500)) !default; |
| 12 | $font-size: props.def(--o-avatar--font-size, props.get(core.$font-size--100)) !default; | 12 | $font-size: props.def(--o-avatar--font-size, props.get(core.$font-size--100)) !default; |
| 13 | $indicator-size: props.def(--o-avatar--indicator-size, props.get(core.$size--150)) !default; | 13 | $indicator-size: props.def(--o-avatar--indicator-size, props.get(core.$size--150)) !default; |
| 14 | $indicator-spacing: props.def(--o-avatar--indicator-spacing, props.get(core.$size--40)) !default; | 14 | $indicator-spacing: props.def(--o-avatar--indicator-spacing, props.get(core.$size--40)) !default; |
| 15 | $rounding: props.def(--o-avatar--rounding, 25%) !default; | 15 | $rounding: props.def(--o-avatar--rounding, 25%) !default; |
| 16 | $icon-size: props.def(--o-avatar--icon-size, 1.2em) !default; | 16 | $icon-size: props.def(--o-avatar--icon-size, 1.2em) !default; |
| 17 | $icon-mask: props.def(--o-avatar--icon-mask, url(icon-mask(.5))) !default; | 17 | $icon-mask: props.def(--o-avatar--icon-mask, url(icon-mask(0.5))) !default; |
| 18 | 18 | ||
| 19 | $size--xxxl: props.def(--o-avatar--xxxl--size, props.get(core.$size--1600)) !default; | 19 | $size--xxxl: props.def(--o-avatar--xxxl--size, props.get(core.$size--1600)) !default; |
| 20 | $font-size--xxxl: props.def(--o-avatar--xxxl--font-size, props.get(core.$font-size--800)) !default; | 20 | $font-size--xxxl: props.def(--o-avatar--xxxl--font-size, props.get(core.$font-size--800)) !default; |
| 21 | $indicator-size--xxxl: props.def(--o-avatar--xxxl--indicator-size, props.get(core.$size--400)) !default; | 21 | $indicator-size--xxxl: props.def( |
| 22 | $icon-size--xxxl: props.def(--o-avatar--xxxl--icon-size, 1.9em) !default; | 22 | --o-avatar--xxxl--indicator-size, |
| 23 | $icon-mask--xxxl: props.def(--o-avatar--xxxl--icon-mask, url(icon-mask(.75))) !default; | 23 | props.get(core.$size--400) |
| 24 | ) !default; | ||
| 25 | $icon-size--xxxl: props.def(--o-avatar--xxxl--icon-size, 1.9em) !default; | ||
| 26 | $icon-mask--xxxl: props.def(--o-avatar--xxxl--icon-mask, url(icon-mask(0.75))) !default; | ||
| 24 | 27 | ||
| 25 | $size--xxl: props.def(--o-avatar--xxl--size, props.get(core.$size--1200)) !default; | 28 | $size--xxl: props.def(--o-avatar--xxl--size, props.get(core.$size--1200)) !default; |
| 26 | $font-size--xxl: props.def(--o-avatar--xxl--font-size, props.get(core.$font-size--600)) !default; | 29 | $font-size--xxl: props.def(--o-avatar--xxl--font-size, props.get(core.$font-size--600)) !default; |
| 27 | $indicator-size--xxl: props.def(--o-avatar--xxl--indicator-size, props.get(core.$size--300)) !default; | 30 | $indicator-size--xxl: props.def( |
| 28 | $icon-size--xxl: props.def(--o-avatar--xxl--icon-size, 1.7em) !default; | 31 | --o-avatar--xxl--indicator-size, |
| 29 | $icon-mask--xxl: props.def(--o-avatar--xxl--icon-mask, url(icon-mask(.7))) !default; | 32 | props.get(core.$size--300) |
| 33 | ) !default; | ||
| 34 | $icon-size--xxl: props.def(--o-avatar--xxl--icon-size, 1.7em) !default; | ||
| 35 | $icon-mask--xxl: props.def(--o-avatar--xxl--icon-mask, url(icon-mask(0.7))) !default; | ||
| 30 | 36 | ||
| 31 | $size--xl: props.def(--o-avatar--xl--size, props.get(core.$size--800)) !default; | 37 | $size--xl: props.def(--o-avatar--xl--size, props.get(core.$size--800)) !default; |
| 32 | $font-size--xl: props.def(--o-avatar--xl--font-size, props.get(core.$font-size--300)) !default; | 38 | $font-size--xl: props.def(--o-avatar--xl--font-size, props.get(core.$font-size--300)) !default; |
| 33 | $indicator-size--xl: props.def(--o-avatar--xl--indicator-size, props.get(core.$size--225)) !default; | 39 | $indicator-size--xl: props.def(--o-avatar--xl--indicator-size, props.get(core.$size--225)) !default; |
| 34 | $icon-size--xl: props.def(--o-avatar--xl--icon-size, 1.5em) !default; | 40 | $icon-size--xl: props.def(--o-avatar--xl--icon-size, 1.5em) !default; |
| 35 | $icon-mask--xl: props.def(--o-avatar--xl--icon-mask, url(icon-mask(.6))) !default; | 41 | $icon-mask--xl: props.def(--o-avatar--xl--icon-mask, url(icon-mask(0.6))) !default; |
| 36 | 42 | ||
| 37 | $size--lg: props.def(--o-avatar--lg--size, props.get(core.$size--650)) !default; | 43 | $size--lg: props.def(--o-avatar--lg--size, props.get(core.$size--650)) !default; |
| 38 | $font-size--lg: props.def(--o-avatar--lg--font-size, props.get(core.$font-size--200)) !default; | 44 | $font-size--lg: props.def(--o-avatar--lg--font-size, props.get(core.$font-size--200)) !default; |
| 39 | $indicator-size--lg: props.def(--o-avatar--lg--indicator-size, props.get(core.$size--175)) !default; | 45 | $indicator-size--lg: props.def(--o-avatar--lg--indicator-size, props.get(core.$size--175)) !default; |
| 40 | $icon-size--lg: props.def(--o-avatar--lg--icon-size, 1.25em) !default; | 46 | $icon-size--lg: props.def(--o-avatar--lg--icon-size, 1.25em) !default; |
| 41 | $icon-mask--lg: props.def(--o-avatar--lg--icon-mask, url(icon-mask(.55))) !default; | 47 | $icon-mask--lg: props.def(--o-avatar--lg--icon-mask, url(icon-mask(0.55))) !default; |
| 42 | 48 | ||
| 43 | $size--sm: props.def(--o-avatar--sm--size, props.get(core.$size--375)) !default; | 49 | $size--sm: props.def(--o-avatar--sm--size, props.get(core.$size--375)) !default; |
| 44 | $font-size--sm: props.def(--o-avatar--sm--font-size, props.get(core.$font-size--75)) !default; | 50 | $font-size--sm: props.def(--o-avatar--sm--font-size, props.get(core.$font-size--75)) !default; |
| 45 | $indicator-size--sm: props.def(--o-avatar--sm--indicator-size, props.get(core.$size--125)) !default; | 51 | $indicator-size--sm: props.def(--o-avatar--sm--indicator-size, props.get(core.$size--125)) !default; |
| 46 | $icon-size--sm: props.def(--o-avatar--sm--icon-size, 1.2em) !default; | 52 | $icon-size--sm: props.def(--o-avatar--sm--icon-size, 1.2em) !default; |
| 47 | $icon-mask--sm: props.def(--o-avatar--sm--icon-mask, url(icon-mask(.5))) !default; | 53 | $icon-mask--sm: props.def(--o-avatar--sm--icon-mask, url(icon-mask(0.5))) !default; |
| 48 | 54 | ||
| 49 | $size--xs: props.def(--o-avatar--xs--size, props.get(core.$size--250)) !default; | 55 | $size--xs: props.def(--o-avatar--xs--size, props.get(core.$size--250)) !default; |
| 50 | $font-size--xs: props.def(--o-avatar--xs--font-size, props.get(core.$font-size--50)) !default; | 56 | $font-size--xs: props.def(--o-avatar--xs--font-size, props.get(core.$font-size--50)) !default; |
| 51 | $indicator-size--xs: props.def(--o-avatar--xs--indicator-size, props.get(core.$size--100)) !default; | 57 | $indicator-size--xs: props.def(--o-avatar--xs--indicator-size, props.get(core.$size--100)) !default; |
| 52 | $icon-size--xs: props.def(--o-avatar--xs--icon-size, 1.2em) !default; | 58 | $icon-size--xs: props.def(--o-avatar--xs--icon-size, 1.2em) !default; |
| 53 | $icon-mask--xs: props.def(--o-avatar--xs--icon-mask, url(icon-mask(.5))) !default; | 59 | $icon-mask--xs: props.def(--o-avatar--xs--icon-mask, url(icon-mask(0.5))) !default; |
| 54 | 60 | ||
| 55 | $key-focus--border-width: props.def(--o-avatar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 61 | $key-focus--border-width: props.def( |
| 56 | $key-focus--border-offset: props.def(--o-avatar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 62 | --o-avatar--key-focus--border-width, |
| 57 | $key-focus--outline-width: props.def(--o-avatar--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 63 | props.get(core.$key-focus--border-width) |
| 64 | ) !default; | ||
| 65 | $key-focus--border-offset: props.def( | ||
| 66 | --o-avatar--key-focus--border-offset, | ||
| 67 | props.get(core.$key-focus--border-offset) | ||
| 68 | ) !default; | ||
| 69 | $key-focus--outline-width: props.def( | ||
| 70 | --o-avatar--key-focus--outline-width, | ||
| 71 | props.get(core.$key-focus--outline-width) | ||
| 72 | ) !default; | ||
| 58 | 73 | ||
| 59 | $bg-color--h: props.def(--o-avatar--bg-color--h, 354, 'color') !default; | 74 | $bg-color--h: props.def(--o-avatar--bg-color--h, 354, "color") !default; |
| 60 | $bg-color--s: props.def(--o-avatar--bg-color--s, 44%, 'color') !default; | 75 | $bg-color--s: props.def(--o-avatar--bg-color--s, 44%, "color") !default; |
| 61 | $bg-color--l: props.def(--o-avatar--bg-color--l, 45%, 'color') !default; | 76 | $bg-color--l: props.def(--o-avatar--bg-color--l, 45%, "color") !default; |
| 62 | 77 | ||
| 63 | $bg-color-2--h: props.def(--o-avatar--bg-color-2--h, 354, 'color') !default; | 78 | $bg-color-2--h: props.def(--o-avatar--bg-color-2--h, 354, "color") !default; |
| 64 | $bg-color-2--s: props.def(--o-avatar--bg-color-2--s, 44%, 'color') !default; | 79 | $bg-color-2--s: props.def(--o-avatar--bg-color-2--s, 44%, "color") !default; |
| 65 | $bg-color-2--l: props.def(--o-avatar--bg-color-2--l, 45%, 'color') !default; | 80 | $bg-color-2--l: props.def(--o-avatar--bg-color-2--l, 45%, "color") !default; |
| 66 | 81 | ||
| 67 | $bg-angle: props.def(--o-avatar--bg-angle, 180deg) !default; | 82 | $bg-angle: props.def(--o-avatar--bg-angle, 180deg) !default; |
| 68 | 83 | ||
| 69 | $key-focus--border-color: props.def(--o-avatar--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 84 | $key-focus--border-color: props.def( |
| 70 | $key-focus--outline-color: props.def(--o-avatar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 85 | --o-avatar--key-focus--border-color, |
| 86 | props.get(core.$theme, --focus, --border), | ||
| 87 | "color" | ||
| 88 | ) !default; | ||
| 89 | $key-focus--outline-color: props.def( | ||
| 90 | --o-avatar--key-focus--outline-color, | ||
| 91 | props.get(core.$theme, --focus, --outline), | ||
| 92 | "color" | ||
| 93 | ) !default; | ||
| 71 | 94 | ||
| 72 | $sizes: ( | 95 | $sizes: ( |
| 73 | 'xs' $size--xs $font-size--xs $indicator-size--xs $icon-size--xs $icon-mask--xs, | 96 | "xs" $size--xs $font-size--xs $indicator-size--xs $icon-size--xs $icon-mask--xs, |
| 74 | 'sm' $size--sm $font-size--sm $indicator-size--sm $icon-size--sm $icon-mask--sm, | 97 | "sm" $size--sm $font-size--sm $indicator-size--sm $icon-size--sm $icon-mask--sm, |
| 75 | 'lg' $size--lg $font-size--lg $indicator-size--lg $icon-size--lg $icon-mask--lg, | 98 | "lg" $size--lg $font-size--lg $indicator-size--lg $icon-size--lg $icon-mask--lg, |
| 76 | 'xl' $size--xl $font-size--xl $indicator-size--xl $icon-size--xl $icon-mask--xl, | 99 | "xl" $size--xl $font-size--xl $indicator-size--xl $icon-size--xl $icon-mask--xl, |
| 77 | 'xxl' $size--xxl $font-size--xxl $indicator-size--xxl $icon-size--xxl $icon-mask--xxl, | 100 | "xxl" $size--xxl $font-size--xxl $indicator-size--xxl $icon-size--xxl $icon-mask--xxl, |
| 78 | 'xxxl' $size--xxxl $font-size--xxxl $indicator-size--xxxl $icon-size--xxxl $icon-mask--xxxl, | 101 | "xxxl" $size--xxxl $font-size--xxxl $indicator-size--xxxl $icon-size--xxxl $icon-mask--xxxl |
| 79 | ) !default; | 102 | ) !default; |
diff --git a/src/objects/_backdrop.scss b/src/objects/_backdrop.scss index 6660abf..1a7d1fa 100644 --- a/src/objects/_backdrop.scss +++ b/src/objects/_backdrop.scss | |||
| @@ -1,23 +1,23 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'backdrop.vars'; | 6 | @forward "backdrop.vars"; |
| 7 | @use 'backdrop.vars' as vars; | 7 | @use "backdrop.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables('vars')); | 10 | @include materialize-at-root(meta.module-variables("vars")); |
| 11 | 11 | ||
| 12 | @include bem.object('backdrop') { | 12 | @include bem.object("backdrop") { |
| 13 | position: fixed; | 13 | position: fixed; |
| 14 | inset: 0; | 14 | inset: 0; |
| 15 | z-index: props.get(vars.$z-index); | 15 | z-index: props.get(vars.$z-index); |
| 16 | box-sizing: border-box; | 16 | box-sizing: border-box; |
| 17 | display: flex; | 17 | display: flex; |
| 18 | flex-direction: column; | 18 | flex-direction: column; |
| 19 | overflow: auto; | 19 | overflow: auto; |
| 20 | background-color: props.get(vars.$bg-color); | 20 | background-color: props.get(vars.$bg-color); |
| 21 | backdrop-filter: blur(props.get(vars.$blur)); | 21 | backdrop-filter: blur(props.get(vars.$blur)); |
| 22 | } | 22 | } |
| 23 | } | 23 | } |
diff --git a/src/objects/_backdrop.vars.scss b/src/objects/_backdrop.vars.scss index 9206117..78f4742 100644 --- a/src/objects/_backdrop.vars.scss +++ b/src/objects/_backdrop.vars.scss | |||
| @@ -1,6 +1,10 @@ | |||
| 1 | @use 'pkg:iro-sass/src/props'; | 1 | @use "pkg:iro-sass/props"; |
| 2 | @use '../core.vars' as core; | 2 | @use "../core.vars" as core; |
| 3 | 3 | ||
| 4 | $z-index: props.def(--o-backdrop--z-index, 10000) !default; | 4 | $z-index: props.def(--o-backdrop--z-index, 10000) !default; |
| 5 | $blur: props.def(--o-backdrop--blur, 2em) !default; | 5 | $blur: props.def(--o-backdrop--blur, 2em) !default; |
| 6 | $bg-color: props.def(--o-backdrop--bg-color, props.get(core.$transparent-colors, --black, --600), 'color') !default; | 6 | $bg-color: props.def( |
| 7 | --o-backdrop--bg-color, | ||
| 8 | props.get(core.$transparent-colors, --black, --600), | ||
| 9 | "color" | ||
| 10 | ) !default; | ||
diff --git a/src/objects/_button.scss b/src/objects/_button.scss index a3c8187..8adc0f7 100644 --- a/src/objects/_button.scss +++ b/src/objects/_button.scss | |||
| @@ -1,115 +1,119 @@ | |||
| 1 | @use 'sass:list'; | 1 | @use "sass:list"; |
| 2 | @use 'sass:map'; | 2 | @use "sass:map"; |
| 3 | @use 'sass:meta'; | 3 | @use "sass:meta"; |
| 4 | @use 'sass:string'; | 4 | @use "sass:string"; |
| 5 | @use 'pkg:iro-sass/src/bem'; | 5 | @use "pkg:iro-sass/bem"; |
| 6 | @use 'pkg:iro-sass/src/props'; | 6 | @use "pkg:iro-sass/props"; |
| 7 | @use '../props' as *; | 7 | @use "../props" as *; |
| 8 | 8 | ||
| 9 | @forward 'button.vars'; | 9 | @forward "button.vars"; |
| 10 | @use 'button.vars' as vars; | 10 | @use "button.vars" as vars; |
| 11 | 11 | ||
| 12 | @mixin -apply-theme($theme, $key: ()) { | 12 | @mixin -apply-theme($theme, $key: ()) { |
| 13 | color: props.get($theme, list.join($key, --disabled --label-color)...); | 13 | color: props.get($theme, list.join($key, --disabled --label-color)...); |
| 14 | background-color: props.get($theme, list.join($key, --disabled --bg-color)...); | 14 | background-color: props.get($theme, list.join($key, --disabled --bg-color)...); |
| 15 | border-color: props.get($theme, list.join($key, --disabled --border-color)...); | 15 | border-color: props.get($theme, list.join($key, --disabled --border-color)...); |
| 16 | 16 | ||
| 17 | &::after { | 17 | &::after { |
| 18 | outline-color: props.get($theme, list.join($key, --key-focus --border-color)...); | 18 | outline-color: props.get($theme, list.join($key, --key-focus --border-color)...); |
| 19 | box-shadow: | 19 | box-shadow: 0 0 0 |
| 20 | 0 | 20 | calc( |
| 21 | 0 | 21 | props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width) |
| 22 | 0 | 22 | ) |
| 23 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | ||
| 24 | props.get($theme, list.join($key, --key-focus --outline-color)...); | 23 | props.get($theme, list.join($key, --key-focus --outline-color)...); |
| 25 | } | 24 | } |
| 26 | 25 | ||
| 27 | &:link, | 26 | &:link, |
| 28 | &:visited, | 27 | &:visited, |
| 29 | &:enabled { | 28 | &:enabled { |
| 30 | color: props.get($theme, list.join($key, --label-color)...); | 29 | color: props.get($theme, list.join($key, --label-color)...); |
| 31 | background-color: props.get($theme, list.join($key, --bg-color)...); | 30 | background-color: props.get($theme, list.join($key, --bg-color)...); |
| 32 | border-color: props.get($theme, list.join($key, --border-color)...); | 31 | border-color: props.get($theme, list.join($key, --border-color)...); |
| 33 | box-shadow: | 32 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) |
| 34 | props.get(vars.$shadow-x) | 33 | props.get(vars.$shadow-grow) props.get($theme, list.join($key, --shadow-color)...); |
| 35 | props.get(vars.$shadow-y) | ||
| 36 | props.get(vars.$shadow-blur) | ||
| 37 | props.get(vars.$shadow-grow) | ||
| 38 | props.get($theme, list.join($key, --shadow-color)...); | ||
| 39 | 34 | ||
| 40 | &:hover, | 35 | &:hover, |
| 41 | &:focus-visible { | 36 | &:focus-visible { |
| 42 | color: props.get($theme, list.join($key, --hover --label-color)...); | 37 | color: props.get($theme, list.join($key, --hover --label-color)...); |
| 43 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); | 38 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); |
| 44 | border-color: props.get($theme, list.join($key, --hover --border-color)...); | 39 | border-color: props.get($theme, list.join($key, --hover --border-color)...); |
| 45 | } | 40 | } |
| 46 | 41 | ||
| 47 | &:active { | 42 | &:active { |
| 48 | color: props.get($theme, list.join($key, --active --label-color)...); | 43 | color: props.get($theme, list.join($key, --active --label-color)...); |
| 49 | background-color: props.get($theme, list.join($key, --active --bg-color)...); | 44 | background-color: props.get($theme, list.join($key, --active --bg-color)...); |
| 50 | border-color: props.get($theme, list.join($key, --active --border-color)...); | 45 | border-color: props.get($theme, list.join($key, --active --border-color)...); |
| 51 | box-shadow: none; | 46 | box-shadow: none; |
| 52 | } | 47 | } |
| 53 | } | 48 | } |
| 54 | 49 | ||
| 55 | @include bem.modifier('badge') { | 50 | @include bem.modifier("badge") { |
| 56 | color: props.get($theme, list.join($key, --badge --label-color)...); | 51 | color: props.get($theme, list.join($key, --badge --label-color)...); |
| 57 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); | 52 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); |
| 58 | border-color: props.get($theme, list.join($key, --badge --border-color)...); | 53 | border-color: props.get($theme, list.join($key, --badge --border-color)...); |
| 59 | box-shadow: none; | 54 | box-shadow: none; |
| 60 | 55 | ||
| 61 | &:link, | 56 | &:link, |
| 62 | &:visited, | 57 | &:visited, |
| 63 | &:enabled { | 58 | &:enabled { |
| 64 | color: props.get($theme, list.join($key, --badge --label-color)...); | 59 | color: props.get($theme, list.join($key, --badge --label-color)...); |
| 65 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); | 60 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); |
| 66 | border-color: props.get($theme, list.join($key, --badge --border-color)...); | 61 | border-color: props.get($theme, list.join($key, --badge --border-color)...); |
| 67 | box-shadow: none; | 62 | box-shadow: none; |
| 68 | 63 | ||
| 69 | &:hover, | 64 | &:hover, |
| 70 | &:focus-visible { | 65 | &:focus-visible { |
| 71 | color: props.get($theme, list.join($key, --badge --hover --label-color)...); | 66 | color: props.get($theme, list.join($key, --badge --hover --label-color)...); |
| 72 | background-color: props.get($theme, list.join($key, --badge --hover --bg-color)...); | 67 | background-color: props.get($theme, list.join($key, --badge --hover --bg-color)...); |
| 73 | border-color: props.get($theme, list.join($key, --badge --hover --border-color)...); | 68 | border-color: props.get($theme, list.join($key, --badge --hover --border-color)...); |
| 74 | } | 69 | } |
| 75 | 70 | ||
| 76 | &:active { | 71 | &:active { |
| 77 | color: props.get($theme, list.join($key, --badge --active --label-color)...); | 72 | color: props.get($theme, list.join($key, --badge --active --label-color)...); |
| 78 | background-color: props.get($theme, list.join($key, --badge --active --bg-color)...); | 73 | background-color: props.get( |
| 79 | border-color: props.get($theme, list.join($key, --badge --active --border-color)...); | 74 | $theme, |
| 75 | list.join($key, --badge --active --bg-color)... | ||
| 76 | ); | ||
| 77 | border-color: props.get( | ||
| 78 | $theme, | ||
| 79 | list.join($key, --badge --active --border-color)... | ||
| 80 | ); | ||
| 80 | } | 81 | } |
| 81 | } | 82 | } |
| 82 | } | 83 | } |
| 83 | 84 | ||
| 84 | @include bem.modifier('quiet') { | 85 | @include bem.modifier("quiet") { |
| 85 | color: props.get($theme, list.join($key, --quiet --disabled --label-color)...); | 86 | color: props.get($theme, list.join($key, --quiet --disabled --label-color)...); |
| 86 | background-color: transparent; | 87 | background-color: transparent; |
| 87 | border-color: transparent; | 88 | border-color: transparent; |
| 88 | 89 | ||
| 89 | &:link, | 90 | &:link, |
| 90 | &:visited, | 91 | &:visited, |
| 91 | &:enabled { | 92 | &:enabled { |
| 92 | color: props.get($theme, list.join($key, --quiet --label-color)...); | 93 | color: props.get($theme, list.join($key, --quiet --label-color)...); |
| 93 | background-color: transparent; | 94 | background-color: transparent; |
| 94 | border-color: transparent; | 95 | border-color: transparent; |
| 95 | box-shadow: none; | 96 | box-shadow: none; |
| 96 | 97 | ||
| 97 | &:hover, | 98 | &:hover, |
| 98 | &:focus-visible { | 99 | &:focus-visible { |
| 99 | color: props.get($theme, list.join($key, --quiet --hover --label-color)...); | 100 | color: props.get($theme, list.join($key, --quiet --hover --label-color)...); |
| 100 | background-color: props.get($theme, list.join($key, --quiet --hover --bg-color)...); | 101 | background-color: props.get($theme, list.join($key, --quiet --hover --bg-color)...); |
| 101 | border-color: transparent; | 102 | border-color: transparent; |
| 102 | } | 103 | } |
| 103 | 104 | ||
| 104 | &:active { | 105 | &:active { |
| 105 | color: props.get($theme, list.join($key, --quiet --active --label-color)...); | 106 | color: props.get($theme, list.join($key, --quiet --active --label-color)...); |
| 106 | background-color: props.get($theme, list.join($key, --quiet --active --bg-color)...); | 107 | background-color: props.get( |
| 107 | border-color: transparent; | 108 | $theme, |
| 109 | list.join($key, --quiet --active --bg-color)... | ||
| 110 | ); | ||
| 111 | border-color: transparent; | ||
| 108 | } | 112 | } |
| 109 | } | 113 | } |
| 110 | } | 114 | } |
| 111 | 115 | ||
| 112 | @include bem.is('highlighted') { | 116 | @include bem.is("highlighted") { |
| 113 | &:link, | 117 | &:link, |
| 114 | &:visited, | 118 | &:visited, |
| 115 | &:enabled { | 119 | &:enabled { |
| @@ -121,32 +125,27 @@ | |||
| 121 | 125 | ||
| 122 | box-shadow: | 126 | box-shadow: |
| 123 | 0 0 0 1px props.get($theme, list.join($key, --highlighted --border-color)...), | 127 | 0 0 0 1px props.get($theme, list.join($key, --highlighted --border-color)...), |
| 124 | props.get(vars.$shadow-x) | 128 | props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) |
| 125 | props.get(vars.$shadow-y) | 129 | props.get(vars.$shadow-grow) |
| 126 | props.get(vars.$shadow-blur) | 130 | props.get($theme, list.join($key, --highlighted --shadow-color)...); |
| 127 | props.get(vars.$shadow-grow) | ||
| 128 | props.get($theme, list.join($key, --highlighted --shadow-color)...); | ||
| 129 | 131 | ||
| 130 | &:focus-visible { | 132 | &:focus-visible { |
| 131 | box-shadow: | 133 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) |
| 132 | props.get(vars.$shadow-x) | 134 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) |
| 133 | props.get(vars.$shadow-y) | ||
| 134 | props.get(vars.$shadow-blur) | ||
| 135 | props.get(vars.$shadow-grow) | ||
| 136 | props.get($theme, list.join($key, --shadow-color)...); | 135 | props.get($theme, list.join($key, --shadow-color)...); |
| 137 | } | 136 | } |
| 138 | } | 137 | } |
| 139 | } | 138 | } |
| 140 | 139 | ||
| 141 | @include bem.is('selected') { | 140 | @include bem.is("selected") { |
| 142 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); | 141 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); |
| 143 | background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...); | 142 | background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...); |
| 144 | border-color: props.get($theme, list.join($key, --selected --disabled --border-color)...); | 143 | border-color: props.get($theme, list.join($key, --selected --disabled --border-color)...); |
| 145 | 144 | ||
| 146 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'badge') { | 145 | @include bem.multi("&:link, &:visited, &:enabled", "modifier" "badge") { |
| 147 | color: props.get($theme, list.join($key, --selected --label-color)...); | 146 | color: props.get($theme, list.join($key, --selected --label-color)...); |
| 148 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); | 147 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); |
| 149 | border-color: props.get($theme, list.join($key, --selected --border-color)...); | 148 | border-color: props.get($theme, list.join($key, --selected --border-color)...); |
| 150 | } | 149 | } |
| 151 | 150 | ||
| 152 | &:link, | 151 | &:link, |
| @@ -154,47 +153,67 @@ | |||
| 154 | &:enabled { | 153 | &:enabled { |
| 155 | &:hover, | 154 | &:hover, |
| 156 | &:focus-visible { | 155 | &:focus-visible { |
| 157 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); | 156 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); |
| 158 | background-color: props.get($theme, list.join($key, --selected --hover --bg-color)...); | 157 | background-color: props.get( |
| 159 | border-color: props.get($theme, list.join($key, --selected --hover --border-color)...); | 158 | $theme, |
| 159 | list.join($key, --selected --hover --bg-color)... | ||
| 160 | ); | ||
| 161 | border-color: props.get( | ||
| 162 | $theme, | ||
| 163 | list.join($key, --selected --hover --border-color)... | ||
| 164 | ); | ||
| 160 | } | 165 | } |
| 161 | 166 | ||
| 162 | &:active { | 167 | &:active { |
| 163 | color: props.get($theme, list.join($key, --selected --active --label-color)...); | 168 | color: props.get($theme, list.join($key, --selected --active --label-color)...); |
| 164 | background-color: props.get($theme, list.join($key, --selected --active --bg-color)...); | 169 | background-color: props.get( |
| 165 | border-color: props.get($theme, list.join($key, --selected --active --border-color)...); | 170 | $theme, |
| 171 | list.join($key, --selected --active --bg-color)... | ||
| 172 | ); | ||
| 173 | border-color: props.get( | ||
| 174 | $theme, | ||
| 175 | list.join($key, --selected --active --border-color)... | ||
| 176 | ); | ||
| 166 | } | 177 | } |
| 167 | } | 178 | } |
| 168 | } | 179 | } |
| 169 | } | 180 | } |
| 170 | 181 | ||
| 171 | @mixin styles { | 182 | @mixin styles { |
| 172 | @include materialize-at-root(meta.module-variables('vars')); | 183 | @include materialize-at-root(meta.module-variables("vars")); |
| 173 | 184 | ||
| 174 | @include bem.object('button') { | 185 | @include bem.object("button") { |
| 175 | position: relative; | 186 | position: relative; |
| 176 | display: inline-block; | 187 | display: inline-block; |
| 177 | padding-block: props.get(vars.$pad-b); | 188 | padding-block: props.get(vars.$pad-b); |
| 178 | padding-inline: props.get(vars.$pad-i); | 189 | padding-inline: props.get(vars.$pad-i); |
| 179 | text-overflow: ellipsis; | 190 | text-overflow: ellipsis; |
| 180 | font-size: props.get(vars.$font-size); | 191 | font-size: props.get(vars.$font-size); |
| 181 | line-height: props.get(vars.$line-height); | 192 | line-height: props.get(vars.$line-height); |
| 182 | text-align: center; | 193 | text-align: center; |
| 183 | white-space: nowrap; | 194 | white-space: nowrap; |
| 184 | text-decoration: none; | 195 | text-decoration: none; |
| 185 | border: props.get(vars.$border-width) solid transparent; | 196 | border: props.get(vars.$border-width) solid transparent; |
| 186 | border-radius: props.get(vars.$rounding); | 197 | border-radius: props.get(vars.$rounding); |
| 187 | transition: color .1s, background-color .1s, border-color .1s, box-shadow .1s; | 198 | transition: |
| 199 | color 0.1s, | ||
| 200 | background-color 0.1s, | ||
| 201 | border-color 0.1s, | ||
| 202 | box-shadow 0.1s; | ||
| 188 | 203 | ||
| 189 | &::after { | 204 | &::after { |
| 190 | position: absolute; | 205 | position: absolute; |
| 191 | inset: calc(-1 * props.get(vars.$border-width) - props.get(vars.$key-focus--border-offset)); | 206 | inset: calc( |
| 192 | z-index: 1; | 207 | -1 * props.get(vars.$border-width) - props.get(vars.$key-focus--border-offset) |
| 193 | display: none; | 208 | ); |
| 209 | z-index: 1; | ||
| 210 | display: none; | ||
| 194 | pointer-events: none; | 211 | pointer-events: none; |
| 195 | outline: transparent solid props.get(vars.$key-focus--border-width); | 212 | outline: transparent solid props.get(vars.$key-focus--border-width); |
| 196 | content: ''; | 213 | content: ""; |
| 197 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); | 214 | border-radius: calc( |
| 215 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) | ||
| 216 | ); | ||
| 198 | } | 217 | } |
| 199 | 218 | ||
| 200 | &:link, | 219 | &:link, |
| @@ -209,7 +228,7 @@ | |||
| 209 | } | 228 | } |
| 210 | } | 229 | } |
| 211 | 230 | ||
| 212 | @include bem.elem('label') { | 231 | @include bem.elem("label") { |
| 213 | display: inline-block; | 232 | display: inline-block; |
| 214 | margin-inline: props.get(vars.$pad-i-label); | 233 | margin-inline: props.get(vars.$pad-i-label); |
| 215 | } | 234 | } |
| @@ -222,79 +241,91 @@ | |||
| 222 | } | 241 | } |
| 223 | } | 242 | } |
| 224 | 243 | ||
| 225 | @include bem.modifier('pill') { | 244 | @include bem.modifier("pill") { |
| 226 | padding-inline: props.get(vars.$pad-i-pill); | 245 | padding-inline: props.get(vars.$pad-i-pill); |
| 227 | border-radius: 100em; | 246 | border-radius: 100em; |
| 228 | 247 | ||
| 229 | &::after { | 248 | &::after { |
| 230 | border-radius: 100em; | 249 | border-radius: 100em; |
| 231 | } | 250 | } |
| 232 | } | 251 | } |
| 233 | 252 | ||
| 234 | @include bem.modifier('icon') { | 253 | @include bem.modifier("icon") { |
| 235 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get(vars.$pad-b)); | 254 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get(vars.$pad-b)); |
| 236 | padding-inline: 0; | 255 | padding-inline: 0; |
| 237 | } | 256 | } |
| 238 | 257 | ||
| 239 | @include bem.modifier('wide') { | 258 | @include bem.modifier("wide") { |
| 240 | @include bem.elem('label') { | 259 | @include bem.elem("label") { |
| 241 | margin-inline: props.get(vars.$pad-i-wide); | 260 | margin-inline: props.get(vars.$pad-i-wide); |
| 242 | } | 261 | } |
| 243 | } | 262 | } |
| 244 | 263 | ||
| 245 | @include bem.modifier('justify') { | 264 | @include bem.modifier("justify") { |
| 246 | text-align: justify; | 265 | text-align: justify; |
| 247 | text-align-last: justify; | 266 | text-align-last: justify; |
| 248 | } | 267 | } |
| 249 | 268 | ||
| 250 | @each $mod, $pad-i, $pad-i-label, $pad-i-wide, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { | 269 | @each $mod, $pad-i, $pad-i-label, $pad-i-wide, $pad-i-pill, $pad-b, |
| 270 | $font-size in vars.$fixed-sizes | ||
| 271 | { | ||
| 251 | @include bem.modifier($mod) { | 272 | @include bem.modifier($mod) { |
| 252 | padding-block: props.get($pad-b); | 273 | padding-block: props.get($pad-b); |
| 253 | padding-inline: props.get($pad-i); | 274 | padding-inline: props.get($pad-i); |
| 254 | font-size: props.get($font-size); | 275 | font-size: props.get($font-size); |
| 255 | 276 | ||
| 256 | @include bem.elem('label') { | 277 | @include bem.elem("label") { |
| 257 | margin-inline: props.get($pad-i-label); | 278 | margin-inline: props.get($pad-i-label); |
| 258 | } | 279 | } |
| 259 | 280 | ||
| 260 | @include bem.modifier('pill') { | 281 | @include bem.modifier("pill") { |
| 261 | padding-inline: props.get($pad-i-pill); | 282 | padding-inline: props.get($pad-i-pill); |
| 262 | } | 283 | } |
| 263 | 284 | ||
| 264 | @include bem.modifier('icon') { | 285 | @include bem.modifier("icon") { |
| 265 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get($pad-b)); | 286 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get($pad-b)); |
| 266 | padding-inline: 0; | 287 | padding-inline: 0; |
| 267 | } | 288 | } |
| 268 | 289 | ||
| 269 | @include bem.modifier('wide') { | 290 | @include bem.modifier("wide") { |
| 270 | @include bem.elem('label') { | 291 | @include bem.elem("label") { |
| 271 | margin-inline: props.get($pad-i-wide); | 292 | margin-inline: props.get($pad-i-wide); |
| 272 | } | 293 | } |
| 273 | } | 294 | } |
| 274 | } | 295 | } |
| 275 | } | 296 | } |
| 276 | 297 | ||
| 277 | @include bem.modifier('align-block') { | 298 | @include bem.modifier("align-block") { |
| 278 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$border-width)); | 299 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$border-width)); |
| 279 | 300 | ||
| 280 | @include bem.modifier('pill') { | 301 | @include bem.modifier("pill") { |
| 281 | margin-inline: calc(-1 * props.get(vars.$pad-i-pill) - props.get(vars.$border-width)); | 302 | margin-inline: calc( |
| 303 | -1 * props.get(vars.$pad-i-pill) - props.get(vars.$border-width) | ||
| 304 | ); | ||
| 282 | } | 305 | } |
| 283 | 306 | ||
| 284 | @include bem.modifier('icon') { | 307 | @include bem.modifier("icon") { |
| 285 | margin-inline: calc(-1 * props.get(vars.$pad-b) - props.get(vars.$border-width) - .5em * (props.get(vars.$line-height) - 1)); | 308 | margin-inline: calc( |
| 309 | -1 * props.get(vars.$pad-b) - props.get(vars.$border-width) - 0.5em * | ||
| 310 | (props.get(vars.$line-height) - 1) | ||
| 311 | ); | ||
| 286 | } | 312 | } |
| 287 | 313 | ||
| 288 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { | 314 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { |
| 289 | @include bem.modifier($mod) { | 315 | @include bem.modifier($mod) { |
| 290 | margin-inline: calc(-1 * props.get($pad-i) - props.get(vars.$border-width)); | 316 | margin-inline: calc(-1 * props.get($pad-i) - props.get(vars.$border-width)); |
| 291 | 317 | ||
| 292 | @include bem.modifier('pill') { | 318 | @include bem.modifier("pill") { |
| 293 | margin-inline: calc(-1 * props.get($pad-i-pill) - props.get(vars.$border-width)); | 319 | margin-inline: calc( |
| 320 | -1 * props.get($pad-i-pill) - props.get(vars.$border-width) | ||
| 321 | ); | ||
| 294 | } | 322 | } |
| 295 | 323 | ||
| 296 | @include bem.modifier('icon') { | 324 | @include bem.modifier("icon") { |
| 297 | margin-inline: calc(-1 * props.get($pad-b) - props.get(vars.$border-width) - .5em * (props.get(vars.$line-height) - 1)); | 325 | margin-inline: calc( |
| 326 | -1 * props.get($pad-b) - props.get(vars.$border-width) - 0.5em * | ||
| 327 | (props.get(vars.$line-height) - 1) | ||
| 328 | ); | ||
| 298 | } | 329 | } |
| 299 | } | 330 | } |
| 300 | } | 331 | } |
diff --git a/src/objects/_button.vars.scss b/src/objects/_button.vars.scss index 3f835ae..a137d6d 100644 --- a/src/objects/_button.vars.scss +++ b/src/objects/_button.vars.scss | |||
| @@ -1,386 +1,456 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:string'; | 2 | @use "sass:string"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | $line-height: props.def(--o-button--line-height, 1.4) !default; | 6 | $line-height: props.def(--o-button--line-height, 1.4) !default; |
| 7 | $border-width: props.def(--o-button--border-width, props.get(core.$border-width--thin)) !default; | 7 | $border-width: props.def(--o-button--border-width, props.get(core.$border-width--thin)) !default; |
| 8 | $rounding: props.def(--o-button--rounding, props.get(core.$rounding--sm)) !default; | 8 | $rounding: props.def(--o-button--rounding, props.get(core.$rounding--sm)) !default; |
| 9 | 9 | ||
| 10 | $pad-i--xs: props.def(--o-button--xs--pad-i, props.get(core.$size--75)) !default; | 10 | $pad-i--xs: props.def(--o-button--xs--pad-i, props.get(core.$size--75)) !default; |
| 11 | $pad-i-label--xs: props.def(--o-button--xs--pad-i-label, props.get(core.$size--40)) !default; | 11 | $pad-i-label--xs: props.def(--o-button--xs--pad-i-label, props.get(core.$size--40)) !default; |
| 12 | $pad-i-wide--xs: props.def(--o-button--xs--pad-i-wide, props.get(core.$size--150)) !default; | 12 | $pad-i-wide--xs: props.def(--o-button--xs--pad-i-wide, props.get(core.$size--150)) !default; |
| 13 | $pad-i-pill--xs: props.def(--o-button--xs--pad-i-pill, props.get(core.$size--115)) !default; | 13 | $pad-i-pill--xs: props.def(--o-button--xs--pad-i-pill, props.get(core.$size--115)) !default; |
| 14 | $pad-b--xs: props.def(--o-button--xs--pad-b, props.get(core.$size--40)) !default; | 14 | $pad-b--xs: props.def(--o-button--xs--pad-b, props.get(core.$size--40)) !default; |
| 15 | $font-size--xs: props.def(--o-button--xs--font-size, props.get(core.$font-size--75)) !default; | 15 | $font-size--xs: props.def(--o-button--xs--font-size, props.get(core.$font-size--75)) !default; |
| 16 | 16 | ||
| 17 | $pad-i--sm: props.def(--o-button--sm--pad-i, props.get(core.$size--85)) !default; | 17 | $pad-i--sm: props.def(--o-button--sm--pad-i, props.get(core.$size--85)) !default; |
| 18 | $pad-i-label--sm: props.def(--o-button--sm--pad-i-label, props.get(core.$size--50)) !default; | 18 | $pad-i-label--sm: props.def(--o-button--sm--pad-i-label, props.get(core.$size--50)) !default; |
| 19 | $pad-i-wide--sm: props.def(--o-button--sm--pad-i-wide, props.get(core.$size--175)) !default; | 19 | $pad-i-wide--sm: props.def(--o-button--sm--pad-i-wide, props.get(core.$size--175)) !default; |
| 20 | $pad-i-pill--sm: props.def(--o-button--sm--pad-i-pill, props.get(core.$size--125)) !default; | 20 | $pad-i-pill--sm: props.def(--o-button--sm--pad-i-pill, props.get(core.$size--125)) !default; |
| 21 | $pad-b--sm: props.def(--o-button--sm--pad-b, props.get(core.$size--50)) !default; | 21 | $pad-b--sm: props.def(--o-button--sm--pad-b, props.get(core.$size--50)) !default; |
| 22 | $font-size--sm: props.def(--o-button--sm--font-size, props.get(core.$font-size--100)) !default; | 22 | $font-size--sm: props.def(--o-button--sm--font-size, props.get(core.$font-size--100)) !default; |
| 23 | 23 | ||
| 24 | $pad-i: props.def(--o-button--pad-i, props.get(core.$size--115)) !default; | 24 | $pad-i: props.def(--o-button--pad-i, props.get(core.$size--115)) !default; |
| 25 | $pad-i-label: props.def(--o-button--pad-i-label, props.get(core.$size--50)) !default; | 25 | $pad-i-label: props.def(--o-button--pad-i-label, props.get(core.$size--50)) !default; |
| 26 | $pad-i-wide: props.def(--o-button--pad-i-wide, props.get(core.$size--200)) !default; | 26 | $pad-i-wide: props.def(--o-button--pad-i-wide, props.get(core.$size--200)) !default; |
| 27 | $pad-i-pill: props.def(--o-button--pad-i-pill, props.get(core.$size--160)) !default; | 27 | $pad-i-pill: props.def(--o-button--pad-i-pill, props.get(core.$size--160)) !default; |
| 28 | $pad-b: props.def(--o-button--pad-b, props.get(core.$size--85)) !default; | 28 | $pad-b: props.def(--o-button--pad-b, props.get(core.$size--85)) !default; |
| 29 | $font-size: props.def(--o-button--font-size, props.get(core.$font-size--100)) !default; | 29 | $font-size: props.def(--o-button--font-size, props.get(core.$font-size--100)) !default; |
| 30 | 30 | ||
| 31 | $pad-i--lg: props.def(--o-button--lg--pad-i, props.get(core.$size--160)) !default; | 31 | $pad-i--lg: props.def(--o-button--lg--pad-i, props.get(core.$size--160)) !default; |
| 32 | $pad-i-label--lg: props.def(--o-button--lg--pad-i-label, props.get(core.$size--65)) !default; | 32 | $pad-i-label--lg: props.def(--o-button--lg--pad-i-label, props.get(core.$size--65)) !default; |
| 33 | $pad-i-wide--lg: props.def(--o-button--lg--pad-i-wide, props.get(core.$size--300)) !default; | 33 | $pad-i-wide--lg: props.def(--o-button--lg--pad-i-wide, props.get(core.$size--300)) !default; |
| 34 | $pad-i-pill--lg: props.def(--o-button--lg--pad-i-pill, props.get(core.$size--175)) !default; | 34 | $pad-i-pill--lg: props.def(--o-button--lg--pad-i-pill, props.get(core.$size--175)) !default; |
| 35 | $pad-b--lg: props.def(--o-button--lg--pad-b, props.get(core.$size--115)) !default; | 35 | $pad-b--lg: props.def(--o-button--lg--pad-b, props.get(core.$size--115)) !default; |
| 36 | $font-size--lg: props.def(--o-button--lg--font-size, props.get(core.$font-size--150)) !default; | 36 | $font-size--lg: props.def(--o-button--lg--font-size, props.get(core.$font-size--150)) !default; |
| 37 | 37 | ||
| 38 | $pad-i--xl: props.def(--o-button--xl--pad-i, props.get(core.$size--200)) !default; | 38 | $pad-i--xl: props.def(--o-button--xl--pad-i, props.get(core.$size--200)) !default; |
| 39 | $pad-i-label--xl: props.def(--o-button--xl--pad-i-label, props.get(core.$size--85)) !default; | 39 | $pad-i-label--xl: props.def(--o-button--xl--pad-i-label, props.get(core.$size--85)) !default; |
| 40 | $pad-i-wide--xl: props.def(--o-button--xl--pad-i-wide, props.get(core.$size--400)) !default; | 40 | $pad-i-wide--xl: props.def(--o-button--xl--pad-i-wide, props.get(core.$size--400)) !default; |
| 41 | $pad-i-pill--xl: props.def(--o-button--xl--pad-i-pill, props.get(core.$size--225)) !default; | 41 | $pad-i-pill--xl: props.def(--o-button--xl--pad-i-pill, props.get(core.$size--225)) !default; |
| 42 | $pad-b--xl: props.def(--o-button--xl--pad-b, props.get(core.$size--150)) !default; | 42 | $pad-b--xl: props.def(--o-button--xl--pad-b, props.get(core.$size--150)) !default; |
| 43 | $font-size--xl: props.def(--o-button--xl--font-size, props.get(core.$font-size--200)) !default; | 43 | $font-size--xl: props.def(--o-button--xl--font-size, props.get(core.$font-size--200)) !default; |
| 44 | 44 | ||
| 45 | $shadow-x: props.def(--o-button--shadow-x, props.get(core.$shadow--l1--x)) !default; | 45 | $shadow-x: props.def(--o-button--shadow-x, props.get(core.$shadow--l1--x)) !default; |
| 46 | $shadow-y: props.def(--o-button--shadow-y, props.get(core.$shadow--l1--y)) !default; | 46 | $shadow-y: props.def(--o-button--shadow-y, props.get(core.$shadow--l1--y)) !default; |
| 47 | $shadow-blur: props.def(--o-button--shadow-blur, props.get(core.$shadow--l1--blur)) !default; | 47 | $shadow-blur: props.def(--o-button--shadow-blur, props.get(core.$shadow--l1--blur)) !default; |
| 48 | $shadow-grow: props.def(--o-button--shadow-grow, props.get(core.$shadow--l1--grow)) !default; | 48 | $shadow-grow: props.def(--o-button--shadow-grow, props.get(core.$shadow--l1--grow)) !default; |
| 49 | 49 | ||
| 50 | $key-focus--border-width: props.def(--o-button--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 50 | $key-focus--border-width: props.def( |
| 51 | $key-focus--border-offset: props.def(--o-button--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 51 | --o-button--key-focus--border-width, |
| 52 | $key-focus--outline-width: props.def(--o-button--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 52 | props.get(core.$key-focus--border-width) |
| 53 | ) !default; | ||
| 54 | $key-focus--border-offset: props.def( | ||
| 55 | --o-button--key-focus--border-offset, | ||
| 56 | props.get(core.$key-focus--border-offset) | ||
| 57 | ) !default; | ||
| 58 | $key-focus--outline-width: props.def( | ||
| 59 | --o-button--key-focus--outline-width, | ||
| 60 | props.get(core.$key-focus--outline-width) | ||
| 61 | ) !default; | ||
| 53 | 62 | ||
| 54 | $fixed-sizes: ( | 63 | $fixed-sizes: ( |
| 55 | 'xs' $pad-i--xs $pad-i-label--xs $pad-i-wide--xs $pad-i-pill--xs $pad-b--xs $font-size--xs, | 64 | "xs" $pad-i--xs $pad-i-label--xs $pad-i-wide--xs $pad-i-pill--xs $pad-b--xs $font-size--xs, |
| 56 | 'sm' $pad-i--sm $pad-i-label--sm $pad-i-wide--sm $pad-i-pill--sm $pad-b--sm $font-size--sm, | 65 | "sm" $pad-i--sm $pad-i-label--sm $pad-i-wide--sm $pad-i-pill--sm $pad-b--sm $font-size--sm, |
| 57 | 'lg' $pad-i--lg $pad-i-label--lg $pad-i-wide--lg $pad-i-pill--lg $pad-b--lg $font-size--lg, | 66 | "lg" $pad-i--lg $pad-i-label--lg $pad-i-wide--lg $pad-i-pill--lg $pad-b--lg $font-size--lg, |
| 58 | 'xl' $pad-i--xl $pad-i-label--xl $pad-i-wide--xl $pad-i-pill--xl $pad-b--xl $font-size--xl, | 67 | "xl" $pad-i--xl $pad-i-label--xl $pad-i-wide--xl $pad-i-pill--xl $pad-b--xl $font-size--xl |
| 59 | ) !default; | 68 | ) !default; |
| 60 | 69 | ||
| 61 | $themes: props.def(--o-button, (), 'color'); | 70 | $themes: props.def(--o-button, (), "color"); |
| 62 | 71 | ||
| 63 | $default-theme-override: () !default; | 72 | $default-theme-override: () !default; |
| 64 | $default-theme: map.deep-merge(( | 73 | $default-theme: map.deep-merge( |
| 65 | --bg-color: props.get(core.$theme, --bg-l2), | 74 | ( |
| 66 | --label-color: props.get(core.$theme, --text), | 75 | --bg-color: props.get(core.$theme, --bg-l2), |
| 67 | --border-color: props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border-strong), | 76 | --label-color: props.get(core.$theme, --text), |
| 68 | --shadow-color: props.get(core.$theme, --shadow), | 77 | --border-color: props.get(core.$theme, --box, --border) |
| 69 | 78 | props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border-strong), | |
| 70 | --hover: ( | 79 | --shadow-color: props.get(core.$theme, --shadow), |
| 71 | --bg-color: props.get(core.$theme, --bg-l1), | ||
| 72 | --label-color: props.get(core.$theme, --heading), | ||
| 73 | --border-color: props.get(core.$theme, --border), | ||
| 74 | ), | ||
| 75 | |||
| 76 | --active: ( | ||
| 77 | --bg-color: props.get(core.$theme, --border-mute), | ||
| 78 | --label-color: props.get(core.$theme, --heading), | ||
| 79 | --border-color: props.get(core.$theme, --border-strong), | ||
| 80 | ), | ||
| 81 | |||
| 82 | --disabled: ( | ||
| 83 | --bg-color: transparent, | ||
| 84 | --label-color: props.get(core.$theme, --border-strong), | ||
| 85 | --border-color: props.get(core.$theme, --text-disabled), | ||
| 86 | ), | ||
| 87 | |||
| 88 | --key-focus: ( | ||
| 89 | --border-color: props.get(core.$theme, --focus, --border), | ||
| 90 | --outline-color: props.get(core.$theme, --focus, --outline), | ||
| 91 | ), | ||
| 92 | |||
| 93 | --highlighted: ( | ||
| 94 | --border-color: props.get(core.$theme, --focus, --border), | ||
| 95 | --shadow-color: props.get(core.$theme, --focus, --outline), | ||
| 96 | ), | ||
| 97 | |||
| 98 | --selected: ( | ||
| 99 | --bg-color: props.get(core.$theme, --heading), | ||
| 100 | --label-color: props.get(core.$theme, --base, --50), | ||
| 101 | --border-color: props.get(core.$theme, --heading), | ||
| 102 | |||
| 103 | --hover: ( | 80 | --hover: ( |
| 104 | --bg-color: props.get(core.$theme, --text), | 81 | --bg-color: props.get(core.$theme, --bg-l1), |
| 105 | --label-color: props.get(core.$theme, --base, --50), | 82 | --label-color: props.get(core.$theme, --heading), |
| 106 | --border-color: props.get(core.$theme, --text), | 83 | --border-color: props.get(core.$theme, --border), |
| 107 | ), | 84 | ), |
| 108 | 85 | ||
| 109 | --active: ( | 86 | --active: ( |
| 110 | --bg-color: props.get(core.$theme, --text-mute), | 87 | --bg-color: props.get(core.$theme, --border-mute), |
| 111 | --label-color: props.get(core.$theme, --base, --50), | 88 | --label-color: props.get(core.$theme, --heading), |
| 112 | --border-color: props.get(core.$theme, --text-mute), | 89 | --border-color: props.get(core.$theme, --border-strong), |
| 113 | ), | 90 | ), |
| 114 | 91 | ||
| 115 | --disabled: ( | 92 | --disabled: ( |
| 116 | --bg-color: props.get(core.$theme, --border-mute), | 93 | --bg-color: transparent, |
| 117 | --label-color: props.get(core.$theme, --border-strong), | 94 | --label-color: props.get(core.$theme, --border-strong), |
| 118 | --border-color: props.get(core.$theme, --border-mute), | 95 | --border-color: props.get(core.$theme, --text-disabled), |
| 119 | ), | 96 | ), |
| 120 | ), | ||
| 121 | 97 | ||
| 122 | --badge: ( | 98 | --key-focus: ( |
| 123 | --bg-color: props.get(core.$theme, --border-mute), | 99 | --border-color: props.get(core.$theme, --focus, --border), |
| 124 | --label-color: props.get(core.$theme, --heading), | 100 | --outline-color: props.get(core.$theme, --focus, --outline), |
| 125 | --border-color: props.get(core.$theme, --border-mute), | ||
| 126 | |||
| 127 | --hover: ( | ||
| 128 | --bg-color: props.get(core.$theme, --border), | ||
| 129 | --label-color: props.get(core.$theme, --heading), | ||
| 130 | --border-color: props.get(core.$theme, --border), | ||
| 131 | ), | 101 | ), |
| 132 | 102 | ||
| 133 | --active: ( | 103 | --highlighted: ( |
| 134 | --bg-color: props.get(core.$theme, --border-strong), | 104 | --border-color: props.get(core.$theme, --focus, --border), |
| 135 | --label-color: props.get(core.$theme, --heading), | 105 | --shadow-color: props.get(core.$theme, --focus, --outline), |
| 136 | --border-color: props.get(core.$theme, --border-strong), | ||
| 137 | ), | 106 | ), |
| 138 | ), | ||
| 139 | 107 | ||
| 140 | --quiet: ( | 108 | --selected: ( |
| 141 | --label-color: props.get(core.$theme, --text), | 109 | --bg-color: props.get(core.$theme, --heading), |
| 110 | --label-color: props.get(core.$theme, --base, --50), | ||
| 111 | --border-color: props.get(core.$theme, --heading), | ||
| 112 | --hover: ( | ||
| 113 | --bg-color: props.get(core.$theme, --text), | ||
| 114 | --label-color: props.get(core.$theme, --base, --50), | ||
| 115 | --border-color: props.get(core.$theme, --text), | ||
| 116 | ), | ||
| 142 | 117 | ||
| 143 | --hover: ( | 118 | --active: ( |
| 144 | --bg-color: props.get(core.$theme, --border-mute), | 119 | --bg-color: props.get(core.$theme, --text-mute), |
| 145 | --label-color: props.get(core.$theme, --heading), | 120 | --label-color: props.get(core.$theme, --base, --50), |
| 121 | --border-color: props.get(core.$theme, --text-mute), | ||
| 122 | ), | ||
| 123 | |||
| 124 | --disabled: ( | ||
| 125 | --bg-color: props.get(core.$theme, --border-mute), | ||
| 126 | --label-color: props.get(core.$theme, --border-strong), | ||
| 127 | --border-color: props.get(core.$theme, --border-mute), | ||
| 128 | ), | ||
| 146 | ), | 129 | ), |
| 147 | 130 | ||
| 148 | --active: ( | 131 | --badge: ( |
| 149 | --bg-color: props.get(core.$theme, --border), | 132 | --bg-color: props.get(core.$theme, --border-mute), |
| 150 | --label-color: props.get(core.$theme, --heading), | 133 | --label-color: props.get(core.$theme, --heading), |
| 134 | --border-color: props.get(core.$theme, --border-mute), | ||
| 135 | --hover: ( | ||
| 136 | --bg-color: props.get(core.$theme, --border), | ||
| 137 | --label-color: props.get(core.$theme, --heading), | ||
| 138 | --border-color: props.get(core.$theme, --border), | ||
| 139 | ), | ||
| 140 | |||
| 141 | --active: ( | ||
| 142 | --bg-color: props.get(core.$theme, --border-strong), | ||
| 143 | --label-color: props.get(core.$theme, --heading), | ||
| 144 | --border-color: props.get(core.$theme, --border-strong), | ||
| 145 | ), | ||
| 151 | ), | 146 | ), |
| 152 | 147 | ||
| 153 | --disabled: ( | 148 | --quiet: ( |
| 154 | --label-color: props.get(core.$theme, --border-strong), | 149 | --label-color: props.get(core.$theme, --text), |
| 150 | --hover: ( | ||
| 151 | --bg-color: props.get(core.$theme, --border-mute), | ||
| 152 | --label-color: props.get(core.$theme, --heading), | ||
| 153 | ), | ||
| 154 | |||
| 155 | --active: ( | ||
| 156 | --bg-color: props.get(core.$theme, --border), | ||
| 157 | --label-color: props.get(core.$theme, --heading), | ||
| 158 | ), | ||
| 159 | |||
| 160 | --disabled: ( | ||
| 161 | --label-color: props.get(core.$theme, --border-strong), | ||
| 162 | ), | ||
| 155 | ), | 163 | ), |
| 156 | ), | 164 | ), |
| 157 | ), $default-theme-override) !default; | 165 | $default-theme-override |
| 158 | $default-theme: props.def(--o-button, $default-theme, 'color'); | 166 | ) !default; |
| 167 | $default-theme: props.def(--o-button, $default-theme, "color"); | ||
| 159 | 168 | ||
| 160 | $default-theme-dark-override: () !default; | 169 | $default-theme-dark-override: () !default; |
| 161 | $default-theme-dark: map.deep-merge(( | 170 | $default-theme-dark: map.deep-merge( |
| 162 | --bg-color: props.get(core.$theme, --border-mute), | 171 | ( |
| 163 | --border-color: props.get(core.$theme, --border-mute), | 172 | --bg-color: props.get(core.$theme, --border-mute), |
| 164 | 173 | --border-color: props.get(core.$theme, --border-mute), | |
| 165 | --hover: ( | 174 | --hover: ( |
| 166 | --bg-color: props.get(core.$theme, --border), | 175 | --bg-color: props.get(core.$theme, --border), |
| 167 | --border-color: props.get(core.$theme, --border), | 176 | --border-color: props.get(core.$theme, --border), |
| 168 | ), | 177 | ), |
| 169 | 178 | ||
| 170 | --active: ( | 179 | --active: ( |
| 171 | --bg-color: props.get(core.$theme, --border-strong), | 180 | --bg-color: props.get(core.$theme, --border-strong), |
| 172 | --border-color: props.get(core.$theme, --border-strong), | 181 | --border-color: props.get(core.$theme, --border-strong), |
| 173 | ), | 182 | ), |
| 174 | 183 | ||
| 175 | --selected: ( | 184 | --selected: ( |
| 176 | --border-color: props.get(core.$theme, --text), | 185 | --border-color: props.get(core.$theme, --text), |
| 186 | ), | ||
| 177 | ), | 187 | ), |
| 178 | ), $default-theme-override) !default; | 188 | $default-theme-override |
| 179 | $default-theme-dark: props.def(--o-button, $default-theme-dark, 'dark'); | 189 | ) !default; |
| 190 | $default-theme-dark: props.def(--o-button, $default-theme-dark, "dark"); | ||
| 180 | 191 | ||
| 181 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 192 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 182 | $button-theme: --static-#{string.slice($theme, 3)}; | 193 | $button-theme: --static-#{string.slice($theme, 3)}; |
| 183 | 194 | ||
| 184 | $themes: props.merge($themes, ( | 195 | $themes: props.merge( |
| 185 | $button-theme: ( | 196 | $themes, |
| 186 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 197 | ( |
| 187 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 198 | $button-theme: ( |
| 188 | --border-color: props.get(core.$transparent-colors, $theme, --300) props.get(core.$transparent-colors, $theme, --300) props.get(core.$transparent-colors, $theme, --400), | 199 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 189 | --shadow-color: props.get(core.$transparent-colors, --black, --200), | 200 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 190 | 201 | --border-color: props.get(core.$transparent-colors, $theme, --300) | |
| 191 | --hover: ( | 202 | props.get(core.$transparent-colors, $theme, --300) |
| 192 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 203 | props.get(core.$transparent-colors, $theme, --400), |
| 193 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 204 | --shadow-color: props.get(core.$transparent-colors, --black, --200), |
| 194 | --border-color: props.get(core.$transparent-colors, $theme, --400), | 205 | --hover: ( |
| 195 | ), | 206 | --bg-color: props.get(core.$transparent-colors, $theme, --300), |
| 207 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 208 | --border-color: props.get(core.$transparent-colors, $theme, --400), | ||
| 209 | ), | ||
| 196 | 210 | ||
| 197 | --active: ( | 211 | --active: ( |
| 198 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 212 | --bg-color: props.get(core.$transparent-colors, $theme, --400), |
| 199 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 213 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 200 | --border-color: props.get(core.$transparent-colors, $theme, --500), | 214 | --border-color: props.get(core.$transparent-colors, $theme, --500), |
| 201 | ), | 215 | ), |
| 202 | 216 | ||
| 203 | --disabled: ( | 217 | --disabled: ( |
| 204 | --bg-color: props.get(core.$transparent-colors, $theme, --100), | 218 | --bg-color: props.get(core.$transparent-colors, $theme, --100), |
| 205 | --label-color: props.get(core.$transparent-colors, $theme, --500), | 219 | --label-color: props.get(core.$transparent-colors, $theme, --500), |
| 206 | --border-color: props.get(core.$transparent-colors, $theme, --300), | 220 | --border-color: props.get(core.$transparent-colors, $theme, --300), |
| 207 | ), | 221 | ), |
| 208 | 222 | ||
| 209 | --key-focus: ( | 223 | --key-focus: ( |
| 210 | --border-color: props.get(core.$transparent-colors, $theme, --900), | 224 | --border-color: props.get(core.$transparent-colors, $theme, --900), |
| 211 | --outline-color: props.get(core.$transparent-colors, $theme, --300), | 225 | --outline-color: props.get(core.$transparent-colors, $theme, --300), |
| 212 | ), | 226 | ), |
| 213 | 227 | ||
| 214 | --highlighted: ( | 228 | --highlighted: ( |
| 215 | --border-color: props.get(core.$transparent-colors, $theme, --900), | 229 | --border-color: props.get(core.$transparent-colors, $theme, --900), |
| 216 | --shadow-color: props.get(core.$transparent-colors, --black, --200), | 230 | --shadow-color: props.get(core.$transparent-colors, --black, --200), |
| 217 | ), | 231 | ), |
| 218 | 232 | ||
| 219 | --selected: ( | 233 | --selected: ( |
| 220 | --bg-color: props.get(core.$transparent-colors, $theme, --900), | 234 | --bg-color: props.get(core.$transparent-colors, $theme, --900), |
| 221 | --label-color: props.get(core.$transparent-colors, $theme, --text), | 235 | --label-color: props.get(core.$transparent-colors, $theme, --text), |
| 222 | --border-color: props.get(core.$transparent-colors, $theme, --100) props.get(core.$transparent-colors, $theme, --100) props.get(core.$transparent-colors, $theme, --200), | 236 | --border-color: props.get(core.$transparent-colors, $theme, --100) |
| 237 | props.get(core.$transparent-colors, $theme, --100) | ||
| 238 | props.get(core.$transparent-colors, $theme, --200), | ||
| 239 | --hover: ( | ||
| 240 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 241 | --label-color: props.get( | ||
| 242 | core.$transparent-colors, | ||
| 243 | $theme, | ||
| 244 | --text | ||
| 245 | ), | ||
| 246 | --border-color: props.get( | ||
| 247 | core.$transparent-colors, | ||
| 248 | $theme, | ||
| 249 | --100 | ||
| 250 | ), | ||
| 251 | ), | ||
| 223 | 252 | ||
| 224 | --hover: ( | 253 | --active: ( |
| 225 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | 254 | --bg-color: props.get(core.$transparent-colors, $theme, --800), |
| 226 | --label-color: props.get(core.$transparent-colors, $theme, --text), | 255 | --label-color: props.get( |
| 227 | --border-color: props.get(core.$transparent-colors, $theme, --100), | 256 | core.$transparent-colors, |
| 228 | ), | 257 | $theme, |
| 258 | --text | ||
| 259 | ), | ||
| 260 | --border-color: props.get( | ||
| 261 | core.$transparent-colors, | ||
| 262 | $theme, | ||
| 263 | --100 | ||
| 264 | ), | ||
| 265 | ), | ||
| 229 | 266 | ||
| 230 | --active: ( | 267 | --disabled: ( |
| 231 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | 268 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 232 | --label-color: props.get(core.$transparent-colors, $theme, --text), | 269 | --label-color: props.get( |
| 233 | --border-color: props.get(core.$transparent-colors, $theme, --100), | 270 | core.$transparent-colors, |
| 234 | ), | 271 | $theme, |
| 272 | --500 | ||
| 273 | ), | ||
| 274 | --border-color: props.get( | ||
| 275 | core.$transparent-colors, | ||
| 276 | $theme, | ||
| 277 | --100 | ||
| 278 | ), | ||
| 279 | ), | ||
| 280 | ), | ||
| 235 | 281 | ||
| 236 | --disabled: ( | 282 | --badge: ( |
| 237 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 283 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 238 | --label-color: props.get(core.$transparent-colors, $theme, --500), | 284 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 239 | --border-color: props.get(core.$transparent-colors, $theme, --100), | 285 | --border-color: transparent, |
| 240 | ), | ||
| 241 | ), | ||
| 242 | 286 | ||
| 243 | --badge: ( | 287 | --hover: ( |
| 244 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 288 | --bg-color: props.get(core.$transparent-colors, $theme, --300), |
| 245 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 289 | --label-color: props.get( |
| 246 | --border-color: transparent, | 290 | core.$transparent-colors, |
| 291 | $theme, | ||
| 292 | --900 | ||
| 293 | ), | ||
| 294 | --border-color: transparent, | ||
| 295 | ), | ||
| 247 | 296 | ||
| 248 | --hover: ( | 297 | --active: ( |
| 249 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 298 | --bg-color: props.get(core.$transparent-colors, $theme, --400), |
| 250 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 299 | --label-color: props.get( |
| 251 | --border-color: transparent, | 300 | core.$transparent-colors, |
| 252 | ), | 301 | $theme, |
| 302 | --900 | ||
| 303 | ), | ||
| 304 | --border-color: transparent, | ||
| 305 | ), | ||
| 306 | ), | ||
| 253 | 307 | ||
| 254 | --active: ( | 308 | --quiet: ( |
| 255 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 309 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 256 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 310 | --hover: ( |
| 257 | --border-color: transparent, | 311 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 258 | ), | 312 | --label-color: props.get( |
| 259 | ), | 313 | core.$transparent-colors, |
| 314 | $theme, | ||
| 315 | --900 | ||
| 316 | ), | ||
| 317 | ), | ||
| 260 | 318 | ||
| 261 | --quiet: ( | 319 | --active: ( |
| 262 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 320 | --bg-color: props.get(core.$transparent-colors, $theme, --300), |
| 321 | --label-color: props.get( | ||
| 322 | core.$transparent-colors, | ||
| 323 | $theme, | ||
| 324 | --900 | ||
| 325 | ), | ||
| 326 | ), | ||
| 263 | 327 | ||
| 264 | --hover: ( | 328 | --disabled: ( |
| 265 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 329 | --label-color: props.get( |
| 266 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 330 | core.$transparent-colors, |
| 331 | $theme, | ||
| 332 | --500 | ||
| 333 | ), | ||
| 334 | ), | ||
| 335 | ), | ||
| 267 | ), | 336 | ), |
| 268 | |||
| 269 | --active: ( | ||
| 270 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | ||
| 271 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 272 | ), | ||
| 273 | |||
| 274 | --disabled: ( | ||
| 275 | --label-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 276 | ), | ||
| 277 | ), | ||
| 278 | ) | 337 | ) |
| 279 | )); | 338 | ); |
| 280 | } | 339 | } |
| 281 | 340 | ||
| 282 | $themes-config: ( | 341 | $themes-config: ( |
| 283 | accent: --accent, | 342 | accent: --accent, |
| 284 | positive: --positive, | 343 | positive: --positive, |
| 285 | negative: --negative, | 344 | negative: --negative, |
| 286 | warning: --warning, | 345 | warning: --warning, |
| 287 | ) !default; | 346 | ) !default; |
| 288 | 347 | ||
| 289 | @each $theme, $key in $themes-config { | 348 | @each $theme, $key in $themes-config { |
| 290 | $themes: props.merge($themes, ( | 349 | $themes: props.merge( |
| 291 | --#{$theme}: ( | 350 | $themes, |
| 292 | --bg-color: props.get(core.$theme, $key, --100), | 351 | ( |
| 293 | --label-color: props.get(core.$theme, $key, --1100), | 352 | --#{$theme}: ( |
| 294 | --border-color: props.get(core.$theme, $key, --500) props.get(core.$theme, $key, --500) props.get(core.$theme, $key, --600), | 353 | --bg-color: props.get(core.$theme, $key, --100), |
| 295 | --shadow-color: props.get(core.$theme, $key, --200), | 354 | --label-color: props.get(core.$theme, $key, --1100), |
| 355 | --border-color: props.get(core.$theme, $key, --500) | ||
| 356 | props.get(core.$theme, $key, --500) | ||
| 357 | props.get(core.$theme, $key, --600), | ||
| 358 | --shadow-color: props.get(core.$theme, $key, --200), | ||
| 359 | --hover: ( | ||
| 360 | --bg-color: props.get(core.$theme, $key, --200), | ||
| 361 | --label-color: props.get(core.$theme, $key, --1200), | ||
| 362 | --border-color: props.get(core.$theme, $key, --600), | ||
| 363 | ), | ||
| 296 | 364 | ||
| 297 | --hover: ( | 365 | --active: ( |
| 298 | --bg-color: props.get(core.$theme, $key, --200), | 366 | --bg-color: props.get(core.$theme, $key, --300), |
| 299 | --label-color: props.get(core.$theme, $key, --1200), | 367 | --label-color: props.get(core.$theme, $key, --1300), |
| 300 | --border-color: props.get(core.$theme, $key, --600), | 368 | --border-color: props.get(core.$theme, $key, --800), |
| 301 | ), | 369 | ), |
| 302 | 370 | ||
| 303 | --active: ( | 371 | --disabled: ( |
| 304 | --bg-color: props.get(core.$theme, $key, --300), | 372 | --bg-color: props.get(core.$theme, --bg-l1), |
| 305 | --label-color: props.get(core.$theme, $key, --1300), | 373 | --label-color: props.get(core.$theme, --border-strong), |
| 306 | --border-color: props.get(core.$theme, $key, --800), | 374 | --border-color: props.get(core.$theme, --border), |
| 307 | ), | 375 | ), |
| 308 | 376 | ||
| 309 | --disabled: ( | 377 | --key-focus: ( |
| 310 | --bg-color: props.get(core.$theme, --bg-l1), | 378 | --border-color: props.get(core.$theme, --focus, --border), |
| 311 | --label-color: props.get(core.$theme, --border-strong), | 379 | --outline-color: props.get(core.$theme, --focus, --outline), |
| 312 | --border-color: props.get(core.$theme, --border), | 380 | ), |
| 313 | ), | ||
| 314 | 381 | ||
| 315 | --key-focus: ( | 382 | --highlighted: ( |
| 316 | --border-color: props.get(core.$theme, --focus, --border), | 383 | --border-color: props.get(core.$theme, $key, --900), |
| 317 | --outline-color: props.get(core.$theme, --focus, --outline), | 384 | --shadow-color: props.get(core.$theme, $key, --200), |
| 318 | ), | 385 | ), |
| 319 | 386 | ||
| 320 | --highlighted: ( | 387 | --selected: ( |
| 321 | --border-color: props.get(core.$theme, $key, --900), | 388 | --bg-color: props.get(core.$theme, #{$key}-static, --900), |
| 322 | --shadow-color: props.get(core.$theme, $key, --200), | 389 | --label-color: props.get(core.$theme, #{$key}-static, --900-text), |
| 323 | ), | 390 | --border-color: props.get(core.$theme, #{$key}-static, --900) |
| 391 | props.get(core.$theme, #{$key}-static, --900) | ||
| 392 | props.get(core.$theme, #{$key}-static, --1000), | ||
| 393 | --hover: ( | ||
| 394 | --bg-color: props.get(core.$theme, #{$key}-static, --1000), | ||
| 395 | --label-color: props.get( | ||
| 396 | core.$theme, | ||
| 397 | #{$key}-static, | ||
| 398 | --1000-text | ||
| 399 | ), | ||
| 400 | --border-color: props.get(core.$theme, #{$key}-static, --1000), | ||
| 401 | ), | ||
| 324 | 402 | ||
| 325 | --selected: ( | 403 | --active: ( |
| 326 | --bg-color: props.get(core.$theme, #{$key}-static, --900), | 404 | --bg-color: props.get(core.$theme, #{$key}-static, --1100), |
| 327 | --label-color: props.get(core.$theme, #{$key}-static, --900-text), | 405 | --label-color: props.get( |
| 328 | --border-color: props.get(core.$theme, #{$key}-static, --900) props.get(core.$theme, #{$key}-static, --900) props.get(core.$theme, #{$key}-static, --1000), | 406 | core.$theme, |
| 407 | #{$key}-static, | ||
| 408 | --1100-text | ||
| 409 | ), | ||
| 410 | --border-color: props.get(core.$theme, #{$key}-static, --1100), | ||
| 411 | ), | ||
| 329 | 412 | ||
| 330 | --hover: ( | 413 | --disabled: ( |
| 331 | --bg-color: props.get(core.$theme, #{$key}-static, --1000), | 414 | --bg-color: props.get(core.$theme, --border-mute), |
| 332 | --label-color: props.get(core.$theme, #{$key}-static, --1000-text), | 415 | --label-color: props.get(core.$theme, --border-strong), |
| 333 | --border-color: props.get(core.$theme, #{$key}-static, --1000), | 416 | --border-color: props.get(core.$theme, --border-mute), |
| 334 | ), | 417 | ), |
| 418 | ), | ||
| 335 | 419 | ||
| 336 | --active: ( | 420 | --badge: ( |
| 337 | --bg-color: props.get(core.$theme, #{$key}-static, --1100), | 421 | --bg-color: props.get(core.$theme, $key, --100), |
| 338 | --label-color: props.get(core.$theme, #{$key}-static, --1100-text), | 422 | --label-color: props.get(core.$theme, $key, --1100), |
| 339 | --border-color: props.get(core.$theme, #{$key}-static, --1100), | 423 | --border-color: props.get(core.$theme, $key, --300), |
| 340 | ), | 424 | --hover: ( |
| 341 | 425 | --bg-color: props.get(core.$theme, $key, --200), | |
| 342 | --disabled: ( | 426 | --label-color: props.get(core.$theme, $key, --1200), |
| 343 | --bg-color: props.get(core.$theme, --border-mute), | 427 | --border-color: props.get(core.$theme, $key, --400), |
| 344 | --label-color: props.get(core.$theme, --border-strong), | 428 | ), |
| 345 | --border-color: props.get(core.$theme, --border-mute), | ||
| 346 | ), | ||
| 347 | ), | ||
| 348 | |||
| 349 | --badge: ( | ||
| 350 | --bg-color: props.get(core.$theme, $key, --100), | ||
| 351 | --label-color: props.get(core.$theme, $key, --1100), | ||
| 352 | --border-color: props.get(core.$theme, $key, --300), | ||
| 353 | |||
| 354 | --hover: ( | ||
| 355 | --bg-color: props.get(core.$theme, $key, --200), | ||
| 356 | --label-color: props.get(core.$theme, $key, --1200), | ||
| 357 | --border-color: props.get(core.$theme, $key, --400), | ||
| 358 | ), | ||
| 359 | 429 | ||
| 360 | --active: ( | 430 | --active: ( |
| 361 | --bg-color: props.get(core.$theme, $key, --300), | 431 | --bg-color: props.get(core.$theme, $key, --300), |
| 362 | --label-color: props.get(core.$theme, $key, --1300), | 432 | --label-color: props.get(core.$theme, $key, --1300), |
| 363 | --border-color: props.get(core.$theme, $key, --500), | 433 | --border-color: props.get(core.$theme, $key, --500), |
| 364 | ), | 434 | ), |
| 365 | ), | 435 | ), |
| 366 | 436 | ||
| 367 | --quiet: ( | 437 | --quiet: ( |
| 368 | --label-color: props.get(core.$theme, $key, --1100), | 438 | --label-color: props.get(core.$theme, $key, --1100), |
| 439 | --hover: ( | ||
| 440 | --bg-color: props.get(core.$theme, $key, --200), | ||
| 441 | --label-color: props.get(core.$theme, $key, --1200), | ||
| 442 | ), | ||
| 369 | 443 | ||
| 370 | --hover: ( | 444 | --active: ( |
| 371 | --bg-color: props.get(core.$theme, $key, --200), | 445 | --bg-color: props.get(core.$theme, $key, --300), |
| 372 | --label-color: props.get(core.$theme, $key, --1200), | 446 | --label-color: props.get(core.$theme, $key, --1300), |
| 373 | ), | 447 | ), |
| 374 | 448 | ||
| 375 | --active: ( | 449 | --disabled: ( |
| 376 | --bg-color: props.get(core.$theme, $key, --300), | 450 | --label-color: props.get(core.$theme, --border-strong), |
| 377 | --label-color: props.get(core.$theme, $key, --1300), | 451 | ), |
| 378 | ), | 452 | ), |
| 379 | 453 | ) | |
| 380 | --disabled: ( | ||
| 381 | --label-color: props.get(core.$theme, --border-strong), | ||
| 382 | ), | ||
| 383 | ), | ||
| 384 | ) | 454 | ) |
| 385 | )); | 455 | ); |
| 386 | } | 456 | } |
diff --git a/src/objects/_card.scss b/src/objects/_card.scss index b8bc727..3275bc8 100644 --- a/src/objects/_card.scss +++ b/src/objects/_card.scss | |||
| @@ -1,84 +1,95 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | @use 'avatar.vars' as avatar; | 5 | @use "avatar.vars" as avatar; |
| 6 | 6 | ||
| 7 | @forward 'card.vars'; | 7 | @forward "card.vars"; |
| 8 | @use 'card.vars' as vars; | 8 | @use "card.vars" as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables("vars")); |
| 12 | 12 | ||
| 13 | @include bem.object('card') { | 13 | @include bem.object("card") { |
| 14 | position: relative; | 14 | position: relative; |
| 15 | display: flex; | 15 | display: flex; |
| 16 | flex-direction: column; | 16 | flex-direction: column; |
| 17 | background-color: props.get(vars.$bg-color); | 17 | background-color: props.get(vars.$bg-color); |
| 18 | border: props.get(vars.$border-width) solid transparent; | 18 | border: props.get(vars.$border-width) solid transparent; |
| 19 | border-color: props.get(vars.$border-color); | 19 | border-color: props.get(vars.$border-color); |
| 20 | border-radius: props.get(vars.$rounding); | 20 | border-radius: props.get(vars.$rounding); |
| 21 | transition: transform .2s, background-color .2s, border-color .2s, box-shadow .2s; | 21 | transition: |
| 22 | transform 0.2s, | ||
| 23 | background-color 0.2s, | ||
| 24 | border-color 0.2s, | ||
| 25 | box-shadow 0.2s; | ||
| 22 | 26 | ||
| 23 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { | 27 | @include bem.multi( |
| 28 | "&:link, &:visited, &:enabled", | ||
| 29 | "modifier" "interactive", | ||
| 30 | "modifier" "collapsible" | ||
| 31 | ) { | ||
| 24 | &:hover, | 32 | &:hover, |
| 25 | &:active, | 33 | &:active, |
| 26 | &:focus-visible { | 34 | &:focus-visible { |
| 27 | background-color: props.get(vars.$hover--bg-color); | 35 | background-color: props.get(vars.$hover--bg-color); |
| 28 | border-color: props.get(vars.$hover--border-color); | 36 | border-color: props.get(vars.$hover--border-color); |
| 29 | box-shadow: none; | 37 | box-shadow: none; |
| 30 | transform: translateY(props.get(vars.$hover--offset-b)); | 38 | transform: translateY(props.get(vars.$hover--offset-b)); |
| 31 | } | 39 | } |
| 32 | 40 | ||
| 33 | &:focus-visible { | 41 | &:focus-visible { |
| 34 | margin: calc(-1 * props.get(vars.$key-focus--border-width)); | 42 | margin: calc(-1 * props.get(vars.$key-focus--border-width)); |
| 35 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 43 | outline: props.get(vars.$key-focus--border-color) solid |
| 36 | border: calc(props.get(vars.$key-focus--border-offset) + props.get(vars.$border-width)) solid transparent; | 44 | props.get(vars.$key-focus--border-width); |
| 37 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); | 45 | border: calc( |
| 38 | box-shadow: | 46 | props.get(vars.$key-focus--border-offset) + props.get(vars.$border-width) |
| 39 | 0 0 0 | 47 | ) |
| 40 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | 48 | solid transparent; |
| 49 | border-radius: calc( | ||
| 50 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) | ||
| 51 | ); | ||
| 52 | box-shadow: 0 0 0 | ||
| 53 | calc( | ||
| 54 | props.get(vars.$key-focus--border-width) + | ||
| 55 | props.get(vars.$key-focus--outline-width) | ||
| 56 | ) | ||
| 41 | props.get(vars.$key-focus--outline-color); | 57 | props.get(vars.$key-focus--outline-color); |
| 42 | transition: transform .2s; | 58 | transition: transform 0.2s; |
| 43 | } | 59 | } |
| 44 | } | 60 | } |
| 45 | 61 | ||
| 46 | @include bem.modifier('borderless') { | 62 | @include bem.modifier("borderless") { |
| 47 | border-color: props.get(vars.$bg-color); | 63 | border-color: props.get(vars.$bg-color); |
| 48 | } | 64 | } |
| 49 | 65 | ||
| 50 | @include bem.modifier('shadow') { | 66 | @include bem.modifier("shadow") { |
| 51 | box-shadow: | 67 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) |
| 52 | props.get(vars.$shadow-x) | 68 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) |
| 53 | props.get(vars.$shadow-y) | ||
| 54 | props.get(vars.$shadow-blur) | ||
| 55 | props.get(vars.$shadow-grow) | ||
| 56 | props.get(vars.$shadow-color); | 69 | props.get(vars.$shadow-color); |
| 57 | 70 | ||
| 58 | @include bem.modifier('quiet') { | 71 | @include bem.modifier("quiet") { |
| 59 | @include bem.elem('image') { | 72 | @include bem.elem("image") { |
| 60 | box-shadow: | 73 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) |
| 61 | props.get(vars.$shadow-x) | 74 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) |
| 62 | props.get(vars.$shadow-y) | ||
| 63 | props.get(vars.$shadow-blur) | ||
| 64 | props.get(vars.$shadow-grow) | ||
| 65 | props.get(vars.$shadow-color); | 75 | props.get(vars.$shadow-color); |
| 66 | } | 76 | } |
| 67 | } | 77 | } |
| 68 | } | 78 | } |
| 69 | 79 | ||
| 70 | @include bem.modifier('highlight') { | 80 | @include bem.modifier("highlight") { |
| 71 | margin: calc(props.get(vars.$border-width) - props.get(vars.$highlight--border-width)); | 81 | margin: calc(props.get(vars.$border-width) - props.get(vars.$highlight--border-width)); |
| 72 | border-color: props.get(vars.$highlight--border-color); | 82 | border-color: props.get(vars.$highlight--border-color); |
| 73 | border-width: props.get(vars.$highlight--border-width); | 83 | border-width: props.get(vars.$highlight--border-width); |
| 74 | box-shadow: | 84 | box-shadow: props.get(vars.$highlight--shadow-x) props.get(vars.$highlight--shadow-y) |
| 75 | props.get(vars.$highlight--shadow-x) | 85 | props.get(vars.$highlight--shadow-blur) props.get(vars.$highlight--shadow-grow) |
| 76 | props.get(vars.$highlight--shadow-y) | ||
| 77 | props.get(vars.$highlight--shadow-blur) | ||
| 78 | props.get(vars.$highlight--shadow-grow) | ||
| 79 | props.get(vars.$highlight--shadow-color); | 86 | props.get(vars.$highlight--shadow-color); |
| 80 | 87 | ||
| 81 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { | 88 | @include bem.multi( |
| 89 | "&:link, &:visited, &:enabled", | ||
| 90 | "modifier" "interactive", | ||
| 91 | "modifier" "collapsible" | ||
| 92 | ) { | ||
| 82 | &:hover, | 93 | &:hover, |
| 83 | &:active { | 94 | &:active { |
| 84 | border-color: props.get(vars.$highlight--border-color); | 95 | border-color: props.get(vars.$highlight--border-color); |
| @@ -86,207 +97,238 @@ | |||
| 86 | } | 97 | } |
| 87 | } | 98 | } |
| 88 | 99 | ||
| 89 | @include bem.elem('avatar') { | 100 | @include bem.elem("avatar") { |
| 90 | margin-block-start: props.get(vars.$pad-b); | 101 | margin-block-start: props.get(vars.$pad-b); |
| 91 | margin-inline-start: props.get(vars.$pad-i); | 102 | margin-inline-start: props.get(vars.$pad-i); |
| 92 | } | 103 | } |
| 93 | 104 | ||
| 94 | @include bem.elem('image') { | 105 | @include bem.elem("image") { |
| 95 | position: relative; | 106 | position: relative; |
| 96 | display: block; | 107 | display: block; |
| 97 | flex: 0 0 auto; | 108 | flex: 0 0 auto; |
| 98 | inline-size: calc(100% + 2 * props.get(vars.$border-width)); | 109 | inline-size: calc(100% + 2 * props.get(vars.$border-width)); |
| 99 | margin: calc(-1 * props.get(vars.$border-width)); | 110 | margin: calc(-1 * props.get(vars.$border-width)); |
| 100 | overflow: hidden; | 111 | overflow: hidden; |
| 101 | object-fit: cover; | 112 | object-fit: cover; |
| 102 | transition: background-color .2s, transform .2s, opacity .2s; | 113 | transition: |
| 114 | background-color 0.2s, | ||
| 115 | transform 0.2s, | ||
| 116 | opacity 0.2s; | ||
| 103 | 117 | ||
| 104 | &:first-child { | 118 | &:first-child { |
| 105 | border-start-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 119 | border-start-start-radius: calc( |
| 106 | border-start-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 120 | props.get(vars.$rounding) - props.get(vars.$border-width) |
| 121 | ); | ||
| 122 | border-start-end-radius: calc( | ||
| 123 | props.get(vars.$rounding) - props.get(vars.$border-width) | ||
| 124 | ); | ||
| 107 | } | 125 | } |
| 108 | 126 | ||
| 109 | &:last-child { | 127 | &:last-child { |
| 110 | border-end-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 128 | border-end-start-radius: calc( |
| 111 | border-end-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 129 | props.get(vars.$rounding) - props.get(vars.$border-width) |
| 130 | ); | ||
| 131 | border-end-end-radius: calc( | ||
| 132 | props.get(vars.$rounding) - props.get(vars.$border-width) | ||
| 133 | ); | ||
| 112 | } | 134 | } |
| 113 | 135 | ||
| 114 | @include bem.next-elem('avatar') { | 136 | @include bem.next-elem("avatar") { |
| 115 | margin-block-start: calc(-.7 * props.get(avatar.$size--xl)); | 137 | margin-block-start: calc(-0.7 * props.get(avatar.$size--xl)); |
| 116 | } | 138 | } |
| 117 | } | 139 | } |
| 118 | 140 | ||
| 119 | @include bem.elem('image-img') { | 141 | @include bem.elem("image-img") { |
| 120 | display: block; | 142 | display: block; |
| 121 | inline-size: 100%; | 143 | inline-size: 100%; |
| 122 | block-size: 100%; | 144 | block-size: 100%; |
| 123 | object-fit: cover; | 145 | object-fit: cover; |
| 124 | } | 146 | } |
| 125 | 147 | ||
| 126 | @include bem.elem('image-overlay') { | 148 | @include bem.elem("image-overlay") { |
| 127 | position: absolute; | 149 | position: absolute; |
| 128 | inset-block-end: 0; | 150 | inset-block-end: 0; |
| 129 | inset-inline: 0; | 151 | inset-inline: 0; |
| 130 | z-index: 5; | 152 | z-index: 5; |
| 131 | padding-block: props.get(vars.$image-overlay--pad-b); | 153 | padding-block: props.get(vars.$image-overlay--pad-b); |
| 132 | padding-inline: props.get(vars.$image-overlay--pad-i); | 154 | padding-inline: props.get(vars.$image-overlay--pad-i); |
| 133 | } | 155 | } |
| 134 | 156 | ||
| 135 | @include bem.elem('body') { | 157 | @include bem.elem("body") { |
| 136 | flex: 0 0 auto; | 158 | flex: 0 0 auto; |
| 137 | padding-block: props.get(vars.$pad-b); | 159 | padding-block: props.get(vars.$pad-b); |
| 138 | padding-inline: props.get(vars.$pad-i); | 160 | padding-inline: props.get(vars.$pad-i); |
| 139 | 161 | ||
| 140 | &::before { | 162 | &::before { |
| 141 | display: block; | 163 | display: block; |
| 142 | margin-block: -100em 100em; | 164 | margin-block: -100em 100em; |
| 143 | content: ''; | 165 | content: ""; |
| 144 | } | 166 | } |
| 145 | 167 | ||
| 146 | @include bem.modifier('no-mbs-neutralize') { | 168 | @include bem.modifier("no-mbs-neutralize") { |
| 147 | &::before { | 169 | &::before { |
| 148 | display: none; | 170 | display: none; |
| 149 | } | 171 | } |
| 150 | } | 172 | } |
| 151 | 173 | ||
| 152 | @include bem.modifier('main') { | 174 | @include bem.modifier("main") { |
| 153 | flex-shrink: 1; | 175 | flex-shrink: 1; |
| 154 | block-size: 100%; | 176 | block-size: 100%; |
| 155 | min-block-size: 0; | 177 | min-block-size: 0; |
| 156 | } | 178 | } |
| 157 | } | 179 | } |
| 158 | 180 | ||
| 159 | @include bem.elem('content') { | 181 | @include bem.elem("content") { |
| 160 | margin-block-start: props.get(vars.$spacing); | 182 | margin-block-start: props.get(vars.$spacing); |
| 161 | } | 183 | } |
| 162 | 184 | ||
| 163 | @include bem.elem('footer') { | 185 | @include bem.elem("footer") { |
| 164 | flex: 0 0 auto; | 186 | flex: 0 0 auto; |
| 165 | padding-block: 0 props.get(vars.$pad-b); | 187 | padding-block: 0 props.get(vars.$pad-b); |
| 166 | padding-inline: props.get(vars.$pad-i); | 188 | padding-inline: props.get(vars.$pad-i); |
| 167 | margin-block-start: calc(-1 * props.get(vars.$pad-b)); | 189 | margin-block-start: calc(-1 * props.get(vars.$pad-b)); |
| 168 | 190 | ||
| 169 | &::before { | 191 | &::before { |
| 170 | display: block; | 192 | display: block; |
| 171 | block-size: props.get(vars.$divider-width); | 193 | block-size: props.get(vars.$divider-width); |
| 172 | margin-block: props.get(vars.$spacing); | 194 | margin-block: props.get(vars.$spacing); |
| 173 | content: ''; | 195 | content: ""; |
| 174 | background-color: props.get(vars.$divider-width); | 196 | background-color: props.get(vars.$divider-width); |
| 175 | } | 197 | } |
| 176 | } | 198 | } |
| 177 | 199 | ||
| 178 | @include bem.modifier('quiet') { | 200 | @include bem.modifier("quiet") { |
| 179 | margin-inline: 0; | 201 | margin-inline: 0; |
| 180 | background-color: transparent; | 202 | background-color: transparent; |
| 181 | border: 0; | 203 | border: 0; |
| 182 | box-shadow: none; | 204 | box-shadow: none; |
| 183 | 205 | ||
| 184 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { | 206 | @include bem.multi( |
| 207 | "&:link, &:visited, &:enabled", | ||
| 208 | "modifier" "interactive", | ||
| 209 | "modifier" "collapsible" | ||
| 210 | ) { | ||
| 185 | &:hover, | 211 | &:hover, |
| 186 | &:active, | 212 | &:active, |
| 187 | &:focus-visible { | 213 | &:focus-visible { |
| 188 | background-color: transparent; | 214 | background-color: transparent; |
| 189 | transform: none; | 215 | transform: none; |
| 190 | 216 | ||
| 191 | @include bem.elem('image') { | 217 | @include bem.elem("image") { |
| 192 | background-color: props.get(vars.$quiet--hover--image-color); | 218 | background-color: props.get(vars.$quiet--hover--image-color); |
| 193 | opacity: .75; | 219 | opacity: 0.75; |
| 194 | transform: translateY(props.get(vars.$hover--offset-b)); | 220 | transform: translateY(props.get(vars.$hover--offset-b)); |
| 195 | } | 221 | } |
| 196 | } | 222 | } |
| 197 | 223 | ||
| 198 | &:focus-visible { | 224 | &:focus-visible { |
| 199 | margin: 0; | 225 | margin: 0; |
| 200 | outline: none; | 226 | outline: none; |
| 201 | border: 0; | 227 | border: 0; |
| 202 | box-shadow: none; | 228 | box-shadow: none; |
| 203 | 229 | ||
| 204 | @include bem.elem('image') { | 230 | @include bem.elem("image") { |
| 205 | margin: calc(-1 * props.get(vars.$key-focus--border-width) - props.get(vars.$border-width)); | 231 | margin: calc( |
| 206 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 232 | -1 * |
| 233 | props.get(vars.$key-focus--border-width) - props.get( | ||
| 234 | vars.$border-width | ||
| 235 | ) | ||
| 236 | ); | ||
| 237 | outline: props.get(vars.$key-focus--border-color) solid | ||
| 238 | props.get(vars.$key-focus--border-width); | ||
| 207 | background-color: props.get(vars.$quiet--hover--image-color); | 239 | background-color: props.get(vars.$quiet--hover--image-color); |
| 208 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 240 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 209 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); | 241 | border-radius: calc( |
| 210 | box-shadow: | 242 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) |
| 211 | 0 | 243 | ); |
| 212 | 0 | 244 | box-shadow: 0 0 0 |
| 213 | 0 | 245 | calc( |
| 214 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | 246 | props.get(vars.$key-focus--border-width) + |
| 247 | props.get(vars.$key-focus--outline-width) | ||
| 248 | ) | ||
| 215 | props.get(vars.$key-focus--outline-color); | 249 | props.get(vars.$key-focus--outline-color); |
| 216 | opacity: 1; | 250 | opacity: 1; |
| 217 | } | 251 | } |
| 218 | } | 252 | } |
| 219 | } | 253 | } |
| 220 | 254 | ||
| 221 | @include bem.elem('image') { | 255 | @include bem.elem("image") { |
| 222 | position: relative; | 256 | position: relative; |
| 223 | background-color: props.get(vars.$quiet--image-color); | 257 | background-color: props.get(vars.$quiet--image-color); |
| 224 | background-clip: padding-box; | 258 | background-clip: padding-box; |
| 225 | border-radius: props.get(vars.$rounding); | 259 | border-radius: props.get(vars.$rounding); |
| 226 | } | 260 | } |
| 227 | 261 | ||
| 228 | @include bem.elem('body') { | 262 | @include bem.elem("body") { |
| 229 | padding: 0; | 263 | padding: 0; |
| 230 | padding-block-start: props.get(vars.$spacing); | 264 | padding-block-start: props.get(vars.$spacing); |
| 231 | } | 265 | } |
| 232 | 266 | ||
| 233 | @include bem.elem('footer') { | 267 | @include bem.elem("footer") { |
| 234 | padding-inline: 0; | 268 | padding-inline: 0; |
| 235 | } | 269 | } |
| 236 | } | 270 | } |
| 237 | 271 | ||
| 238 | @include bem.modifier('thumbnail') { | 272 | @include bem.modifier("thumbnail") { |
| 239 | @include bem.elem('image') { | 273 | @include bem.elem("image") { |
| 240 | border-radius: props.get(vars.$rounding); | 274 | border-radius: props.get(vars.$rounding); |
| 241 | } | 275 | } |
| 242 | 276 | ||
| 243 | @include bem.elem('body') { | 277 | @include bem.elem("body") { |
| 244 | position: absolute; | 278 | position: absolute; |
| 245 | inset-block-end: calc(-1 * props.get(vars.$border-width)); | 279 | inset-block-end: calc(-1 * props.get(vars.$border-width)); |
| 246 | inset-inline: calc(-1 * props.get(vars.$border-width)); | 280 | inset-inline: calc(-1 * props.get(vars.$border-width)); |
| 247 | z-index: 10; | 281 | z-index: 10; |
| 248 | visibility: hidden; | 282 | visibility: hidden; |
| 249 | background-color: props.get(vars.$hover--bg-color); | 283 | background-color: props.get(vars.$hover--bg-color); |
| 250 | border-color: transparent; | 284 | border-color: transparent; |
| 251 | border-style: solid; | 285 | border-style: solid; |
| 252 | border-width: 0 props.get(vars.$border-width) props.get(vars.$border-width); | 286 | border-width: 0 props.get(vars.$border-width) props.get(vars.$border-width); |
| 253 | border-end-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 287 | border-end-start-radius: calc( |
| 254 | border-end-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 288 | props.get(vars.$rounding) - props.get(vars.$border-width) |
| 255 | opacity: 0; | 289 | ); |
| 290 | border-end-end-radius: calc( | ||
| 291 | props.get(vars.$rounding) - props.get(vars.$border-width) | ||
| 292 | ); | ||
| 293 | opacity: 0; | ||
| 256 | transition: | 294 | transition: |
| 257 | border-color .2s ease, | 295 | border-color 0.2s ease, |
| 258 | opacity .2s ease, | 296 | opacity 0.2s ease, |
| 259 | visibility 0s .2s linear; | 297 | visibility 0s 0.2s linear; |
| 260 | } | 298 | } |
| 261 | 299 | ||
| 262 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { | 300 | @include bem.multi( |
| 301 | "&:link, &:visited, &:enabled", | ||
| 302 | "modifier" "interactive", | ||
| 303 | "modifier" "collapsible" | ||
| 304 | ) { | ||
| 263 | &:hover, | 305 | &:hover, |
| 264 | &:active, | 306 | &:active, |
| 265 | &:focus-visible { | 307 | &:focus-visible { |
| 266 | @include bem.elem('body') { | 308 | @include bem.elem("body") { |
| 267 | visibility: visible; | 309 | visibility: visible; |
| 268 | border-color: props.get(vars.$hover--border-color); | 310 | border-color: props.get(vars.$hover--border-color); |
| 269 | opacity: 1; | 311 | opacity: 1; |
| 270 | transition: | 312 | transition: |
| 271 | border-color .2s ease, | 313 | border-color 0.2s ease, |
| 272 | opacity .2s ease, | 314 | opacity 0.2s ease, |
| 273 | visibility .2s linear; | 315 | visibility 0.2s linear; |
| 274 | } | 316 | } |
| 275 | } | 317 | } |
| 276 | } | 318 | } |
| 277 | } | 319 | } |
| 278 | 320 | ||
| 279 | @include bem.modifier('horizontal') { | 321 | @include bem.modifier("horizontal") { |
| 280 | flex-direction: row; | 322 | flex-direction: row; |
| 281 | align-items: center; | 323 | align-items: center; |
| 282 | 324 | ||
| 283 | @include bem.elem('image') { | 325 | @include bem.elem("image") { |
| 284 | align-self: stretch; | 326 | align-self: stretch; |
| 285 | inline-size: auto; | 327 | inline-size: auto; |
| 286 | 328 | ||
| 287 | &:first-child { | 329 | &:first-child { |
| 288 | border-start-end-radius: 0; | 330 | border-start-end-radius: 0; |
| 289 | border-end-start-radius: props.get(vars.$rounding); | 331 | border-end-start-radius: props.get(vars.$rounding); |
| 290 | } | 332 | } |
| 291 | 333 | ||
| 292 | &:last-child { | 334 | &:last-child { |
| @@ -295,37 +337,38 @@ | |||
| 295 | } | 337 | } |
| 296 | } | 338 | } |
| 297 | 339 | ||
| 298 | @include bem.elem('body') { | 340 | @include bem.elem("body") { |
| 299 | @include bem.modifier('main') { | 341 | @include bem.modifier("main") { |
| 300 | block-size: auto; | 342 | block-size: auto; |
| 301 | min-block-size: none; | 343 | min-block-size: none; |
| 302 | inline-size: 100%; | 344 | inline-size: 100%; |
| 303 | min-inline-size: 0; | 345 | min-inline-size: 0; |
| 304 | } | 346 | } |
| 305 | } | 347 | } |
| 306 | } | 348 | } |
| 307 | 349 | ||
| 308 | @include bem.modifier('collapsible') { | 350 | @include bem.modifier("collapsible") { |
| 309 | display: block; | 351 | display: block; |
| 310 | interpolate-size: allow-keywords; | 352 | interpolate-size: allow-keywords; |
| 311 | 353 | ||
| 312 | @include bem.elem("header") { | 354 | @include bem.elem("header") { |
| 313 | display: flex; | 355 | display: flex; |
| 314 | align-items: center; | 356 | align-items: center; |
| 315 | gap: 1em; | 357 | gap: 1em; |
| 316 | cursor: pointer; | 358 | cursor: pointer; |
| 317 | 359 | ||
| 318 | &::before { | 360 | &::before { |
| 319 | margin: 0; | 361 | margin: 0; |
| 320 | inline-size: 1em; | 362 | inline-size: 1em; |
| 321 | font-size: 0.8em; | 363 | font-size: 0.8em; |
| 322 | content: "â–¶"; | 364 | content: "â–¶"; |
| 323 | } | 365 | } |
| 324 | 366 | ||
| 325 | &:focus-visible { | 367 | &:focus-visible { |
| 326 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 368 | outline: props.get(vars.$key-focus--border-color) solid |
| 369 | props.get(vars.$key-focus--border-width); | ||
| 327 | outline-offset: calc(-1 * props.get(vars.$key-focus--border-width)); | 370 | outline-offset: calc(-1 * props.get(vars.$key-focus--border-width)); |
| 328 | border-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 371 | border-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 329 | } | 372 | } |
| 330 | 373 | ||
| 331 | @include bem.next-elem("body") { | 374 | @include bem.next-elem("body") { |
| @@ -334,7 +377,7 @@ | |||
| 334 | } | 377 | } |
| 335 | 378 | ||
| 336 | &::details-content { | 379 | &::details-content { |
| 337 | opacity: 0; | 380 | opacity: 0; |
| 338 | block-size: 0; | 381 | block-size: 0; |
| 339 | overflow-y: clip; | 382 | overflow-y: clip; |
| 340 | transition: | 383 | transition: |
| @@ -351,7 +394,7 @@ | |||
| 351 | } | 394 | } |
| 352 | 395 | ||
| 353 | &::details-content { | 396 | &::details-content { |
| 354 | opacity: 1; | 397 | opacity: 1; |
| 355 | block-size: auto; | 398 | block-size: auto; |
| 356 | } | 399 | } |
| 357 | } | 400 | } |
diff --git a/src/objects/_card.vars.scss b/src/objects/_card.vars.scss index 4616c80..96f3cb9 100644 --- a/src/objects/_card.vars.scss +++ b/src/objects/_card.vars.scss | |||
| @@ -1,51 +1,130 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $divider-width: props.def(--o-card--divider-width, props.get(core.$border-width--thin)) !default; | 5 | $divider-width: props.def(--o-card--divider-width, props.get(core.$border-width--thin)) !default; |
| 6 | $border-width: props.def(--o-card--border-width, props.get(core.$border-width--thin)) !default; | 6 | $border-width: props.def(--o-card--border-width, props.get(core.$border-width--thin)) !default; |
| 7 | $sub-border-width: props.def(--o-card--sub-border-width, props.get(core.$border-width--thick)) !default; | 7 | $sub-border-width: props.def( |
| 8 | $pad-i: props.def(--o-card--pad-i, props.get(core.$size--300)) !default; | 8 | --o-card--sub-border-width, |
| 9 | $pad-b: props.def(--o-card--pad-b, props.get(core.$size--250)) !default; | 9 | props.get(core.$border-width--thick) |
| 10 | $spacing: props.def(--o-card--spacing, props.get(core.$size--200)) !default; | 10 | ) !default; |
| 11 | $rounding: props.def(--o-card--rounding, props.get(core.$rounding)) !default; | 11 | $pad-i: props.def(--o-card--pad-i, props.get(core.$size--300)) !default; |
| 12 | $pad-b: props.def(--o-card--pad-b, props.get(core.$size--250)) !default; | ||
| 13 | $spacing: props.def(--o-card--spacing, props.get(core.$size--200)) !default; | ||
| 14 | $rounding: props.def(--o-card--rounding, props.get(core.$rounding)) !default; | ||
| 12 | $image-overlay--pad-i: props.def(--o-card--image-overlay--pad-i, props.get($pad-i)) !default; | 15 | $image-overlay--pad-i: props.def(--o-card--image-overlay--pad-i, props.get($pad-i)) !default; |
| 13 | $image-overlay--pad-b: props.def(--o-card--image-overlay--pad-b, props.get($pad-b)) !default; | 16 | $image-overlay--pad-b: props.def(--o-card--image-overlay--pad-b, props.get($pad-b)) !default; |
| 14 | 17 | ||
| 15 | $hover--offset-b: props.def(--o-card--hover--offset-b, calc(-1 * props.get(core.$size--65))) !default; | 18 | $hover--offset-b: props.def( |
| 19 | --o-card--hover--offset-b, | ||
| 20 | calc(-1 * props.get(core.$size--65)) | ||
| 21 | ) !default; | ||
| 16 | 22 | ||
| 17 | $shadow-x: props.def(--o-card--shadow-x, props.get(core.$shadow--l1--x)) !default; | 23 | $shadow-x: props.def(--o-card--shadow-x, props.get(core.$shadow--l1--x)) !default; |
| 18 | $shadow-y: props.def(--o-card--shadow-y, props.get(core.$shadow--l1--y)) !default; | 24 | $shadow-y: props.def(--o-card--shadow-y, props.get(core.$shadow--l1--y)) !default; |
| 19 | $shadow-blur: props.def(--o-card--shadow-blur, props.get(core.$shadow--l1--blur)) !default; | 25 | $shadow-blur: props.def(--o-card--shadow-blur, props.get(core.$shadow--l1--blur)) !default; |
| 20 | $shadow-grow: props.def(--o-card--shadow-grow, props.get(core.$shadow--l1--grow)) !default; | 26 | $shadow-grow: props.def(--o-card--shadow-grow, props.get(core.$shadow--l1--grow)) !default; |
| 21 | 27 | ||
| 22 | $key-focus--border-width: props.def(--o-card--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 28 | $key-focus--border-width: props.def( |
| 23 | $key-focus--border-offset: props.def(--o-card--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 29 | --o-card--key-focus--border-width, |
| 24 | $key-focus--outline-width: props.def(--o-card--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 30 | props.get(core.$key-focus--border-width) |
| 31 | ) !default; | ||
| 32 | $key-focus--border-offset: props.def( | ||
| 33 | --o-card--key-focus--border-offset, | ||
| 34 | props.get(core.$key-focus--border-offset) | ||
| 35 | ) !default; | ||
| 36 | $key-focus--outline-width: props.def( | ||
| 37 | --o-card--key-focus--outline-width, | ||
| 38 | props.get(core.$key-focus--outline-width) | ||
| 39 | ) !default; | ||
| 25 | 40 | ||
| 26 | $shadow-color: props.def(--o-card--shadow-color, props.get(core.$theme, --shadow), 'color') !default; | 41 | $shadow-color: props.def( |
| 27 | $bg-color: props.def(--o-card--bg-color, props.get(core.$theme, --bg-l2), 'color') !default; | 42 | --o-card--shadow-color, |
| 28 | $border-color: props.def(--o-card--border-color, props.get(core.$theme, --box, --border), 'color') !default; | 43 | props.get(core.$theme, --shadow), |
| 29 | $divider-color: props.def(--o-card--divider-color, props.get(core.$theme, --border-mute), 'color') !default; | 44 | "color" |
| 45 | ) !default; | ||
| 46 | $bg-color: props.def(--o-card--bg-color, props.get(core.$theme, --bg-l2), "color") !default; | ||
| 47 | $border-color: props.def( | ||
| 48 | --o-card--border-color, | ||
| 49 | props.get(core.$theme, --box, --border), | ||
| 50 | "color" | ||
| 51 | ) !default; | ||
| 52 | $divider-color: props.def( | ||
| 53 | --o-card--divider-color, | ||
| 54 | props.get(core.$theme, --border-mute), | ||
| 55 | "color" | ||
| 56 | ) !default; | ||
| 30 | 57 | ||
| 31 | $highlight--shadow-x: props.def(--o-card--highlight--shadow-x, props.get(core.$shadow--l2--x)) !default; | 58 | $highlight--shadow-x: props.def( |
| 32 | $highlight--shadow-y: props.def(--o-card--highlight--shadow-y, props.get(core.$shadow--l2--y)) !default; | 59 | --o-card--highlight--shadow-x, |
| 33 | $highlight--shadow-blur: props.def(--o-card--highlight--shadow-blur, props.get(core.$shadow--l2--blur)) !default; | 60 | props.get(core.$shadow--l2--x) |
| 34 | $highlight--shadow-grow: props.def(--o-card--highlight--shadow-grow, props.get(core.$shadow--l2--grow)) !default; | 61 | ) !default; |
| 62 | $highlight--shadow-y: props.def( | ||
| 63 | --o-card--highlight--shadow-y, | ||
| 64 | props.get(core.$shadow--l2--y) | ||
| 65 | ) !default; | ||
| 66 | $highlight--shadow-blur: props.def( | ||
| 67 | --o-card--highlight--shadow-blur, | ||
| 68 | props.get(core.$shadow--l2--blur) | ||
| 69 | ) !default; | ||
| 70 | $highlight--shadow-grow: props.def( | ||
| 71 | --o-card--highlight--shadow-grow, | ||
| 72 | props.get(core.$shadow--l2--grow) | ||
| 73 | ) !default; | ||
| 35 | 74 | ||
| 36 | $highlight--border-width: props.def(--o-card--highlight--border-width, props.get(core.$border-width--medium)) !default; | 75 | $highlight--border-width: props.def( |
| 37 | $highlight--border-color: props.def(--o-card--highlight--border-color, props.get(core.$theme, --accent, --700) props.get(core.$theme, --accent, --700) props.get(core.$theme, --accent, --800), 'color') !default; | 76 | --o-card--highlight--border-width, |
| 38 | $highlight--shadow-color: props.def(--o-card--highlight--shadow-color, props.get(core.$theme, --accent, --200), 'color') !default; | 77 | props.get(core.$border-width--medium) |
| 78 | ) !default; | ||
| 79 | $highlight--border-color: props.def( | ||
| 80 | --o-card--highlight--border-color, | ||
| 81 | props.get(core.$theme, --accent, --700) props.get(core.$theme, --accent, --700) | ||
| 82 | props.get(core.$theme, --accent, --800), | ||
| 83 | "color" | ||
| 84 | ) !default; | ||
| 85 | $highlight--shadow-color: props.def( | ||
| 86 | --o-card--highlight--shadow-color, | ||
| 87 | props.get(core.$theme, --accent, --200), | ||
| 88 | "color" | ||
| 89 | ) !default; | ||
| 39 | 90 | ||
| 40 | $hover--bg-color: props.def(--o-card--hover--bg-color, color-mix(in lch, props.get($bg-color), props.get(core.$theme, --border-mute)), 'color') !default; | 91 | $hover--bg-color: props.def( |
| 41 | $hover--border-color: props.def(--o-card--hover--border-color, props.get(core.$theme, --border), 'color') !default; | 92 | --o-card--hover--bg-color, |
| 93 | color-mix(in lch, props.get($bg-color), props.get(core.$theme, --border-mute)), | ||
| 94 | "color" | ||
| 95 | ) !default; | ||
| 96 | $hover--border-color: props.def( | ||
| 97 | --o-card--hover--border-color, | ||
| 98 | props.get(core.$theme, --border), | ||
| 99 | "color" | ||
| 100 | ) !default; | ||
| 42 | 101 | ||
| 43 | $key-focus--label-color: props.def(--o-card--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; | 102 | $key-focus--label-color: props.def( |
| 44 | $key-focus--border-color: props.def(--o-card--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 103 | --o-card--key-focus--label-color, |
| 45 | $key-focus--outline-color: props.def(--o-card--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 104 | props.get(core.$theme, --focus, --text), |
| 105 | "color" | ||
| 106 | ) !default; | ||
| 107 | $key-focus--border-color: props.def( | ||
| 108 | --o-card--key-focus--border-color, | ||
| 109 | props.get(core.$theme, --focus, --border), | ||
| 110 | "color" | ||
| 111 | ) !default; | ||
| 112 | $key-focus--outline-color: props.def( | ||
| 113 | --o-card--key-focus--outline-color, | ||
| 114 | props.get(core.$theme, --focus, --outline), | ||
| 115 | "color" | ||
| 116 | ) !default; | ||
| 46 | 117 | ||
| 47 | $quiet--image-color: props.def(--o-card--quiet--image-color, props.get(core.$theme, --bg-base), 'color') !default; | 118 | $quiet--image-color: props.def( |
| 48 | $quiet--hover--image-color: props.def(--o-card--quiet--hover--image-color, props.get(core.$theme, --border), 'color') !default; | 119 | --o-card--quiet--image-color, |
| 120 | props.get(core.$theme, --bg-base), | ||
| 121 | "color" | ||
| 122 | ) !default; | ||
| 123 | $quiet--hover--image-color: props.def( | ||
| 124 | --o-card--quiet--hover--image-color, | ||
| 125 | props.get(core.$theme, --border), | ||
| 126 | "color" | ||
| 127 | ) !default; | ||
| 49 | 128 | ||
| 50 | $pad-i--sm: props.def(--o-card--pad-i, props.get(core.$size--200), 'sm') !default; | 129 | $pad-i--sm: props.def(--o-card--pad-i, props.get(core.$size--200), "sm") !default; |
| 51 | $pad-b--sm: props.def(--o-card--pad-b, props.get(core.$size--175), 'sm') !default; | 130 | $pad-b--sm: props.def(--o-card--pad-b, props.get(core.$size--175), "sm") !default; |
diff --git a/src/objects/_checkbox.scss b/src/objects/_checkbox.scss index f3fb793..60cee65 100644 --- a/src/objects/_checkbox.scss +++ b/src/objects/_checkbox.scss | |||
| @@ -1,130 +1,140 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/functions' as fn; | 3 | @use "pkg:iro-sass/functions" as fn; |
| 4 | @use 'pkg:iro-sass/src/props'; | 4 | @use "pkg:iro-sass/props"; |
| 5 | @use '../props' as *; | 5 | @use "../props" as *; |
| 6 | @use '../core.vars' as core; | 6 | @use "../core.vars" as core; |
| 7 | 7 | ||
| 8 | @forward 'checkbox.vars'; | 8 | @forward "checkbox.vars"; |
| 9 | @use 'checkbox.vars' as vars; | 9 | @use "checkbox.vars" as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables('vars')); | 12 | @include materialize-at-root(meta.module-variables("vars")); |
| 13 | 13 | ||
| 14 | @include bem.object('checkbox') { | 14 | @include bem.object("checkbox") { |
| 15 | position: relative; | 15 | position: relative; |
| 16 | display: inline-block; | 16 | display: inline-block; |
| 17 | padding-block: props.get(vars.$pad-b); | 17 | padding-block: props.get(vars.$pad-b); |
| 18 | padding-inline: props.get(vars.$pad-i); | 18 | padding-inline: props.get(vars.$pad-i); |
| 19 | margin-inline: | 19 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) |
| 20 | calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 20 | calc( |
| 21 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-b) - props.get(vars.$key-focus--border-offset)); | 21 | props.get(vars.$spacing-sibling) - props.get(vars.$pad-b) - props.get( |
| 22 | vars.$key-focus--border-offset | ||
| 23 | ) | ||
| 24 | ); | ||
| 22 | 25 | ||
| 23 | @include bem.elem('box') { | 26 | @include bem.elem("box") { |
| 24 | position: relative; | 27 | position: relative; |
| 25 | display: inline-block; | 28 | display: inline-block; |
| 26 | flex: 0 0 auto; | 29 | flex: 0 0 auto; |
| 27 | inline-size: props.get(vars.$size); | 30 | inline-size: props.get(vars.$size); |
| 28 | block-size: props.get(vars.$size); | 31 | block-size: props.get(vars.$size); |
| 29 | margin-block-start: calc(.5em * props.get(core.$font--standard--line-height) - .5 * props.get(vars.$size) - props.get(vars.$key-focus--border-offset)); | 32 | margin-block-start: calc( |
| 30 | vertical-align: top; | 33 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * |
| 31 | background-color: props.get(vars.$box-border-color); | 34 | props.get(vars.$size) - props.get(vars.$key-focus--border-offset) |
| 32 | background-clip: padding-box; | 35 | ); |
| 33 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 36 | vertical-align: top; |
| 34 | border-radius: calc(props.get(vars.$border-width) + props.get(vars.$key-focus--border-offset)); | 37 | background-color: props.get(vars.$box-border-color); |
| 38 | background-clip: padding-box; | ||
| 39 | border: props.get(vars.$key-focus--border-offset) solid transparent; | ||
| 40 | border-radius: calc( | ||
| 41 | props.get(vars.$border-width) + props.get(vars.$key-focus--border-offset) | ||
| 42 | ); | ||
| 35 | 43 | ||
| 36 | &::before, | 44 | &::before, |
| 37 | &::after { | 45 | &::after { |
| 38 | position: absolute; | 46 | position: absolute; |
| 39 | display: block; | 47 | display: block; |
| 40 | content: ''; | 48 | content: ""; |
| 41 | } | 49 | } |
| 42 | 50 | ||
| 43 | &::before { | 51 | &::before { |
| 44 | inset-block-start: props.get(vars.$border-width); | 52 | inset-block-start: props.get(vars.$border-width); |
| 45 | inset-inline-start: props.get(vars.$border-width); | 53 | inset-inline-start: props.get(vars.$border-width); |
| 46 | z-index: 2; | 54 | z-index: 2; |
| 47 | inline-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); | 55 | inline-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); |
| 48 | block-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); | 56 | block-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); |
| 49 | background-color: props.get(vars.$box-bg-color); | 57 | background-color: props.get(vars.$box-bg-color); |
| 50 | transition: transform .2s ease; | 58 | transition: transform 0.2s ease; |
| 51 | } | 59 | } |
| 52 | 60 | ||
| 53 | &::after { | 61 | &::after { |
| 54 | inset-block-start: calc(.5 * props.get(vars.$size) - 1px); | 62 | inset-block-start: calc(0.5 * props.get(vars.$size) - 1px); |
| 55 | inset-inline-start: calc(1.5 * props.get(vars.$border-width)); | 63 | inset-inline-start: calc(1.5 * props.get(vars.$border-width)); |
| 56 | z-index: 3; | 64 | z-index: 3; |
| 57 | box-sizing: border-box; | 65 | box-sizing: border-box; |
| 58 | inline-size: calc(props.get(vars.$size) - 3 * props.get(vars.$border-width)); | 66 | inline-size: calc(props.get(vars.$size) - 3 * props.get(vars.$border-width)); |
| 59 | block-size: 0; | 67 | block-size: 0; |
| 60 | border-color: props.get(vars.$box-bg-color); | 68 | border-color: props.get(vars.$box-bg-color); |
| 61 | border-style: solid; | 69 | border-style: solid; |
| 62 | border-radius: 2px; | 70 | border-radius: 2px; |
| 63 | transform: scale(0); | 71 | transform: scale(0); |
| 64 | transition: transform .2s ease; | 72 | transition: transform 0.2s ease; |
| 65 | border-block-width: 0 2px; | 73 | border-block-width: 0 2px; |
| 66 | border-inline-width: 0 2px; | 74 | border-inline-width: 0 2px; |
| 67 | } | 75 | } |
| 68 | } | 76 | } |
| 69 | 77 | ||
| 70 | @include bem.elem('check-icon') { | 78 | @include bem.elem("check-icon") { |
| 71 | position: absolute; | 79 | position: absolute; |
| 72 | inset-block-start: calc(1 * props.get(vars.$border-width)); | 80 | inset-block-start: calc(1 * props.get(vars.$border-width)); |
| 73 | inset-inline-start: calc(1 * props.get(vars.$border-width)); | 81 | inset-inline-start: calc(1 * props.get(vars.$border-width)); |
| 74 | z-index: 2; | 82 | z-index: 2; |
| 75 | display: block; | 83 | display: block; |
| 76 | inline-size: calc(100% - 2 * props.get(vars.$border-width)); | 84 | inline-size: calc(100% - 2 * props.get(vars.$border-width)); |
| 77 | block-size: calc(100% - 2 * props.get(vars.$border-width)); | 85 | block-size: calc(100% - 2 * props.get(vars.$border-width)); |
| 78 | margin: 0; | 86 | margin: 0; |
| 79 | color: props.get(vars.$box-bg-color); | 87 | color: props.get(vars.$box-bg-color); |
| 80 | stroke-width: fn.px-to-rem(3px); | 88 | stroke-width: fn.px-to-rem(3px); |
| 81 | transform: scale(0); | 89 | transform: scale(0); |
| 82 | transform-origin: 40% 90%; | 90 | transform-origin: 40% 90%; |
| 83 | transition: transform .2s ease; | 91 | transition: transform 0.2s ease; |
| 84 | } | 92 | } |
| 85 | 93 | ||
| 86 | @include bem.elem('label') { | 94 | @include bem.elem("label") { |
| 87 | margin-inline-start: calc(props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset)); | 95 | margin-inline-start: calc( |
| 96 | props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset) | ||
| 97 | ); | ||
| 88 | } | 98 | } |
| 89 | 99 | ||
| 90 | @include bem.elem('native') { | 100 | @include bem.elem("native") { |
| 91 | position: absolute; | 101 | position: absolute; |
| 92 | inset-block-start: 0; | 102 | inset-block-start: 0; |
| 93 | inset-inline-start: 0; | 103 | inset-inline-start: 0; |
| 94 | z-index: -1; | 104 | z-index: -1; |
| 95 | inline-size: 100%; | 105 | inline-size: 100%; |
| 96 | block-size: 100%; | 106 | block-size: 100%; |
| 97 | padding: 0; | 107 | padding: 0; |
| 98 | margin: 0; | 108 | margin: 0; |
| 99 | overflow: hidden; | 109 | overflow: hidden; |
| 100 | appearance: none; | 110 | appearance: none; |
| 101 | border-radius: props.get(vars.$rounding); | 111 | border-radius: props.get(vars.$rounding); |
| 102 | 112 | ||
| 103 | &:hover, | 113 | &:hover, |
| 104 | &:focus-visible { | 114 | &:focus-visible { |
| 105 | @include bem.sibling-elem('label') { | 115 | @include bem.sibling-elem("label") { |
| 106 | color: props.get(vars.$hover--label-color); | 116 | color: props.get(vars.$hover--label-color); |
| 107 | } | 117 | } |
| 108 | 118 | ||
| 109 | @include bem.sibling-elem('box') { | 119 | @include bem.sibling-elem("box") { |
| 110 | background-color: props.get(vars.$hover--box-border-color); | 120 | background-color: props.get(vars.$hover--box-border-color); |
| 111 | } | 121 | } |
| 112 | } | 122 | } |
| 113 | 123 | ||
| 114 | &:checked { | 124 | &:checked { |
| 115 | @include bem.sibling-elem('box') { | 125 | @include bem.sibling-elem("box") { |
| 116 | &::before { | 126 | &::before { |
| 117 | transform: scale(0); | 127 | transform: scale(0); |
| 118 | } | 128 | } |
| 119 | 129 | ||
| 120 | @include bem.elem('check-icon') { | 130 | @include bem.elem("check-icon") { |
| 121 | transform: scale(1); | 131 | transform: scale(1); |
| 122 | } | 132 | } |
| 123 | } | 133 | } |
| 124 | } | 134 | } |
| 125 | 135 | ||
| 126 | &:indeterminate { | 136 | &:indeterminate { |
| 127 | @include bem.sibling-elem('box') { | 137 | @include bem.sibling-elem("box") { |
| 128 | &::before { | 138 | &::before { |
| 129 | transform: scale(0); | 139 | transform: scale(0); |
| 130 | } | 140 | } |
| @@ -133,18 +143,18 @@ | |||
| 133 | transform: scale(1); | 143 | transform: scale(1); |
| 134 | } | 144 | } |
| 135 | 145 | ||
| 136 | @include bem.elem('check-icon') { | 146 | @include bem.elem("check-icon") { |
| 137 | transform: scale(0); | 147 | transform: scale(0); |
| 138 | } | 148 | } |
| 139 | } | 149 | } |
| 140 | } | 150 | } |
| 141 | 151 | ||
| 142 | &:disabled { | 152 | &:disabled { |
| 143 | @include bem.sibling-elem('label') { | 153 | @include bem.sibling-elem("label") { |
| 144 | color: props.get(vars.$disabled--label-color); | 154 | color: props.get(vars.$disabled--label-color); |
| 145 | } | 155 | } |
| 146 | 156 | ||
| 147 | @include bem.sibling-elem('box') { | 157 | @include bem.sibling-elem("box") { |
| 148 | background-color: props.get(vars.$disabled--box-border-color); | 158 | background-color: props.get(vars.$disabled--box-border-color); |
| 149 | 159 | ||
| 150 | &::before { | 160 | &::before { |
| @@ -154,58 +164,59 @@ | |||
| 154 | } | 164 | } |
| 155 | 165 | ||
| 156 | &:focus-visible { | 166 | &:focus-visible { |
| 157 | @include bem.sibling-elem('label') { | 167 | @include bem.sibling-elem("label") { |
| 158 | color: props.get(vars.$key-focus--label-color); | 168 | color: props.get(vars.$key-focus--label-color); |
| 159 | } | 169 | } |
| 160 | 170 | ||
| 161 | @include bem.sibling-elem('box') { | 171 | @include bem.sibling-elem("box") { |
| 162 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 172 | outline: props.get(vars.$key-focus--border-color) solid |
| 163 | box-shadow: | 173 | props.get(vars.$key-focus--border-width); |
| 164 | 0 | 174 | box-shadow: 0 0 0 |
| 165 | 0 | 175 | calc( |
| 166 | 0 | 176 | props.get(vars.$key-focus--border-width) + |
| 167 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | 177 | props.get(vars.$key-focus--outline-width) |
| 178 | ) | ||
| 168 | props.get(vars.$key-focus--outline-color); | 179 | props.get(vars.$key-focus--outline-color); |
| 169 | } | 180 | } |
| 170 | } | 181 | } |
| 171 | } | 182 | } |
| 172 | 183 | ||
| 173 | @include bem.modifier('standalone') { | 184 | @include bem.modifier("standalone") { |
| 174 | @include bem.elem('box') { | 185 | @include bem.elem("box") { |
| 175 | margin-block-start: 0; | 186 | margin-block-start: 0; |
| 176 | } | 187 | } |
| 177 | } | 188 | } |
| 178 | 189 | ||
| 179 | @include bem.modifier('accent') { | 190 | @include bem.modifier("accent") { |
| 180 | @include bem.elem('native') { | 191 | @include bem.elem("native") { |
| 181 | &:checked { | 192 | &:checked { |
| 182 | @include bem.sibling-elem('box') { | 193 | @include bem.sibling-elem("box") { |
| 183 | background-color: props.get(vars.$accent--box-border-color); | 194 | background-color: props.get(vars.$accent--box-border-color); |
| 184 | } | 195 | } |
| 185 | 196 | ||
| 186 | &:hover, | 197 | &:hover, |
| 187 | &:focus-visible { | 198 | &:focus-visible { |
| 188 | @include bem.sibling-elem('box') { | 199 | @include bem.sibling-elem("box") { |
| 189 | background-color: props.get(vars.$accent--hover--box-border-color); | 200 | background-color: props.get(vars.$accent--hover--box-border-color); |
| 190 | } | 201 | } |
| 191 | } | 202 | } |
| 192 | } | 203 | } |
| 193 | 204 | ||
| 194 | &:indeterminate { | 205 | &:indeterminate { |
| 195 | @include bem.sibling-elem('box') { | 206 | @include bem.sibling-elem("box") { |
| 196 | background-color: props.get(vars.$accent--box-border-color); | 207 | background-color: props.get(vars.$accent--box-border-color); |
| 197 | } | 208 | } |
| 198 | 209 | ||
| 199 | &:hover, | 210 | &:hover, |
| 200 | &:focus-visible { | 211 | &:focus-visible { |
| 201 | @include bem.sibling-elem('box') { | 212 | @include bem.sibling-elem("box") { |
| 202 | background-color: props.get(vars.$accent--hover--box-border-color); | 213 | background-color: props.get(vars.$accent--hover--box-border-color); |
| 203 | } | 214 | } |
| 204 | } | 215 | } |
| 205 | } | 216 | } |
| 206 | 217 | ||
| 207 | &:disabled { | 218 | &:disabled { |
| 208 | @include bem.sibling-elem('box') { | 219 | @include bem.sibling-elem("box") { |
| 209 | background-color: props.get(vars.$disabled--box-border-color); | 220 | background-color: props.get(vars.$disabled--box-border-color); |
| 210 | 221 | ||
| 211 | &::before { | 222 | &::before { |
| @@ -214,13 +225,13 @@ | |||
| 214 | } | 225 | } |
| 215 | 226 | ||
| 216 | &:checked { | 227 | &:checked { |
| 217 | @include bem.sibling-elem('box') { | 228 | @include bem.sibling-elem("box") { |
| 218 | background-color: props.get(vars.$disabled--box-border-color); | 229 | background-color: props.get(vars.$disabled--box-border-color); |
| 219 | } | 230 | } |
| 220 | } | 231 | } |
| 221 | 232 | ||
| 222 | &:indeterminate { | 233 | &:indeterminate { |
| 223 | @include bem.sibling-elem('box') { | 234 | @include bem.sibling-elem("box") { |
| 224 | background-color: props.get(vars.$disabled--box-border-color); | 235 | background-color: props.get(vars.$disabled--box-border-color); |
| 225 | } | 236 | } |
| 226 | } | 237 | } |
diff --git a/src/objects/_checkbox.vars.scss b/src/objects/_checkbox.vars.scss index 278aac8..8362aa7 100644 --- a/src/objects/_checkbox.vars.scss +++ b/src/objects/_checkbox.vars.scss | |||
| @@ -1,32 +1,92 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $size: props.def(--o-checkbox--size, props.get(core.$size--175)) !default; | 5 | $size: props.def(--o-checkbox--size, props.get(core.$size--175)) !default; |
| 6 | $label-gap: props.def(--o-checkbox--label-gap, props.get(core.$size--125)) !default; | 6 | $label-gap: props.def(--o-checkbox--label-gap, props.get(core.$size--125)) !default; |
| 7 | $border-width: props.def(--o-checkbox--border-width, props.get(core.$border-width--medium)) !default; | 7 | $border-width: props.def( |
| 8 | $pad-i: props.def(--o-checkbox--pad-i, props.get(core.$size--65)) !default; | 8 | --o-checkbox--border-width, |
| 9 | $pad-b: props.def(--o-checkbox--pad-b, props.get(core.$size--65)) !default; | 9 | props.get(core.$border-width--medium) |
| 10 | $rounding: props.def(--o-checkbox--rounding, props.get(core.$rounding--sm)) !default; | 10 | ) !default; |
| 11 | $pad-i: props.def(--o-checkbox--pad-i, props.get(core.$size--65)) !default; | ||
| 12 | $pad-b: props.def(--o-checkbox--pad-b, props.get(core.$size--65)) !default; | ||
| 13 | $rounding: props.def(--o-checkbox--rounding, props.get(core.$rounding--sm)) !default; | ||
| 11 | $spacing-sibling: props.def(--o-checkbox--spacing-sibling, props.get(core.$size--300)) !default; | 14 | $spacing-sibling: props.def(--o-checkbox--spacing-sibling, props.get(core.$size--300)) !default; |
| 12 | 15 | ||
| 13 | $key-focus--border-width: props.def(--o-checkbox--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 16 | $key-focus--border-width: props.def( |
| 14 | $key-focus--border-offset: props.def(--o-checkbox--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 17 | --o-checkbox--key-focus--border-width, |
| 15 | $key-focus--outline-width: props.def(--o-checkbox--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 18 | props.get(core.$key-focus--border-width) |
| 19 | ) !default; | ||
| 20 | $key-focus--border-offset: props.def( | ||
| 21 | --o-checkbox--key-focus--border-offset, | ||
| 22 | props.get(core.$key-focus--border-offset) | ||
| 23 | ) !default; | ||
| 24 | $key-focus--outline-width: props.def( | ||
| 25 | --o-checkbox--key-focus--outline-width, | ||
| 26 | props.get(core.$key-focus--outline-width) | ||
| 27 | ) !default; | ||
| 16 | 28 | ||
| 17 | $box-border-color: props.def(--o-checkbox--box-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 29 | $box-border-color: props.def( |
| 18 | $box-bg-color: props.def(--o-checkbox--box-bg-color, props.get(core.$theme, --base, --75), 'color') !default; | 30 | --o-checkbox--box-border-color, |
| 31 | props.get(core.$theme, --text-mute-more), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 34 | $box-bg-color: props.def( | ||
| 35 | --o-checkbox--box-bg-color, | ||
| 36 | props.get(core.$theme, --base, --75), | ||
| 37 | "color" | ||
| 38 | ) !default; | ||
| 19 | 39 | ||
| 20 | $hover--label-color: props.def(--o-checkbox--hover--label-color, props.get(core.$theme, --heading), 'color') !default; | 40 | $hover--label-color: props.def( |
| 21 | $hover--box-border-color: props.def(--o-checkbox--hover--box-border-color, props.get(core.$theme, --text-mute), 'color') !default; | 41 | --o-checkbox--hover--label-color, |
| 42 | props.get(core.$theme, --heading), | ||
| 43 | "color" | ||
| 44 | ) !default; | ||
| 45 | $hover--box-border-color: props.def( | ||
| 46 | --o-checkbox--hover--box-border-color, | ||
| 47 | props.get(core.$theme, --text-mute), | ||
| 48 | "color" | ||
| 49 | ) !default; | ||
| 22 | 50 | ||
| 23 | $accent--box-border-color: props.def(--o-checkbox--accent--box-border-color, props.get(core.$theme, --accent, --900), 'color') !default; | 51 | $accent--box-border-color: props.def( |
| 24 | $accent--hover--box-border-color: props.def(--o-checkbox--accent--hover--box-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; | 52 | --o-checkbox--accent--box-border-color, |
| 53 | props.get(core.$theme, --accent, --900), | ||
| 54 | "color" | ||
| 55 | ) !default; | ||
| 56 | $accent--hover--box-border-color: props.def( | ||
| 57 | --o-checkbox--accent--hover--box-border-color, | ||
| 58 | props.get(core.$theme, --accent, --1000), | ||
| 59 | "color" | ||
| 60 | ) !default; | ||
| 25 | 61 | ||
| 26 | $disabled--label-color: props.def(--o-checkbox--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; | 62 | $disabled--label-color: props.def( |
| 27 | $disabled--box-border-color: props.def(--o-checkbox--disabled--box-border-color, props.get(core.$theme, --border-strong), 'color') !default; | 63 | --o-checkbox--disabled--label-color, |
| 28 | $disabled--box-bg-color: props.def(--o-checkbox--disabled--box-bg-color, props.get(core.$theme, --base, --75), 'color') !default; | 64 | props.get(core.$theme, --text-disabled), |
| 65 | "color" | ||
| 66 | ) !default; | ||
| 67 | $disabled--box-border-color: props.def( | ||
| 68 | --o-checkbox--disabled--box-border-color, | ||
| 69 | props.get(core.$theme, --border-strong), | ||
| 70 | "color" | ||
| 71 | ) !default; | ||
| 72 | $disabled--box-bg-color: props.def( | ||
| 73 | --o-checkbox--disabled--box-bg-color, | ||
| 74 | props.get(core.$theme, --base, --75), | ||
| 75 | "color" | ||
| 76 | ) !default; | ||
| 29 | 77 | ||
| 30 | $key-focus--label-color: props.def(--o-checkbox--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; | 78 | $key-focus--label-color: props.def( |
| 31 | $key-focus--border-color: props.def(--o-checkbox--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 79 | --o-checkbox--key-focus--label-color, |
| 32 | $key-focus--outline-color: props.def(--o-checkbox--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 80 | props.get(core.$theme, --focus, --text), |
| 81 | "color" | ||
| 82 | ) !default; | ||
| 83 | $key-focus--border-color: props.def( | ||
| 84 | --o-checkbox--key-focus--border-color, | ||
| 85 | props.get(core.$theme, --focus, --border), | ||
| 86 | "color" | ||
| 87 | ) !default; | ||
| 88 | $key-focus--outline-color: props.def( | ||
| 89 | --o-checkbox--key-focus--outline-color, | ||
| 90 | props.get(core.$theme, --focus, --outline), | ||
| 91 | "color" | ||
| 92 | ) !default; | ||
diff --git a/src/objects/_dialog.scss b/src/objects/_dialog.scss index d2ee8c3..f5584e6 100644 --- a/src/objects/_dialog.scss +++ b/src/objects/_dialog.scss | |||
| @@ -1,29 +1,29 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'dialog.vars'; | 6 | @forward "dialog.vars"; |
| 7 | @use 'dialog.vars' as vars; | 7 | @use "dialog.vars" as vars; |
| 8 | 8 | ||
| 9 | @use 'backdrop.vars' as backdrop; | 9 | @use "backdrop.vars" as backdrop; |
| 10 | @use 'divider.vars' as divider; | 10 | @use "divider.vars" as divider; |
| 11 | 11 | ||
| 12 | @mixin styles { | 12 | @mixin styles { |
| 13 | @include materialize-at-root(meta.module-variables('vars')); | 13 | @include materialize-at-root(meta.module-variables("vars")); |
| 14 | 14 | ||
| 15 | @include bem.object('dialog') { | 15 | @include bem.object("dialog") { |
| 16 | display: none; | 16 | display: none; |
| 17 | box-sizing: border-box; | 17 | box-sizing: border-box; |
| 18 | inline-size: 100%; | 18 | inline-size: 100%; |
| 19 | max-inline-size: none; | 19 | max-inline-size: none; |
| 20 | block-size: 100%; | 20 | block-size: 100%; |
| 21 | min-block-size: 0; | 21 | min-block-size: 0; |
| 22 | max-block-size: none; | 22 | max-block-size: none; |
| 23 | padding: props.get(vars.$pad-b) props.get(vars.$pad-i); | 23 | padding: props.get(vars.$pad-b) props.get(vars.$pad-i); |
| 24 | margin: 0; | 24 | margin: 0; |
| 25 | background-color: transparent; | 25 | background-color: transparent; |
| 26 | border: 0; | 26 | border: 0; |
| 27 | 27 | ||
| 28 | &::backdrop { | 28 | &::backdrop { |
| 29 | background-color: props.get(backdrop.$bg-color); | 29 | background-color: props.get(backdrop.$bg-color); |
| @@ -31,38 +31,40 @@ | |||
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | &[open], | 33 | &[open], |
| 34 | &:popover-open { | 34 | &:popover-open { |
| 35 | display: flex; | 35 | display: flex; |
| 36 | flex-direction: column; | 36 | flex-direction: column; |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | @include bem.elem('content') { | 39 | @include bem.elem("content") { |
| 40 | pointer-events: auto; | 40 | pointer-events: auto; |
| 41 | border-radius: props.get(vars.$rounding); | 41 | border-radius: props.get(vars.$rounding); |
| 42 | background-color: props.get(vars.$bg-color); | 42 | background-color: props.get(vars.$bg-color); |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | @include bem.elem('header') { | 45 | @include bem.elem("header") { |
| 46 | display: flex; | 46 | display: flex; |
| 47 | align-items: center; | 47 | align-items: center; |
| 48 | padding: props.get(vars.$body--pad-i) props.get(vars.$body--pad-i) 0; | 48 | padding: props.get(vars.$body--pad-i) props.get(vars.$body--pad-i) 0; |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | @include bem.elem('divider') { | 51 | @include bem.elem("divider") { |
| 52 | margin-inline: props.get(vars.$body--pad-i); | 52 | margin-inline: props.get(vars.$body--pad-i); |
| 53 | 53 | ||
| 54 | @include bem.next-elem('body') { | 54 | @include bem.next-elem("body") { |
| 55 | padding-block-start: calc(.5 * props.get(vars.$body--pad-b) - props.get(divider.$margin-b)); | 55 | padding-block-start: calc( |
| 56 | 0.5 * props.get(vars.$body--pad-b) - props.get(divider.$margin-b) | ||
| 57 | ); | ||
| 56 | } | 58 | } |
| 57 | } | 59 | } |
| 58 | 60 | ||
| 59 | @include bem.elem('body') { | 61 | @include bem.elem("body") { |
| 60 | padding: props.get(vars.$body--pad-b) props.get(vars.$body--pad-i); | 62 | padding: props.get(vars.$body--pad-b) props.get(vars.$body--pad-i); |
| 61 | 63 | ||
| 62 | &::before { | 64 | &::before { |
| 63 | display: block; | 65 | display: block; |
| 64 | margin-block: -100em 100em; | 66 | margin-block: -100em 100em; |
| 65 | content: ''; | 67 | content: ""; |
| 66 | } | 68 | } |
| 67 | } | 69 | } |
| 68 | } | 70 | } |
diff --git a/src/objects/_dialog.vars.scss b/src/objects/_dialog.vars.scss index 39c47ba..8650e51 100644 --- a/src/objects/_dialog.vars.scss +++ b/src/objects/_dialog.vars.scss | |||
| @@ -1,10 +1,10 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | @use '../layouts/container.vars' as container; | 4 | @use "../layouts/container.vars" as container; |
| 5 | 5 | ||
| 6 | $pad-b: props.def(--o-dialog--pad-b, props.get(container.$pad-i)) !default; | 6 | $pad-b: props.def(--o-dialog--pad-b, props.get(container.$pad-i)) !default; |
| 7 | $pad-i: props.def(--o-dialog--pad-b, props.get(container.$pad-i)) !default; | 7 | $pad-i: props.def(--o-dialog--pad-b, props.get(container.$pad-i)) !default; |
| 8 | $rounding: props.def(--o-dialog--rounding, props.get(core.$rounding)) !default; | 8 | $rounding: props.def(--o-dialog--rounding, props.get(core.$rounding)) !default; |
| 9 | 9 | ||
| 10 | $border-width: props.def(--o-dialog--border-width, props.get(core.$border-width--thin)) !default; | 10 | $border-width: props.def(--o-dialog--border-width, props.get(core.$border-width--thin)) !default; |
| @@ -12,5 +12,9 @@ $border-width: props.def(--o-dialog--border-width, props.get(core.$border-width- | |||
| 12 | $body--pad-b: props.def(--o-dialog--body--pad-b, props.get(container.$pad-i)) !default; | 12 | $body--pad-b: props.def(--o-dialog--body--pad-b, props.get(container.$pad-i)) !default; |
| 13 | $body--pad-i: props.def(--o-dialog--body--pad-i, props.get(container.$pad-i)) !default; | 13 | $body--pad-i: props.def(--o-dialog--body--pad-i, props.get(container.$pad-i)) !default; |
| 14 | 14 | ||
| 15 | $bg-color: props.def(--o-dialog--bg-color, props.get(core.$theme, --bg-l1), 'color') !default; | 15 | $bg-color: props.def(--o-dialog--bg-color, props.get(core.$theme, --bg-l1), "color") !default; |
| 16 | $border-color: props.def(--o-dialog--border-color, props.get(core.$theme, --border-mute), 'color') !default; | 16 | $border-color: props.def( |
| 17 | --o-dialog--border-color, | ||
| 18 | props.get(core.$theme, --border-mute), | ||
| 19 | "color" | ||
| 20 | ) !default; | ||
diff --git a/src/objects/_divider.scss b/src/objects/_divider.scss index d81284b..f082d12 100644 --- a/src/objects/_divider.scss +++ b/src/objects/_divider.scss | |||
| @@ -1,38 +1,38 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:meta'; | 2 | @use "sass:meta"; |
| 3 | @use 'sass:string'; | 3 | @use "sass:string"; |
| 4 | @use 'pkg:iro-sass/src/bem'; | 4 | @use "pkg:iro-sass/bem"; |
| 5 | @use 'pkg:iro-sass/src/props'; | 5 | @use "pkg:iro-sass/props"; |
| 6 | @use '../props' as *; | 6 | @use "../props" as *; |
| 7 | @use '../core.vars' as core; | 7 | @use "../core.vars" as core; |
| 8 | 8 | ||
| 9 | @forward 'divider.vars'; | 9 | @forward "divider.vars"; |
| 10 | @use 'divider.vars' as vars; | 10 | @use "divider.vars" as vars; |
| 11 | 11 | ||
| 12 | @mixin styles { | 12 | @mixin styles { |
| 13 | @include materialize-at-root(meta.module-variables('vars')); | 13 | @include materialize-at-root(meta.module-variables("vars")); |
| 14 | 14 | ||
| 15 | @include bem.object('divider') { | 15 | @include bem.object("divider") { |
| 16 | display: flex; | 16 | display: flex; |
| 17 | flex: 0 0 auto; | 17 | flex: 0 0 auto; |
| 18 | flex-direction: row; | 18 | flex-direction: row; |
| 19 | align-items: center; | 19 | align-items: center; |
| 20 | block-size: 1em; | 20 | block-size: 1em; |
| 21 | margin-block: props.get(vars.$margin-b); | 21 | margin-block: props.get(vars.$margin-b); |
| 22 | font-size: props.get(vars.$strong--label-font-size); | 22 | font-size: props.get(vars.$strong--label-font-size); |
| 23 | font-weight: 700; | 23 | font-weight: 700; |
| 24 | line-height: 1; | 24 | line-height: 1; |
| 25 | color: props.get(vars.$strong--label-color); | 25 | color: props.get(vars.$strong--label-color); |
| 26 | text-transform: uppercase; | 26 | text-transform: uppercase; |
| 27 | letter-spacing: props.get(vars.$letter-spacing); | 27 | letter-spacing: props.get(vars.$letter-spacing); |
| 28 | background-color: transparent; | 28 | background-color: transparent; |
| 29 | 29 | ||
| 30 | &::before, | 30 | &::before, |
| 31 | &::after { | 31 | &::after { |
| 32 | flex: 1 1 auto; | 32 | flex: 1 1 auto; |
| 33 | inline-size: 100%; | 33 | inline-size: 100%; |
| 34 | block-size: props.get(vars.$strong--border-width); | 34 | block-size: props.get(vars.$strong--border-width); |
| 35 | content: ''; | 35 | content: ""; |
| 36 | background-color: props.get(vars.$strong--bg-color); | 36 | background-color: props.get(vars.$strong--bg-color); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| @@ -40,15 +40,15 @@ | |||
| 40 | display: block; | 40 | display: block; |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | @include bem.elem('label') { | 43 | @include bem.elem("label") { |
| 44 | flex: 0 0 auto; | 44 | flex: 0 0 auto; |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | @include bem.modifier('vertical') { | 47 | @include bem.modifier("vertical") { |
| 48 | align-self: stretch; | 48 | align-self: stretch; |
| 49 | inline-size: props.get(vars.$vertical--border-width); | 49 | inline-size: props.get(vars.$vertical--border-width); |
| 50 | block-size: auto; | 50 | block-size: auto; |
| 51 | margin-block: 0; | 51 | margin-block: 0; |
| 52 | background-color: props.get(vars.$strong--bg-color); | 52 | background-color: props.get(vars.$strong--bg-color); |
| 53 | 53 | ||
| 54 | &::before, | 54 | &::before, |
| @@ -57,13 +57,13 @@ | |||
| 57 | } | 57 | } |
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | @include bem.modifier('dot') { | 60 | @include bem.modifier("dot") { |
| 61 | align-self: center; | 61 | align-self: center; |
| 62 | inline-size: props.get(vars.$dot--size); | 62 | inline-size: props.get(vars.$dot--size); |
| 63 | block-size: props.get(vars.$dot--size); | 63 | block-size: props.get(vars.$dot--size); |
| 64 | margin-block: 0; | 64 | margin-block: 0; |
| 65 | background-color: props.get(vars.$strong--bg-color); | 65 | background-color: props.get(vars.$strong--bg-color); |
| 66 | border-radius: props.get(vars.$dot--size); | 66 | border-radius: props.get(vars.$dot--size); |
| 67 | 67 | ||
| 68 | &::before, | 68 | &::before, |
| 69 | &::after { | 69 | &::after { |
| @@ -71,73 +71,73 @@ | |||
| 71 | } | 71 | } |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | @include bem.modifier('medium') { | 74 | @include bem.modifier("medium") { |
| 75 | font-size: props.get(vars.$medium--label-font-size); | 75 | font-size: props.get(vars.$medium--label-font-size); |
| 76 | font-weight: 500; | 76 | font-weight: 500; |
| 77 | color: props.get(vars.$medium--label-color); | 77 | color: props.get(vars.$medium--label-color); |
| 78 | 78 | ||
| 79 | &::before, | 79 | &::before, |
| 80 | &::after { | 80 | &::after { |
| 81 | block-size: props.get(vars.$medium--border-width); | 81 | block-size: props.get(vars.$medium--border-width); |
| 82 | background-color: props.get(vars.$medium--bg-color); | 82 | background-color: props.get(vars.$medium--bg-color); |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | @include bem.modifier('vertical') { | 85 | @include bem.modifier("vertical") { |
| 86 | background-color: props.get(vars.$medium--bg-color); | 86 | background-color: props.get(vars.$medium--bg-color); |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | @include bem.modifier('dot') { | 89 | @include bem.modifier("dot") { |
| 90 | background-color: props.get(vars.$medium--bg-color); | 90 | background-color: props.get(vars.$medium--bg-color); |
| 91 | } | 91 | } |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | @include bem.modifier('quiet') { | 94 | @include bem.modifier("quiet") { |
| 95 | font-size: props.get(vars.$quiet--label-font-size); | 95 | font-size: props.get(vars.$quiet--label-font-size); |
| 96 | font-weight: 500; | 96 | font-weight: 500; |
| 97 | color: props.get(vars.$quiet--label-color); | 97 | color: props.get(vars.$quiet--label-color); |
| 98 | 98 | ||
| 99 | &::before, | 99 | &::before, |
| 100 | &::after { | 100 | &::after { |
| 101 | block-size: props.get(vars.$quiet--border-width); | 101 | block-size: props.get(vars.$quiet--border-width); |
| 102 | background-color: props.get(vars.$quiet--bg-color); | 102 | background-color: props.get(vars.$quiet--bg-color); |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | @include bem.modifier('vertical') { | 105 | @include bem.modifier("vertical") { |
| 106 | background-color: props.get(vars.$vertical--quiet--bg-color); | 106 | background-color: props.get(vars.$vertical--quiet--bg-color); |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | @include bem.modifier('dot') { | 109 | @include bem.modifier("dot") { |
| 110 | background-color: props.get(vars.$dot--quiet--bg-color); | 110 | background-color: props.get(vars.$dot--quiet--bg-color); |
| 111 | } | 111 | } |
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | @include bem.modifier('faint') { | 114 | @include bem.modifier("faint") { |
| 115 | font-size: props.get(vars.$faint--label-font-size); | 115 | font-size: props.get(vars.$faint--label-font-size); |
| 116 | font-weight: 500; | 116 | font-weight: 500; |
| 117 | color: props.get(vars.$faint--label-color); | 117 | color: props.get(vars.$faint--label-color); |
| 118 | 118 | ||
| 119 | &::before, | 119 | &::before, |
| 120 | &::after { | 120 | &::after { |
| 121 | block-size: props.get(vars.$faint--border-width); | 121 | block-size: props.get(vars.$faint--border-width); |
| 122 | background-color: props.get(vars.$faint--bg-color); | 122 | background-color: props.get(vars.$faint--bg-color); |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | @include bem.modifier('vertical') { | 125 | @include bem.modifier("vertical") { |
| 126 | background-color: props.get(vars.$vertical--quiet--bg-color); | 126 | background-color: props.get(vars.$vertical--quiet--bg-color); |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | @include bem.modifier('dot') { | 129 | @include bem.modifier("dot") { |
| 130 | background-color: props.get(vars.$dot--quiet--bg-color); | 130 | background-color: props.get(vars.$dot--quiet--bg-color); |
| 131 | } | 131 | } |
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | @include bem.modifier('labelled') { | 134 | @include bem.modifier("labelled") { |
| 135 | &::before { | 135 | &::before { |
| 136 | margin-inline-end: 1em; | 136 | margin-inline-end: 1em; |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | &::after { | 139 | &::after { |
| 140 | display: block; | 140 | display: block; |
| 141 | margin-inline-start: 1em; | 141 | margin-inline-start: 1em; |
| 142 | } | 142 | } |
| 143 | } | 143 | } |
| @@ -149,7 +149,7 @@ | |||
| 149 | background-color: props.get(vars.$themes, $theme, --bg); | 149 | background-color: props.get(vars.$themes, $theme, --bg); |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | @include bem.elem('label') { | 152 | @include bem.elem("label") { |
| 153 | color: props.get(vars.$themes, $theme, --label); | 153 | color: props.get(vars.$themes, $theme, --label); |
| 154 | } | 154 | } |
| 155 | } | 155 | } |
| @@ -162,39 +162,39 @@ | |||
| 162 | background-color: props.get(vars.$static-themes, $theme, --strong, --bg); | 162 | background-color: props.get(vars.$static-themes, $theme, --strong, --bg); |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | @include bem.elem('label') { | 165 | @include bem.elem("label") { |
| 166 | color: props.get(vars.$static-themes, $theme, --strong, --label); | 166 | color: props.get(vars.$static-themes, $theme, --strong, --label); |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | @include bem.modifier('medium') { | 169 | @include bem.modifier("medium") { |
| 170 | &::before, | 170 | &::before, |
| 171 | &::after { | 171 | &::after { |
| 172 | background-color: props.get(vars.$static-themes, $theme, --medium, --bg); | 172 | background-color: props.get(vars.$static-themes, $theme, --medium, --bg); |
| 173 | } | 173 | } |
| 174 | 174 | ||
| 175 | @include bem.elem('label') { | 175 | @include bem.elem("label") { |
| 176 | color: props.get(vars.$static-themes, $theme, --medium, --label); | 176 | color: props.get(vars.$static-themes, $theme, --medium, --label); |
| 177 | } | 177 | } |
| 178 | } | 178 | } |
| 179 | 179 | ||
| 180 | @include bem.modifier('quiet') { | 180 | @include bem.modifier("quiet") { |
| 181 | &::before, | 181 | &::before, |
| 182 | &::after { | 182 | &::after { |
| 183 | background-color: props.get(vars.$static-themes, $theme, --quiet, --bg); | 183 | background-color: props.get(vars.$static-themes, $theme, --quiet, --bg); |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | @include bem.elem('label') { | 186 | @include bem.elem("label") { |
| 187 | color: props.get(vars.$static-themes, $theme, --quiet, --label); | 187 | color: props.get(vars.$static-themes, $theme, --quiet, --label); |
| 188 | } | 188 | } |
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | @include bem.modifier('faint') { | 191 | @include bem.modifier("faint") { |
| 192 | &::before, | 192 | &::before, |
| 193 | &::after { | 193 | &::after { |
| 194 | background-color: props.get(vars.$static-themes, $theme, --faint, --bg); | 194 | background-color: props.get(vars.$static-themes, $theme, --faint, --bg); |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | @include bem.elem('label') { | 197 | @include bem.elem("label") { |
| 198 | color: props.get(vars.$static-themes, $theme, --faint, --label); | 198 | color: props.get(vars.$static-themes, $theme, --faint, --label); |
| 199 | } | 199 | } |
| 200 | } | 200 | } |
diff --git a/src/objects/_divider.vars.scss b/src/objects/_divider.vars.scss index a8b0f9f..38224d4 100644 --- a/src/objects/_divider.vars.scss +++ b/src/objects/_divider.vars.scss | |||
| @@ -1,80 +1,153 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:string'; | 2 | @use "sass:string"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | $margin-b: props.def(--o-divider--size, props.get(core.$size--85)) !default; | 6 | $margin-b: props.def(--o-divider--size, props.get(core.$size--85)) !default; |
| 7 | $vertical--border-width: props.def(--o-divider--vertical--width, props.get(core.$border-width--thin)) !default; | 7 | $vertical--border-width: props.def( |
| 8 | $dot--size: props.def(--o-divider--dot--size, props.get(core.$size--50)) !default; | 8 | --o-divider--vertical--width, |
| 9 | $letter-spacing: props.def(--o-divider--letter-spacing, 1px) !default; | 9 | props.get(core.$border-width--thin) |
| 10 | ) !default; | ||
| 11 | $dot--size: props.def(--o-divider--dot--size, props.get(core.$size--50)) !default; | ||
| 12 | $letter-spacing: props.def(--o-divider--letter-spacing, 1px) !default; | ||
| 10 | 13 | ||
| 11 | $strong--border-width: props.def(--o-divider--strong--border-width, props.get(core.$border-width--thick)) !default; | 14 | $strong--border-width: props.def( |
| 12 | $strong--label-font-size: props.def(--o-divider--strong--label-font-size, props.get(core.$font-size--100)) !default; | 15 | --o-divider--strong--border-width, |
| 16 | props.get(core.$border-width--thick) | ||
| 17 | ) !default; | ||
| 18 | $strong--label-font-size: props.def( | ||
| 19 | --o-divider--strong--label-font-size, | ||
| 20 | props.get(core.$font-size--100) | ||
| 21 | ) !default; | ||
| 13 | 22 | ||
| 14 | $medium--border-width: props.def(--o-divider--medium--border-width, props.get(core.$border-width--medium)) !default; | 23 | $medium--border-width: props.def( |
| 15 | $medium--label-font-size: props.def(--o-divider--medium--label-font-size, props.get(core.$font-size--75)) !default; | 24 | --o-divider--medium--border-width, |
| 25 | props.get(core.$border-width--medium) | ||
| 26 | ) !default; | ||
| 27 | $medium--label-font-size: props.def( | ||
| 28 | --o-divider--medium--label-font-size, | ||
| 29 | props.get(core.$font-size--75) | ||
| 30 | ) !default; | ||
| 16 | 31 | ||
| 17 | $quiet--border-width: props.def(--o-divider--quiet--border-width, props.get(core.$border-width--thin)) !default; | 32 | $quiet--border-width: props.def( |
| 18 | $quiet--label-font-size: props.def(--o-divider--quiet--label-font-size, props.get(core.$font-size--50)) !default; | 33 | --o-divider--quiet--border-width, |
| 34 | props.get(core.$border-width--thin) | ||
| 35 | ) !default; | ||
| 36 | $quiet--label-font-size: props.def( | ||
| 37 | --o-divider--quiet--label-font-size, | ||
| 38 | props.get(core.$font-size--50) | ||
| 39 | ) !default; | ||
| 19 | 40 | ||
| 20 | $faint--border-width: props.def(--o-divider--faint--border-width, props.get(core.$border-width--thin)) !default; | 41 | $faint--border-width: props.def( |
| 21 | $faint--label-font-size: props.def(--o-divider--faint--label-font-size, props.get(core.$font-size--50)) !default; | 42 | --o-divider--faint--border-width, |
| 43 | props.get(core.$border-width--thin) | ||
| 44 | ) !default; | ||
| 45 | $faint--label-font-size: props.def( | ||
| 46 | --o-divider--faint--label-font-size, | ||
| 47 | props.get(core.$font-size--50) | ||
| 48 | ) !default; | ||
| 22 | 49 | ||
| 23 | $strong--bg-color: props.def(--o-divider--strong--bg-color, props.get(core.$theme, --text), 'color') !default; | 50 | $strong--bg-color: props.def( |
| 24 | $strong--label-color: props.def(--o-divider--strong--label-color, props.get(core.$theme, --text), 'color') !default; | 51 | --o-divider--strong--bg-color, |
| 52 | props.get(core.$theme, --text), | ||
| 53 | "color" | ||
| 54 | ) !default; | ||
| 55 | $strong--label-color: props.def( | ||
| 56 | --o-divider--strong--label-color, | ||
| 57 | props.get(core.$theme, --text), | ||
| 58 | "color" | ||
| 59 | ) !default; | ||
| 25 | 60 | ||
| 26 | $medium--bg-color: props.def(--o-divider--medium--bg-color, props.get(core.$theme, --border), 'color') !default; | 61 | $medium--bg-color: props.def( |
| 27 | $medium--label-color: props.def(--o-divider--medium--label-color, props.get(core.$theme, --text-mute), 'color') !default; | 62 | --o-divider--medium--bg-color, |
| 63 | props.get(core.$theme, --border), | ||
| 64 | "color" | ||
| 65 | ) !default; | ||
| 66 | $medium--label-color: props.def( | ||
| 67 | --o-divider--medium--label-color, | ||
| 68 | props.get(core.$theme, --text-mute), | ||
| 69 | "color" | ||
| 70 | ) !default; | ||
| 28 | 71 | ||
| 29 | $quiet--bg-color: props.def(--o-divider--quiet--bg-color, props.get(core.$theme, --border), 'color') !default; | 72 | $quiet--bg-color: props.def( |
| 30 | $quiet--label-color: props.def(--o-divider--quiet--label-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 73 | --o-divider--quiet--bg-color, |
| 74 | props.get(core.$theme, --border), | ||
| 75 | "color" | ||
| 76 | ) !default; | ||
| 77 | $quiet--label-color: props.def( | ||
| 78 | --o-divider--quiet--label-color, | ||
| 79 | props.get(core.$theme, --text-mute-more), | ||
| 80 | "color" | ||
| 81 | ) !default; | ||
| 31 | 82 | ||
| 32 | $faint--bg-color: props.def(--o-divider--faint--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 83 | $faint--bg-color: props.def( |
| 33 | $faint--label-color: props.def(--o-divider--faint--label-color, props.get(core.$theme, --text-disabled), 'color') !default; | 84 | --o-divider--faint--bg-color, |
| 85 | props.get(core.$theme, --border-mute), | ||
| 86 | "color" | ||
| 87 | ) !default; | ||
| 88 | $faint--label-color: props.def( | ||
| 89 | --o-divider--faint--label-color, | ||
| 90 | props.get(core.$theme, --text-disabled), | ||
| 91 | "color" | ||
| 92 | ) !default; | ||
| 34 | 93 | ||
| 35 | $vertical--quiet--bg-color: props.def(--o-divider--vertical--quiet--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 94 | $vertical--quiet--bg-color: props.def( |
| 95 | --o-divider--vertical--quiet--bg-color, | ||
| 96 | props.get(core.$theme, --border-mute), | ||
| 97 | "color" | ||
| 98 | ) !default; | ||
| 36 | 99 | ||
| 37 | $dot--quiet--bg-color: props.def(--o-divider--dot--quiet--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 100 | $dot--quiet--bg-color: props.def( |
| 101 | --o-divider--dot--quiet--bg-color, | ||
| 102 | props.get(core.$theme, --border-mute), | ||
| 103 | "color" | ||
| 104 | ) !default; | ||
| 38 | 105 | ||
| 39 | $static-themes: props.def(--o-divider, (), 'color'); | 106 | $static-themes: props.def(--o-divider, (), "color"); |
| 40 | 107 | ||
| 41 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 108 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 42 | $button-theme: --static-#{string.slice($theme, 3)}; | 109 | $button-theme: --static-#{string.slice($theme, 3)}; |
| 43 | 110 | ||
| 44 | $static-themes: props.merge($static-themes, ( | 111 | $static-themes: props.merge( |
| 45 | $button-theme: ( | 112 | $static-themes, |
| 46 | --strong: ( | 113 | ( |
| 47 | --bg: props.get(core.$transparent-colors, $theme, --800), | 114 | $button-theme: ( |
| 48 | --label: props.get(core.$transparent-colors, $theme, --900), | 115 | --strong: ( |
| 49 | ), | 116 | --bg: props.get(core.$transparent-colors, $theme, --800), |
| 50 | --medium: ( | 117 | --label: props.get(core.$transparent-colors, $theme, --900), |
| 51 | --bg: props.get(core.$transparent-colors, $theme, --300), | 118 | ), |
| 52 | --label: props.get(core.$transparent-colors, $theme, --500), | 119 | --medium: ( |
| 53 | ), | 120 | --bg: props.get(core.$transparent-colors, $theme, --300), |
| 54 | --quiet: ( | 121 | --label: props.get(core.$transparent-colors, $theme, --500), |
| 55 | --bg: props.get(core.$transparent-colors, $theme, --300), | 122 | ), |
| 56 | --label: props.get(core.$transparent-colors, $theme, --500), | 123 | --quiet: ( |
| 57 | ), | 124 | --bg: props.get(core.$transparent-colors, $theme, --300), |
| 58 | --faint: ( | 125 | --label: props.get(core.$transparent-colors, $theme, --500), |
| 59 | --bg: props.get(core.$transparent-colors, $theme, --200), | 126 | ), |
| 60 | --label: props.get(core.$transparent-colors, $theme, --400), | 127 | --faint: ( |
| 61 | ), | 128 | --bg: props.get(core.$transparent-colors, $theme, --200), |
| 129 | --label: props.get(core.$transparent-colors, $theme, --400), | ||
| 130 | ), | ||
| 131 | ), | ||
| 62 | ) | 132 | ) |
| 63 | )); | 133 | ); |
| 64 | } | 134 | } |
| 65 | 135 | ||
| 66 | $themes-config: ( | 136 | $themes-config: ( |
| 67 | accent: --accent, | 137 | accent: --accent, |
| 68 | negative: --negative, | 138 | negative: --negative, |
| 69 | ) !default; | 139 | ) !default; |
| 70 | 140 | ||
| 71 | $themes: props.def(--o-divider, (), 'color'); | 141 | $themes: props.def(--o-divider, (), "color"); |
| 72 | 142 | ||
| 73 | @each $theme, $key in $themes-config { | 143 | @each $theme, $key in $themes-config { |
| 74 | $themes: props.merge($themes, ( | 144 | $themes: props.merge( |
| 75 | --#{$theme}: ( | 145 | $themes, |
| 76 | --bg: props.get(core.$theme, $key, --800), | 146 | ( |
| 77 | --label: props.get(core.$theme, $key, --1000), | 147 | --#{$theme}: ( |
| 148 | --bg: props.get(core.$theme, $key, --800), | ||
| 149 | --label: props.get(core.$theme, $key, --1000), | ||
| 150 | ) | ||
| 78 | ) | 151 | ) |
| 79 | )); | 152 | ); |
| 80 | } | 153 | } |
diff --git a/src/objects/_emoji.scss b/src/objects/_emoji.scss index 655e662..0257b32 100644 --- a/src/objects/_emoji.scss +++ b/src/objects/_emoji.scss | |||
| @@ -1,49 +1,55 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | @use 'icon.vars' as icon; | 5 | @use "icon.vars" as icon; |
| 6 | 6 | ||
| 7 | @forward 'emoji.vars'; | 7 | @forward "emoji.vars"; |
| 8 | @use 'emoji.vars' as vars; | 8 | @use "emoji.vars" as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables("vars")); |
| 12 | 12 | ||
| 13 | @include bem.object('emoji') { | 13 | @include bem.object("emoji") { |
| 14 | position: relative; | 14 | position: relative; |
| 15 | display: inline-block; | 15 | display: inline-block; |
| 16 | inline-size: calc(props.get(vars.$size)); | 16 | inline-size: calc(props.get(vars.$size)); |
| 17 | block-size: calc(props.get(vars.$size)); | 17 | block-size: calc(props.get(vars.$size)); |
| 18 | padding: calc(props.get(vars.$pad)); | 18 | padding: calc(props.get(vars.$pad)); |
| 19 | margin: calc(-1 * props.get(vars.$pad)); | 19 | margin: calc(-1 * props.get(vars.$pad)); |
| 20 | vertical-align: props.get(vars.$valign); | 20 | vertical-align: props.get(vars.$valign); |
| 21 | object-fit: contain; | 21 | object-fit: contain; |
| 22 | 22 | ||
| 23 | @include bem.modifier('icon') { | 23 | @include bem.modifier("icon") { |
| 24 | margin: calc(-1 * props.get(vars.$pad) - .5 * (props.get(vars.$size) - props.get(icon.$size))); | 24 | margin: calc( |
| 25 | -1 * props.get(vars.$pad) - 0.5 * (props.get(vars.$size) - props.get(icon.$size)) | ||
| 26 | ); | ||
| 25 | vertical-align: props.get(icon.$valign); | 27 | vertical-align: props.get(icon.$valign); |
| 26 | } | 28 | } |
| 27 | 29 | ||
| 28 | @each $mod, $size, $valign in vars.$sizes { | 30 | @each $mod, $size, $valign in vars.$sizes { |
| 29 | @include bem.modifier($mod) { | 31 | @include bem.modifier($mod) { |
| 30 | inline-size: props.get($size); | 32 | inline-size: props.get($size); |
| 31 | block-size: props.get($size); | 33 | block-size: props.get($size); |
| 32 | vertical-align: props.get($valign); | 34 | vertical-align: props.get($valign); |
| 33 | 35 | ||
| 34 | @include bem.modifier('icon') { | 36 | @include bem.modifier("icon") { |
| 35 | margin: calc(-1 * props.get(vars.$pad) - .5 * (props.get($size) - props.get(icon.$size))); | 37 | margin: calc( |
| 38 | -1 * props.get(vars.$pad) - 0.5 * (props.get($size) - props.get(icon.$size)) | ||
| 39 | ); | ||
| 36 | } | 40 | } |
| 37 | } | 41 | } |
| 38 | } | 42 | } |
| 39 | 43 | ||
| 40 | @include bem.modifier('zoomable') { | 44 | @include bem.modifier("zoomable") { |
| 41 | border-radius: calc(props.get(vars.$rounding) / props.get(vars.$zoom)); | 45 | border-radius: calc(props.get(vars.$rounding) / props.get(vars.$zoom)); |
| 42 | transition: transform .2s ease, background-color .2s ease; | 46 | transition: |
| 47 | transform 0.2s ease, | ||
| 48 | background-color 0.2s ease; | ||
| 43 | 49 | ||
| 44 | &:hover { | 50 | &:hover { |
| 45 | background-color: props.get(vars.$bg-color); | 51 | background-color: props.get(vars.$bg-color); |
| 46 | transform: scale(props.get(vars.$zoom)); | 52 | transform: scale(props.get(vars.$zoom)); |
| 47 | } | 53 | } |
| 48 | } | 54 | } |
| 49 | } | 55 | } |
diff --git a/src/objects/_emoji.vars.scss b/src/objects/_emoji.vars.scss index cf940cf..1c2a0e2 100644 --- a/src/objects/_emoji.vars.scss +++ b/src/objects/_emoji.vars.scss | |||
| @@ -1,26 +1,26 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $size: props.def(--o-emoji--size, calc(1 / 14 * 18em)) !default; | 5 | $size: props.def(--o-emoji--size, calc(1 / 14 * 18em)) !default; |
| 6 | $pad: props.def(--o-emoji--pad, .3em) !default; | 6 | $pad: props.def(--o-emoji--pad, 0.3em) !default; |
| 7 | $rounding: props.def(--o-emoji--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-emoji--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $zoom: props.def(--o-emoji--zoom, 3) !default; | 8 | $zoom: props.def(--o-emoji--zoom, 3) !default; |
| 9 | $valign: props.def(--o-emoji--valign, -.25em) !default; | 9 | $valign: props.def(--o-emoji--valign, -0.25em) !default; |
| 10 | 10 | ||
| 11 | $size--125: props.def(--o-emoji--125--size, calc(1 / 14 * 23em)) !default; | 11 | $size--125: props.def(--o-emoji--125--size, calc(1 / 14 * 23em)) !default; |
| 12 | $valign--125: props.def(--o-emoji--125--valign, -.45em) !default; | 12 | $valign--125: props.def(--o-emoji--125--valign, -0.45em) !default; |
| 13 | 13 | ||
| 14 | $size--150: props.def(--o-emoji--150--size, calc(1 / 14 * 28em)) !default; | 14 | $size--150: props.def(--o-emoji--150--size, calc(1 / 14 * 28em)) !default; |
| 15 | $valign--150: props.def(--o-emoji--150--valign, -.65em) !default; | 15 | $valign--150: props.def(--o-emoji--150--valign, -0.65em) !default; |
| 16 | 16 | ||
| 17 | $size--200: props.def(--o-emoji--200--size, calc(1 / 14 * 38em)) !default; | 17 | $size--200: props.def(--o-emoji--200--size, calc(1 / 14 * 38em)) !default; |
| 18 | $valign--200: props.def(--o-emoji--200--valign, -1em) !default; | 18 | $valign--200: props.def(--o-emoji--200--valign, -1em) !default; |
| 19 | 19 | ||
| 20 | $sizes: ( | 20 | $sizes: ( |
| 21 | '125' $size--125 $valign--125, | 21 | "125" $size--125 $valign--125, |
| 22 | '150' $size--150 $valign--150, | 22 | "150" $size--150 $valign--150, |
| 23 | '200' $size--200 $valign--200, | 23 | "200" $size--200 $valign--200 |
| 24 | ) !default; | 24 | ) !default; |
| 25 | 25 | ||
| 26 | $bg-color: props.def(--o-emoji--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 26 | $bg-color: props.def(--o-emoji--bg-color, props.get(core.$theme, --border-mute), "color") !default; |
diff --git a/src/objects/_field-label.scss b/src/objects/_field-label.scss index 23875f5..fb664b4 100644 --- a/src/objects/_field-label.scss +++ b/src/objects/_field-label.scss | |||
| @@ -1,74 +1,74 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'field-label.vars'; | 6 | @forward "field-label.vars"; |
| 7 | @use 'field-label.vars' as vars; | 7 | @use "field-label.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables('vars')); | 10 | @include materialize-at-root(meta.module-variables("vars")); |
| 11 | 11 | ||
| 12 | @include bem.object('field-label') { | 12 | @include bem.object("field-label") { |
| 13 | @include bem.elem('label') { | 13 | @include bem.elem("label") { |
| 14 | display: block; | 14 | display: block; |
| 15 | flex: 0 0 auto; | 15 | flex: 0 0 auto; |
| 16 | padding-inline-end: props.get(vars.$spacing-i); | 16 | padding-inline-end: props.get(vars.$spacing-i); |
| 17 | font-size: props.get(vars.$label-font-size); | 17 | font-size: props.get(vars.$label-font-size); |
| 18 | font-weight: 400; | 18 | font-weight: 400; |
| 19 | line-height: 1.3; | 19 | line-height: 1.3; |
| 20 | color: props.get(vars.$label-color); | 20 | color: props.get(vars.$label-color); |
| 21 | 21 | ||
| 22 | @include bem.next-elem('content') { | 22 | @include bem.next-elem("content") { |
| 23 | margin-block-start: props.get(vars.$spacing-b); | 23 | margin-block-start: props.get(vars.$spacing-b); |
| 24 | } | 24 | } |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | @include bem.elem('content') { | 27 | @include bem.elem("content") { |
| 28 | display: block; | 28 | display: block; |
| 29 | flex: 1 1 auto; | 29 | flex: 1 1 auto; |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.elem('hint') { | 32 | @include bem.elem("hint") { |
| 33 | display: block; | 33 | display: block; |
| 34 | margin-block-start: props.get(vars.$spacing-b); | 34 | margin-block-start: props.get(vars.$spacing-b); |
| 35 | font-size: props.get(vars.$hint-font-size); | 35 | font-size: props.get(vars.$hint-font-size); |
| 36 | color: props.get(vars.$hint-color); | 36 | color: props.get(vars.$hint-color); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | @include bem.is('invalid') { | 39 | @include bem.is("invalid") { |
| 40 | @include bem.elem('hint') { | 40 | @include bem.elem("hint") { |
| 41 | color: props.get(vars.$error-hint-color); | 41 | color: props.get(vars.$error-hint-color); |
| 42 | } | 42 | } |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | @include bem.is('disabled') { | 45 | @include bem.is("disabled") { |
| 46 | @include bem.elem('label', 'hint') { | 46 | @include bem.elem("label", "hint") { |
| 47 | color: props.get(vars.$disabled-color); | 47 | color: props.get(vars.$disabled-color); |
| 48 | } | 48 | } |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | @include bem.modifier('align-start', 'align-end') { | 51 | @include bem.modifier("align-start", "align-end") { |
| 52 | display: flex; | 52 | display: flex; |
| 53 | align-items: baseline; | 53 | align-items: baseline; |
| 54 | 54 | ||
| 55 | @include bem.elem('label') { | 55 | @include bem.elem("label") { |
| 56 | display: inline-block; | 56 | display: inline-block; |
| 57 | 57 | ||
| 58 | @include bem.next-elem('content') { | 58 | @include bem.next-elem("content") { |
| 59 | margin-block-start: 0; | 59 | margin-block-start: 0; |
| 60 | } | 60 | } |
| 61 | } | 61 | } |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | @include bem.modifier('align-start') { | 64 | @include bem.modifier("align-start") { |
| 65 | @include bem.elem('label') { | 65 | @include bem.elem("label") { |
| 66 | text-align: start; | 66 | text-align: start; |
| 67 | } | 67 | } |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | @include bem.modifier('align-end') { | 70 | @include bem.modifier("align-end") { |
| 71 | @include bem.elem('label') { | 71 | @include bem.elem("label") { |
| 72 | text-align: end; | 72 | text-align: end; |
| 73 | } | 73 | } |
| 74 | } | 74 | } |
diff --git a/src/objects/_field-label.vars.scss b/src/objects/_field-label.vars.scss index 5bd4547..4588e70 100644 --- a/src/objects/_field-label.vars.scss +++ b/src/objects/_field-label.vars.scss | |||
| @@ -1,12 +1,34 @@ | |||
| 1 | @use 'pkg:iro-sass/src/props'; | 1 | @use "pkg:iro-sass/props"; |
| 2 | @use '../core.vars' as core; | 2 | @use "../core.vars" as core; |
| 3 | 3 | ||
| 4 | $spacing-i: props.def(--o-field-label--spacing-i, props.get(core.$size--150)) !default; | 4 | $spacing-i: props.def(--o-field-label--spacing-i, props.get(core.$size--150)) !default; |
| 5 | $spacing-b: props.def(--o-field-label--spacing-b, props.get(core.$size--85)) !default; | 5 | $spacing-b: props.def(--o-field-label--spacing-b, props.get(core.$size--85)) !default; |
| 6 | $label-font-size: props.def(--o-field-label--label-font-size, props.get(core.$font-size--75)) !default; | 6 | $label-font-size: props.def( |
| 7 | $hint-font-size: props.def(--o-field-label--hint-font-size, props.get(core.$font-size--75)) !default; | 7 | --o-field-label--label-font-size, |
| 8 | props.get(core.$font-size--75) | ||
| 9 | ) !default; | ||
| 10 | $hint-font-size: props.def( | ||
| 11 | --o-field-label--hint-font-size, | ||
| 12 | props.get(core.$font-size--75) | ||
| 13 | ) !default; | ||
| 8 | 14 | ||
| 9 | $label-color: props.def(--o-field-label--label-color, props.get(core.$theme, --text-mute), 'color') !default; | 15 | $label-color: props.def( |
| 10 | $hint-color: props.def(--o-field-label--hint-color, props.get(core.$theme, --text-mute), 'color') !default; | 16 | --o-field-label--label-color, |
| 11 | $error-hint-color: props.def(--o-field-label--error-hint-color, props.get(core.$theme, --negative, --900), 'color') !default; | 17 | props.get(core.$theme, --text-mute), |
| 12 | $disabled-color: props.def(--o-field-label--disabled-color, props.get(core.$theme, --text-disabled), 'color') !default; | 18 | "color" |
| 19 | ) !default; | ||
| 20 | $hint-color: props.def( | ||
| 21 | --o-field-label--hint-color, | ||
| 22 | props.get(core.$theme, --text-mute), | ||
| 23 | "color" | ||
| 24 | ) !default; | ||
| 25 | $error-hint-color: props.def( | ||
| 26 | --o-field-label--error-hint-color, | ||
| 27 | props.get(core.$theme, --negative, --900), | ||
| 28 | "color" | ||
| 29 | ) !default; | ||
| 30 | $disabled-color: props.def( | ||
| 31 | --o-field-label--disabled-color, | ||
| 32 | props.get(core.$theme, --text-disabled), | ||
| 33 | "color" | ||
| 34 | ) !default; | ||
diff --git a/src/objects/_figure.scss b/src/objects/_figure.scss index 04b9bdf..d3e37b3 100644 --- a/src/objects/_figure.scss +++ b/src/objects/_figure.scss | |||
| @@ -1,25 +1,25 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'figure.vars'; | 6 | @forward "figure.vars"; |
| 7 | @use 'figure.vars' as vars; | 7 | @use "figure.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables('vars')); | 10 | @include materialize-at-root(meta.module-variables("vars")); |
| 11 | 11 | ||
| 12 | @include bem.object('figure') { | 12 | @include bem.object("figure") { |
| 13 | @include bem.elem('caption') { | 13 | @include bem.elem("caption") { |
| 14 | padding-block: props.get(vars.$pad-b); | 14 | padding-block: props.get(vars.$pad-b); |
| 15 | font-size: props.get(vars.$font-size); | 15 | font-size: props.get(vars.$font-size); |
| 16 | color: props.get(vars.$text-color); | 16 | color: props.get(vars.$text-color); |
| 17 | border-block-end: props.get(vars.$border-width) solid props.get(vars.$border-color); | 17 | border-block-end: props.get(vars.$border-width) solid props.get(vars.$border-color); |
| 18 | 18 | ||
| 19 | &::before { | 19 | &::before { |
| 20 | display: block; | 20 | display: block; |
| 21 | margin-block: -100em 100em; | 21 | margin-block: -100em 100em; |
| 22 | content: ''; | 22 | content: ""; |
| 23 | } | 23 | } |
| 24 | } | 24 | } |
| 25 | } | 25 | } |
diff --git a/src/objects/_figure.vars.scss b/src/objects/_figure.vars.scss index 3de3406..936932d 100644 --- a/src/objects/_figure.vars.scss +++ b/src/objects/_figure.vars.scss | |||
| @@ -1,9 +1,17 @@ | |||
| 1 | @use 'pkg:iro-sass/src/props'; | 1 | @use "pkg:iro-sass/props"; |
| 2 | @use '../core.vars' as core; | 2 | @use "../core.vars" as core; |
| 3 | 3 | ||
| 4 | $pad-b: props.def(--o-figure--pad-b, props.get(core.$size--100)) !default; | 4 | $pad-b: props.def(--o-figure--pad-b, props.get(core.$size--100)) !default; |
| 5 | $border-width: props.def(--o-figure--border-width, props.get(core.$border-width--thin)) !default; | 5 | $border-width: props.def(--o-figure--border-width, props.get(core.$border-width--thin)) !default; |
| 6 | $font-size: props.def(--o-figure--font-size, props.get(core.$font-size--100)) !default; | 6 | $font-size: props.def(--o-figure--font-size, props.get(core.$font-size--100)) !default; |
| 7 | 7 | ||
| 8 | $text-color: props.def(--o-figure--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 8 | $text-color: props.def( |
| 9 | $border-color: props.def(--o-figure--border-color, props.get(core.$theme, --border), 'color') !default; | 9 | --o-figure--text-color, |
| 10 | props.get(core.$theme, --text-mute-more), | ||
| 11 | "color" | ||
| 12 | ) !default; | ||
| 13 | $border-color: props.def( | ||
| 14 | --o-figure--border-color, | ||
| 15 | props.get(core.$theme, --border), | ||
| 16 | "color" | ||
| 17 | ) !default; | ||
diff --git a/src/objects/_heading.scss b/src/objects/_heading.scss index 0e8392e..87a6269 100644 --- a/src/objects/_heading.scss +++ b/src/objects/_heading.scss | |||
| @@ -1,64 +1,70 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:meta'; | 2 | @use "sass:meta"; |
| 3 | @use 'sass:string'; | 3 | @use "sass:string"; |
| 4 | @use 'pkg:iro-sass/src/bem'; | 4 | @use "pkg:iro-sass/bem"; |
| 5 | @use 'pkg:iro-sass/src/props'; | 5 | @use "pkg:iro-sass/props"; |
| 6 | @use '../props' as *; | 6 | @use "../props" as *; |
| 7 | 7 | ||
| 8 | @forward 'heading.vars'; | 8 | @forward "heading.vars"; |
| 9 | @use 'heading.vars' as vars; | 9 | @use "heading.vars" as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables('vars')); | 12 | @include materialize-at-root(meta.module-variables("vars")); |
| 13 | 13 | ||
| 14 | @include bem.object('heading') { | 14 | @include bem.object("heading") { |
| 15 | display: block; | 15 | display: block; |
| 16 | margin-block-start: props.get(vars.$margin-bs); | 16 | margin-block-start: props.get(vars.$margin-bs); |
| 17 | font-family: props.get(vars.$font-family); | 17 | font-family: props.get(vars.$font-family); |
| 18 | font-weight: props.get(vars.$font-weight); | 18 | font-weight: props.get(vars.$font-weight); |
| 19 | font-feature-settings: props.get(vars.$feature-settings); | 19 | font-feature-settings: props.get(vars.$feature-settings); |
| 20 | line-height: props.get(vars.$line-height); | 20 | line-height: props.get(vars.$line-height); |
| 21 | color: props.get(vars.$text-color); | 21 | color: props.get(vars.$text-color); |
| 22 | text-transform: props.get(vars.$text-transform); | 22 | text-transform: props.get(vars.$text-transform); |
| 23 | letter-spacing: normal; | 23 | letter-spacing: normal; |
| 24 | 24 | ||
| 25 | & + & { | 25 | & + & { |
| 26 | margin-block-start: props.get(vars.$margin-bs-sibling); | 26 | margin-block-start: props.get(vars.$margin-bs-sibling); |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | @include bem.elem('highlight') { | 29 | @include bem.elem("highlight") { |
| 30 | background-image: linear-gradient(to top, | 30 | background-image: linear-gradient( |
| 31 | transparent props.get(vars.$bg-start), | 31 | to top, |
| 32 | props.get(vars.$bg-color) props.get(vars.$bg-start), | 32 | transparent props.get(vars.$bg-start), |
| 33 | props.get(vars.$bg-color) props.get(vars.$bg-end), | 33 | props.get(vars.$bg-color) props.get(vars.$bg-start), |
| 34 | transparent props.get(vars.$bg-end)); | 34 | props.get(vars.$bg-color) props.get(vars.$bg-end), |
| 35 | transparent props.get(vars.$bg-end) | ||
| 36 | ); | ||
| 35 | } | 37 | } |
| 36 | 38 | ||
| 37 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, $feature-settings, $text-transform, $text-color in vars.$sizes { | 39 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, |
| 40 | $feature-settings, $text-transform, $text-color in vars.$sizes | ||
| 41 | { | ||
| 38 | @include bem.modifier($mod) { | 42 | @include bem.modifier($mod) { |
| 39 | font-family: props.get($font-family); | 43 | font-family: props.get($font-family); |
| 40 | font-size: props.get($font-size); | 44 | font-size: props.get($font-size); |
| 41 | font-weight: props.get($font-weight); | 45 | font-weight: props.get($font-weight); |
| 42 | font-feature-settings: props.get($feature-settings); | 46 | font-feature-settings: props.get($feature-settings); |
| 43 | line-height: props.get($line-height); | 47 | line-height: props.get($line-height); |
| 44 | color: props.get($text-color); | 48 | color: props.get($text-color); |
| 45 | text-transform: props.get($text-transform); | 49 | text-transform: props.get($text-transform); |
| 46 | letter-spacing: props.get($letter-spacing); | 50 | letter-spacing: props.get($letter-spacing); |
| 47 | } | 51 | } |
| 48 | } | 52 | } |
| 49 | 53 | ||
| 50 | @include bem.modifier('display') { | 54 | @include bem.modifier("display") { |
| 51 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, $feature-settings, $text-transform, $text-color in vars.$display--sizes { | 55 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, |
| 56 | $feature-settings, $text-transform, $text-color in vars.$display--sizes | ||
| 57 | { | ||
| 52 | @include bem.modifier($mod) { | 58 | @include bem.modifier($mod) { |
| 53 | font-family: props.get($font-family); | 59 | font-family: props.get($font-family); |
| 54 | font-size: props.get($font-size); | 60 | font-size: props.get($font-size); |
| 55 | font-weight: props.get($font-weight); | 61 | font-weight: props.get($font-weight); |
| 56 | font-feature-settings: props.get($feature-settings); | 62 | font-feature-settings: props.get($feature-settings); |
| 57 | line-height: props.get($line-height); | 63 | line-height: props.get($line-height); |
| 58 | color: props.get($text-color); | 64 | color: props.get($text-color); |
| 59 | text-transform: props.get($text-transform); | 65 | text-transform: props.get($text-transform); |
| 60 | letter-spacing: props.get($letter-spacing); | 66 | letter-spacing: props.get($letter-spacing); |
| 61 | transform: translateX(props.get(vars.$offset)); | 67 | transform: translateX(props.get(vars.$offset)); |
| 62 | } | 68 | } |
| 63 | } | 69 | } |
| 64 | } | 70 | } |
| @@ -73,18 +79,26 @@ | |||
| 73 | } | 79 | } |
| 74 | } | 80 | } |
| 75 | 81 | ||
| 76 | @include bem.elem('highlight') { | 82 | @include bem.elem("highlight") { |
| 77 | background-image: linear-gradient(to top, | 83 | background-image: linear-gradient( |
| 78 | transparent props.get(vars.$bg-start), | 84 | to top, |
| 79 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-start), | 85 | transparent props.get(vars.$bg-start), |
| 80 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-end), | 86 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-start), |
| 81 | transparent props.get(vars.$bg-end)); | 87 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-end), |
| 88 | transparent props.get(vars.$bg-end) | ||
| 89 | ); | ||
| 82 | } | 90 | } |
| 83 | 91 | ||
| 84 | @include bem.modifier('display') { | 92 | @include bem.modifier("display") { |
| 85 | @each $mod, $value in vars.$sizes { | 93 | @each $mod, $value in vars.$sizes { |
| 86 | @include bem.modifier($mod) { | 94 | @include bem.modifier($mod) { |
| 87 | color: props.get(vars.$static-themes, $theme, --display, --#{$mod}, --text-color); | 95 | color: props.get( |
| 96 | vars.$static-themes, | ||
| 97 | $theme, | ||
| 98 | --display, | ||
| 99 | --#{$mod}, | ||
| 100 | --text-color | ||
| 101 | ); | ||
| 88 | } | 102 | } |
| 89 | } | 103 | } |
| 90 | } | 104 | } |
diff --git a/src/objects/_heading.vars.scss b/src/objects/_heading.vars.scss index 4267b8c..8943622 100644 --- a/src/objects/_heading.vars.scss +++ b/src/objects/_heading.vars.scss | |||
| @@ -1,208 +1,472 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:string'; | 2 | @use "sass:string"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | $offset: props.def(--o-heading--offset, -.02em) !default; | 6 | $offset: props.def(--o-heading--offset, -0.02em) !default; |
| 7 | $margin-bs: props.def(--o-heading--margin-bs, props.get(core.$size--700)) !default; | 7 | $margin-bs: props.def(--o-heading--margin-bs, props.get(core.$size--700)) !default; |
| 8 | $margin-bs-sibling: props.def(--o-heading--margin-bs-sibling, props.get(core.$size--325)) !default; | 8 | $margin-bs-sibling: props.def(--o-heading--margin-bs-sibling, props.get(core.$size--325)) !default; |
| 9 | 9 | ||
| 10 | $text-color: props.def(--o-heading--text-color, props.get(core.$theme, --heading), 'color') !default; | 10 | $text-color: props.def( |
| 11 | $bg-color: props.def(--o-heading--bg-color, props.get(core.$theme, --base, --50), 'color') !default; | 11 | --o-heading--text-color, |
| 12 | props.get(core.$theme, --heading), | ||
| 13 | "color" | ||
| 14 | ) !default; | ||
| 15 | $bg-color: props.def(--o-heading--bg-color, props.get(core.$theme, --base, --50), "color") !default; | ||
| 12 | 16 | ||
| 13 | $text-color--xxl: props.def(--o-heading--xxl--text-color, props.get(core.$theme, --heading), 'color') !default; | 17 | $text-color--xxl: props.def( |
| 14 | $text-color--xl: props.def(--o-heading--xl--text-color, props.get($text-color--xxl), 'color') !default; | 18 | --o-heading--xxl--text-color, |
| 15 | $text-color--lg: props.def(--o-heading--lg--text-color, props.get($text-color--xxl), 'color') !default; | 19 | props.get(core.$theme, --heading), |
| 16 | $text-color--md: props.def(--o-heading--md--text-color, props.get($text-color--xxl), 'color') !default; | 20 | "color" |
| 17 | $text-color--sm: props.def(--o-heading--sm--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 21 | ) !default; |
| 18 | $text-color--xs: props.def(--o-heading--xs--text-color, props.get($text-color--sm), 'color') !default; | 22 | $text-color--xl: props.def( |
| 23 | --o-heading--xl--text-color, | ||
| 24 | props.get($text-color--xxl), | ||
| 25 | "color" | ||
| 26 | ) !default; | ||
| 27 | $text-color--lg: props.def( | ||
| 28 | --o-heading--lg--text-color, | ||
| 29 | props.get($text-color--xxl), | ||
| 30 | "color" | ||
| 31 | ) !default; | ||
| 32 | $text-color--md: props.def( | ||
| 33 | --o-heading--md--text-color, | ||
| 34 | props.get($text-color--xxl), | ||
| 35 | "color" | ||
| 36 | ) !default; | ||
| 37 | $text-color--sm: props.def( | ||
| 38 | --o-heading--sm--text-color, | ||
| 39 | props.get(core.$theme, --text-mute-more), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | $text-color--xs: props.def( | ||
| 43 | --o-heading--xs--text-color, | ||
| 44 | props.get($text-color--sm), | ||
| 45 | "color" | ||
| 46 | ) !default; | ||
| 19 | 47 | ||
| 20 | $display--text-color--xxl: props.def(--o-heading--display--xxl--text-color, props.get(core.$theme, --heading), 'color') !default; | 48 | $display--text-color--xxl: props.def( |
| 21 | $display--text-color--xl: props.def(--o-heading--display--xl--text-color, props.get($display--text-color--xxl), 'color') !default; | 49 | --o-heading--display--xxl--text-color, |
| 22 | $display--text-color--lg: props.def(--o-heading--display--lg--text-color, props.get($display--text-color--xxl), 'color') !default; | 50 | props.get(core.$theme, --heading), |
| 23 | $display--text-color--md: props.def(--o-heading--display--md--text-color, props.get($display--text-color--xxl), 'color') !default; | 51 | "color" |
| 24 | $display--text-color--sm: props.def(--o-heading--display--sm--text-color, props.get($display--text-color--xxl), 'color') !default; | 52 | ) !default; |
| 25 | $display--text-color--xs: props.def(--o-heading--display--xs--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 53 | $display--text-color--xl: props.def( |
| 54 | --o-heading--display--xl--text-color, | ||
| 55 | props.get($display--text-color--xxl), | ||
| 56 | "color" | ||
| 57 | ) !default; | ||
| 58 | $display--text-color--lg: props.def( | ||
| 59 | --o-heading--display--lg--text-color, | ||
| 60 | props.get($display--text-color--xxl), | ||
| 61 | "color" | ||
| 62 | ) !default; | ||
| 63 | $display--text-color--md: props.def( | ||
| 64 | --o-heading--display--md--text-color, | ||
| 65 | props.get($display--text-color--xxl), | ||
| 66 | "color" | ||
| 67 | ) !default; | ||
| 68 | $display--text-color--sm: props.def( | ||
| 69 | --o-heading--display--sm--text-color, | ||
| 70 | props.get($display--text-color--xxl), | ||
| 71 | "color" | ||
| 72 | ) !default; | ||
| 73 | $display--text-color--xs: props.def( | ||
| 74 | --o-heading--display--xs--text-color, | ||
| 75 | props.get(core.$theme, --text-mute-more), | ||
| 76 | "color" | ||
| 77 | ) !default; | ||
| 26 | 78 | ||
| 27 | $bg-start: props.def(--o-heading--bg-start, .05em) !default; | 79 | $bg-start: props.def(--o-heading--bg-start, 0.05em) !default; |
| 28 | $bg-end: props.def(--o-heading--bg-end, .5em) !default; | 80 | $bg-end: props.def(--o-heading--bg-end, 0.5em) !default; |
| 29 | 81 | ||
| 30 | $font-family: props.def(--o-heading--font-family, props.get(core.$font--standard--family)) !default; | 82 | $font-family: props.def(--o-heading--font-family, props.get(core.$font--standard--family)) !default; |
| 31 | $line-height: props.def(--o-heading--line-height, props.get(core.$font--standard--line-height)) !default; | 83 | $line-height: props.def( |
| 32 | $font-weight: props.def(--o-heading--font-weight, bold) !default; | 84 | --o-heading--line-height, |
| 33 | $feature-settings: props.def(--o-heading--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 85 | props.get(core.$font--standard--line-height) |
| 34 | $text-transform: props.def(--o-heading--text-transform, none) !default; | 86 | ) !default; |
| 87 | $font-weight: props.def(--o-heading--font-weight, bold) !default; | ||
| 88 | $feature-settings: props.def( | ||
| 89 | --o-heading--feature-settings, | ||
| 90 | props.get(core.$font--standard--feature-settings) | ||
| 91 | ) !default; | ||
| 92 | $text-transform: props.def(--o-heading--text-transform, none) !default; | ||
| 35 | 93 | ||
| 36 | $font-family--xxl: props.def(--o-heading--xxl--font-family, props.get(core.$font--standard--family)) !default; | 94 | $font-family--xxl: props.def( |
| 37 | $line-height--xxl: props.def(--o-heading--xxl--line-height, props.get(core.$font--standard--line-height)) !default; | 95 | --o-heading--xxl--font-family, |
| 38 | $font-size--xxl: props.def(--o-heading--xxl--font-size, props.get(core.$font-size--300)) !default; | 96 | props.get(core.$font--standard--family) |
| 39 | $font-weight--xxl: props.def(--o-heading--xxl--font-weight, bold) !default; | 97 | ) !default; |
| 40 | $letter-spacing--xxl: props.def(--o-heading--xxl--letter-spacing, 0) !default; | 98 | $line-height--xxl: props.def( |
| 41 | $feature-settings--xxl: props.def(--o-heading--xxl--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 99 | --o-heading--xxl--line-height, |
| 42 | $text-transform--xxl: props.def(--o-heading--xxl--text-transform, none) !default; | 100 | props.get(core.$font--standard--line-height) |
| 101 | ) !default; | ||
| 102 | $font-size--xxl: props.def(--o-heading--xxl--font-size, props.get(core.$font-size--300)) !default; | ||
| 103 | $font-weight--xxl: props.def(--o-heading--xxl--font-weight, bold) !default; | ||
| 104 | $letter-spacing--xxl: props.def(--o-heading--xxl--letter-spacing, 0) !default; | ||
| 105 | $feature-settings--xxl: props.def( | ||
| 106 | --o-heading--xxl--feature-settings, | ||
| 107 | props.get(core.$font--standard--feature-settings) | ||
| 108 | ) !default; | ||
| 109 | $text-transform--xxl: props.def(--o-heading--xxl--text-transform, none) !default; | ||
| 43 | 110 | ||
| 44 | $font-family--xl: props.def(--o-heading--xl--font-family, props.get(core.$font--standard--family)) !default; | 111 | $font-family--xl: props.def( |
| 45 | $line-height--xl: props.def(--o-heading--xl--line-height, props.get(core.$font--standard--line-height)) !default; | 112 | --o-heading--xl--font-family, |
| 46 | $font-size--xl: props.def(--o-heading--xl--font-size, props.get(core.$font-size--200)) !default; | 113 | props.get(core.$font--standard--family) |
| 47 | $font-weight--xl: props.def(--o-heading--xl--font-weight, bold) !default; | 114 | ) !default; |
| 48 | $letter-spacing--xl: props.def(--o-heading--xl--letter-spacing, 0) !default; | 115 | $line-height--xl: props.def( |
| 49 | $feature-settings--xl: props.def(--o-heading--xl--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 116 | --o-heading--xl--line-height, |
| 50 | $text-transform--xl: props.def(--o-heading--xl--text-transform, none) !default; | 117 | props.get(core.$font--standard--line-height) |
| 118 | ) !default; | ||
| 119 | $font-size--xl: props.def(--o-heading--xl--font-size, props.get(core.$font-size--200)) !default; | ||
| 120 | $font-weight--xl: props.def(--o-heading--xl--font-weight, bold) !default; | ||
| 121 | $letter-spacing--xl: props.def(--o-heading--xl--letter-spacing, 0) !default; | ||
| 122 | $feature-settings--xl: props.def( | ||
| 123 | --o-heading--xl--feature-settings, | ||
| 124 | props.get(core.$font--standard--feature-settings) | ||
| 125 | ) !default; | ||
| 126 | $text-transform--xl: props.def(--o-heading--xl--text-transform, none) !default; | ||
| 51 | 127 | ||
| 52 | $font-family--lg: props.def(--o-heading--lg--font-family, props.get(core.$font--standard--family)) !default; | 128 | $font-family--lg: props.def( |
| 53 | $line-height--lg: props.def(--o-heading--lg--line-height, props.get(core.$font--standard--line-height)) !default; | 129 | --o-heading--lg--font-family, |
| 54 | $font-size--lg: props.def(--o-heading--lg--font-size, props.get(core.$font-size--150)) !default; | 130 | props.get(core.$font--standard--family) |
| 55 | $font-weight--lg: props.def(--o-heading--lg--font-weight, bold) !default; | 131 | ) !default; |
| 56 | $letter-spacing--lg: props.def(--o-heading--lg--letter-spacing, 0) !default; | 132 | $line-height--lg: props.def( |
| 57 | $feature-settings--lg: props.def(--o-heading--lg--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 133 | --o-heading--lg--line-height, |
| 58 | $text-transform--lg: props.def(--o-heading--lg--text-transform, none) !default; | 134 | props.get(core.$font--standard--line-height) |
| 135 | ) !default; | ||
| 136 | $font-size--lg: props.def(--o-heading--lg--font-size, props.get(core.$font-size--150)) !default; | ||
| 137 | $font-weight--lg: props.def(--o-heading--lg--font-weight, bold) !default; | ||
| 138 | $letter-spacing--lg: props.def(--o-heading--lg--letter-spacing, 0) !default; | ||
| 139 | $feature-settings--lg: props.def( | ||
| 140 | --o-heading--lg--feature-settings, | ||
| 141 | props.get(core.$font--standard--feature-settings) | ||
| 142 | ) !default; | ||
| 143 | $text-transform--lg: props.def(--o-heading--lg--text-transform, none) !default; | ||
| 59 | 144 | ||
| 60 | $font-family--md: props.def(--o-heading--md--font-family, props.get(core.$font--standard--family)) !default; | 145 | $font-family--md: props.def( |
| 61 | $line-height--md: props.def(--o-heading--md--line-height, props.get(core.$font--standard--line-height)) !default; | 146 | --o-heading--md--font-family, |
| 62 | $font-size--md: props.def(--o-heading--md--font-size, props.get(core.$font-size--100)) !default; | 147 | props.get(core.$font--standard--family) |
| 63 | $font-weight--md: props.def(--o-heading--md--font-weight, bold) !default; | 148 | ) !default; |
| 64 | $letter-spacing--md: props.def(--o-heading--md--letter-spacing, 0) !default; | 149 | $line-height--md: props.def( |
| 65 | $feature-settings--md: props.def(--o-heading--md--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 150 | --o-heading--md--line-height, |
| 66 | $text-transform--md: props.def(--o-heading--md--text-transform, none) !default; | 151 | props.get(core.$font--standard--line-height) |
| 152 | ) !default; | ||
| 153 | $font-size--md: props.def(--o-heading--md--font-size, props.get(core.$font-size--100)) !default; | ||
| 154 | $font-weight--md: props.def(--o-heading--md--font-weight, bold) !default; | ||
| 155 | $letter-spacing--md: props.def(--o-heading--md--letter-spacing, 0) !default; | ||
| 156 | $feature-settings--md: props.def( | ||
| 157 | --o-heading--md--feature-settings, | ||
| 158 | props.get(core.$font--standard--feature-settings) | ||
| 159 | ) !default; | ||
| 160 | $text-transform--md: props.def(--o-heading--md--text-transform, none) !default; | ||
| 67 | 161 | ||
| 68 | $font-family--sm: props.def(--o-heading--sm--font-family, props.get(core.$font--standard--family)) !default; | 162 | $font-family--sm: props.def( |
| 69 | $line-height--sm: props.def(--o-heading--sm--line-height, props.get(core.$font--standard--line-height)) !default; | 163 | --o-heading--sm--font-family, |
| 70 | $font-size--sm: props.def(--o-heading--sm--font-size, props.get(core.$font-size--100)) !default; | 164 | props.get(core.$font--standard--family) |
| 71 | $font-weight--sm: props.def(--o-heading--sm--font-weight, normal) !default; | 165 | ) !default; |
| 72 | $letter-spacing--sm: props.def(--o-heading--sm--letter-spacing, 0) !default; | 166 | $line-height--sm: props.def( |
| 73 | $feature-settings--sm: props.def(--o-heading--sm--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 167 | --o-heading--sm--line-height, |
| 74 | $text-transform--sm: props.def(--o-heading--sm--text-transform, none) !default; | 168 | props.get(core.$font--standard--line-height) |
| 169 | ) !default; | ||
| 170 | $font-size--sm: props.def(--o-heading--sm--font-size, props.get(core.$font-size--100)) !default; | ||
| 171 | $font-weight--sm: props.def(--o-heading--sm--font-weight, normal) !default; | ||
| 172 | $letter-spacing--sm: props.def(--o-heading--sm--letter-spacing, 0) !default; | ||
| 173 | $feature-settings--sm: props.def( | ||
| 174 | --o-heading--sm--feature-settings, | ||
| 175 | props.get(core.$font--standard--feature-settings) | ||
| 176 | ) !default; | ||
| 177 | $text-transform--sm: props.def(--o-heading--sm--text-transform, none) !default; | ||
| 75 | 178 | ||
| 76 | $font-family--xs: props.def(--o-heading--xs--font-family, props.get(core.$font--standard--family)) !default; | 179 | $font-family--xs: props.def( |
| 77 | $line-height--xs: props.def(--o-heading--xs--line-height, props.get(core.$font--standard--line-height)) !default; | 180 | --o-heading--xs--font-family, |
| 78 | $font-size--xs: props.def(--o-heading--xs--font-size, props.get(core.$font-size--50)) !default; | 181 | props.get(core.$font--standard--family) |
| 79 | $font-weight--xs: props.def(--o-heading--xs--font-weight, normal) !default; | 182 | ) !default; |
| 80 | $letter-spacing--xs: props.def(--o-heading--xs--letter-spacing, 1px) !default; | 183 | $line-height--xs: props.def( |
| 81 | $feature-settings--xs: props.def(--o-heading--xs--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 184 | --o-heading--xs--line-height, |
| 82 | $text-transform--xs: props.def(--o-heading--xs--text-transform, none) !default; | 185 | props.get(core.$font--standard--line-height) |
| 186 | ) !default; | ||
| 187 | $font-size--xs: props.def(--o-heading--xs--font-size, props.get(core.$font-size--50)) !default; | ||
| 188 | $font-weight--xs: props.def(--o-heading--xs--font-weight, normal) !default; | ||
| 189 | $letter-spacing--xs: props.def(--o-heading--xs--letter-spacing, 1px) !default; | ||
| 190 | $feature-settings--xs: props.def( | ||
| 191 | --o-heading--xs--feature-settings, | ||
| 192 | props.get(core.$font--standard--feature-settings) | ||
| 193 | ) !default; | ||
| 194 | $text-transform--xs: props.def(--o-heading--xs--text-transform, none) !default; | ||
| 83 | 195 | ||
| 84 | $sizes: ( | 196 | $sizes: ( |
| 85 | 'xs' $font-family--xs $line-height--xs $font-size--xs $font-weight--xs $letter-spacing--xs $feature-settings--xs $text-transform--xs $text-color--xs, | 197 | "xs" $font-family--xs $line-height--xs $font-size--xs $font-weight--xs $letter-spacing--xs |
| 86 | 'sm' $font-family--sm $line-height--sm $font-size--sm $font-weight--sm $letter-spacing--sm $feature-settings--sm $text-transform--sm $text-color--sm, | 198 | $feature-settings--xs $text-transform--xs $text-color--xs, |
| 87 | 'md' $font-family--md $line-height--md $font-size--md $font-weight--md $letter-spacing--md $feature-settings--md $text-transform--md $text-color--md, | 199 | "sm" $font-family--sm $line-height--sm $font-size--sm $font-weight--sm $letter-spacing--sm |
| 88 | 'lg' $font-family--lg $line-height--lg $font-size--lg $font-weight--lg $letter-spacing--lg $feature-settings--lg $text-transform--lg $text-color--lg, | 200 | $feature-settings--sm $text-transform--sm $text-color--sm, |
| 89 | 'xl' $font-family--xl $line-height--xl $font-size--xl $font-weight--xl $letter-spacing--xl $feature-settings--xl $text-transform--xl $text-color--xl, | 201 | "md" $font-family--md $line-height--md $font-size--md $font-weight--md $letter-spacing--md |
| 90 | 'xxl' $font-family--xxl $line-height--xxl $font-size--xxl $font-weight--xxl $letter-spacing--xxl $feature-settings--xxl $text-transform--xxl $text-color--xxl, | 202 | $feature-settings--md $text-transform--md $text-color--md, |
| 203 | "lg" $font-family--lg $line-height--lg $font-size--lg $font-weight--lg $letter-spacing--lg | ||
| 204 | $feature-settings--lg $text-transform--lg $text-color--lg, | ||
| 205 | "xl" $font-family--xl $line-height--xl $font-size--xl $font-weight--xl $letter-spacing--xl | ||
| 206 | $feature-settings--xl $text-transform--xl $text-color--xl, | ||
| 207 | "xxl" $font-family--xxl $line-height--xxl $font-size--xxl $font-weight--xxl $letter-spacing--xxl | ||
| 208 | $feature-settings--xxl $text-transform--xxl $text-color--xxl | ||
| 91 | ) !default; | 209 | ) !default; |
| 92 | 210 | ||
| 93 | $display--font-family--xxl: props.def(--o-heading--display--xxl--font-family, props.get(core.$font--headline--family)) !default; | 211 | $display--font-family--xxl: props.def( |
| 94 | $display--line-height--xxl: props.def(--o-heading--display--xxl--line-height, props.get(core.$font--headline--line-height)) !default; | 212 | --o-heading--display--xxl--font-family, |
| 95 | $display--font-size--xxl: props.def(--o-heading--display--xxl--font-size, props.get(core.$font-size--1100)) !default; | 213 | props.get(core.$font--headline--family) |
| 96 | $display--font-weight--xxl: props.def(--o-heading--display--xxl--font-weight, props.get(core.$font--headline--weight)) !default; | 214 | ) !default; |
| 97 | $display--letter-spacing--xxl: props.def(--o-heading--display--xxl--letter-spacing, 0) !default; | 215 | $display--line-height--xxl: props.def( |
| 98 | $display--feature-settings--xxl: props.def(--o-heading--display--xxl--feature-settings, props.get(core.$font--headline--feature-settings)) !default; | 216 | --o-heading--display--xxl--line-height, |
| 99 | $display--text-transform--xxl: props.def(--o-heading--display--xxl--text-transform, none) !default; | 217 | props.get(core.$font--headline--line-height) |
| 218 | ) !default; | ||
| 219 | $display--font-size--xxl: props.def( | ||
| 220 | --o-heading--display--xxl--font-size, | ||
| 221 | props.get(core.$font-size--1100) | ||
| 222 | ) !default; | ||
| 223 | $display--font-weight--xxl: props.def( | ||
| 224 | --o-heading--display--xxl--font-weight, | ||
| 225 | props.get(core.$font--headline--weight) | ||
| 226 | ) !default; | ||
| 227 | $display--letter-spacing--xxl: props.def(--o-heading--display--xxl--letter-spacing, 0) !default; | ||
| 228 | $display--feature-settings--xxl: props.def( | ||
| 229 | --o-heading--display--xxl--feature-settings, | ||
| 230 | props.get(core.$font--headline--feature-settings) | ||
| 231 | ) !default; | ||
| 232 | $display--text-transform--xxl: props.def(--o-heading--display--xxl--text-transform, none) !default; | ||
| 100 | 233 | ||
| 101 | $display--font-family--xl: props.def(--o-heading--display--xl--font-family, props.get(core.$font--headline--family)) !default; | 234 | $display--font-family--xl: props.def( |
| 102 | $display--line-height--xl: props.def(--o-heading--display--xl--line-height, props.get(core.$font--headline--line-height)) !default; | 235 | --o-heading--display--xl--font-family, |
| 103 | $display--font-size--xl: props.def(--o-heading--display--xl--font-size, props.get(core.$font-size--700)) !default; | 236 | props.get(core.$font--headline--family) |
| 104 | $display--font-weight--xl: props.def(--o-heading--display--xl--font-weight, props.get(core.$font--headline--weight)) !default; | 237 | ) !default; |
| 105 | $display--letter-spacing--xl: props.def(--o-heading--display--xl--letter-spacing, 0) !default; | 238 | $display--line-height--xl: props.def( |
| 106 | $display--feature-settings--xl: props.def(--o-heading--display--xl--feature-settings, props.get(core.$font--headline--feature-settings)) !default; | 239 | --o-heading--display--xl--line-height, |
| 107 | $display--text-transform--xl: props.def(--o-heading--display--xl--text-transform, none) !default; | 240 | props.get(core.$font--headline--line-height) |
| 241 | ) !default; | ||
| 242 | $display--font-size--xl: props.def( | ||
| 243 | --o-heading--display--xl--font-size, | ||
| 244 | props.get(core.$font-size--700) | ||
| 245 | ) !default; | ||
| 246 | $display--font-weight--xl: props.def( | ||
| 247 | --o-heading--display--xl--font-weight, | ||
| 248 | props.get(core.$font--headline--weight) | ||
| 249 | ) !default; | ||
| 250 | $display--letter-spacing--xl: props.def(--o-heading--display--xl--letter-spacing, 0) !default; | ||
| 251 | $display--feature-settings--xl: props.def( | ||
| 252 | --o-heading--display--xl--feature-settings, | ||
| 253 | props.get(core.$font--headline--feature-settings) | ||
| 254 | ) !default; | ||
| 255 | $display--text-transform--xl: props.def(--o-heading--display--xl--text-transform, none) !default; | ||
| 108 | 256 | ||
| 109 | $display--font-family--lg: props.def(--o-heading--display--lg--font-family, props.get(core.$font--headline--family)) !default; | 257 | $display--font-family--lg: props.def( |
| 110 | $display--line-height--lg: props.def(--o-heading--display--lg--line-height, props.get(core.$font--headline--line-height)) !default; | 258 | --o-heading--display--lg--font-family, |
| 111 | $display--font-size--lg: props.def(--o-heading--display--lg--font-size, props.get(core.$font-size--300)) !default; | 259 | props.get(core.$font--headline--family) |
| 112 | $display--font-weight--lg: props.def(--o-heading--display--lg--font-weight, props.get(core.$font--headline--weight)) !default; | 260 | ) !default; |
| 113 | $display--letter-spacing--lg: props.def(--o-heading--display--lg--letter-spacing, 1px) !default; | 261 | $display--line-height--lg: props.def( |
| 114 | $display--feature-settings--lg: props.def(--o-heading--display--lg--feature-settings, props.get(core.$font--headline--feature-settings)) !default; | 262 | --o-heading--display--lg--line-height, |
| 115 | $display--text-transform--lg: props.def(--o-heading--display--lg--text-transform, uppercase) !default; | 263 | props.get(core.$font--headline--line-height) |
| 264 | ) !default; | ||
| 265 | $display--font-size--lg: props.def( | ||
| 266 | --o-heading--display--lg--font-size, | ||
| 267 | props.get(core.$font-size--300) | ||
| 268 | ) !default; | ||
| 269 | $display--font-weight--lg: props.def( | ||
| 270 | --o-heading--display--lg--font-weight, | ||
| 271 | props.get(core.$font--headline--weight) | ||
| 272 | ) !default; | ||
| 273 | $display--letter-spacing--lg: props.def(--o-heading--display--lg--letter-spacing, 1px) !default; | ||
| 274 | $display--feature-settings--lg: props.def( | ||
| 275 | --o-heading--display--lg--feature-settings, | ||
| 276 | props.get(core.$font--headline--feature-settings) | ||
| 277 | ) !default; | ||
| 278 | $display--text-transform--lg: props.def( | ||
| 279 | --o-heading--display--lg--text-transform, | ||
| 280 | uppercase | ||
| 281 | ) !default; | ||
| 116 | 282 | ||
| 117 | $display--font-family--md: props.def(--o-heading--display--md--font-family, props.get(core.$font--standard--family)) !default; | 283 | $display--font-family--md: props.def( |
| 118 | $display--line-height--md: props.def(--o-heading--display--md--line-height, props.get(core.$font--standard--line-height)) !default; | 284 | --o-heading--display--md--font-family, |
| 119 | $display--font-size--md: props.def(--o-heading--display--md--font-size, props.get(core.$font-size--150)) !default; | 285 | props.get(core.$font--standard--family) |
| 120 | $display--font-weight--md: props.def(--o-heading--display--md--font-weight, bold) !default; | 286 | ) !default; |
| 121 | $display--letter-spacing--md: props.def(--o-heading--display--md--letter-spacing, 0) !default; | 287 | $display--line-height--md: props.def( |
| 122 | $display--feature-settings--md: props.def(--o-heading--display--md--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 288 | --o-heading--display--md--line-height, |
| 123 | $display--text-transform--md: props.def(--o-heading--display--md--text-transform, none) !default; | 289 | props.get(core.$font--standard--line-height) |
| 290 | ) !default; | ||
| 291 | $display--font-size--md: props.def( | ||
| 292 | --o-heading--display--md--font-size, | ||
| 293 | props.get(core.$font-size--150) | ||
| 294 | ) !default; | ||
| 295 | $display--font-weight--md: props.def(--o-heading--display--md--font-weight, bold) !default; | ||
| 296 | $display--letter-spacing--md: props.def(--o-heading--display--md--letter-spacing, 0) !default; | ||
| 297 | $display--feature-settings--md: props.def( | ||
| 298 | --o-heading--display--md--feature-settings, | ||
| 299 | props.get(core.$font--standard--feature-settings) | ||
| 300 | ) !default; | ||
| 301 | $display--text-transform--md: props.def(--o-heading--display--md--text-transform, none) !default; | ||
| 124 | 302 | ||
| 125 | $display--font-family--sm: props.def(--o-heading--display--sm--font-family, props.get(core.$font--standard--family)) !default; | 303 | $display--font-family--sm: props.def( |
| 126 | $display--line-height--sm: props.def(--o-heading--display--sm--line-height, props.get(core.$font--standard--line-height)) !default; | 304 | --o-heading--display--sm--font-family, |
| 127 | $display--font-size--sm: props.def(--o-heading--display--sm--font-size, props.get(core.$font-size--100)) !default; | 305 | props.get(core.$font--standard--family) |
| 128 | $display--font-weight--sm: props.def(--o-heading--display--sm--font-weight, bold) !default; | 306 | ) !default; |
| 129 | $display--letter-spacing--sm: props.def(--o-heading--display--sm--letter-spacing, 0) !default; | 307 | $display--line-height--sm: props.def( |
| 130 | $display--feature-settings--sm: props.def(--o-heading--display--sm--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 308 | --o-heading--display--sm--line-height, |
| 131 | $display--text-transform--sm: props.def(--o-heading--display--sm--text-transform, none) !default; | 309 | props.get(core.$font--standard--line-height) |
| 310 | ) !default; | ||
| 311 | $display--font-size--sm: props.def( | ||
| 312 | --o-heading--display--sm--font-size, | ||
| 313 | props.get(core.$font-size--100) | ||
| 314 | ) !default; | ||
| 315 | $display--font-weight--sm: props.def(--o-heading--display--sm--font-weight, bold) !default; | ||
| 316 | $display--letter-spacing--sm: props.def(--o-heading--display--sm--letter-spacing, 0) !default; | ||
| 317 | $display--feature-settings--sm: props.def( | ||
| 318 | --o-heading--display--sm--feature-settings, | ||
| 319 | props.get(core.$font--standard--feature-settings) | ||
| 320 | ) !default; | ||
| 321 | $display--text-transform--sm: props.def(--o-heading--display--sm--text-transform, none) !default; | ||
| 132 | 322 | ||
| 133 | $display--font-family--xs: props.def(--o-heading--display--xs--font-family, props.get(core.$font--standard--family)) !default; | 323 | $display--font-family--xs: props.def( |
| 134 | $display--line-height--xs: props.def(--o-heading--display--xs--line-height, props.get(core.$font--standard--line-height)) !default; | 324 | --o-heading--display--xs--font-family, |
| 135 | $display--font-size--xs: props.def(--o-heading--display--xs--font-size, props.get(core.$font-size--50)) !default; | 325 | props.get(core.$font--standard--family) |
| 136 | $display--font-weight--xs: props.def(--o-heading--display--xs--font-weight, normal) !default; | 326 | ) !default; |
| 137 | $display--letter-spacing--xs: props.def(--o-heading--display--xs--letter-spacing, 1px) !default; | 327 | $display--line-height--xs: props.def( |
| 138 | $display--feature-settings--xs: props.def(--o-heading--display--xs--feature-settings, props.get(core.$font--standard--feature-settings)) !default; | 328 | --o-heading--display--xs--line-height, |
| 139 | $display--text-transform--xs: props.def(--o-heading--display--xs--text-transform, none) !default; | 329 | props.get(core.$font--standard--line-height) |
| 330 | ) !default; | ||
| 331 | $display--font-size--xs: props.def( | ||
| 332 | --o-heading--display--xs--font-size, | ||
| 333 | props.get(core.$font-size--50) | ||
| 334 | ) !default; | ||
| 335 | $display--font-weight--xs: props.def(--o-heading--display--xs--font-weight, normal) !default; | ||
| 336 | $display--letter-spacing--xs: props.def(--o-heading--display--xs--letter-spacing, 1px) !default; | ||
| 337 | $display--feature-settings--xs: props.def( | ||
| 338 | --o-heading--display--xs--feature-settings, | ||
| 339 | props.get(core.$font--standard--feature-settings) | ||
| 340 | ) !default; | ||
| 341 | $display--text-transform--xs: props.def(--o-heading--display--xs--text-transform, none) !default; | ||
| 140 | 342 | ||
| 141 | $display--font-size--xxl--md: props.def(--o-heading--display--xxl--font-size, props.get(core.$font-size--900), 'md') !default; | 343 | $display--font-size--xxl--md: props.def( |
| 142 | $display--font-size--xl--md: props.def(--o-heading--display--xl--font-size, props.get(core.$font-size--600), 'md') !default; | 344 | --o-heading--display--xxl--font-size, |
| 143 | $display--font-size--lg--md: props.def(--o-heading--display--lg--font-size, props.get(core.$font-size--200), 'md') !default; | 345 | props.get(core.$font-size--900), |
| 144 | $display--font-size--md--md: props.def(--o-heading--display--md--font-size, props.get(core.$font-size--100), 'md') !default; | 346 | "md" |
| 145 | $display--font-size--sm--md: props.def(--o-heading--display--sm--font-size, props.get(core.$font-size--75), 'md') !default; | 347 | ) !default; |
| 146 | $display--font-size--xs--md: props.def(--o-heading--display--xs--font-size, props.get(core.$font-size--50), 'md') !default; | 348 | $display--font-size--xl--md: props.def( |
| 349 | --o-heading--display--xl--font-size, | ||
| 350 | props.get(core.$font-size--600), | ||
| 351 | "md" | ||
| 352 | ) !default; | ||
| 353 | $display--font-size--lg--md: props.def( | ||
| 354 | --o-heading--display--lg--font-size, | ||
| 355 | props.get(core.$font-size--200), | ||
| 356 | "md" | ||
| 357 | ) !default; | ||
| 358 | $display--font-size--md--md: props.def( | ||
| 359 | --o-heading--display--md--font-size, | ||
| 360 | props.get(core.$font-size--100), | ||
| 361 | "md" | ||
| 362 | ) !default; | ||
| 363 | $display--font-size--sm--md: props.def( | ||
| 364 | --o-heading--display--sm--font-size, | ||
| 365 | props.get(core.$font-size--75), | ||
| 366 | "md" | ||
| 367 | ) !default; | ||
| 368 | $display--font-size--xs--md: props.def( | ||
| 369 | --o-heading--display--xs--font-size, | ||
| 370 | props.get(core.$font-size--50), | ||
| 371 | "md" | ||
| 372 | ) !default; | ||
| 147 | 373 | ||
| 148 | $display--sizes: ( | 374 | $display--sizes: ( |
| 149 | 'xs' $display--font-family--xs $display--line-height--xs $display--font-size--xs $display--font-weight--xs $display--letter-spacing--xs $display--feature-settings--xs $display--text-transform--xs $display--text-color--xs, | 375 | "xs" $display--font-family--xs $display--line-height--xs $display--font-size--xs |
| 150 | 'sm' $display--font-family--sm $display--line-height--sm $display--font-size--sm $display--font-weight--sm $display--letter-spacing--sm $display--feature-settings--sm $display--text-transform--sm $display--text-color--sm, | 376 | $display--font-weight--xs $display--letter-spacing--xs $display--feature-settings--xs |
| 151 | 'md' $display--font-family--md $display--line-height--md $display--font-size--md $display--font-weight--md $display--letter-spacing--md $display--feature-settings--md $display--text-transform--md $display--text-color--md, | 377 | $display--text-transform--xs $display--text-color--xs, |
| 152 | 'lg' $display--font-family--lg $display--line-height--lg $display--font-size--lg $display--font-weight--lg $display--letter-spacing--lg $display--feature-settings--lg $display--text-transform--lg $display--text-color--lg, | 378 | "sm" $display--font-family--sm $display--line-height--sm $display--font-size--sm |
| 153 | 'xl' $display--font-family--xl $display--line-height--xl $display--font-size--xl $display--font-weight--xl $display--letter-spacing--xl $display--feature-settings--xl $display--text-transform--xl $display--text-color--xl, | 379 | $display--font-weight--sm $display--letter-spacing--sm $display--feature-settings--sm |
| 154 | 'xxl' $display--font-family--xxl $display--line-height--xxl $display--font-size--xxl $display--font-weight--xxl $display--letter-spacing--xxl $display--feature-settings--xxl $display--text-transform--xxl $display--text-color--xxl, | 380 | $display--text-transform--sm $display--text-color--sm, |
| 381 | "md" $display--font-family--md $display--line-height--md $display--font-size--md | ||
| 382 | $display--font-weight--md $display--letter-spacing--md $display--feature-settings--md | ||
| 383 | $display--text-transform--md $display--text-color--md, | ||
| 384 | "lg" $display--font-family--lg $display--line-height--lg $display--font-size--lg | ||
| 385 | $display--font-weight--lg $display--letter-spacing--lg $display--feature-settings--lg | ||
| 386 | $display--text-transform--lg $display--text-color--lg, | ||
| 387 | "xl" $display--font-family--xl $display--line-height--xl $display--font-size--xl | ||
| 388 | $display--font-weight--xl $display--letter-spacing--xl $display--feature-settings--xl | ||
| 389 | $display--text-transform--xl $display--text-color--xl, | ||
| 390 | "xxl" $display--font-family--xxl $display--line-height--xxl $display--font-size--xxl | ||
| 391 | $display--font-weight--xxl $display--letter-spacing--xxl $display--feature-settings--xxl | ||
| 392 | $display--text-transform--xxl $display--text-color--xxl | ||
| 155 | ) !default; | 393 | ) !default; |
| 156 | 394 | ||
| 157 | $static-themes: props.def(--o-heading, (), 'color'); | 395 | $static-themes: props.def(--o-heading, (), "color"); |
| 158 | 396 | ||
| 159 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 397 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 160 | $heading-theme: --static-#{string.slice($theme, 3)}; | 398 | $heading-theme: --static-#{string.slice($theme, 3)}; |
| 161 | 399 | ||
| 162 | $static-themes: props.merge($static-themes, ( | 400 | $static-themes: props.merge( |
| 163 | $heading-theme: ( | 401 | $static-themes, |
| 164 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 402 | ( |
| 165 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 403 | $heading-theme: ( |
| 166 | 404 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | |
| 167 | --xxl: ( | ||
| 168 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 169 | ), | ||
| 170 | --xl: ( | ||
| 171 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 172 | ), | ||
| 173 | --lg: ( | ||
| 174 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 175 | ), | ||
| 176 | --md: ( | ||
| 177 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 178 | ), | ||
| 179 | --sm: ( | ||
| 180 | --text-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 181 | ), | ||
| 182 | --xs: ( | ||
| 183 | --text-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 184 | ), | ||
| 185 | |||
| 186 | --display: ( | ||
| 187 | --xxl: ( | ||
| 188 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 405 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 406 | --xxl: ( | ||
| 407 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 408 | ), | ||
| 409 | --xl: ( | ||
| 410 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 411 | ), | ||
| 412 | --lg: ( | ||
| 413 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 414 | ), | ||
| 415 | --md: ( | ||
| 416 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 417 | ), | ||
| 418 | --sm: ( | ||
| 419 | --text-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 420 | ), | ||
| 421 | --xs: ( | ||
| 422 | --text-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 423 | ), | ||
| 424 | |||
| 425 | --display: ( | ||
| 426 | --xxl: ( | ||
| 427 | --text-color: props.get( | ||
| 428 | core.$transparent-colors, | ||
| 429 | $theme, | ||
| 430 | --900 | ||
| 431 | ), | ||
| 432 | ), | ||
| 433 | --xl: ( | ||
| 434 | --text-color: props.get( | ||
| 435 | core.$transparent-colors, | ||
| 436 | $theme, | ||
| 437 | --900 | ||
| 438 | ), | ||
| 439 | ), | ||
| 440 | --lg: ( | ||
| 441 | --text-color: props.get( | ||
| 442 | core.$transparent-colors, | ||
| 443 | $theme, | ||
| 444 | --900 | ||
| 445 | ), | ||
| 446 | ), | ||
| 447 | --md: ( | ||
| 448 | --text-color: props.get( | ||
| 449 | core.$transparent-colors, | ||
| 450 | $theme, | ||
| 451 | --900 | ||
| 452 | ), | ||
| 453 | ), | ||
| 454 | --sm: ( | ||
| 455 | --text-color: props.get( | ||
| 456 | core.$transparent-colors, | ||
| 457 | $theme, | ||
| 458 | --900 | ||
| 459 | ), | ||
| 460 | ), | ||
| 461 | --xs: ( | ||
| 462 | --text-color: props.get( | ||
| 463 | core.$transparent-colors, | ||
| 464 | $theme, | ||
| 465 | --500 | ||
| 466 | ), | ||
| 467 | ), | ||
| 468 | ), | ||
| 189 | ), | 469 | ), |
| 190 | --xl: ( | ||
| 191 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 192 | ), | ||
| 193 | --lg: ( | ||
| 194 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 195 | ), | ||
| 196 | --md: ( | ||
| 197 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 198 | ), | ||
| 199 | --sm: ( | ||
| 200 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 201 | ), | ||
| 202 | --xs: ( | ||
| 203 | --text-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 204 | ), | ||
| 205 | ), | ||
| 206 | ) | 470 | ) |
| 207 | )); | 471 | ); |
| 208 | } | 472 | } |
diff --git a/src/objects/_icon.scss b/src/objects/_icon.scss index 1d046e0..7baa3f8 100644 --- a/src/objects/_icon.scss +++ b/src/objects/_icon.scss | |||
| @@ -1,24 +1,24 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'icon.vars'; | 6 | @forward "icon.vars"; |
| 7 | @use 'icon.vars' as vars; | 7 | @use "icon.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables('vars')); | 10 | @include materialize-at-root(meta.module-variables("vars")); |
| 11 | 11 | ||
| 12 | @include bem.object('icon') { | 12 | @include bem.object("icon") { |
| 13 | display: inline; | 13 | display: inline; |
| 14 | inline-size: props.get(vars.$size); | 14 | inline-size: props.get(vars.$size); |
| 15 | block-size: props.get(vars.$size); | 15 | block-size: props.get(vars.$size); |
| 16 | vertical-align: props.get(vars.$valign); | 16 | vertical-align: props.get(vars.$valign); |
| 17 | stroke-width: props.get(vars.$stroke-width); | 17 | stroke-width: props.get(vars.$stroke-width); |
| 18 | stroke-linecap: round; | 18 | stroke-linecap: round; |
| 19 | stroke-linejoin: round; | 19 | stroke-linejoin: round; |
| 20 | 20 | ||
| 21 | @include bem.modifier('block') { | 21 | @include bem.modifier("block") { |
| 22 | display: block; | 22 | display: block; |
| 23 | } | 23 | } |
| 24 | } | 24 | } |
diff --git a/src/objects/_icon.vars.scss b/src/objects/_icon.vars.scss index 2a37212..4fdbfae 100644 --- a/src/objects/_icon.vars.scss +++ b/src/objects/_icon.vars.scss | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | @use 'pkg:iro-sass/src/props'; | 1 | @use "pkg:iro-sass/props"; |
| 2 | 2 | ||
| 3 | $stroke-width: props.def(--o-icon--stroke-width, 1.5px) !default; | 3 | $stroke-width: props.def(--o-icon--stroke-width, 1.5px) !default; |
| 4 | $size: props.def(--o-icon--size, calc(1 / 14 * 16em)) !default; | 4 | $size: props.def(--o-icon--size, calc(1 / 14 * 16em)) !default; |
| 5 | $valign: props.def(--o-icon--valign, -.18em) !default; | 5 | $valign: props.def(--o-icon--valign, -0.18em) !default; |
diff --git a/src/objects/_lightbox.scss b/src/objects/_lightbox.scss index a173d57..2b4abad 100644 --- a/src/objects/_lightbox.scss +++ b/src/objects/_lightbox.scss | |||
| @@ -1,40 +1,40 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:meta'; | 2 | @use "sass:meta"; |
| 3 | @use 'sass:string'; | 3 | @use "sass:string"; |
| 4 | @use 'pkg:iro-sass/src/bem'; | 4 | @use "pkg:iro-sass/bem"; |
| 5 | @use 'pkg:iro-sass/src/props'; | 5 | @use "pkg:iro-sass/props"; |
| 6 | @use '../props' as *; | 6 | @use "../props" as *; |
| 7 | 7 | ||
| 8 | @forward 'lightbox.vars'; | 8 | @forward "lightbox.vars"; |
| 9 | @use 'lightbox.vars' as vars; | 9 | @use "lightbox.vars" as vars; |
| 10 | 10 | ||
| 11 | @use 'button.vars' as button; | 11 | @use "button.vars" as button; |
| 12 | @use 'backdrop.vars' as backdrop; | 12 | @use "backdrop.vars" as backdrop; |
| 13 | @use 'thumbnail.vars' as thumbnail; | 13 | @use "thumbnail.vars" as thumbnail; |
| 14 | 14 | ||
| 15 | @mixin styles { | 15 | @mixin styles { |
| 16 | @include materialize-at-root(meta.module-variables('vars')); | 16 | @include materialize-at-root(meta.module-variables("vars")); |
| 17 | 17 | ||
| 18 | @include bem.object('lightbox') { | 18 | @include bem.object("lightbox") { |
| 19 | box-sizing: border-box; | 19 | box-sizing: border-box; |
| 20 | display: none; | 20 | display: none; |
| 21 | flex: 1 1 auto; | 21 | flex: 1 1 auto; |
| 22 | grid-template-areas: 'image' 'thumbnails'; | 22 | grid-template-areas: "image" "thumbnails"; |
| 23 | grid-template-rows: 1fr auto; | 23 | grid-template-rows: 1fr auto; |
| 24 | grid-template-columns: 1fr; | 24 | grid-template-columns: 1fr; |
| 25 | align-items: center; | 25 | align-items: center; |
| 26 | justify-items: center; | 26 | justify-items: center; |
| 27 | inline-size: 100%; | 27 | inline-size: 100%; |
| 28 | max-inline-size: none; | 28 | max-inline-size: none; |
| 29 | block-size: 100%; | 29 | block-size: 100%; |
| 30 | min-block-size: 0; | 30 | min-block-size: 0; |
| 31 | max-block-size: none; | 31 | max-block-size: none; |
| 32 | padding: 0; | 32 | padding: 0; |
| 33 | margin: 0; | 33 | margin: 0; |
| 34 | overflow: hidden; | 34 | overflow: hidden; |
| 35 | background-color: transparent; | 35 | background-color: transparent; |
| 36 | border: 0; | 36 | border: 0; |
| 37 | pointer-events: none; | 37 | pointer-events: none; |
| 38 | 38 | ||
| 39 | &::backdrop { | 39 | &::backdrop { |
| 40 | background-color: props.get(backdrop.$bg-color); | 40 | background-color: props.get(backdrop.$bg-color); |
| @@ -42,7 +42,7 @@ | |||
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | &[open], | 44 | &[open], |
| 45 | &:popover-open { | 45 | &:popover-open { |
| 46 | display: grid; | 46 | display: grid; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| @@ -50,80 +50,79 @@ | |||
| 50 | pointer-events: auto; | 50 | pointer-events: auto; |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | @include bem.elem('info', 'controls') { | 53 | @include bem.elem("info", "controls") { |
| 54 | position: absolute; | 54 | position: absolute; |
| 55 | inset-block-start: props.get(vars.$pad); | 55 | inset-block-start: props.get(vars.$pad); |
| 56 | z-index: 20; | 56 | z-index: 20; |
| 57 | display: flex; | 57 | display: flex; |
| 58 | align-items: center; | 58 | align-items: center; |
| 59 | block-size: props.get(vars.$controls--block-size); | 59 | block-size: props.get(vars.$controls--block-size); |
| 60 | padding-inline: props.get(vars.$controls--pad-i); | 60 | padding-inline: props.get(vars.$controls--pad-i); |
| 61 | background-color: props.get(vars.$controls--bg); | 61 | background-color: props.get(vars.$controls--bg); |
| 62 | border-radius: 10em; | 62 | border-radius: 10em; |
| 63 | box-shadow: | 63 | box-shadow: props.get(vars.$controls--shadow-x) props.get(vars.$controls--shadow-y) |
| 64 | props.get(vars.$controls--shadow-x) | 64 | props.get(vars.$controls--shadow-blur) props.get(vars.$controls--shadow-grow) |
| 65 | props.get(vars.$controls--shadow-y) | ||
| 66 | props.get(vars.$controls--shadow-blur) | ||
| 67 | props.get(vars.$controls--shadow-grow) | ||
| 68 | props.get(vars.$controls--shadow-color); | 65 | props.get(vars.$controls--shadow-color); |
| 69 | } | 66 | } |
| 70 | 67 | ||
| 71 | @include bem.elem('info') { | 68 | @include bem.elem("info") { |
| 72 | inset-inline-start: props.get(vars.$pad); | 69 | inset-inline-start: props.get(vars.$pad); |
| 73 | font-variant-numeric: tabular-nums; | 70 | font-variant-numeric: tabular-nums; |
| 74 | } | 71 | } |
| 75 | 72 | ||
| 76 | @include bem.elem('controls') { | 73 | @include bem.elem("controls") { |
| 77 | inset-inline-end: props.get(vars.$pad); | 74 | inset-inline-end: props.get(vars.$pad); |
| 78 | } | 75 | } |
| 79 | 76 | ||
| 80 | @include bem.elem('img') { | 77 | @include bem.elem("img") { |
| 81 | position: relative; | 78 | position: relative; |
| 82 | z-index: 10; | 79 | z-index: 10; |
| 83 | display: block; | 80 | display: block; |
| 84 | grid-area: image; | 81 | grid-area: image; |
| 85 | inline-size: auto; | 82 | inline-size: auto; |
| 86 | min-inline-size: 0; | 83 | min-inline-size: 0; |
| 87 | max-inline-size: 100%; | 84 | max-inline-size: 100%; |
| 88 | block-size: auto; | 85 | block-size: auto; |
| 89 | min-block-size: 0; | 86 | min-block-size: 0; |
| 90 | max-block-size: 100%; | 87 | max-block-size: 100%; |
| 91 | user-select: none; | 88 | user-select: none; |
| 92 | object-fit: contain; | 89 | object-fit: contain; |
| 93 | 90 | ||
| 94 | @include bem.is('hidden') { | 91 | @include bem.is("hidden") { |
| 95 | display: none; | 92 | display: none; |
| 96 | 93 | ||
| 97 | @include bem.next-elem('placeholder') { | 94 | @include bem.next-elem("placeholder") { |
| 98 | display: block; | 95 | display: block; |
| 99 | } | 96 | } |
| 100 | } | 97 | } |
| 101 | } | 98 | } |
| 102 | 99 | ||
| 103 | @include bem.elem('placeholder') { | 100 | @include bem.elem("placeholder") { |
| 104 | position: absolute; | 101 | position: absolute; |
| 105 | inset-block-start: 50%; | 102 | inset-block-start: 50%; |
| 106 | inset-inline-start: 50%; | 103 | inset-inline-start: 50%; |
| 107 | z-index: 5; | 104 | z-index: 5; |
| 108 | display: none; | 105 | display: none; |
| 109 | transform: translate(-50, -50); | 106 | transform: translate(-50, -50); |
| 110 | } | 107 | } |
| 111 | 108 | ||
| 112 | @include bem.elem('thumbnails') { | 109 | @include bem.elem("thumbnails") { |
| 113 | display: flex; | 110 | display: flex; |
| 114 | grid-area: thumbnails; | 111 | grid-area: thumbnails; |
| 115 | gap: props.get(vars.$thumbnail--spacing); | 112 | gap: props.get(vars.$thumbnail--spacing); |
| 116 | justify-content: center; | 113 | justify-content: center; |
| 117 | padding: props.get(vars.$pad); | 114 | padding: props.get(vars.$pad); |
| 118 | overflow: auto; | 115 | overflow: auto; |
| 119 | } | 116 | } |
| 120 | 117 | ||
| 121 | @include bem.elem('thumbnail') { | 118 | @include bem.elem("thumbnail") { |
| 122 | inline-size: props.get(vars.$thumbnail--width); | 119 | inline-size: props.get(vars.$thumbnail--width); |
| 123 | transition: inline-size .2s ease, margin-inline .2s ease; | 120 | transition: |
| 121 | inline-size 0.2s ease, | ||
| 122 | margin-inline 0.2s ease; | ||
| 124 | 123 | ||
| 125 | @include bem.is('selected') { | 124 | @include bem.is("selected") { |
| 126 | inline-size: props.get(vars.$thumbnail--active--width); | 125 | inline-size: props.get(vars.$thumbnail--active--width); |
| 127 | margin-inline: props.get(vars.$thumbnail--active--spacing); | 126 | margin-inline: props.get(vars.$thumbnail--active--spacing); |
| 128 | } | 127 | } |
| 129 | } | 128 | } |
diff --git a/src/objects/_lightbox.vars.scss b/src/objects/_lightbox.vars.scss index 6fb84f7..dc9a2a1 100644 --- a/src/objects/_lightbox.vars.scss +++ b/src/objects/_lightbox.vars.scss | |||
| @@ -1,37 +1,80 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:string'; | 2 | @use "sass:string"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | $pad: props.def(--o-lightbox--pad, props.get(core.$size--150)) !default; | 6 | $pad: props.def(--o-lightbox--pad, props.get(core.$size--150)) !default; |
| 7 | 7 | ||
| 8 | $controls--pad-i: props.def(--o-lightbox--controls--pad-i, props.get(core.$size--150)) !default; | 8 | $controls--pad-i: props.def(--o-lightbox--controls--pad-i, props.get(core.$size--150)) !default; |
| 9 | $controls--block-size: props.def(--o-lightbox--controls--block-size, props.get(core.$size--550)) !default; | 9 | $controls--block-size: props.def( |
| 10 | --o-lightbox--controls--block-size, | ||
| 11 | props.get(core.$size--550) | ||
| 12 | ) !default; | ||
| 10 | 13 | ||
| 11 | $controls--shadow-x: props.def(--o-lightbox--controls--shadow-x, props.get(core.$shadow--l2--x)) !default; | 14 | $controls--shadow-x: props.def( |
| 12 | $controls--shadow-y: props.def(--o-lightbox--controls--shadow-y, props.get(core.$shadow--l2--y)) !default; | 15 | --o-lightbox--controls--shadow-x, |
| 13 | $controls--shadow-blur: props.def(--o-lightbox--controls--shadow-blur, props.get(core.$shadow--l2--blur)) !default; | 16 | props.get(core.$shadow--l2--x) |
| 14 | $controls--shadow-grow: props.def(--o-lightbox--controls--shadow-grow, props.get(core.$shadow--l2--grow)) !default; | 17 | ) !default; |
| 18 | $controls--shadow-y: props.def( | ||
| 19 | --o-lightbox--controls--shadow-y, | ||
| 20 | props.get(core.$shadow--l2--y) | ||
| 21 | ) !default; | ||
| 22 | $controls--shadow-blur: props.def( | ||
| 23 | --o-lightbox--controls--shadow-blur, | ||
| 24 | props.get(core.$shadow--l2--blur) | ||
| 25 | ) !default; | ||
| 26 | $controls--shadow-grow: props.def( | ||
| 27 | --o-lightbox--controls--shadow-grow, | ||
| 28 | props.get(core.$shadow--l2--grow) | ||
| 29 | ) !default; | ||
| 15 | 30 | ||
| 16 | $thumbnail--width: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--600)) !default; | 31 | $thumbnail--width: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--600)) !default; |
| 17 | $thumbnail--spacing: props.def(--o-lightbox--thumbnail--spacing, props.get(core.$size--100)) !default; | 32 | $thumbnail--spacing: props.def( |
| 18 | $thumbnail--active--width: props.def(--o-lightbox--thumbnail--active--width, props.get(core.$size--1000)) !default; | 33 | --o-lightbox--thumbnail--spacing, |
| 19 | $thumbnail--active--spacing: props.def(--o-lightbox--thumbnail--active--spacing, props.get(core.$size--250)) !default; | 34 | props.get(core.$size--100) |
| 35 | ) !default; | ||
| 36 | $thumbnail--active--width: props.def( | ||
| 37 | --o-lightbox--thumbnail--active--width, | ||
| 38 | props.get(core.$size--1000) | ||
| 39 | ) !default; | ||
| 40 | $thumbnail--active--spacing: props.def( | ||
| 41 | --o-lightbox--thumbnail--active--spacing, | ||
| 42 | props.get(core.$size--250) | ||
| 43 | ) !default; | ||
| 20 | 44 | ||
| 21 | $thumbnail--width--md: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--400), 'md') !default; | 45 | $thumbnail--width--md: props.def( |
| 22 | $thumbnail--active--width--md: props.def(--o-lightbox--thumbnail--active--width, props.get(core.$size--600), 'md') !default; | 46 | --o-lightbox--thumbnail--width, |
| 47 | props.get(core.$size--400), | ||
| 48 | "md" | ||
| 49 | ) !default; | ||
| 50 | $thumbnail--active--width--md: props.def( | ||
| 51 | --o-lightbox--thumbnail--active--width, | ||
| 52 | props.get(core.$size--600), | ||
| 53 | "md" | ||
| 54 | ) !default; | ||
| 23 | 55 | ||
| 24 | $controls--bg: props.def(--o-lightbox--controls--bg, props.get(core.$transparent-colors, --black, --700), 'color') !default; | 56 | $controls--bg: props.def( |
| 25 | $controls--shadow-color: props.def(--o-lightbox--controls--shadow-color, props.get(core.$transparent-colors, --black, --300), 'color') !default; | 57 | --o-lightbox--controls--bg, |
| 58 | props.get(core.$transparent-colors, --black, --700), | ||
| 59 | "color" | ||
| 60 | ) !default; | ||
| 61 | $controls--shadow-color: props.def( | ||
| 62 | --o-lightbox--controls--shadow-color, | ||
| 63 | props.get(core.$transparent-colors, --black, --300), | ||
| 64 | "color" | ||
| 65 | ) !default; | ||
| 26 | 66 | ||
| 27 | $static-themes: props.def(--o-lightbox, (), 'color'); | 67 | $static-themes: props.def(--o-lightbox, (), "color"); |
| 28 | 68 | ||
| 29 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 69 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 30 | $lightbox-theme: --static-#{string.slice($theme, 3)}; | 70 | $lightbox-theme: --static-#{string.slice($theme, 3)}; |
| 31 | 71 | ||
| 32 | $static-themes: props.merge($static-themes, ( | 72 | $static-themes: props.merge( |
| 33 | $lightbox-theme: ( | 73 | $static-themes, |
| 34 | --text: props.get(core.$transparent-colors, $theme, --text), | 74 | ( |
| 75 | $lightbox-theme: ( | ||
| 76 | --text: props.get(core.$transparent-colors, $theme, --text), | ||
| 77 | ), | ||
| 35 | ) | 78 | ) |
| 36 | )); | 79 | ); |
| 37 | } | 80 | } |
diff --git a/src/objects/_menu.scss b/src/objects/_menu.scss index dce14a8..c7fbc0e 100644 --- a/src/objects/_menu.scss +++ b/src/objects/_menu.scss | |||
| @@ -1,75 +1,82 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | @use 'icon.vars' as icon; | 5 | @use "icon.vars" as icon; |
| 6 | 6 | ||
| 7 | @forward 'menu.vars'; | 7 | @forward "menu.vars"; |
| 8 | @use 'menu.vars' as vars; | 8 | @use "menu.vars" as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables("vars")); |
| 12 | 12 | ||
| 13 | @include bem.object('menu') { | 13 | @include bem.object("menu") { |
| 14 | display: flex; | 14 | display: flex; |
| 15 | flex-direction: column; | 15 | flex-direction: column; |
| 16 | gap: props.get(vars.$spacing); | 16 | gap: props.get(vars.$spacing); |
| 17 | 17 | ||
| 18 | @include bem.elem('header') { | 18 | @include bem.elem("header") { |
| 19 | padding-block: props.get(vars.$item--pad-b); | 19 | padding-block: props.get(vars.$item--pad-b); |
| 20 | padding-inline: props.get(vars.$item--pad-i); | 20 | padding-inline: props.get(vars.$item--pad-i); |
| 21 | font-size: props.get(vars.$header--font-size); | 21 | font-size: props.get(vars.$header--font-size); |
| 22 | font-weight: 500; | 22 | font-weight: 500; |
| 23 | color: props.get(vars.$header--label-color); | 23 | color: props.get(vars.$header--label-color); |
| 24 | text-transform: uppercase; | 24 | text-transform: uppercase; |
| 25 | letter-spacing: .5px; | 25 | letter-spacing: 0.5px; |
| 26 | 26 | ||
| 27 | @include bem.next-twin-elem { | 27 | @include bem.next-twin-elem { |
| 28 | margin-block-start: calc(props.get(vars.$separator-width) + props.get(vars.$spacing)); | 28 | margin-block-start: calc( |
| 29 | props.get(vars.$separator-width) + props.get(vars.$spacing) | ||
| 30 | ); | ||
| 29 | } | 31 | } |
| 30 | } | 32 | } |
| 31 | 33 | ||
| 32 | @include bem.elem('item') { | 34 | @include bem.elem("item") { |
| 33 | padding-block: props.get(vars.$item--pad-b); | 35 | padding-block: props.get(vars.$item--pad-b); |
| 34 | padding-inline: props.get(vars.$item--pad-i); | 36 | padding-inline: props.get(vars.$item--pad-i); |
| 35 | margin: calc(-1 * props.get(vars.$item--key-focus--outline-width)); | 37 | margin: calc(-1 * props.get(vars.$item--key-focus--outline-width)); |
| 36 | color: props.get(vars.$item--disabled--label-color); | 38 | color: props.get(vars.$item--disabled--label-color); |
| 37 | background-clip: padding-box; | 39 | background-clip: padding-box; |
| 38 | border: props.get(vars.$item--key-focus--outline-width) solid transparent; | 40 | border: props.get(vars.$item--key-focus--outline-width) solid transparent; |
| 39 | border-radius: calc(props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--outline-width)); | 41 | border-radius: calc( |
| 42 | props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--outline-width) | ||
| 43 | ); | ||
| 40 | 44 | ||
| 41 | &:link, | 45 | &:link, |
| 42 | &:visited, | 46 | &:visited, |
| 43 | &:enabled { | 47 | &:enabled { |
| 44 | color: currentColor; | 48 | color: currentColor; |
| 45 | 49 | ||
| 46 | @include bem.multi('&:hover, &:focus-visible', 'is' 'selected') { | 50 | @include bem.multi("&:hover, &:focus-visible", "is" "selected") { |
| 47 | color: props.get(vars.$item--hover--label-color); | 51 | color: props.get(vars.$item--hover--label-color); |
| 48 | background-color: props.get(vars.$item--hover--bg-color); | 52 | background-color: props.get(vars.$item--hover--bg-color); |
| 49 | } | 53 | } |
| 50 | 54 | ||
| 51 | &:active { | 55 | &:active { |
| 52 | color: props.get(vars.$item--active--label-color); | 56 | color: props.get(vars.$item--active--label-color); |
| 53 | background-color: props.get(vars.$item--active--bg-color); | 57 | background-color: props.get(vars.$item--active--bg-color); |
| 54 | } | 58 | } |
| 55 | 59 | ||
| 56 | &:focus-visible { | 60 | &:focus-visible { |
| 57 | outline: props.get(vars.$item--key-focus--border-color) solid props.get(vars.$item--key-focus--border-width); | 61 | outline: props.get(vars.$item--key-focus--border-color) solid |
| 58 | box-shadow: | 62 | props.get(vars.$item--key-focus--border-width); |
| 59 | 0 | 63 | box-shadow: 0 0 0 |
| 60 | 0 | 64 | calc( |
| 61 | 0 | 65 | props.get(vars.$item--key-focus--border-width) + |
| 62 | calc(props.get(vars.$item--key-focus--border-width) + props.get(vars.$item--key-focus--outline-width)) | 66 | props.get(vars.$item--key-focus--outline-width) |
| 67 | ) | ||
| 63 | props.get(vars.$item--key-focus--outline-color); | 68 | props.get(vars.$item--key-focus--outline-color); |
| 64 | } | 69 | } |
| 65 | } | 70 | } |
| 66 | 71 | ||
| 67 | @include bem.next-elem('header') { | 72 | @include bem.next-elem("header") { |
| 68 | margin-block-start: calc(props.get(vars.$separator-width) + props.get(vars.$spacing)); | 73 | margin-block-start: calc( |
| 74 | props.get(vars.$separator-width) + props.get(vars.$spacing) | ||
| 75 | ); | ||
| 69 | } | 76 | } |
| 70 | } | 77 | } |
| 71 | 78 | ||
| 72 | @include bem.elem('header') { | 79 | @include bem.elem("header") { |
| 73 | &:link, | 80 | &:link, |
| 74 | &:visited, | 81 | &:visited, |
| 75 | &:enabled { | 82 | &:enabled { |
| @@ -77,25 +84,25 @@ | |||
| 77 | } | 84 | } |
| 78 | } | 85 | } |
| 79 | 86 | ||
| 80 | @include bem.elem('separator') { | 87 | @include bem.elem("separator") { |
| 81 | block-size: 1px; | 88 | block-size: 1px; |
| 82 | margin-block: props.get(vars.$separator-width); | 89 | margin-block: props.get(vars.$separator-width); |
| 83 | margin-inline: props.get(vars.$item--pad-i); | 90 | margin-inline: props.get(vars.$item--pad-i); |
| 84 | background-color: props.get(vars.$separator-color); | 91 | background-color: props.get(vars.$separator-color); |
| 85 | } | 92 | } |
| 86 | 93 | ||
| 87 | @include bem.elem('slot') { | 94 | @include bem.elem("slot") { |
| 88 | padding-block: props.get(vars.$item--pad-b); | 95 | padding-block: props.get(vars.$item--pad-b); |
| 89 | padding-inline: props.get(vars.$item--pad-i); | 96 | padding-inline: props.get(vars.$item--pad-i); |
| 90 | } | 97 | } |
| 91 | 98 | ||
| 92 | @include bem.elem('icon-slot') { | 99 | @include bem.elem("icon-slot") { |
| 93 | display: flex; | 100 | display: flex; |
| 94 | justify-content: center; | 101 | justify-content: center; |
| 95 | inline-size: props.get(icon.$size); | 102 | inline-size: props.get(icon.$size); |
| 96 | } | 103 | } |
| 97 | 104 | ||
| 98 | @include bem.modifier('pull') { | 105 | @include bem.modifier("pull") { |
| 99 | margin: calc(-1 * props.get(vars.$item--pad-i)); | 106 | margin: calc(-1 * props.get(vars.$item--pad-i)); |
| 100 | } | 107 | } |
| 101 | } | 108 | } |
diff --git a/src/objects/_menu.vars.scss b/src/objects/_menu.vars.scss index 9396117..c168c30 100644 --- a/src/objects/_menu.vars.scss +++ b/src/objects/_menu.vars.scss | |||
| @@ -1,29 +1,74 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $spacing: props.def(--o-menu--spacing, 0em) !default; | 5 | $spacing: props.def(--o-menu--spacing, 0em) !default; |
| 6 | $header--font-size: props.def(--o-menu--header--font-size, props.get(core.$font-size--50)) !default; | 6 | $header--font-size: props.def(--o-menu--header--font-size, props.get(core.$font-size--50)) !default; |
| 7 | $separator-width: props.def(--o-menu--separator-width, props.get(core.$size--100)) !default; | 7 | $separator-width: props.def(--o-menu--separator-width, props.get(core.$size--100)) !default; |
| 8 | 8 | ||
| 9 | $item--pad-i: props.def(--o-menu--item--pad-i, props.get(core.$size--150)) !default; | 9 | $item--pad-i: props.def(--o-menu--item--pad-i, props.get(core.$size--150)) !default; |
| 10 | $item--pad-b: props.def(--o-menu--item--pad-b, props.get(core.$size--100)) !default; | 10 | $item--pad-b: props.def(--o-menu--item--pad-b, props.get(core.$size--100)) !default; |
| 11 | $item--rounding: props.def(--o-menu--item--rounding, 0em) !default; | 11 | $item--rounding: props.def(--o-menu--item--rounding, 0em) !default; |
| 12 | 12 | ||
| 13 | $item--key-focus--border-width: props.def(--o-menu--item--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 13 | $item--key-focus--border-width: props.def( |
| 14 | $item--key-focus--border-offset: props.def(--o-menu--item--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 14 | --o-menu--item--key-focus--border-width, |
| 15 | $item--key-focus--outline-width: props.def(--o-menu--item--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 15 | props.get(core.$key-focus--border-width) |
| 16 | ) !default; | ||
| 17 | $item--key-focus--border-offset: props.def( | ||
| 18 | --o-menu--item--key-focus--border-offset, | ||
| 19 | props.get(core.$key-focus--border-offset) | ||
| 20 | ) !default; | ||
| 21 | $item--key-focus--outline-width: props.def( | ||
| 22 | --o-menu--item--key-focus--outline-width, | ||
| 23 | props.get(core.$key-focus--outline-width) | ||
| 24 | ) !default; | ||
| 16 | 25 | ||
| 17 | $separator-color: props.def(--o-menu--separator-color, props.get(core.$theme, --border), 'color') !default; | 26 | $separator-color: props.def( |
| 18 | $header--label-color: props.def(--o-menu--header--label-color, props.get(core.$theme, --heading), 'color') !default; | 27 | --o-menu--separator-color, |
| 28 | props.get(core.$theme, --border), | ||
| 29 | "color" | ||
| 30 | ) !default; | ||
| 31 | $header--label-color: props.def( | ||
| 32 | --o-menu--header--label-color, | ||
| 33 | props.get(core.$theme, --heading), | ||
| 34 | "color" | ||
| 35 | ) !default; | ||
| 19 | 36 | ||
| 20 | $item--hover--bg-color: props.def(--o-menu--item--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 37 | $item--hover--bg-color: props.def( |
| 21 | $item--hover--label-color: props.def(--o-menu--item--hover--label-color, props.get(core.$theme, --heading), 'color') !default; | 38 | --o-menu--item--hover--bg-color, |
| 39 | props.get(core.$theme, --border-mute), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | $item--hover--label-color: props.def( | ||
| 43 | --o-menu--item--hover--label-color, | ||
| 44 | props.get(core.$theme, --heading), | ||
| 45 | "color" | ||
| 46 | ) !default; | ||
| 22 | 47 | ||
| 23 | $item--active--bg-color: props.def(--o-menu--item--active--bg-color, props.get(core.$theme, --border), 'color') !default; | 48 | $item--active--bg-color: props.def( |
| 24 | $item--active--label-color: props.def(--o-menu--item--active--label-color, props.get(core.$theme, --heading), 'color') !default; | 49 | --o-menu--item--active--bg-color, |
| 50 | props.get(core.$theme, --border), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 53 | $item--active--label-color: props.def( | ||
| 54 | --o-menu--item--active--label-color, | ||
| 55 | props.get(core.$theme, --heading), | ||
| 56 | "color" | ||
| 57 | ) !default; | ||
| 25 | 58 | ||
| 26 | $item--disabled--label-color: props.def(--o-menu--item--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; | 59 | $item--disabled--label-color: props.def( |
| 60 | --o-menu--item--disabled--label-color, | ||
| 61 | props.get(core.$theme, --text-disabled), | ||
| 62 | "color" | ||
| 63 | ) !default; | ||
| 27 | 64 | ||
| 28 | $item--key-focus--border-color: props.def(--o-menu--item--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 65 | $item--key-focus--border-color: props.def( |
| 29 | $item--key-focus--outline-color: props.def(--o-menu--item--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 66 | --o-menu--item--key-focus--border-color, |
| 67 | props.get(core.$theme, --focus, --border), | ||
| 68 | "color" | ||
| 69 | ) !default; | ||
| 70 | $item--key-focus--outline-color: props.def( | ||
| 71 | --o-menu--item--key-focus--outline-color, | ||
| 72 | props.get(core.$theme, --focus, --outline), | ||
| 73 | "color" | ||
| 74 | ) !default; | ||
diff --git a/src/objects/_navbar.scss b/src/objects/_navbar.scss index cc1eaaa..4b678e0 100644 --- a/src/objects/_navbar.scss +++ b/src/objects/_navbar.scss | |||
| @@ -1,151 +1,197 @@ | |||
| 1 | @use 'sass:list'; | 1 | @use "sass:list"; |
| 2 | @use 'sass:map'; | 2 | @use "sass:map"; |
| 3 | @use 'sass:meta'; | 3 | @use "sass:meta"; |
| 4 | @use 'sass:string'; | 4 | @use "sass:string"; |
| 5 | @use 'pkg:iro-sass/src/bem'; | 5 | @use "pkg:iro-sass/bem"; |
| 6 | @use 'pkg:iro-sass/src/props'; | 6 | @use "pkg:iro-sass/props"; |
| 7 | @use '../props' as *; | 7 | @use "../props" as *; |
| 8 | 8 | ||
| 9 | @forward 'navbar.vars'; | 9 | @forward "navbar.vars"; |
| 10 | @use 'navbar.vars' as vars; | 10 | @use "navbar.vars" as vars; |
| 11 | 11 | ||
| 12 | @mixin -apply-theme($theme, $key: ()) { | 12 | @mixin -apply-theme($theme, $key: ()) { |
| 13 | @include bem.elem('item-label') { | 13 | @include bem.elem("item-label") { |
| 14 | color: props.get($theme, list.join($key, --disabled --label-color)...); | 14 | color: props.get($theme, list.join($key, --disabled --label-color)...); |
| 15 | } | 15 | } |
| 16 | 16 | ||
| 17 | @include bem.elem('item-content') { | 17 | @include bem.elem("item-content") { |
| 18 | color: props.get($theme, list.join($key, --disabled --text-color)...); | 18 | color: props.get($theme, list.join($key, --disabled --text-color)...); |
| 19 | 19 | ||
| 20 | &::after { | 20 | &::after { |
| 21 | outline: props.get($theme, list.join($key, --key-focus --border)...) solid props.get(vars.$key-focus--border-width); | 21 | outline: props.get($theme, list.join($key, --key-focus --border)...) solid |
| 22 | box-shadow: | 22 | props.get(vars.$key-focus--border-width); |
| 23 | 0 | 23 | box-shadow: 0 0 0 |
| 24 | 0 | 24 | calc( |
| 25 | 0 | 25 | props.get(vars.$key-focus--border-width) + |
| 26 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | 26 | props.get(vars.$key-focus--outline-width) |
| 27 | ) | ||
| 27 | props.get($theme, list.join($key, --key-focus --outline)...); | 28 | props.get($theme, list.join($key, --key-focus --outline)...); |
| 28 | } | 29 | } |
| 29 | } | 30 | } |
| 30 | 31 | ||
| 31 | @include bem.elem('item') { | 32 | @include bem.elem("item") { |
| 32 | &:link, | 33 | &:link, |
| 33 | &:visited, | 34 | &:visited, |
| 34 | &:enabled { | 35 | &:enabled { |
| 35 | @include bem.elem('item-label') { | 36 | @include bem.elem("item-label") { |
| 36 | color: props.get($theme, list.join($key, --label-color)...); | 37 | color: props.get($theme, list.join($key, --label-color)...); |
| 37 | } | 38 | } |
| 38 | 39 | ||
| 39 | @include bem.elem('item-content') { | 40 | @include bem.elem("item-content") { |
| 40 | color: props.get($theme, list.join($key, --text-color)...); | 41 | color: props.get($theme, list.join($key, --text-color)...); |
| 41 | } | 42 | } |
| 42 | 43 | ||
| 43 | &:hover, | 44 | &:hover, |
| 44 | &:focus-visible { | 45 | &:focus-visible { |
| 45 | @include bem.elem('item-label') { | 46 | @include bem.elem("item-label") { |
| 46 | color: props.get($theme, list.join($key, --hover --label-color)...); | 47 | color: props.get($theme, list.join($key, --hover --label-color)...); |
| 47 | } | 48 | } |
| 48 | 49 | ||
| 49 | @include bem.elem('item-content') { | 50 | @include bem.elem("item-content") { |
| 50 | color: props.get($theme, list.join($key, --hover --text-color)...); | 51 | color: props.get($theme, list.join($key, --hover --text-color)...); |
| 51 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); | 52 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); |
| 52 | } | 53 | } |
| 53 | } | 54 | } |
| 54 | 55 | ||
| 55 | &:focus-visible { | 56 | &:focus-visible { |
| 56 | @include bem.elem('item-label') { | 57 | @include bem.elem("item-label") { |
| 57 | color: props.get($theme, list.join($key, --key-focus --label)...); | 58 | color: props.get($theme, list.join($key, --key-focus --label)...); |
| 58 | } | 59 | } |
| 59 | } | 60 | } |
| 60 | 61 | ||
| 61 | &:active { | 62 | &:active { |
| 62 | @include bem.elem('item-label') { | 63 | @include bem.elem("item-label") { |
| 63 | color: props.get($theme, list.join($key, --active --label-color)...); | 64 | color: props.get($theme, list.join($key, --active --label-color)...); |
| 64 | } | 65 | } |
| 65 | 66 | ||
| 66 | @include bem.elem('item-content') { | 67 | @include bem.elem("item-content") { |
| 67 | color: props.get($theme, list.join($key, --active --text-color)...); | 68 | color: props.get($theme, list.join($key, --active --text-color)...); |
| 68 | background-color: props.get($theme, list.join($key, --active --bg-color)...); | 69 | background-color: props.get($theme, list.join($key, --active --bg-color)...); |
| 69 | } | 70 | } |
| 70 | } | 71 | } |
| 71 | } | 72 | } |
| 72 | 73 | ||
| 73 | @include bem.is('selected') { | 74 | @include bem.is("selected") { |
| 74 | @include bem.elem('item-label') { | 75 | @include bem.elem("item-label") { |
| 75 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); | 76 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); |
| 76 | } | 77 | } |
| 77 | 78 | ||
| 78 | @include bem.elem('item-content') { | 79 | @include bem.elem("item-content") { |
| 79 | color: props.get($theme, list.join($key, --selected --disabled --text-color)...); | 80 | color: props.get($theme, list.join($key, --selected --disabled --text-color)...); |
| 80 | background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...); | 81 | background-color: props.get( |
| 82 | $theme, | ||
| 83 | list.join($key, --selected --disabled --bg-color)... | ||
| 84 | ); | ||
| 81 | } | 85 | } |
| 82 | 86 | ||
| 83 | &:link, | 87 | &:link, |
| 84 | &:visited, | 88 | &:visited, |
| 85 | &:enabled { | 89 | &:enabled { |
| 86 | @include bem.elem('item-label') { | 90 | @include bem.elem("item-label") { |
| 87 | color: props.get($theme, list.join($key, --selected --label-color)...); | 91 | color: props.get($theme, list.join($key, --selected --label-color)...); |
| 88 | } | 92 | } |
| 89 | 93 | ||
| 90 | @include bem.elem('item-content') { | 94 | @include bem.elem("item-content") { |
| 91 | color: props.get($theme, list.join($key, --selected --text-color)...); | 95 | color: props.get($theme, list.join($key, --selected --text-color)...); |
| 92 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); | 96 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); |
| 93 | } | 97 | } |
| 94 | 98 | ||
| 95 | &:hover, | 99 | &:hover, |
| 96 | &:focus-visible { | 100 | &:focus-visible { |
| 97 | @include bem.elem('item-label') { | 101 | @include bem.elem("item-label") { |
| 98 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); | 102 | color: props.get( |
| 103 | $theme, | ||
| 104 | list.join($key, --selected --hover --label-color)... | ||
| 105 | ); | ||
| 99 | } | 106 | } |
| 100 | 107 | ||
| 101 | @include bem.elem('item-content') { | 108 | @include bem.elem("item-content") { |
| 102 | color: props.get($theme, list.join($key, --selected --hover --text-color)...); | 109 | color: props.get( |
| 103 | background-color: props.get($theme, list.join($key, --selected --hover --bg-color)...); | 110 | $theme, |
| 111 | list.join($key, --selected --hover --text-color)... | ||
| 112 | ); | ||
| 113 | background-color: props.get( | ||
| 114 | $theme, | ||
| 115 | list.join($key, --selected --hover --bg-color)... | ||
| 116 | ); | ||
| 104 | } | 117 | } |
| 105 | } | 118 | } |
| 106 | 119 | ||
| 107 | &:active { | 120 | &:active { |
| 108 | @include bem.elem('item-label') { | 121 | @include bem.elem("item-label") { |
| 109 | color: props.get($theme, list.join($key, --selected --active --label-color)...); | 122 | color: props.get( |
| 123 | $theme, | ||
| 124 | list.join($key, --selected --active --label-color)... | ||
| 125 | ); | ||
| 110 | } | 126 | } |
| 111 | 127 | ||
| 112 | @include bem.elem('item-content') { | 128 | @include bem.elem("item-content") { |
| 113 | color: props.get($theme, list.join($key, --selected --active --text-color)...); | 129 | color: props.get( |
| 114 | background-color: props.get($theme, list.join($key, --selected --active --bg-color)...); | 130 | $theme, |
| 131 | list.join($key, --selected --active --text-color)... | ||
| 132 | ); | ||
| 133 | background-color: props.get( | ||
| 134 | $theme, | ||
| 135 | list.join($key, --selected --active --bg-color)... | ||
| 136 | ); | ||
| 115 | } | 137 | } |
| 116 | } | 138 | } |
| 117 | } | 139 | } |
| 118 | } | 140 | } |
| 119 | } | 141 | } |
| 120 | 142 | ||
| 121 | @include bem.modifier('quiet') { | 143 | @include bem.modifier("quiet") { |
| 122 | @include bem.elem('item') { | 144 | @include bem.elem("item") { |
| 123 | @include bem.is('selected') { | 145 | @include bem.is("selected") { |
| 124 | @include bem.elem('item-content') { | 146 | @include bem.elem("item-content") { |
| 125 | color: props.get($theme, list.join($key, --quiet --selected --disabled --text-color)...); | 147 | color: props.get( |
| 126 | background-color: props.get($theme, list.join($key, --quiet --selected --disabled --bg-color)...); | 148 | $theme, |
| 149 | list.join($key, --quiet --selected --disabled --text-color)... | ||
| 150 | ); | ||
| 151 | background-color: props.get( | ||
| 152 | $theme, | ||
| 153 | list.join($key, --quiet --selected --disabled --bg-color)... | ||
| 154 | ); | ||
| 127 | } | 155 | } |
| 128 | 156 | ||
| 129 | &:link, | 157 | &:link, |
| 130 | &:visited, | 158 | &:visited, |
| 131 | &:enabled { | 159 | &:enabled { |
| 132 | @include bem.elem('item-content') { | 160 | @include bem.elem("item-content") { |
| 133 | color: props.get($theme, list.join($key, --quiet --selected --text-color)...); | 161 | color: props.get( |
| 134 | background-color: props.get($theme, list.join($key, --quiet --selected --bg-color)...); | 162 | $theme, |
| 163 | list.join($key, --quiet --selected --text-color)... | ||
| 164 | ); | ||
| 165 | background-color: props.get( | ||
| 166 | $theme, | ||
| 167 | list.join($key, --quiet --selected --bg-color)... | ||
| 168 | ); | ||
| 135 | } | 169 | } |
| 136 | 170 | ||
| 137 | &:hover, | 171 | &:hover, |
| 138 | &:focus-visible { | 172 | &:focus-visible { |
| 139 | @include bem.elem('item-content') { | 173 | @include bem.elem("item-content") { |
| 140 | color: props.get($theme, list.join($key, --quiet --selected --hover --text-color)...); | 174 | color: props.get( |
| 141 | background-color: props.get($theme, list.join($key, --quiet --selected --hover --bg-color)...); | 175 | $theme, |
| 176 | list.join($key, --quiet --selected --hover --text-color)... | ||
| 177 | ); | ||
| 178 | background-color: props.get( | ||
| 179 | $theme, | ||
| 180 | list.join($key, --quiet --selected --hover --bg-color)... | ||
| 181 | ); | ||
| 142 | } | 182 | } |
| 143 | } | 183 | } |
| 144 | 184 | ||
| 145 | &:active { | 185 | &:active { |
| 146 | @include bem.elem('item-content') { | 186 | @include bem.elem("item-content") { |
| 147 | color: props.get($theme, list.join($key, --quiet --selected --active --text-color)...); | 187 | color: props.get( |
| 148 | background-color: props.get($theme, list.join($key, --quiet --selected --active --bg-color)...); | 188 | $theme, |
| 189 | list.join($key, --quiet --selected --active --text-color)... | ||
| 190 | ); | ||
| 191 | background-color: props.get( | ||
| 192 | $theme, | ||
| 193 | list.join($key, --quiet --selected --active --bg-color)... | ||
| 194 | ); | ||
| 149 | } | 195 | } |
| 150 | } | 196 | } |
| 151 | } | 197 | } |
| @@ -155,64 +201,64 @@ | |||
| 155 | } | 201 | } |
| 156 | 202 | ||
| 157 | @mixin styles { | 203 | @mixin styles { |
| 158 | @include materialize-at-root(meta.module-variables('vars')); | 204 | @include materialize-at-root(meta.module-variables("vars")); |
| 159 | 205 | ||
| 160 | @include bem.object('navbar') { | 206 | @include bem.object("navbar") { |
| 161 | display: flex; | 207 | display: flex; |
| 162 | block-size: props.get(vars.$block-size); | 208 | block-size: props.get(vars.$block-size); |
| 163 | 209 | ||
| 164 | @include bem.elem('item-label') { | 210 | @include bem.elem("item-label") { |
| 165 | order: 2; | 211 | order: 2; |
| 166 | margin-block-start: props.get(vars.$item--pad-b-icon); | 212 | margin-block-start: props.get(vars.$item--pad-b-icon); |
| 167 | font-size: props.get(vars.$item--label-font-size); | 213 | font-size: props.get(vars.$item--label-font-size); |
| 168 | font-weight: bold; | 214 | font-weight: bold; |
| 169 | 215 | ||
| 170 | @include bem.next-elem('item-content') { | 216 | @include bem.next-elem("item-content") { |
| 171 | padding-block: props.get(vars.$item--pad-b-icon); | 217 | padding-block: props.get(vars.$item--pad-b-icon); |
| 172 | padding-inline: props.get(vars.$item--pad-i-icon); | 218 | padding-inline: props.get(vars.$item--pad-i-icon); |
| 173 | font-size: props.get(vars.$item--icon-size); | 219 | font-size: props.get(vars.$item--icon-size); |
| 174 | } | 220 | } |
| 175 | } | 221 | } |
| 176 | 222 | ||
| 177 | @include bem.elem('item-content-text') { | 223 | @include bem.elem("item-content-text") { |
| 178 | margin-inline: props.get(vars.$item--pad-i-label); | 224 | margin-inline: props.get(vars.$item--pad-i-label); |
| 179 | } | 225 | } |
| 180 | 226 | ||
| 181 | @include bem.elem('item-content') { | 227 | @include bem.elem("item-content") { |
| 182 | position: relative; | 228 | position: relative; |
| 183 | order: 1; | 229 | order: 1; |
| 184 | padding-block: props.get(vars.$item--pad-b); | 230 | padding-block: props.get(vars.$item--pad-b); |
| 185 | padding-inline: props.get(vars.$item--pad-i); | 231 | padding-inline: props.get(vars.$item--pad-i); |
| 186 | font-size: props.get(vars.$item--font-size); | 232 | font-size: props.get(vars.$item--font-size); |
| 187 | white-space: nowrap; | 233 | white-space: nowrap; |
| 188 | border-radius: 100em; | 234 | border-radius: 100em; |
| 189 | 235 | ||
| 190 | &::after { | 236 | &::after { |
| 191 | position: absolute; | 237 | position: absolute; |
| 192 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); | 238 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 193 | z-index: -10; | 239 | z-index: -10; |
| 194 | display: block; | 240 | display: block; |
| 195 | visibility: hidden; | 241 | visibility: hidden; |
| 196 | pointer-events: none; | 242 | pointer-events: none; |
| 197 | content: ''; | 243 | content: ""; |
| 198 | border-radius: 100em; | 244 | border-radius: 100em; |
| 199 | } | 245 | } |
| 200 | } | 246 | } |
| 201 | 247 | ||
| 202 | @include bem.elem('item') { | 248 | @include bem.elem("item") { |
| 203 | display: flex; | 249 | display: flex; |
| 204 | flex-direction: column; | 250 | flex-direction: column; |
| 205 | align-items: center; | 251 | align-items: center; |
| 206 | justify-content: center; | 252 | justify-content: center; |
| 207 | inline-size: 100%; | 253 | inline-size: 100%; |
| 208 | padding-inline: calc(.5 * props.get(vars.$spacing)); | 254 | padding-inline: calc(0.5 * props.get(vars.$spacing)); |
| 209 | font-weight: 500; | 255 | font-weight: 500; |
| 210 | 256 | ||
| 211 | &:link, | 257 | &:link, |
| 212 | &:visited, | 258 | &:visited, |
| 213 | &:enabled { | 259 | &:enabled { |
| 214 | &:focus-visible { | 260 | &:focus-visible { |
| 215 | @include bem.elem('item-content') { | 261 | @include bem.elem("item-content") { |
| 216 | &::after { | 262 | &::after { |
| 217 | visibility: visible; | 263 | visibility: visible; |
| 218 | } | 264 | } |
| @@ -220,7 +266,7 @@ | |||
| 220 | } | 266 | } |
| 221 | } | 267 | } |
| 222 | 268 | ||
| 223 | @include bem.is('selected') { | 269 | @include bem.is("selected") { |
| 224 | font-weight: bold; | 270 | font-weight: bold; |
| 225 | } | 271 | } |
| 226 | } | 272 | } |
| @@ -233,22 +279,21 @@ | |||
| 233 | } | 279 | } |
| 234 | } | 280 | } |
| 235 | 281 | ||
| 236 | @include bem.modifier('hide-unselected') { | 282 | @include bem.modifier("hide-unselected") { |
| 237 | @include bem.elem('item') { | 283 | @include bem.elem("item") { |
| 238 | display: none; | 284 | display: none; |
| 239 | 285 | ||
| 240 | @include bem.is('selected') { | 286 | @include bem.is("selected") { |
| 241 | display: flex; | 287 | display: flex; |
| 242 | } | 288 | } |
| 243 | } | 289 | } |
| 244 | } | 290 | } |
| 245 | 291 | ||
| 246 | @include bem.modifier('adapt') { | 292 | @include bem.modifier("adapt") { |
| 247 | block-size: 100%; | 293 | block-size: 100%; |
| 248 | } | 294 | } |
| 249 | 295 | ||
| 250 | 296 | @include bem.modifier("align-block") { | |
| 251 | @include bem.modifier('align-block') { | ||
| 252 | margin-inline: calc(-1 * props.get(vars.$item--pad-i)); | 297 | margin-inline: calc(-1 * props.get(vars.$item--pad-i)); |
| 253 | } | 298 | } |
| 254 | } | 299 | } |
diff --git a/src/objects/_navbar.vars.scss b/src/objects/_navbar.vars.scss index e96b714..b7d7e16 100644 --- a/src/objects/_navbar.vars.scss +++ b/src/objects/_navbar.vars.scss | |||
| @@ -1,178 +1,242 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:string'; | 2 | @use "sass:string"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | $block-size: props.def(--o-navbar--block-size, props.get(core.$size--1000)) !default; | 6 | $block-size: props.def(--o-navbar--block-size, props.get(core.$size--1000)) !default; |
| 7 | $spacing: props.def(--o-navbar--spacing, props.get(core.$size--50)) !default; | 7 | $spacing: props.def(--o-navbar--spacing, props.get(core.$size--50)) !default; |
| 8 | 8 | ||
| 9 | $item--pad-i: props.def(--o-navbar--item--pad-i, props.get(core.$size--150)) !default; | 9 | $item--pad-i: props.def(--o-navbar--item--pad-i, props.get(core.$size--150)) !default; |
| 10 | $item--pad-i-label: props.def(--o-navbar--item--pad-i-label, props.get(core.$size--75)) !default; | 10 | $item--pad-i-label: props.def(--o-navbar--item--pad-i-label, props.get(core.$size--75)) !default; |
| 11 | $item--pad-i-icon: props.def(--o-navbar--item--pad-i-icon, props.get(core.$size--250)) !default; | 11 | $item--pad-i-icon: props.def(--o-navbar--item--pad-i-icon, props.get(core.$size--250)) !default; |
| 12 | $item--pad-b: props.def(--o-navbar--item--pad-b, props.get(core.$size--75)) !default; | 12 | $item--pad-b: props.def(--o-navbar--item--pad-b, props.get(core.$size--75)) !default; |
| 13 | $item--pad-b-icon: props.def(--o-navbar--item--pad-b-icon, props.get(core.$size--40)) !default; | 13 | $item--pad-b-icon: props.def(--o-navbar--item--pad-b-icon, props.get(core.$size--40)) !default; |
| 14 | $item--font-size: props.def(--o-navbar--item--font-size, props.get(core.$font-size--100)) !default; | 14 | $item--font-size: props.def(--o-navbar--item--font-size, props.get(core.$font-size--100)) !default; |
| 15 | $item--icon-size: props.def(--o-navbar--item--icon-size, props.get(core.$font-size--200)) !default; | 15 | $item--icon-size: props.def(--o-navbar--item--icon-size, props.get(core.$font-size--200)) !default; |
| 16 | $item--label-font-size: props.def(--o-navbar--item--label-font-size, props.get(core.$font-size--50)) !default; | 16 | $item--label-font-size: props.def( |
| 17 | --o-navbar--item--label-font-size, | ||
| 18 | props.get(core.$font-size--50) | ||
| 19 | ) !default; | ||
| 17 | 20 | ||
| 18 | $key-focus--border-width: props.def(--o-navbar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 21 | $key-focus--border-width: props.def( |
| 19 | $key-focus--border-offset: props.def(--o-navbar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 22 | --o-navbar--key-focus--border-width, |
| 20 | $key-focus--outline-width: props.def(--o-navbar--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 23 | props.get(core.$key-focus--border-width) |
| 24 | ) !default; | ||
| 25 | $key-focus--border-offset: props.def( | ||
| 26 | --o-navbar--key-focus--border-offset, | ||
| 27 | props.get(core.$key-focus--border-offset) | ||
| 28 | ) !default; | ||
| 29 | $key-focus--outline-width: props.def( | ||
| 30 | --o-navbar--key-focus--outline-width, | ||
| 31 | props.get(core.$key-focus--outline-width) | ||
| 32 | ) !default; | ||
| 21 | 33 | ||
| 22 | $themes: props.def(--o-navbar, (), 'color'); | 34 | $themes: props.def(--o-navbar, (), "color"); |
| 23 | 35 | ||
| 24 | $default-theme-override: () !default; | 36 | $default-theme-override: () !default; |
| 25 | $default-theme: map.deep-merge(( | 37 | $default-theme: map.deep-merge( |
| 26 | --text-color: props.get(core.$theme, --text), | 38 | ( |
| 27 | --label-color: props.get(core.$theme, --text-mute), | 39 | --text-color: props.get(core.$theme, --text), |
| 28 | 40 | --label-color: props.get(core.$theme, --text-mute), | |
| 29 | --hover: ( | ||
| 30 | --bg-color: props.get(core.$theme, --border-mute), | ||
| 31 | --text-color: props.get(core.$theme, --heading), | ||
| 32 | --label-color: props.get(core.$theme, --text), | ||
| 33 | ), | ||
| 34 | |||
| 35 | --active: ( | ||
| 36 | --bg-color: props.get(core.$theme, --border), | ||
| 37 | --text-color: props.get(core.$theme, --heading), | ||
| 38 | --label-color: props.get(core.$theme, --heading), | ||
| 39 | ), | ||
| 40 | |||
| 41 | --disabled: ( | ||
| 42 | --text-color: props.get(core.$theme, --border-strong), | ||
| 43 | --label-color: props.get(core.$theme, --text-disabled), | ||
| 44 | ), | ||
| 45 | |||
| 46 | --key-focus: ( | ||
| 47 | --label: props.get(core.$theme, --focus, --text), | ||
| 48 | --border: props.get(core.$theme, --focus, --border), | ||
| 49 | --outline: props.get(core.$theme, --focus, --outline), | ||
| 50 | ), | ||
| 51 | |||
| 52 | --selected: ( | ||
| 53 | --bg-color: props.get(core.$theme, --heading), | ||
| 54 | --text-color: props.get(core.$theme, --base, --50), | ||
| 55 | --label-color: props.get(core.$theme, --heading), | ||
| 56 | |||
| 57 | --hover: ( | 41 | --hover: ( |
| 58 | --bg-color: props.get(core.$theme, --text), | 42 | --bg-color: props.get(core.$theme, --border-mute), |
| 59 | --text-color: props.get(core.$theme, --base, --50), | 43 | --text-color: props.get(core.$theme, --heading), |
| 60 | --label-color: props.get(core.$theme, --heading), | 44 | --label-color: props.get(core.$theme, --text), |
| 61 | ), | 45 | ), |
| 62 | 46 | ||
| 63 | --active: ( | 47 | --active: ( |
| 64 | --bg-color: props.get(core.$theme, --text-mute), | 48 | --bg-color: props.get(core.$theme, --border), |
| 65 | --text-color: props.get(core.$theme, --base, --50), | 49 | --text-color: props.get(core.$theme, --heading), |
| 66 | --label-color: props.get(core.$theme, --heading), | 50 | --label-color: props.get(core.$theme, --heading), |
| 67 | ), | 51 | ), |
| 68 | 52 | ||
| 69 | --disabled: ( | 53 | --disabled: ( |
| 70 | --bg-color: props.get(core.$theme, --border-mute), | 54 | --text-color: props.get(core.$theme, --border-strong), |
| 71 | --text-color: props.get(core.$theme, --border-strong), | ||
| 72 | --label-color: props.get(core.$theme, --text-disabled), | 55 | --label-color: props.get(core.$theme, --text-disabled), |
| 73 | ), | 56 | ), |
| 74 | ), | ||
| 75 | |||
| 76 | --quiet: ( | ||
| 77 | --selected: ( | ||
| 78 | --bg-color: props.get(core.$theme, --border-mute), | ||
| 79 | --text-color: props.get(core.$theme, --heading), | ||
| 80 | |||
| 81 | --hover: ( | ||
| 82 | --bg-color: props.get(core.$theme, --border), | ||
| 83 | --text-color: props.get(core.$theme, --heading), | ||
| 84 | ), | ||
| 85 | |||
| 86 | --active: ( | ||
| 87 | --bg-color: props.get(core.$theme, --border-strong), | ||
| 88 | --text-color: props.get(core.$theme, --heading), | ||
| 89 | ), | ||
| 90 | |||
| 91 | --disabled: ( | ||
| 92 | --bg-color: props.get(core.$theme, --border-mute), | ||
| 93 | --text-color: props.get(core.$theme, --border-strong), | ||
| 94 | ), | ||
| 95 | ) | ||
| 96 | ) | ||
| 97 | ), $default-theme-override) !default; | ||
| 98 | $default-theme: props.def(--o-navbar, $default-theme, 'color'); | ||
| 99 | |||
| 100 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | ||
| 101 | $nav-theme: --static-#{string.slice($theme, 3)}; | ||
| 102 | 57 | ||
| 103 | $themes: props.merge($themes, ( | 58 | --key-focus: ( |
| 104 | $nav-theme: ( | 59 | --label: props.get(core.$theme, --focus, --text), |
| 105 | --text-color: props.get(core.$transparent-colors, $theme, --800), | 60 | --border: props.get(core.$theme, --focus, --border), |
| 106 | --label-color: props.get(core.$transparent-colors, $theme, --700), | 61 | --outline: props.get(core.$theme, --focus, --outline), |
| 62 | ), | ||
| 107 | 63 | ||
| 64 | --selected: ( | ||
| 65 | --bg-color: props.get(core.$theme, --heading), | ||
| 66 | --text-color: props.get(core.$theme, --base, --50), | ||
| 67 | --label-color: props.get(core.$theme, --heading), | ||
| 108 | --hover: ( | 68 | --hover: ( |
| 109 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 69 | --bg-color: props.get(core.$theme, --text), |
| 110 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 70 | --text-color: props.get(core.$theme, --base, --50), |
| 111 | --label-color: props.get(core.$transparent-colors, $theme, --800), | 71 | --label-color: props.get(core.$theme, --heading), |
| 112 | ), | 72 | ), |
| 113 | 73 | ||
| 114 | --active: ( | 74 | --active: ( |
| 115 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 75 | --bg-color: props.get(core.$theme, --text-mute), |
| 116 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 76 | --text-color: props.get(core.$theme, --base, --50), |
| 117 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 77 | --label-color: props.get(core.$theme, --heading), |
| 118 | ), | 78 | ), |
| 119 | 79 | ||
| 120 | --disabled: ( | 80 | --disabled: ( |
| 121 | --text-color: props.get(core.$transparent-colors, $theme, --500), | 81 | --bg-color: props.get(core.$theme, --border-mute), |
| 122 | --label-color: props.get(core.$transparent-colors, $theme, --500), | 82 | --text-color: props.get(core.$theme, --border-strong), |
| 123 | ), | 83 | --label-color: props.get(core.$theme, --text-disabled), |
| 124 | |||
| 125 | --key-focus: ( | ||
| 126 | --label: props.get(core.$transparent-colors, $theme, --800), | ||
| 127 | --border: props.get(core.$transparent-colors, $theme, --900), | ||
| 128 | --outline: props.get(core.$transparent-colors, $theme, --300), | ||
| 129 | ), | 84 | ), |
| 85 | ), | ||
| 130 | 86 | ||
| 87 | --quiet: ( | ||
| 131 | --selected: ( | 88 | --selected: ( |
| 132 | --bg-color: props.get(core.$transparent-colors, $theme, --900), | 89 | --bg-color: props.get(core.$theme, --border-mute), |
| 133 | --text-color: props.get(core.$transparent-colors, $theme, --text), | 90 | --text-color: props.get(core.$theme, --heading), |
| 134 | --label-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 135 | |||
| 136 | --hover: ( | 91 | --hover: ( |
| 137 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | 92 | --bg-color: props.get(core.$theme, --border), |
| 138 | --text-color: props.get(core.$transparent-colors, $theme, --text), | 93 | --text-color: props.get(core.$theme, --heading), |
| 139 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 140 | ), | 94 | ), |
| 141 | 95 | ||
| 142 | --active: ( | 96 | --active: ( |
| 143 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | 97 | --bg-color: props.get(core.$theme, --border-strong), |
| 144 | --text-color: props.get(core.$transparent-colors, $theme, --text), | 98 | --text-color: props.get(core.$theme, --heading), |
| 145 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 146 | ), | 99 | ), |
| 147 | 100 | ||
| 148 | --disabled: ( | 101 | --disabled: ( |
| 149 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 102 | --bg-color: props.get(core.$theme, --border-mute), |
| 150 | --text-color: props.get(core.$transparent-colors, $theme, --500), | 103 | --text-color: props.get(core.$theme, --border-strong), |
| 151 | --label-color: props.get(core.$transparent-colors, $theme, --100), | ||
| 152 | ), | 104 | ), |
| 153 | ), | 105 | ), |
| 106 | ), | ||
| 107 | ), | ||
| 108 | $default-theme-override | ||
| 109 | ) !default; | ||
| 110 | $default-theme: props.def(--o-navbar, $default-theme, "color"); | ||
| 154 | 111 | ||
| 155 | --quiet: ( | 112 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 156 | --selected: ( | 113 | $nav-theme: --static-#{string.slice($theme, 3)}; |
| 157 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | ||
| 158 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 159 | 114 | ||
| 115 | $themes: props.merge( | ||
| 116 | $themes, | ||
| 117 | ( | ||
| 118 | $nav-theme: ( | ||
| 119 | --text-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 120 | --label-color: props.get(core.$transparent-colors, $theme, --700), | ||
| 160 | --hover: ( | 121 | --hover: ( |
| 161 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 122 | --bg-color: props.get(core.$transparent-colors, $theme, --300), |
| 162 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 123 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 163 | ), | 124 | --label-color: props.get(core.$transparent-colors, $theme, --800), |
| 125 | ), | ||
| 164 | 126 | ||
| 165 | --active: ( | 127 | --active: ( |
| 166 | --bg-color: props.get(core.$transparent-colors, $theme, --500), | 128 | --bg-color: props.get(core.$transparent-colors, $theme, --400), |
| 167 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 129 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 168 | ), | 130 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 131 | ), | ||
| 169 | 132 | ||
| 170 | --disabled: ( | 133 | --disabled: ( |
| 171 | --bg-color: props.get(core.$transparent-colors, $theme, --100), | 134 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 172 | --text-color: props.get(core.$transparent-colors, $theme, --500), | 135 | --label-color: props.get(core.$transparent-colors, $theme, --500), |
| 173 | ), | 136 | ), |
| 174 | ) | 137 | |
| 175 | ) | 138 | --key-focus: ( |
| 139 | --label: props.get(core.$transparent-colors, $theme, --800), | ||
| 140 | --border: props.get(core.$transparent-colors, $theme, --900), | ||
| 141 | --outline: props.get(core.$transparent-colors, $theme, --300), | ||
| 142 | ), | ||
| 143 | |||
| 144 | --selected: ( | ||
| 145 | --bg-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 146 | --text-color: props.get(core.$transparent-colors, $theme, --text), | ||
| 147 | --label-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 148 | --hover: ( | ||
| 149 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 150 | --text-color: props.get( | ||
| 151 | core.$transparent-colors, | ||
| 152 | $theme, | ||
| 153 | --text | ||
| 154 | ), | ||
| 155 | --label-color: props.get( | ||
| 156 | core.$transparent-colors, | ||
| 157 | $theme, | ||
| 158 | --900 | ||
| 159 | ), | ||
| 160 | ), | ||
| 161 | |||
| 162 | --active: ( | ||
| 163 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 164 | --text-color: props.get( | ||
| 165 | core.$transparent-colors, | ||
| 166 | $theme, | ||
| 167 | --text | ||
| 168 | ), | ||
| 169 | --label-color: props.get( | ||
| 170 | core.$transparent-colors, | ||
| 171 | $theme, | ||
| 172 | --900 | ||
| 173 | ), | ||
| 174 | ), | ||
| 175 | |||
| 176 | --disabled: ( | ||
| 177 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | ||
| 178 | --text-color: props.get( | ||
| 179 | core.$transparent-colors, | ||
| 180 | $theme, | ||
| 181 | --500 | ||
| 182 | ), | ||
| 183 | --label-color: props.get( | ||
| 184 | core.$transparent-colors, | ||
| 185 | $theme, | ||
| 186 | --100 | ||
| 187 | ), | ||
| 188 | ), | ||
| 189 | ), | ||
| 190 | |||
| 191 | --quiet: ( | ||
| 192 | --selected: ( | ||
| 193 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | ||
| 194 | --text-color: props.get( | ||
| 195 | core.$transparent-colors, | ||
| 196 | $theme, | ||
| 197 | --900 | ||
| 198 | ), | ||
| 199 | --hover: ( | ||
| 200 | --bg-color: props.get( | ||
| 201 | core.$transparent-colors, | ||
| 202 | $theme, | ||
| 203 | --400 | ||
| 204 | ), | ||
| 205 | --text-color: props.get( | ||
| 206 | core.$transparent-colors, | ||
| 207 | $theme, | ||
| 208 | --900 | ||
| 209 | ), | ||
| 210 | ), | ||
| 211 | |||
| 212 | --active: ( | ||
| 213 | --bg-color: props.get( | ||
| 214 | core.$transparent-colors, | ||
| 215 | $theme, | ||
| 216 | --500 | ||
| 217 | ), | ||
| 218 | --text-color: props.get( | ||
| 219 | core.$transparent-colors, | ||
| 220 | $theme, | ||
| 221 | --900 | ||
| 222 | ), | ||
| 223 | ), | ||
| 224 | |||
| 225 | --disabled: ( | ||
| 226 | --bg-color: props.get( | ||
| 227 | core.$transparent-colors, | ||
| 228 | $theme, | ||
| 229 | --100 | ||
| 230 | ), | ||
| 231 | --text-color: props.get( | ||
| 232 | core.$transparent-colors, | ||
| 233 | $theme, | ||
| 234 | --500 | ||
| 235 | ), | ||
| 236 | ), | ||
| 237 | ), | ||
| 238 | ), | ||
| 239 | ), | ||
| 176 | ) | 240 | ) |
| 177 | )); | 241 | ); |
| 178 | } | 242 | } |
diff --git a/src/objects/_palette.scss b/src/objects/_palette.scss index f503812..88448e0 100644 --- a/src/objects/_palette.scss +++ b/src/objects/_palette.scss | |||
| @@ -1,21 +1,27 @@ | |||
| 1 | @use 'sass:list'; | 1 | @use "sass:list"; |
| 2 | @use 'sass:map'; | 2 | @use "sass:map"; |
| 3 | @use 'sass:string'; | 3 | @use "sass:string"; |
| 4 | @use 'pkg:iro-sass/src/bem'; | 4 | @use "pkg:iro-sass/bem"; |
| 5 | @use '../config'; | 5 | @use "../config"; |
| 6 | @use 'pkg:iro-sass/src/props'; | 6 | @use "pkg:iro-sass/props"; |
| 7 | @use '../core.vars' as core; | 7 | @use "../core.vars" as core; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include bem.object('palette') { | 10 | @include bem.object("palette") { |
| 11 | display: flex; | 11 | display: flex; |
| 12 | block-size: 3em; | 12 | block-size: 3em; |
| 13 | 13 | ||
| 14 | @include bem.elem('item') { | 14 | @include bem.elem("item") { |
| 15 | flex: 1 1 auto; | 15 | flex: 1 1 auto; |
| 16 | 16 | ||
| 17 | $palette: map.get(config.$themes, config.$theme-default, light, --palettes, --base); | 17 | $palette: map.get(config.$themes, config.$theme-default, light, --palettes, --base); |
| 18 | $levels: map.get(config.$themes, config.$theme-default, light, --levels, list.nth($palette, 2)); | 18 | $levels: map.get( |
| 19 | config.$themes, | ||
| 20 | config.$theme-default, | ||
| 21 | light, | ||
| 22 | --levels, | ||
| 23 | list.nth($palette, 2) | ||
| 24 | ); | ||
| 19 | 25 | ||
| 20 | @for $i from 1 through list.length($levels) { | 26 | @for $i from 1 through list.length($levels) { |
| 21 | $key: list.nth(map.keys($levels), $i); | 27 | $key: list.nth(map.keys($levels), $i); |
| @@ -26,11 +32,19 @@ | |||
| 26 | } | 32 | } |
| 27 | } | 33 | } |
| 28 | 34 | ||
| 29 | @each $palette-name, $palette in map.get(config.$themes, config.$theme-default, light, --palettes) { | 35 | @each $palette-name, |
| 30 | $levels: map.get(config.$themes, config.$theme-default, light, --levels, list.nth($palette, 2)); | 36 | $palette in map.get(config.$themes, config.$theme-default, light, --palettes) |
| 37 | { | ||
| 38 | $levels: map.get( | ||
| 39 | config.$themes, | ||
| 40 | config.$theme-default, | ||
| 41 | light, | ||
| 42 | --levels, | ||
| 43 | list.nth($palette, 2) | ||
| 44 | ); | ||
| 31 | 45 | ||
| 32 | @include bem.modifier(string.slice($palette-name, 3)) { | 46 | @include bem.modifier(string.slice($palette-name, 3)) { |
| 33 | @include bem.elem('item') { | 47 | @include bem.elem("item") { |
| 34 | @for $i from 1 through list.length($levels) { | 48 | @for $i from 1 through list.length($levels) { |
| 35 | $key: list.nth(map.keys($levels), $i); | 49 | $key: list.nth(map.keys($levels), $i); |
| 36 | 50 | ||
| @@ -42,17 +56,21 @@ | |||
| 42 | } | 56 | } |
| 43 | } | 57 | } |
| 44 | 58 | ||
| 45 | @include bem.modifier('static') { | 59 | @include bem.modifier("static") { |
| 46 | @each $palette-name, $palette in map.get(config.$static-colors, --palettes) { | 60 | @each $palette-name, $palette in map.get(config.$static-colors, --palettes) { |
| 47 | $levels: map.get(config.$static-colors, --levels); | 61 | $levels: map.get(config.$static-colors, --levels); |
| 48 | 62 | ||
| 49 | @include bem.modifier(string.slice($palette-name, 3)) { | 63 | @include bem.modifier(string.slice($palette-name, 3)) { |
| 50 | @include bem.elem('item') { | 64 | @include bem.elem("item") { |
| 51 | @for $i from 1 through list.length($levels) { | 65 | @for $i from 1 through list.length($levels) { |
| 52 | $key: list.nth(map.keys($levels), $i); | 66 | $key: list.nth(map.keys($levels), $i); |
| 53 | 67 | ||
| 54 | &:nth-child(#{$i}) { | 68 | &:nth-child(#{$i}) { |
| 55 | background-color: props.get(core.$theme, #{$palette-name}-static, $key); | 69 | background-color: props.get( |
| 70 | core.$theme, | ||
| 71 | #{$palette-name}-static, | ||
| 72 | $key | ||
| 73 | ); | ||
| 56 | } | 74 | } |
| 57 | } | 75 | } |
| 58 | } | 76 | } |
diff --git a/src/objects/_placeholders.scss b/src/objects/_placeholders.scss index 683f57e..d0af033 100644 --- a/src/objects/_placeholders.scss +++ b/src/objects/_placeholders.scss | |||
| @@ -1,22 +1,22 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'placeholders.vars'; | 6 | @forward "placeholders.vars"; |
| 7 | @use 'placeholders.vars' as vars; | 7 | @use "placeholders.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables('vars')); | 10 | @include materialize-at-root(meta.module-variables("vars")); |
| 11 | 11 | ||
| 12 | @include bem.object('placeholders') { | 12 | @include bem.object("placeholders") { |
| 13 | @include bem.elem('placeholder') { | 13 | @include bem.elem("placeholder") { |
| 14 | display: inline-block; | 14 | display: inline-block; |
| 15 | min-block-size: props.get(vars.$min-block-size); | 15 | min-block-size: props.get(vars.$min-block-size); |
| 16 | vertical-align: middle; | 16 | vertical-align: middle; |
| 17 | background-color: currentColor; | 17 | background-color: currentColor; |
| 18 | border-radius: props.get(vars.$rounding); | 18 | border-radius: props.get(vars.$rounding); |
| 19 | opacity: props.get(vars.$opacity); | 19 | opacity: props.get(vars.$opacity); |
| 20 | } | 20 | } |
| 21 | } | 21 | } |
| 22 | } | 22 | } |
diff --git a/src/objects/_placeholders.vars.scss b/src/objects/_placeholders.vars.scss index 1ac4ef7..87e1657 100644 --- a/src/objects/_placeholders.vars.scss +++ b/src/objects/_placeholders.vars.scss | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | @use 'pkg:iro-sass/src/props'; | 1 | @use "pkg:iro-sass/props"; |
| 2 | @use '../core.vars' as core; | 2 | @use "../core.vars" as core; |
| 3 | 3 | ||
| 4 | $min-block-size: props.def(--o-placeholder--min-block-size, 1em) !default; | 4 | $min-block-size: props.def(--o-placeholder--min-block-size, 1em) !default; |
| 5 | $rounding: props.def(--o-placeholder--rounding, props.get(core.$rounding)) !default; | 5 | $rounding: props.def(--o-placeholder--rounding, props.get(core.$rounding)) !default; |
| 6 | $opacity: props.def(--o-placeholder--opacity, .5) !default; | 6 | $opacity: props.def(--o-placeholder--opacity, 0.5) !default; |
diff --git a/src/objects/_popover.scss b/src/objects/_popover.scss index 1cb5660..90187c1 100644 --- a/src/objects/_popover.scss +++ b/src/objects/_popover.scss | |||
| @@ -1,44 +1,40 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'popover.vars'; | 6 | @forward "popover.vars"; |
| 7 | @use 'popover.vars' as vars; | 7 | @use "popover.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables('vars')); | 10 | @include materialize-at-root(meta.module-variables("vars")); |
| 11 | 11 | ||
| 12 | @include bem.object('popover') { | 12 | @include bem.object("popover") { |
| 13 | position: fixed; | 13 | position: fixed; |
| 14 | inset-block-start: 0; | 14 | inset-block-start: 0; |
| 15 | inset-inline-start: 0; | 15 | inset-inline-start: 0; |
| 16 | z-index: props.get(vars.$z-index); | 16 | z-index: props.get(vars.$z-index); |
| 17 | padding-block: props.get(vars.$pad-b); | 17 | padding-block: props.get(vars.$pad-b); |
| 18 | padding-inline: props.get(vars.$pad-i); | 18 | padding-inline: props.get(vars.$pad-i); |
| 19 | margin: 0; | 19 | margin: 0; |
| 20 | color: currentColor; | 20 | color: currentColor; |
| 21 | background-color: props.get(vars.$bg-color); | 21 | background-color: props.get(vars.$bg-color); |
| 22 | border: props.get(vars.$border-width) solid transparent; | 22 | border: props.get(vars.$border-width) solid transparent; |
| 23 | border-color: props.get(vars.$border-color); | 23 | border-color: props.get(vars.$border-color); |
| 24 | border-radius: props.get(vars.$rounding); | 24 | border-radius: props.get(vars.$rounding); |
| 25 | box-shadow: | 25 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) |
| 26 | props.get(vars.$shadow-x) | 26 | props.get(vars.$shadow-grow) props.get(vars.$shadow-color); |
| 27 | props.get(vars.$shadow-y) | 27 | transform: translate(var(--x), var(--y)); |
| 28 | props.get(vars.$shadow-blur) | ||
| 29 | props.get(vars.$shadow-grow) | ||
| 30 | props.get(vars.$shadow-color); | ||
| 31 | transform: translate(var(--x), var(--y)); | ||
| 32 | 28 | ||
| 33 | @include bem.modifier('up-left') { | 29 | @include bem.modifier("up-left") { |
| 34 | transform: translate(var(--x), calc(var(--y) - 100%)); | 30 | transform: translate(var(--x), calc(var(--y) - 100%)); |
| 35 | } | 31 | } |
| 36 | 32 | ||
| 37 | @include bem.modifier('up-right') { | 33 | @include bem.modifier("up-right") { |
| 38 | transform: translate(calc(var(--x) - 100%), calc(var(--y) - 100%)); | 34 | transform: translate(calc(var(--x) - 100%), calc(var(--y) - 100%)); |
| 39 | } | 35 | } |
| 40 | 36 | ||
| 41 | @include bem.modifier('down-right') { | 37 | @include bem.modifier("down-right") { |
| 42 | transform: translate(calc(var(--x) - 100%), var(--y)); | 38 | transform: translate(calc(var(--x) - 100%), var(--y)); |
| 43 | } | 39 | } |
| 44 | } | 40 | } |
diff --git a/src/objects/_popover.vars.scss b/src/objects/_popover.vars.scss index 202d71a..df1072e 100644 --- a/src/objects/_popover.vars.scss +++ b/src/objects/_popover.vars.scss | |||
| @@ -1,19 +1,28 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $z-index: props.def(--o-popover--z-index, 11000) !default; | 5 | $z-index: props.def(--o-popover--z-index, 11000) !default; |
| 6 | $pad-i: props.def(--o-popover--pad-i, 0) !default; | 6 | $pad-i: props.def(--o-popover--pad-i, 0) !default; |
| 7 | $pad-b: props.def(--o-popover--pad-b, props.get(core.$size--85)) !default; | 7 | $pad-b: props.def(--o-popover--pad-b, props.get(core.$size--85)) !default; |
| 8 | $separator-width: props.def(--o-popover--separator-width, props.get(core.$size--85)) !default; | 8 | $separator-width: props.def(--o-popover--separator-width, props.get(core.$size--85)) !default; |
| 9 | $rounding: props.def(--o-popover--rounding, props.get(core.$rounding)) !default; | 9 | $rounding: props.def(--o-popover--rounding, props.get(core.$rounding)) !default; |
| 10 | $border-width: props.def(--o-popover--border-width, props.get(core.$border-width--thin)) !default; | 10 | $border-width: props.def(--o-popover--border-width, props.get(core.$border-width--thin)) !default; |
| 11 | 11 | ||
| 12 | $shadow-x: props.def(--o-popover--shadow-x, props.get(core.$shadow--l2--x)) !default; | 12 | $shadow-x: props.def(--o-popover--shadow-x, props.get(core.$shadow--l2--x)) !default; |
| 13 | $shadow-y: props.def(--o-popover--shadow-y, props.get(core.$shadow--l2--y)) !default; | 13 | $shadow-y: props.def(--o-popover--shadow-y, props.get(core.$shadow--l2--y)) !default; |
| 14 | $shadow-blur: props.def(--o-popover--shadow-blur, props.get(core.$shadow--l2--blur)) !default; | 14 | $shadow-blur: props.def(--o-popover--shadow-blur, props.get(core.$shadow--l2--blur)) !default; |
| 15 | $shadow-grow: props.def(--o-popover--shadow-grow, props.get(core.$shadow--l2--grow)) !default; | 15 | $shadow-grow: props.def(--o-popover--shadow-grow, props.get(core.$shadow--l2--grow)) !default; |
| 16 | 16 | ||
| 17 | $bg-color: props.def(--o-popover--bg-color, props.get(core.$theme, --bg-l2), 'color') !default; | 17 | $bg-color: props.def(--o-popover--bg-color, props.get(core.$theme, --bg-l2), "color") !default; |
| 18 | $border-color: props.def(--o-popover--border-color, props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border-strong), 'color') !default; | 18 | $border-color: props.def( |
| 19 | $shadow-color: props.def(--o-popover--shadow-color, props.get(core.$theme, --shadow), 'color') !default; | 19 | --o-popover--border-color, |
| 20 | props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border) | ||
| 21 | props.get(core.$theme, --box, --border-strong), | ||
| 22 | "color" | ||
| 23 | ) !default; | ||
| 24 | $shadow-color: props.def( | ||
| 25 | --o-popover--shadow-color, | ||
| 26 | props.get(core.$theme, --shadow), | ||
| 27 | "color" | ||
| 28 | ) !default; | ||
diff --git a/src/objects/_radio.scss b/src/objects/_radio.scss index ae4a85a..c964657 100644 --- a/src/objects/_radio.scss +++ b/src/objects/_radio.scss | |||
| @@ -1,92 +1,100 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | @use '../core.vars' as core; | 5 | @use "../core.vars" as core; |
| 6 | 6 | ||
| 7 | @forward 'radio.vars'; | 7 | @forward "radio.vars"; |
| 8 | @use 'radio.vars' as vars; | 8 | @use "radio.vars" as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables("vars")); |
| 12 | 12 | ||
| 13 | @include bem.object('radio') { | 13 | @include bem.object("radio") { |
| 14 | position: relative; | 14 | position: relative; |
| 15 | display: inline-block; | 15 | display: inline-block; |
| 16 | padding-block: props.get(vars.$pad-b); | 16 | padding-block: props.get(vars.$pad-b); |
| 17 | padding-inline: props.get(vars.$pad-i); | 17 | padding-inline: props.get(vars.$pad-i); |
| 18 | margin-inline: | 18 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) |
| 19 | calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 19 | calc( |
| 20 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)); | 20 | props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get( |
| 21 | vars.$key-focus--border-offset | ||
| 22 | ) | ||
| 23 | ); | ||
| 21 | 24 | ||
| 22 | @include bem.elem('circle') { | 25 | @include bem.elem("circle") { |
| 23 | display: inline-block; | 26 | display: inline-block; |
| 24 | flex: 0 0 auto; | 27 | flex: 0 0 auto; |
| 25 | inline-size: props.get(vars.$diameter); | 28 | inline-size: props.get(vars.$diameter); |
| 26 | block-size: props.get(vars.$diameter); | 29 | block-size: props.get(vars.$diameter); |
| 27 | margin-block-start: calc(.5em * props.get(core.$font--standard--line-height) - .5 * props.get(vars.$diameter) - props.get(vars.$key-focus--border-offset)); | 30 | margin-block-start: calc( |
| 28 | vertical-align: top; | 31 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * |
| 29 | background-color: props.get(vars.$circle-border-color); | 32 | props.get(vars.$diameter) - props.get(vars.$key-focus--border-offset) |
| 30 | background-clip: padding-box; | 33 | ); |
| 31 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 34 | vertical-align: top; |
| 32 | border-radius: 2em; | 35 | background-color: props.get(vars.$circle-border-color); |
| 36 | background-clip: padding-box; | ||
| 37 | border: props.get(vars.$key-focus--border-offset) solid transparent; | ||
| 38 | border-radius: 2em; | ||
| 33 | 39 | ||
| 34 | &::after { | 40 | &::after { |
| 35 | position: relative; | 41 | position: relative; |
| 36 | inset-block-start: props.get(vars.$border-width); | 42 | inset-block-start: props.get(vars.$border-width); |
| 37 | inset-inline-start: props.get(vars.$border-width); | 43 | inset-inline-start: props.get(vars.$border-width); |
| 38 | display: block; | 44 | display: block; |
| 39 | inline-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); | 45 | inline-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); |
| 40 | block-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); | 46 | block-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); |
| 41 | content: ''; | 47 | content: ""; |
| 42 | background-color: props.get(vars.$circle-bg-color); | 48 | background-color: props.get(vars.$circle-bg-color); |
| 43 | border-radius: props.get(vars.$diameter); | 49 | border-radius: props.get(vars.$diameter); |
| 44 | transition: transform .2s ease; | 50 | transition: transform 0.2s ease; |
| 45 | } | 51 | } |
| 46 | } | 52 | } |
| 47 | 53 | ||
| 48 | @include bem.elem('label') { | 54 | @include bem.elem("label") { |
| 49 | margin-inline-start: calc(props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset)); | 55 | margin-inline-start: calc( |
| 56 | props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset) | ||
| 57 | ); | ||
| 50 | } | 58 | } |
| 51 | 59 | ||
| 52 | @include bem.elem('native') { | 60 | @include bem.elem("native") { |
| 53 | position: absolute; | 61 | position: absolute; |
| 54 | inset-block-start: 0; | 62 | inset-block-start: 0; |
| 55 | inset-inline-start: 0; | 63 | inset-inline-start: 0; |
| 56 | z-index: -1; | 64 | z-index: -1; |
| 57 | inline-size: 100%; | 65 | inline-size: 100%; |
| 58 | block-size: 100%; | 66 | block-size: 100%; |
| 59 | padding: 0; | 67 | padding: 0; |
| 60 | margin: 0; | 68 | margin: 0; |
| 61 | overflow: hidden; | 69 | overflow: hidden; |
| 62 | appearance: none; | 70 | appearance: none; |
| 63 | border-radius: props.get(vars.$rounding); | 71 | border-radius: props.get(vars.$rounding); |
| 64 | 72 | ||
| 65 | &:hover, | 73 | &:hover, |
| 66 | &:focus-visible { | 74 | &:focus-visible { |
| 67 | @include bem.sibling-elem('label') { | 75 | @include bem.sibling-elem("label") { |
| 68 | color: props.get(vars.$hover--label-color); | 76 | color: props.get(vars.$hover--label-color); |
| 69 | } | 77 | } |
| 70 | 78 | ||
| 71 | @include bem.sibling-elem('circle') { | 79 | @include bem.sibling-elem("circle") { |
| 72 | background-color: props.get(vars.$hover--circle-border-color); | 80 | background-color: props.get(vars.$hover--circle-border-color); |
| 73 | } | 81 | } |
| 74 | } | 82 | } |
| 75 | 83 | ||
| 76 | &:checked { | 84 | &:checked { |
| 77 | @include bem.sibling-elem('circle') { | 85 | @include bem.sibling-elem("circle") { |
| 78 | &::after { | 86 | &::after { |
| 79 | transform: scale(.44); | 87 | transform: scale(0.44); |
| 80 | } | 88 | } |
| 81 | } | 89 | } |
| 82 | } | 90 | } |
| 83 | 91 | ||
| 84 | &:disabled { | 92 | &:disabled { |
| 85 | @include bem.sibling-elem('label') { | 93 | @include bem.sibling-elem("label") { |
| 86 | color: props.get(vars.$disabled--label-color); | 94 | color: props.get(vars.$disabled--label-color); |
| 87 | } | 95 | } |
| 88 | 96 | ||
| 89 | @include bem.sibling-elem('circle') { | 97 | @include bem.sibling-elem("circle") { |
| 90 | background-color: props.get(vars.$disabled--circle-border-color); | 98 | background-color: props.get(vars.$disabled--circle-border-color); |
| 91 | 99 | ||
| 92 | &::after { | 100 | &::after { |
| @@ -96,45 +104,46 @@ | |||
| 96 | } | 104 | } |
| 97 | 105 | ||
| 98 | &:focus-visible { | 106 | &:focus-visible { |
| 99 | @include bem.sibling-elem('label') { | 107 | @include bem.sibling-elem("label") { |
| 100 | color: props.get(vars.$key-focus--label-color); | 108 | color: props.get(vars.$key-focus--label-color); |
| 101 | } | 109 | } |
| 102 | 110 | ||
| 103 | @include bem.sibling-elem('circle') { | 111 | @include bem.sibling-elem("circle") { |
| 104 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 112 | outline: props.get(vars.$key-focus--border-color) solid |
| 105 | box-shadow: | 113 | props.get(vars.$key-focus--border-width); |
| 106 | 0 | 114 | box-shadow: 0 0 0 |
| 107 | 0 | 115 | calc( |
| 108 | 0 | 116 | props.get(vars.$key-focus--border-width) + |
| 109 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | 117 | props.get(vars.$key-focus--outline-width) |
| 118 | ) | ||
| 110 | props.get(vars.$key-focus--outline-color); | 119 | props.get(vars.$key-focus--outline-color); |
| 111 | } | 120 | } |
| 112 | } | 121 | } |
| 113 | } | 122 | } |
| 114 | 123 | ||
| 115 | @include bem.modifier('standalone') { | 124 | @include bem.modifier("standalone") { |
| 116 | @include bem.elem('circle') { | 125 | @include bem.elem("circle") { |
| 117 | margin-block-start: 0; | 126 | margin-block-start: 0; |
| 118 | } | 127 | } |
| 119 | } | 128 | } |
| 120 | 129 | ||
| 121 | @include bem.modifier('accent') { | 130 | @include bem.modifier("accent") { |
| 122 | @include bem.elem('native') { | 131 | @include bem.elem("native") { |
| 123 | &:checked { | 132 | &:checked { |
| 124 | @include bem.sibling-elem('circle') { | 133 | @include bem.sibling-elem("circle") { |
| 125 | background-color: props.get(vars.$accent--circle-border-color); | 134 | background-color: props.get(vars.$accent--circle-border-color); |
| 126 | } | 135 | } |
| 127 | 136 | ||
| 128 | &:hover, | 137 | &:hover, |
| 129 | &:focus-visible { | 138 | &:focus-visible { |
| 130 | @include bem.sibling-elem('circle') { | 139 | @include bem.sibling-elem("circle") { |
| 131 | background-color: props.get(vars.$accent--hover--circle-border-color); | 140 | background-color: props.get(vars.$accent--hover--circle-border-color); |
| 132 | } | 141 | } |
| 133 | } | 142 | } |
| 134 | } | 143 | } |
| 135 | 144 | ||
| 136 | &:disabled { | 145 | &:disabled { |
| 137 | @include bem.sibling-elem('circle') { | 146 | @include bem.sibling-elem("circle") { |
| 138 | background-color: props.get(vars.$disabled--circle-border-color); | 147 | background-color: props.get(vars.$disabled--circle-border-color); |
| 139 | 148 | ||
| 140 | &::after { | 149 | &::after { |
| @@ -143,7 +152,7 @@ | |||
| 143 | } | 152 | } |
| 144 | 153 | ||
| 145 | &:checked { | 154 | &:checked { |
| 146 | @include bem.sibling-elem('circle') { | 155 | @include bem.sibling-elem("circle") { |
| 147 | background-color: props.get(vars.$disabled--circle-border-color); | 156 | background-color: props.get(vars.$disabled--circle-border-color); |
| 148 | } | 157 | } |
| 149 | } | 158 | } |
diff --git a/src/objects/_radio.vars.scss b/src/objects/_radio.vars.scss index a5f249d..e7a41a4 100644 --- a/src/objects/_radio.vars.scss +++ b/src/objects/_radio.vars.scss | |||
| @@ -1,33 +1,90 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $diameter: props.def(--o-radio--diameter, props.get(core.$size--200)) !default; | 5 | $diameter: props.def(--o-radio--diameter, props.get(core.$size--200)) !default; |
| 6 | $label-gap: props.def(--o-radio--label-gap, props.get(core.$size--125)) !default; | 6 | $label-gap: props.def(--o-radio--label-gap, props.get(core.$size--125)) !default; |
| 7 | $border-width: props.def(--o-radio--border-width, props.get(core.$border-width--medium)) !default; | 7 | $border-width: props.def(--o-radio--border-width, props.get(core.$border-width--medium)) !default; |
| 8 | $pad-i: props.def(--o-radio--pad-i, props.get(core.$size--65)) !default; | 8 | $pad-i: props.def(--o-radio--pad-i, props.get(core.$size--65)) !default; |
| 9 | $pad-b: props.def(--o-radio--pad-b, props.get(core.$size--65)) !default; | 9 | $pad-b: props.def(--o-radio--pad-b, props.get(core.$size--65)) !default; |
| 10 | $rounding: props.def(--o-radio--rounding, props.get(core.$rounding--sm)) !default; | 10 | $rounding: props.def(--o-radio--rounding, props.get(core.$rounding--sm)) !default; |
| 11 | $spacing-sibling: props.def(--o-radio--spacing-sibling, props.get(core.$size--300)) !default; | 11 | $spacing-sibling: props.def(--o-radio--spacing-sibling, props.get(core.$size--300)) !default; |
| 12 | 12 | ||
| 13 | $key-focus--border-width: props.def(--o-radio--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 13 | $key-focus--border-width: props.def( |
| 14 | $key-focus--border-offset: props.def(--o-radio--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 14 | --o-radio--key-focus--border-width, |
| 15 | $key-focus--outline-width: props.def(--o-radio--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 15 | props.get(core.$key-focus--border-width) |
| 16 | ) !default; | ||
| 17 | $key-focus--border-offset: props.def( | ||
| 18 | --o-radio--key-focus--border-offset, | ||
| 19 | props.get(core.$key-focus--border-offset) | ||
| 20 | ) !default; | ||
| 21 | $key-focus--outline-width: props.def( | ||
| 22 | --o-radio--key-focus--outline-width, | ||
| 23 | props.get(core.$key-focus--outline-width) | ||
| 24 | ) !default; | ||
| 16 | 25 | ||
| 17 | $circle-border-color: props.def(--o-radio--circle-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 26 | $circle-border-color: props.def( |
| 18 | $circle-bg-color: props.def(--o-radio--circle-bg-color, props.get(core.$theme, --base, --75), 'color') !default; | 27 | --o-radio--circle-border-color, |
| 28 | props.get(core.$theme, --text-mute-more), | ||
| 29 | "color" | ||
| 30 | ) !default; | ||
| 31 | $circle-bg-color: props.def( | ||
| 32 | --o-radio--circle-bg-color, | ||
| 33 | props.get(core.$theme, --base, --75), | ||
| 34 | "color" | ||
| 35 | ) !default; | ||
| 19 | 36 | ||
| 20 | $hover--label-color: props.def(--o-radio--hover--label-color, props.get(core.$theme, --heading), 'color') !default; | 37 | $hover--label-color: props.def( |
| 21 | $hover--circle-border-color: props.def(--o-radio--hover--circle-border-color, props.get(core.$theme, --text-mute), 'color') !default; | 38 | --o-radio--hover--label-color, |
| 39 | props.get(core.$theme, --heading), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | $hover--circle-border-color: props.def( | ||
| 43 | --o-radio--hover--circle-border-color, | ||
| 44 | props.get(core.$theme, --text-mute), | ||
| 45 | "color" | ||
| 46 | ) !default; | ||
| 22 | 47 | ||
| 23 | $accent--circle-border-color: props.def(--o-radio--accent--circle-border-color, props.get(core.$theme, --accent, --900), 'color') !default; | 48 | $accent--circle-border-color: props.def( |
| 49 | --o-radio--accent--circle-border-color, | ||
| 50 | props.get(core.$theme, --accent, --900), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 24 | 53 | ||
| 25 | $accent--hover--circle-border-color: props.def(--o-radio--accent--hover--circle-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; | 54 | $accent--hover--circle-border-color: props.def( |
| 55 | --o-radio--accent--hover--circle-border-color, | ||
| 56 | props.get(core.$theme, --accent, --1000), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 26 | 59 | ||
| 27 | $disabled--label-color: props.def(--o-radio--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; | 60 | $disabled--label-color: props.def( |
| 28 | $disabled--circle-border-color: props.def(--o-radio--disabled--circle-border-color, props.get(core.$theme, --border-strong), 'color') !default; | 61 | --o-radio--disabled--label-color, |
| 29 | $disabled--circle-bg-color: props.def(--o-radio--disabled--circle-bg-color, props.get(core.$theme, --base, --75), 'color') !default; | 62 | props.get(core.$theme, --text-disabled), |
| 63 | "color" | ||
| 64 | ) !default; | ||
| 65 | $disabled--circle-border-color: props.def( | ||
| 66 | --o-radio--disabled--circle-border-color, | ||
| 67 | props.get(core.$theme, --border-strong), | ||
| 68 | "color" | ||
| 69 | ) !default; | ||
| 70 | $disabled--circle-bg-color: props.def( | ||
| 71 | --o-radio--disabled--circle-bg-color, | ||
| 72 | props.get(core.$theme, --base, --75), | ||
| 73 | "color" | ||
| 74 | ) !default; | ||
| 30 | 75 | ||
| 31 | $key-focus--label-color: props.def(--o-radio--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; | 76 | $key-focus--label-color: props.def( |
| 32 | $key-focus--border-color: props.def(--o-radio--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 77 | --o-radio--key-focus--label-color, |
| 33 | $key-focus--outline-color: props.def(--o-radio--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 78 | props.get(core.$theme, --focus, --text), |
| 79 | "color" | ||
| 80 | ) !default; | ||
| 81 | $key-focus--border-color: props.def( | ||
| 82 | --o-radio--key-focus--border-color, | ||
| 83 | props.get(core.$theme, --focus, --border), | ||
| 84 | "color" | ||
| 85 | ) !default; | ||
| 86 | $key-focus--outline-color: props.def( | ||
| 87 | --o-radio--key-focus--outline-color, | ||
| 88 | props.get(core.$theme, --focus, --outline), | ||
| 89 | "color" | ||
| 90 | ) !default; | ||
diff --git a/src/objects/_side-nav.scss b/src/objects/_side-nav.scss index 272d38c..ed0f3dc 100644 --- a/src/objects/_side-nav.scss +++ b/src/objects/_side-nav.scss | |||
| @@ -1,76 +1,79 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | @use 'icon.vars' as icon; | 5 | @use "icon.vars" as icon; |
| 6 | 6 | ||
| 7 | @forward 'side-nav.vars'; | 7 | @forward "side-nav.vars"; |
| 8 | @use 'side-nav.vars' as vars; | 8 | @use "side-nav.vars" as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables("vars")); |
| 12 | 12 | ||
| 13 | @include bem.object('side-nav') { | 13 | @include bem.object("side-nav") { |
| 14 | display: flex; | 14 | display: flex; |
| 15 | flex-direction: column; | 15 | flex-direction: column; |
| 16 | gap: props.get(vars.$spacing); | 16 | gap: props.get(vars.$spacing); |
| 17 | 17 | ||
| 18 | @include bem.elem('header') { | 18 | @include bem.elem("header") { |
| 19 | padding-block: props.get(vars.$item--pad-b); | 19 | padding-block: props.get(vars.$item--pad-b); |
| 20 | padding-inline: props.get(vars.$item--pad-i); | 20 | padding-inline: props.get(vars.$item--pad-i); |
| 21 | font-size: props.get(vars.$header--font-size); | 21 | font-size: props.get(vars.$header--font-size); |
| 22 | font-weight: 500; | 22 | font-weight: 500; |
| 23 | color: props.get(vars.$header--label-color); | 23 | color: props.get(vars.$header--label-color); |
| 24 | text-transform: uppercase; | 24 | text-transform: uppercase; |
| 25 | letter-spacing: .5px; | 25 | letter-spacing: 0.5px; |
| 26 | 26 | ||
| 27 | @include bem.next-twin-elem { | 27 | @include bem.next-twin-elem { |
| 28 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); | 28 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); |
| 29 | } | 29 | } |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.elem('item') { | 32 | @include bem.elem("item") { |
| 33 | display: block; | 33 | display: block; |
| 34 | padding-block: props.get(vars.$item--pad-b); | 34 | padding-block: props.get(vars.$item--pad-b); |
| 35 | padding-inline: props.get(vars.$item--pad-i); | 35 | padding-inline: props.get(vars.$item--pad-i); |
| 36 | margin: calc(-1 * props.get(vars.$item--key-focus--border-offset)); | 36 | margin: calc(-1 * props.get(vars.$item--key-focus--border-offset)); |
| 37 | color: props.get(vars.$item--disabled--label-color); | 37 | color: props.get(vars.$item--disabled--label-color); |
| 38 | background-clip: padding-box; | 38 | background-clip: padding-box; |
| 39 | border: props.get(vars.$item--key-focus--border-offset) solid transparent; | 39 | border: props.get(vars.$item--key-focus--border-offset) solid transparent; |
| 40 | border-radius: calc(props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--border-offset)); | 40 | border-radius: calc( |
| 41 | props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--border-offset) | ||
| 42 | ); | ||
| 41 | 43 | ||
| 42 | &:link, | 44 | &:link, |
| 43 | &:visited, | 45 | &:visited, |
| 44 | &:enabled { | 46 | &:enabled { |
| 45 | color: currentColor; | 47 | color: currentColor; |
| 46 | 48 | ||
| 47 | @include bem.multi('&:hover, &:focus-visible', 'is' 'selected') { | 49 | @include bem.multi("&:hover, &:focus-visible", "is" "selected") { |
| 48 | color: props.get(vars.$item--hover--label-color); | 50 | color: props.get(vars.$item--hover--label-color); |
| 49 | background-color: props.get(vars.$item--hover--bg-color); | 51 | background-color: props.get(vars.$item--hover--bg-color); |
| 50 | } | 52 | } |
| 51 | 53 | ||
| 52 | &:active { | 54 | &:active { |
| 53 | color: props.get(vars.$item--active--label-color); | 55 | color: props.get(vars.$item--active--label-color); |
| 54 | background-color: props.get(vars.$item--active--bg-color); | 56 | background-color: props.get(vars.$item--active--bg-color); |
| 55 | } | 57 | } |
| 56 | 58 | ||
| 57 | &:focus-visible { | 59 | &:focus-visible { |
| 58 | outline: props.get(vars.$item--key-focus--border-color) solid props.get(vars.$item--key-focus--border-width); | 60 | outline: props.get(vars.$item--key-focus--border-color) solid |
| 59 | box-shadow: | 61 | props.get(vars.$item--key-focus--border-width); |
| 60 | 0 | 62 | box-shadow: 0 0 0 |
| 61 | 0 | 63 | calc( |
| 62 | 0 | 64 | props.get(vars.$item--key-focus--border-width) + |
| 63 | calc(props.get(vars.$item--key-focus--border-width) + props.get(vars.$item--key-focus--outline-width)) | 65 | props.get(vars.$item--key-focus--outline-width) |
| 66 | ) | ||
| 64 | props.get(vars.$item--key-focus--outline-color); | 67 | props.get(vars.$item--key-focus--outline-color); |
| 65 | } | 68 | } |
| 66 | } | 69 | } |
| 67 | 70 | ||
| 68 | @include bem.next-elem('header') { | 71 | @include bem.next-elem("header") { |
| 69 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); | 72 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); |
| 70 | } | 73 | } |
| 71 | } | 74 | } |
| 72 | 75 | ||
| 73 | @include bem.elem('header') { | 76 | @include bem.elem("header") { |
| 74 | &:link, | 77 | &:link, |
| 75 | &:visited, | 78 | &:visited, |
| 76 | &:enabled { | 79 | &:enabled { |
| @@ -78,14 +81,14 @@ | |||
| 78 | } | 81 | } |
| 79 | } | 82 | } |
| 80 | 83 | ||
| 81 | @include bem.elem('separator') { | 84 | @include bem.elem("separator") { |
| 82 | block-size: props.get(vars.$separator); | 85 | block-size: props.get(vars.$separator); |
| 83 | } | 86 | } |
| 84 | 87 | ||
| 85 | @include bem.elem('icon-slot') { | 88 | @include bem.elem("icon-slot") { |
| 86 | display: flex; | 89 | display: flex; |
| 87 | justify-content: center; | 90 | justify-content: center; |
| 88 | inline-size: props.get(icon.$size); | 91 | inline-size: props.get(icon.$size); |
| 89 | } | 92 | } |
| 90 | } | 93 | } |
| 91 | } | 94 | } |
diff --git a/src/objects/_side-nav.vars.scss b/src/objects/_side-nav.vars.scss index d6a7de1..8abb0df 100644 --- a/src/objects/_side-nav.vars.scss +++ b/src/objects/_side-nav.vars.scss | |||
| @@ -1,28 +1,72 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $spacing: props.def(--o-side-nav--spacing, props.get(core.$size--50)) !default; | 5 | $spacing: props.def(--o-side-nav--spacing, props.get(core.$size--50)) !default; |
| 6 | $header--font-size: props.def(--o-side-nav--header--font-size, props.get(core.$font-size--50)) !default; | 6 | $header--font-size: props.def( |
| 7 | $separator: props.def(--o-side-nav--separator, props.get(core.$size--200)) !default; | 7 | --o-side-nav--header--font-size, |
| 8 | props.get(core.$font-size--50) | ||
| 9 | ) !default; | ||
| 10 | $separator: props.def(--o-side-nav--separator, props.get(core.$size--200)) !default; | ||
| 8 | 11 | ||
| 9 | $item--pad-i: props.def(--o-side-nav--item--pad-i, props.get(core.$size--150)) !default; | 12 | $item--pad-i: props.def(--o-side-nav--item--pad-i, props.get(core.$size--150)) !default; |
| 10 | $item--pad-b: props.def(--o-side-nav--item--pad-b, props.get(core.$size--75)) !default; | 13 | $item--pad-b: props.def(--o-side-nav--item--pad-b, props.get(core.$size--75)) !default; |
| 11 | $item--rounding: props.def(--o-side-nav--item--rounding, props.get(core.$rounding--sm)) !default; | 14 | $item--rounding: props.def(--o-side-nav--item--rounding, props.get(core.$rounding--sm)) !default; |
| 12 | 15 | ||
| 13 | $item--key-focus--border-width: props.def(--o-side-nav--item--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 16 | $item--key-focus--border-width: props.def( |
| 14 | $item--key-focus--border-offset: props.def(--o-side-nav--item--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 17 | --o-side-nav--item--key-focus--border-width, |
| 15 | $item--key-focus--outline-width: props.def(--o-side-nav--item--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 18 | props.get(core.$key-focus--border-width) |
| 19 | ) !default; | ||
| 20 | $item--key-focus--border-offset: props.def( | ||
| 21 | --o-side-nav--item--key-focus--border-offset, | ||
| 22 | props.get(core.$key-focus--border-offset) | ||
| 23 | ) !default; | ||
| 24 | $item--key-focus--outline-width: props.def( | ||
| 25 | --o-side-nav--item--key-focus--outline-width, | ||
| 26 | props.get(core.$key-focus--outline-width) | ||
| 27 | ) !default; | ||
| 16 | 28 | ||
| 17 | $header--label-color: props.def(--o-side-nav--header--label-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 29 | $header--label-color: props.def( |
| 30 | --o-side-nav--header--label-color, | ||
| 31 | props.get(core.$theme, --text-mute-more), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 18 | 34 | ||
| 19 | $item--hover--bg-color: props.def(--o-side-nav--item--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 35 | $item--hover--bg-color: props.def( |
| 20 | $item--hover--label-color: props.def(--o-side-nav--item--hover--label-color, props.get(core.$theme, --heading), 'color') !default; | 36 | --o-side-nav--item--hover--bg-color, |
| 37 | props.get(core.$theme, --border-mute), | ||
| 38 | "color" | ||
| 39 | ) !default; | ||
| 40 | $item--hover--label-color: props.def( | ||
| 41 | --o-side-nav--item--hover--label-color, | ||
| 42 | props.get(core.$theme, --heading), | ||
| 43 | "color" | ||
| 44 | ) !default; | ||
| 21 | 45 | ||
| 22 | $item--active--bg-color: props.def(--o-side-nav--item--active--bg-color, props.get(core.$theme, --border), 'color') !default; | 46 | $item--active--bg-color: props.def( |
| 23 | $item--active--label-color: props.def(--o-side-nav--item--active--label-color, props.get(core.$theme, --heading), 'color') !default; | 47 | --o-side-nav--item--active--bg-color, |
| 48 | props.get(core.$theme, --border), | ||
| 49 | "color" | ||
| 50 | ) !default; | ||
| 51 | $item--active--label-color: props.def( | ||
| 52 | --o-side-nav--item--active--label-color, | ||
| 53 | props.get(core.$theme, --heading), | ||
| 54 | "color" | ||
| 55 | ) !default; | ||
| 24 | 56 | ||
| 25 | $item--disabled--label-color: props.def(--o-side-nav--item--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; | 57 | $item--disabled--label-color: props.def( |
| 58 | --o-side-nav--item--disabled--label-color, | ||
| 59 | props.get(core.$theme, --text-disabled), | ||
| 60 | "color" | ||
| 61 | ) !default; | ||
| 26 | 62 | ||
| 27 | $item--key-focus--border-color: props.def(--o-side-nav--item--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 63 | $item--key-focus--border-color: props.def( |
| 28 | $item--key-focus--outline-color: props.def(--o-side-nav--item--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 64 | --o-side-nav--item--key-focus--border-color, |
| 65 | props.get(core.$theme, --focus, --border), | ||
| 66 | "color" | ||
| 67 | ) !default; | ||
| 68 | $item--key-focus--outline-color: props.def( | ||
| 69 | --o-side-nav--item--key-focus--outline-color, | ||
| 70 | props.get(core.$theme, --focus, --outline), | ||
| 71 | "color" | ||
| 72 | ) !default; | ||
diff --git a/src/objects/_status-indicator.scss b/src/objects/_status-indicator.scss index fe8fe26..8885929 100644 --- a/src/objects/_status-indicator.scss +++ b/src/objects/_status-indicator.scss | |||
| @@ -1,22 +1,22 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:meta'; | 2 | @use "sass:meta"; |
| 3 | @use 'sass:string'; | 3 | @use "sass:string"; |
| 4 | @use 'pkg:iro-sass/src/bem'; | 4 | @use "pkg:iro-sass/bem"; |
| 5 | @use 'pkg:iro-sass/src/props'; | 5 | @use "pkg:iro-sass/props"; |
| 6 | @use '../props' as *; | 6 | @use "../props" as *; |
| 7 | 7 | ||
| 8 | @forward 'status-indicator.vars'; | 8 | @forward "status-indicator.vars"; |
| 9 | @use 'status-indicator.vars' as vars; | 9 | @use "status-indicator.vars" as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables('vars')); | 12 | @include materialize-at-root(meta.module-variables("vars")); |
| 13 | 13 | ||
| 14 | @include bem.object('status-indicator') { | 14 | @include bem.object("status-indicator") { |
| 15 | display: inline-block; | 15 | display: inline-block; |
| 16 | inline-size: props.get(vars.$size); | 16 | inline-size: props.get(vars.$size); |
| 17 | block-size: props.get(vars.$size); | 17 | block-size: props.get(vars.$size); |
| 18 | background-color: props.get(vars.$default); | 18 | background-color: props.get(vars.$default); |
| 19 | border-radius: 10em; | 19 | border-radius: 10em; |
| 20 | 20 | ||
| 21 | @each $theme in map.keys(props.get(vars.$themes)) { | 21 | @each $theme in map.keys(props.get(vars.$themes)) { |
| 22 | @include bem.is(string.slice($theme, 3)) { | 22 | @include bem.is(string.slice($theme, 3)) { |
diff --git a/src/objects/_status-indicator.vars.scss b/src/objects/_status-indicator.vars.scss index dfe628f..66a11e8 100644 --- a/src/objects/_status-indicator.vars.scss +++ b/src/objects/_status-indicator.vars.scss | |||
| @@ -1,26 +1,32 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../config'; | 3 | @use "../config"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | $size: props.def(--o-status-indicator--size, props.get(core.$size--125)) !default; | 6 | $size: props.def(--o-status-indicator--size, props.get(core.$size--125)) !default; |
| 7 | 7 | ||
| 8 | $default: props.def(--o-status-indicator--default, props.get(core.$theme, --border-strong), 'color') !default; | 8 | $default: props.def( |
| 9 | $primary: props.def(--o-status-indicator--primary, props.get(core.$theme, --text), 'color') !default; | 9 | --o-status-indicator--default, |
| 10 | props.get(core.$theme, --border-strong), | ||
| 11 | "color" | ||
| 12 | ) !default; | ||
| 13 | $primary: props.def( | ||
| 14 | --o-status-indicator--primary, | ||
| 15 | props.get(core.$theme, --text), | ||
| 16 | "color" | ||
| 17 | ) !default; | ||
| 10 | 18 | ||
| 11 | $themes-config: ( | 19 | $themes-config: ( |
| 12 | accent: --accent, | 20 | accent: --accent, |
| 13 | positive: --positive, | 21 | positive: --positive, |
| 14 | negative: --negative, | 22 | negative: --negative, |
| 15 | warning: --warning, | 23 | warning: --warning, |
| 16 | ) !default; | 24 | ) !default; |
| 17 | 25 | ||
| 18 | $themes: props.def(--o-status-indicator, (), 'color'); | 26 | $themes: props.def(--o-status-indicator, (), "color"); |
| 19 | 27 | ||
| 20 | @each $theme, $key in $themes-config { | 28 | @each $theme, $key in $themes-config { |
| 21 | @if $theme != --base { | 29 | @if $theme != --base { |
| 22 | $themes: props.merge($themes, ( | 30 | $themes: props.merge($themes, (--#{$theme}: props.get(core.$theme, $key, --700))); |
| 23 | --#{$theme}: props.get(core.$theme, $key, --700), | ||
| 24 | )); | ||
| 25 | } | 31 | } |
| 26 | } | 32 | } |
diff --git a/src/objects/_switch.scss b/src/objects/_switch.scss index 0ef95e6..c1f7411 100644 --- a/src/objects/_switch.scss +++ b/src/objects/_switch.scss | |||
| @@ -1,73 +1,79 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | @use '../core.vars' as core; | 5 | @use "../core.vars" as core; |
| 6 | 6 | ||
| 7 | @forward 'switch.vars'; | 7 | @forward "switch.vars"; |
| 8 | @use 'switch.vars' as vars; | 8 | @use "switch.vars" as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables("vars")); |
| 12 | 12 | ||
| 13 | @include bem.object('switch') { | 13 | @include bem.object("switch") { |
| 14 | position: relative; | 14 | position: relative; |
| 15 | display: inline-block; | 15 | display: inline-block; |
| 16 | padding-block: props.get(vars.$pad-b); | 16 | padding-block: props.get(vars.$pad-b); |
| 17 | padding-inline: props.get(vars.$pad-i); | 17 | padding-inline: props.get(vars.$pad-i); |
| 18 | margin-inline: | 18 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) |
| 19 | calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 19 | calc( |
| 20 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)); | 20 | props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get( |
| 21 | vars.$key-focus--border-offset | ||
| 22 | ) | ||
| 23 | ); | ||
| 21 | 24 | ||
| 22 | @include bem.elem('indicator') { | 25 | @include bem.elem("indicator") { |
| 23 | display: inline-block; | 26 | display: inline-block; |
| 24 | flex: 0 0 auto; | 27 | flex: 0 0 auto; |
| 25 | inline-size: props.get(vars.$inline-size); | 28 | inline-size: props.get(vars.$inline-size); |
| 26 | block-size: props.get(vars.$block-size); | 29 | block-size: props.get(vars.$block-size); |
| 27 | margin-block-start: calc(.5em * props.get(core.$font--standard--line-height) - .5 * props.get(vars.$block-size) - props.get(vars.$key-focus--border-offset)); | 30 | margin-block-start: calc( |
| 28 | vertical-align: top; | 31 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * |
| 29 | background-color: props.get(vars.$track-bg-color); | 32 | props.get(vars.$block-size) - props.get(vars.$key-focus--border-offset) |
| 30 | background-clip: padding-box; | 33 | ); |
| 31 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 34 | vertical-align: top; |
| 32 | border-radius: 2em; | 35 | background-color: props.get(vars.$track-bg-color); |
| 33 | transition: background-color .2s ease; | 36 | background-clip: padding-box; |
| 37 | border: props.get(vars.$key-focus--border-offset) solid transparent; | ||
| 38 | border-radius: 2em; | ||
| 39 | transition: background-color 0.2s ease; | ||
| 34 | 40 | ||
| 35 | &::after { | 41 | &::after { |
| 36 | display: block; | 42 | display: block; |
| 37 | inline-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); | 43 | inline-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); |
| 38 | block-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); | 44 | block-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); |
| 39 | content: ''; | 45 | content: ""; |
| 40 | background-color: props.get(vars.$handle-bg-color); | 46 | background-color: props.get(vars.$handle-bg-color); |
| 41 | border: props.get(vars.$border-width) solid props.get(vars.$handle-border-color); | 47 | border: props.get(vars.$border-width) solid props.get(vars.$handle-border-color); |
| 42 | border-radius: props.get(vars.$inline-size); | 48 | border-radius: props.get(vars.$inline-size); |
| 43 | transition: transform .2s ease; | 49 | transition: transform 0.2s ease; |
| 44 | } | 50 | } |
| 45 | } | 51 | } |
| 46 | 52 | ||
| 47 | @include bem.elem('label') { | 53 | @include bem.elem("label") { |
| 48 | margin-inline-start: props.get(vars.$label-gap); | 54 | margin-inline-start: props.get(vars.$label-gap); |
| 49 | } | 55 | } |
| 50 | 56 | ||
| 51 | @include bem.elem('native') { | 57 | @include bem.elem("native") { |
| 52 | position: absolute; | 58 | position: absolute; |
| 53 | inset-block-start: 0; | 59 | inset-block-start: 0; |
| 54 | inset-inline-start: 0; | 60 | inset-inline-start: 0; |
| 55 | z-index: -1; | 61 | z-index: -1; |
| 56 | inline-size: 100%; | 62 | inline-size: 100%; |
| 57 | block-size: 100%; | 63 | block-size: 100%; |
| 58 | padding: 0; | 64 | padding: 0; |
| 59 | margin: 0; | 65 | margin: 0; |
| 60 | overflow: hidden; | 66 | overflow: hidden; |
| 61 | appearance: none; | 67 | appearance: none; |
| 62 | border-radius: props.get(vars.$rounding); | 68 | border-radius: props.get(vars.$rounding); |
| 63 | 69 | ||
| 64 | &:hover, | 70 | &:hover, |
| 65 | &:focus-visible { | 71 | &:focus-visible { |
| 66 | @include bem.sibling-elem('label') { | 72 | @include bem.sibling-elem("label") { |
| 67 | color: props.get(vars.$hover--label-color); | 73 | color: props.get(vars.$hover--label-color); |
| 68 | } | 74 | } |
| 69 | 75 | ||
| 70 | @include bem.sibling-elem('indicator') { | 76 | @include bem.sibling-elem("indicator") { |
| 71 | &::after { | 77 | &::after { |
| 72 | border-color: props.get(vars.$hover--handle-border-color); | 78 | border-color: props.get(vars.$hover--handle-border-color); |
| 73 | } | 79 | } |
| @@ -75,18 +81,23 @@ | |||
| 75 | } | 81 | } |
| 76 | 82 | ||
| 77 | &:checked { | 83 | &:checked { |
| 78 | @include bem.sibling-elem('indicator') { | 84 | @include bem.sibling-elem("indicator") { |
| 79 | background-color: props.get(vars.$handle-border-color); | 85 | background-color: props.get(vars.$handle-border-color); |
| 80 | 86 | ||
| 81 | &::after { | 87 | &::after { |
| 82 | border-color: props.get(vars.$handle-border-color); | 88 | border-color: props.get(vars.$handle-border-color); |
| 83 | transform: translate(calc(props.get(vars.$inline-size) - props.get(vars.$block-size) + .5px), 0); | 89 | transform: translate( |
| 90 | calc( | ||
| 91 | props.get(vars.$inline-size) - props.get(vars.$block-size) + 0.5px | ||
| 92 | ), | ||
| 93 | 0 | ||
| 94 | ); | ||
| 84 | } | 95 | } |
| 85 | } | 96 | } |
| 86 | 97 | ||
| 87 | &:hover, | 98 | &:hover, |
| 88 | &:focus-visible { | 99 | &:focus-visible { |
| 89 | @include bem.sibling-elem('indicator') { | 100 | @include bem.sibling-elem("indicator") { |
| 90 | background-color: props.get(vars.$hover--handle-border-color); | 101 | background-color: props.get(vars.$hover--handle-border-color); |
| 91 | 102 | ||
| 92 | &::after { | 103 | &::after { |
| @@ -97,21 +108,21 @@ | |||
| 97 | } | 108 | } |
| 98 | 109 | ||
| 99 | &:disabled { | 110 | &:disabled { |
| 100 | @include bem.sibling-elem('label') { | 111 | @include bem.sibling-elem("label") { |
| 101 | color: props.get(vars.$disabled--label-color); | 112 | color: props.get(vars.$disabled--label-color); |
| 102 | } | 113 | } |
| 103 | 114 | ||
| 104 | @include bem.sibling-elem('indicator') { | 115 | @include bem.sibling-elem("indicator") { |
| 105 | background-color: props.get(vars.$disabled--track-bg-color); | 116 | background-color: props.get(vars.$disabled--track-bg-color); |
| 106 | 117 | ||
| 107 | &::after { | 118 | &::after { |
| 108 | background-color: props.get(vars.$disabled--handle-bg-color); | 119 | background-color: props.get(vars.$disabled--handle-bg-color); |
| 109 | border-color: props.get(vars.$disabled--handle-border-color); | 120 | border-color: props.get(vars.$disabled--handle-border-color); |
| 110 | } | 121 | } |
| 111 | } | 122 | } |
| 112 | 123 | ||
| 113 | &:checked { | 124 | &:checked { |
| 114 | @include bem.sibling-elem('indicator') { | 125 | @include bem.sibling-elem("indicator") { |
| 115 | background-color: props.get(vars.$disabled--handle-border-color); | 126 | background-color: props.get(vars.$disabled--handle-border-color); |
| 116 | 127 | ||
| 117 | &::after { | 128 | &::after { |
| @@ -122,32 +133,33 @@ | |||
| 122 | } | 133 | } |
| 123 | 134 | ||
| 124 | &:focus-visible { | 135 | &:focus-visible { |
| 125 | @include bem.sibling-elem('label') { | 136 | @include bem.sibling-elem("label") { |
| 126 | color: props.get(vars.$key-focus--label-color); | 137 | color: props.get(vars.$key-focus--label-color); |
| 127 | } | 138 | } |
| 128 | 139 | ||
| 129 | @include bem.sibling-elem('indicator') { | 140 | @include bem.sibling-elem("indicator") { |
| 130 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 141 | outline: props.get(vars.$key-focus--border-color) solid |
| 131 | box-shadow: | 142 | props.get(vars.$key-focus--border-width); |
| 132 | 0 | 143 | box-shadow: 0 0 0 |
| 133 | 0 | 144 | calc( |
| 134 | 0 | 145 | props.get(vars.$key-focus--border-width) + |
| 135 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | 146 | props.get(vars.$key-focus--outline-width) |
| 147 | ) | ||
| 136 | props.get(vars.$key-focus--outline-color); | 148 | props.get(vars.$key-focus--outline-color); |
| 137 | } | 149 | } |
| 138 | } | 150 | } |
| 139 | } | 151 | } |
| 140 | 152 | ||
| 141 | @include bem.modifier('standalone') { | 153 | @include bem.modifier("standalone") { |
| 142 | @include bem.elem('indicator') { | 154 | @include bem.elem("indicator") { |
| 143 | margin-block-start: 0; | 155 | margin-block-start: 0; |
| 144 | } | 156 | } |
| 145 | } | 157 | } |
| 146 | 158 | ||
| 147 | @include bem.modifier('accent') { | 159 | @include bem.modifier("accent") { |
| 148 | @include bem.elem('native') { | 160 | @include bem.elem("native") { |
| 149 | &:checked { | 161 | &:checked { |
| 150 | @include bem.sibling-elem('indicator') { | 162 | @include bem.sibling-elem("indicator") { |
| 151 | background-color: props.get(vars.$accent--handle-border-color); | 163 | background-color: props.get(vars.$accent--handle-border-color); |
| 152 | 164 | ||
| 153 | &::after { | 165 | &::after { |
| @@ -157,7 +169,7 @@ | |||
| 157 | 169 | ||
| 158 | &:hover, | 170 | &:hover, |
| 159 | &:focus-visible { | 171 | &:focus-visible { |
| 160 | @include bem.sibling-elem('indicator') { | 172 | @include bem.sibling-elem("indicator") { |
| 161 | background-color: props.get(vars.$accent--hover--handle-border-color); | 173 | background-color: props.get(vars.$accent--hover--handle-border-color); |
| 162 | 174 | ||
| 163 | &::after { | 175 | &::after { |
| @@ -168,12 +180,12 @@ | |||
| 168 | } | 180 | } |
| 169 | 181 | ||
| 170 | &:disabled { | 182 | &:disabled { |
| 171 | @include bem.sibling-elem('label') { | 183 | @include bem.sibling-elem("label") { |
| 172 | color: props.get(vars.$disabled--label-color); | 184 | color: props.get(vars.$disabled--label-color); |
| 173 | } | 185 | } |
| 174 | 186 | ||
| 175 | &:checked { | 187 | &:checked { |
| 176 | @include bem.sibling-elem('indicator') { | 188 | @include bem.sibling-elem("indicator") { |
| 177 | background-color: props.get(vars.$disabled--handle-border-color); | 189 | background-color: props.get(vars.$disabled--handle-border-color); |
| 178 | 190 | ||
| 179 | &::after { | 191 | &::after { |
diff --git a/src/objects/_switch.vars.scss b/src/objects/_switch.vars.scss index 761cacd..6f56ec7 100644 --- a/src/objects/_switch.vars.scss +++ b/src/objects/_switch.vars.scss | |||
| @@ -1,36 +1,101 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $inline-size: props.def(--o-switch--inline-size, props.get(core.$size--350)) !default; | 5 | $inline-size: props.def(--o-switch--inline-size, props.get(core.$size--350)) !default; |
| 6 | $block-size: props.def(--o-switch--block-size, props.get(core.$size--200)) !default; | 6 | $block-size: props.def(--o-switch--block-size, props.get(core.$size--200)) !default; |
| 7 | $label-gap: props.def(--o-switch--label-gap, props.get(core.$size--125)) !default; | 7 | $label-gap: props.def(--o-switch--label-gap, props.get(core.$size--125)) !default; |
| 8 | $border-width: props.def(--o-switch--border-width, props.get(core.$border-width--medium)) !default; | 8 | $border-width: props.def(--o-switch--border-width, props.get(core.$border-width--medium)) !default; |
| 9 | $pad-i: props.def(--o-switch--pad-i, props.get(core.$size--65)) !default; | 9 | $pad-i: props.def(--o-switch--pad-i, props.get(core.$size--65)) !default; |
| 10 | $pad-b: props.def(--o-switch--pad-b, props.get(core.$size--65)) !default; | 10 | $pad-b: props.def(--o-switch--pad-b, props.get(core.$size--65)) !default; |
| 11 | $rounding: props.def(--o-switch--rounding, props.get(core.$rounding--sm)) !default; | 11 | $rounding: props.def(--o-switch--rounding, props.get(core.$rounding--sm)) !default; |
| 12 | $spacing-sibling: props.def(--o-switch--spacing-sibling, props.get(core.$size--300)) !default; | 12 | $spacing-sibling: props.def(--o-switch--spacing-sibling, props.get(core.$size--300)) !default; |
| 13 | 13 | ||
| 14 | $key-focus--border-width: props.def(--o-switch--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 14 | $key-focus--border-width: props.def( |
| 15 | $key-focus--border-offset: props.def(--o-switch--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 15 | --o-switch--key-focus--border-width, |
| 16 | $key-focus--outline-width: props.def(--o-switch--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 16 | props.get(core.$key-focus--border-width) |
| 17 | ) !default; | ||
| 18 | $key-focus--border-offset: props.def( | ||
| 19 | --o-switch--key-focus--border-offset, | ||
| 20 | props.get(core.$key-focus--border-offset) | ||
| 21 | ) !default; | ||
| 22 | $key-focus--outline-width: props.def( | ||
| 23 | --o-switch--key-focus--outline-width, | ||
| 24 | props.get(core.$key-focus--outline-width) | ||
| 25 | ) !default; | ||
| 17 | 26 | ||
| 18 | $track-bg-color: props.def(--o-switch--track-bg-color, props.get(core.$theme, --border), 'color') !default; | 27 | $track-bg-color: props.def( |
| 19 | $handle-border-color: props.def(--o-switch--handle-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 28 | --o-switch--track-bg-color, |
| 20 | $handle-bg-color: props.def(--o-switch--handle-bg-color, props.get(core.$theme, --base, --50), 'color') !default; | 29 | props.get(core.$theme, --border), |
| 30 | "color" | ||
| 31 | ) !default; | ||
| 32 | $handle-border-color: props.def( | ||
| 33 | --o-switch--handle-border-color, | ||
| 34 | props.get(core.$theme, --text-mute-more), | ||
| 35 | "color" | ||
| 36 | ) !default; | ||
| 37 | $handle-bg-color: props.def( | ||
| 38 | --o-switch--handle-bg-color, | ||
| 39 | props.get(core.$theme, --base, --50), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 21 | 42 | ||
| 22 | $hover--label-color: props.def(--o-switch--hover--label-color, props.get(core.$theme, --heading), 'color') !default; | 43 | $hover--label-color: props.def( |
| 23 | $hover--handle-border-color: props.def(--o-switch--hover--handle-border-color, props.get(core.$theme, --text-mute), 'color') !default; | 44 | --o-switch--hover--label-color, |
| 45 | props.get(core.$theme, --heading), | ||
| 46 | "color" | ||
| 47 | ) !default; | ||
| 48 | $hover--handle-border-color: props.def( | ||
| 49 | --o-switch--hover--handle-border-color, | ||
| 50 | props.get(core.$theme, --text-mute), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 24 | 53 | ||
| 25 | $accent--handle-border-color: props.def(--o-switch--accent--handle-border-color, props.get(core.$theme, --accent, --900), 'color') !default; | 54 | $accent--handle-border-color: props.def( |
| 55 | --o-switch--accent--handle-border-color, | ||
| 56 | props.get(core.$theme, --accent, --900), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 26 | 59 | ||
| 27 | $accent--hover--handle-border-color: props.def(--o-switch--accent--hover--handle-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; | 60 | $accent--hover--handle-border-color: props.def( |
| 61 | --o-switch--accent--hover--handle-border-color, | ||
| 62 | props.get(core.$theme, --accent, --1000), | ||
| 63 | "color" | ||
| 64 | ) !default; | ||
| 28 | 65 | ||
| 29 | $disabled--label-color: props.def(--o-switch--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; | 66 | $disabled--label-color: props.def( |
| 30 | $disabled--track-bg-color: props.def(--o-switch--disabled--track-bg-color, props.get(core.$theme, --border), 'color') !default; | 67 | --o-switch--disabled--label-color, |
| 31 | $disabled--handle-border-color: props.def(--o-switch--disabled--handle-border-color, props.get(core.$theme, --border-strong), 'color') !default; | 68 | props.get(core.$theme, --text-disabled), |
| 32 | $disabled--handle-bg-color: props.def(--o-switch--disabled--handle-bg-color, props.get(core.$theme, --base, --50), 'color') !default; | 69 | "color" |
| 70 | ) !default; | ||
| 71 | $disabled--track-bg-color: props.def( | ||
| 72 | --o-switch--disabled--track-bg-color, | ||
| 73 | props.get(core.$theme, --border), | ||
| 74 | "color" | ||
| 75 | ) !default; | ||
| 76 | $disabled--handle-border-color: props.def( | ||
| 77 | --o-switch--disabled--handle-border-color, | ||
| 78 | props.get(core.$theme, --border-strong), | ||
| 79 | "color" | ||
| 80 | ) !default; | ||
| 81 | $disabled--handle-bg-color: props.def( | ||
| 82 | --o-switch--disabled--handle-bg-color, | ||
| 83 | props.get(core.$theme, --base, --50), | ||
| 84 | "color" | ||
| 85 | ) !default; | ||
| 33 | 86 | ||
| 34 | $key-focus--label-color: props.def(--o-switch--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; | 87 | $key-focus--label-color: props.def( |
| 35 | $key-focus--border-color: props.def(--o-switch--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 88 | --o-switch--key-focus--label-color, |
| 36 | $key-focus--outline-color: props.def(--o-switch--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 89 | props.get(core.$theme, --focus, --text), |
| 90 | "color" | ||
| 91 | ) !default; | ||
| 92 | $key-focus--border-color: props.def( | ||
| 93 | --o-switch--key-focus--border-color, | ||
| 94 | props.get(core.$theme, --focus, --border), | ||
| 95 | "color" | ||
| 96 | ) !default; | ||
| 97 | $key-focus--outline-color: props.def( | ||
| 98 | --o-switch--key-focus--outline-color, | ||
| 99 | props.get(core.$theme, --focus, --outline), | ||
| 100 | "color" | ||
| 101 | ) !default; | ||
diff --git a/src/objects/_tabbar.scss b/src/objects/_tabbar.scss index d43208f..02519f9 100644 --- a/src/objects/_tabbar.scss +++ b/src/objects/_tabbar.scss | |||
| @@ -1,75 +1,77 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:meta'; | 2 | @use "sass:meta"; |
| 3 | @use 'sass:string'; | 3 | @use "sass:string"; |
| 4 | @use 'pkg:iro-sass/src/bem'; | 4 | @use "pkg:iro-sass/bem"; |
| 5 | @use 'pkg:iro-sass/src/props'; | 5 | @use "pkg:iro-sass/props"; |
| 6 | @use '../props' as *; | 6 | @use "../props" as *; |
| 7 | 7 | ||
| 8 | @forward 'tabbar.vars'; | 8 | @forward "tabbar.vars"; |
| 9 | @use 'tabbar.vars' as vars; | 9 | @use "tabbar.vars" as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables('vars')); | 12 | @include materialize-at-root(meta.module-variables("vars")); |
| 13 | 13 | ||
| 14 | @include bem.object('tabbar') { | 14 | @include bem.object("tabbar") { |
| 15 | min-inline-size: 0; | 15 | min-inline-size: 0; |
| 16 | block-size: props.get(vars.$block-size); | 16 | block-size: props.get(vars.$block-size); |
| 17 | overflow: hidden; | 17 | overflow: hidden; |
| 18 | 18 | ||
| 19 | &::after { | 19 | &::after { |
| 20 | display: block; | 20 | display: block; |
| 21 | block-size: props.get(vars.$border--width); | 21 | block-size: props.get(vars.$border--width); |
| 22 | margin-block-start: calc(-1 * props.get(vars.$border--width)); | 22 | margin-block-start: calc(-1 * props.get(vars.$border--width)); |
| 23 | content: ''; | 23 | content: ""; |
| 24 | background-color: props.get(vars.$railing--bg-color); | 24 | background-color: props.get(vars.$railing--bg-color); |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | @include bem.elem('tabs') { | 27 | @include bem.elem("tabs") { |
| 28 | display: flex; | 28 | display: flex; |
| 29 | block-size: 100%; | 29 | block-size: 100%; |
| 30 | overflow-inline: auto; | 30 | overflow-inline: auto; |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | @include bem.modifier('quiet') { | 33 | @include bem.modifier("quiet") { |
| 34 | box-shadow: none; | 34 | box-shadow: none; |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | @include bem.modifier('adapt') { | 37 | @include bem.modifier("adapt") { |
| 38 | block-size: 100%; | 38 | block-size: 100%; |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | @include bem.modifier('snap') { | 41 | @include bem.modifier("snap") { |
| 42 | scroll-snap-align: start; | 42 | scroll-snap-align: start; |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | @include bem.elem('tab') { | 45 | @include bem.elem("tab") { |
| 46 | position: relative; | 46 | position: relative; |
| 47 | display: flex; | 47 | display: flex; |
| 48 | align-items: center; | 48 | align-items: center; |
| 49 | padding-inline: calc(.5 * props.get(vars.$spacing)); | 49 | padding-inline: calc(0.5 * props.get(vars.$spacing)); |
| 50 | margin-inline: calc(-.5 * props.get(vars.$spacing)); | 50 | margin-inline: calc(-0.5 * props.get(vars.$spacing)); |
| 51 | color: props.get(vars.$tab--text-color); | 51 | color: props.get(vars.$tab--text-color); |
| 52 | white-space: nowrap; | 52 | white-space: nowrap; |
| 53 | 53 | ||
| 54 | &::before { | 54 | &::before { |
| 55 | position: absolute; | 55 | position: absolute; |
| 56 | inset-block-start: 50%; | 56 | inset-block-start: 50%; |
| 57 | inset-inline: calc(-1 * props.get(vars.$tab--pad-i) + .5 * props.get(vars.$spacing)); | 57 | inset-inline: calc( |
| 58 | z-index: -10; | 58 | -1 * props.get(vars.$tab--pad-i) + 0.5 * props.get(vars.$spacing) |
| 59 | block-size: 1.5em; | 59 | ); |
| 60 | content: ''; | 60 | z-index: -10; |
| 61 | border-radius: props.get(vars.$rounding); | 61 | block-size: 1.5em; |
| 62 | transform: translateY(-50%); | 62 | content: ""; |
| 63 | border-radius: props.get(vars.$rounding); | ||
| 64 | transform: translateY(-50%); | ||
| 63 | } | 65 | } |
| 64 | 66 | ||
| 65 | &::after { | 67 | &::after { |
| 66 | position: absolute; | 68 | position: absolute; |
| 67 | inset-block-end: 0; | 69 | inset-block-end: 0; |
| 68 | inset-inline: calc(.5 * props.get(vars.$spacing)); | 70 | inset-inline: calc(0.5 * props.get(vars.$spacing)); |
| 69 | z-index: 10; | 71 | z-index: 10; |
| 70 | display: none; | 72 | display: none; |
| 71 | block-size: props.get(vars.$indicator--width); | 73 | block-size: props.get(vars.$indicator--width); |
| 72 | content: ''; | 74 | content: ""; |
| 73 | background-color: props.get(vars.$tab--selected--text-color); | 75 | background-color: props.get(vars.$tab--selected--text-color); |
| 74 | } | 76 | } |
| 75 | 77 | ||
| @@ -83,21 +85,25 @@ | |||
| 83 | 85 | ||
| 84 | &:focus-visible { | 86 | &:focus-visible { |
| 85 | &::before { | 87 | &::before { |
| 86 | color: props.get(vars.$key-focus--text-color); | 88 | color: props.get(vars.$key-focus--text-color); |
| 87 | text-decoration: none; | 89 | text-decoration: none; |
| 88 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 90 | outline: props.get(vars.$key-focus--border-color) solid |
| 91 | props.get(vars.$key-focus--border-width); | ||
| 89 | box-shadow: 0 0 0 | 92 | box-shadow: 0 0 0 |
| 90 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | 93 | calc( |
| 94 | props.get(vars.$key-focus--border-width) + | ||
| 95 | props.get(vars.$key-focus--outline-width) | ||
| 96 | ) | ||
| 91 | props.get(vars.$key-focus--outline-color); | 97 | props.get(vars.$key-focus--outline-color); |
| 92 | } | 98 | } |
| 93 | } | 99 | } |
| 94 | } | 100 | } |
| 95 | 101 | ||
| 96 | @include bem.next-twin-elem { | 102 | @include bem.next-twin-elem { |
| 97 | margin-inline-start: calc(.5 * props.get(vars.$spacing)); | 103 | margin-inline-start: calc(0.5 * props.get(vars.$spacing)); |
| 98 | } | 104 | } |
| 99 | 105 | ||
| 100 | @include bem.is('selected') { | 106 | @include bem.is("selected") { |
| 101 | color: props.get(vars.$tab--selected--text-color); | 107 | color: props.get(vars.$tab--selected--text-color); |
| 102 | 108 | ||
| 103 | &::after { | 109 | &::after { |
| @@ -106,13 +112,13 @@ | |||
| 106 | } | 112 | } |
| 107 | } | 113 | } |
| 108 | 114 | ||
| 109 | @include bem.modifier('accent') { | 115 | @include bem.modifier("accent") { |
| 110 | @include bem.elem('tab') { | 116 | @include bem.elem("tab") { |
| 111 | &::after { | 117 | &::after { |
| 112 | background-color: props.get(vars.$tab--accent--text-color); | 118 | background-color: props.get(vars.$tab--accent--text-color); |
| 113 | } | 119 | } |
| 114 | 120 | ||
| 115 | @include bem.is('selected') { | 121 | @include bem.is("selected") { |
| 116 | color: props.get(vars.$tab--accent--text-color); | 122 | color: props.get(vars.$tab--accent--text-color); |
| 117 | } | 123 | } |
| 118 | } | 124 | } |
diff --git a/src/objects/_tabbar.vars.scss b/src/objects/_tabbar.vars.scss index d9cc53e..d26f302 100644 --- a/src/objects/_tabbar.vars.scss +++ b/src/objects/_tabbar.vars.scss | |||
| @@ -1,26 +1,66 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:string'; | 2 | @use "sass:string"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | $block-size: props.def(--o-tabbar--block-size, props.get(core.$size--700)) !default; | 6 | $block-size: props.def(--o-tabbar--block-size, props.get(core.$size--700)) !default; |
| 7 | $rounding: props.def(--o-tabbar--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-tabbar--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $spacing: props.def(--o-tabbar--spacing, props.get(core.$size--400)) !default; | 8 | $spacing: props.def(--o-tabbar--spacing, props.get(core.$size--400)) !default; |
| 9 | $tab--pad-i: props.def(--o-tabbar--tab--pad-i, props.get(core.$size--50)) !default; | 9 | $tab--pad-i: props.def(--o-tabbar--tab--pad-i, props.get(core.$size--50)) !default; |
| 10 | 10 | ||
| 11 | $border--width: props.def(--o-tabbar--border--width, props.get(core.$border-width--thin)) !default; | 11 | $border--width: props.def(--o-tabbar--border--width, props.get(core.$border-width--thin)) !default; |
| 12 | $indicator--width: props.def(--o-tabbar--indicator--width, props.get(core.$border-width--medium)) !default; | 12 | $indicator--width: props.def( |
| 13 | --o-tabbar--indicator--width, | ||
| 14 | props.get(core.$border-width--medium) | ||
| 15 | ) !default; | ||
| 13 | 16 | ||
| 14 | $key-focus--border-width: props.def(--o-tabbar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 17 | $key-focus--border-width: props.def( |
| 15 | $key-focus--border-offset: props.def(--o-tabbar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 18 | --o-tabbar--key-focus--border-width, |
| 16 | $key-focus--outline-width: props.def(--o-tabbar--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 19 | props.get(core.$key-focus--border-width) |
| 20 | ) !default; | ||
| 21 | $key-focus--border-offset: props.def( | ||
| 22 | --o-tabbar--key-focus--border-offset, | ||
| 23 | props.get(core.$key-focus--border-offset) | ||
| 24 | ) !default; | ||
| 25 | $key-focus--outline-width: props.def( | ||
| 26 | --o-tabbar--key-focus--outline-width, | ||
| 27 | props.get(core.$key-focus--outline-width) | ||
| 28 | ) !default; | ||
| 17 | 29 | ||
| 18 | $tab--text-color: props.def(--o-tabbar--tab--text-color, props.get(core.$theme, --text-mute), 'color') !default; | 30 | $tab--text-color: props.def( |
| 19 | $tab--selected--text-color: props.def(--o-tabbar--tab--selected--text-color, props.get(core.$theme, --heading), 'color') !default; | 31 | --o-tabbar--tab--text-color, |
| 20 | $tab--accent--text-color: props.def(--o-tabbar--tab--accent--text-color, props.get(core.$theme, --accent, --1100), 'color') !default; | 32 | props.get(core.$theme, --text-mute), |
| 33 | "color" | ||
| 34 | ) !default; | ||
| 35 | $tab--selected--text-color: props.def( | ||
| 36 | --o-tabbar--tab--selected--text-color, | ||
| 37 | props.get(core.$theme, --heading), | ||
| 38 | "color" | ||
| 39 | ) !default; | ||
| 40 | $tab--accent--text-color: props.def( | ||
| 41 | --o-tabbar--tab--accent--text-color, | ||
| 42 | props.get(core.$theme, --accent, --1100), | ||
| 43 | "color" | ||
| 44 | ) !default; | ||
| 21 | 45 | ||
| 22 | $railing--bg-color: props.def(--o-tabbar--railing--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 46 | $railing--bg-color: props.def( |
| 47 | --o-tabbar--railing--bg-color, | ||
| 48 | props.get(core.$theme, --border-mute), | ||
| 49 | "color" | ||
| 50 | ) !default; | ||
| 23 | 51 | ||
| 24 | $key-focus--text-color: props.def(--o-tabbar--key-focus--text-color, props.get(core.$theme, --focus, --text), 'color') !default; | 52 | $key-focus--text-color: props.def( |
| 25 | $key-focus--border-color: props.def(--o-tabbar--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 53 | --o-tabbar--key-focus--text-color, |
| 26 | $key-focus--outline-color: props.def(--o-tabbar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 54 | props.get(core.$theme, --focus, --text), |
| 55 | "color" | ||
| 56 | ) !default; | ||
| 57 | $key-focus--border-color: props.def( | ||
| 58 | --o-tabbar--key-focus--border-color, | ||
| 59 | props.get(core.$theme, --focus, --border), | ||
| 60 | "color" | ||
| 61 | ) !default; | ||
| 62 | $key-focus--outline-color: props.def( | ||
| 63 | --o-tabbar--key-focus--outline-color, | ||
| 64 | props.get(core.$theme, --focus, --outline), | ||
| 65 | "color" | ||
| 66 | ) !default; | ||
diff --git a/src/objects/_table.scss b/src/objects/_table.scss index effa61f..a985f78 100644 --- a/src/objects/_table.scss +++ b/src/objects/_table.scss | |||
| @@ -1,57 +1,57 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'table.vars'; | 6 | @forward "table.vars"; |
| 7 | @use 'table.vars' as vars; | 7 | @use "table.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables('vars')); | 10 | @include materialize-at-root(meta.module-variables("vars")); |
| 11 | 11 | ||
| 12 | @include bem.object('table') { | 12 | @include bem.object("table") { |
| 13 | border-spacing: 0; | 13 | border-spacing: 0; |
| 14 | border-collapse: separate; | 14 | border-collapse: separate; |
| 15 | 15 | ||
| 16 | @include bem.modifier('fixed') { | 16 | @include bem.modifier("fixed") { |
| 17 | table-layout: fixed; | 17 | table-layout: fixed; |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | @include bem.elem('head-cell') { | 20 | @include bem.elem("head-cell") { |
| 21 | padding-block: props.get(vars.$pad-b); | 21 | padding-block: props.get(vars.$pad-b); |
| 22 | padding-inline: props.get(vars.$pad-i); | 22 | padding-inline: props.get(vars.$pad-i); |
| 23 | font-family: props.get(vars.$heading--font-family); | 23 | font-family: props.get(vars.$heading--font-family); |
| 24 | font-size: props.get(vars.$heading--font-size); | 24 | font-size: props.get(vars.$heading--font-size); |
| 25 | font-weight: props.get(vars.$heading--font-weight); | 25 | font-weight: props.get(vars.$heading--font-weight); |
| 26 | color: props.get(vars.$heading-color); | 26 | color: props.get(vars.$heading-color); |
| 27 | text-align: start; | 27 | text-align: start; |
| 28 | text-transform: props.get(vars.$heading--text-transform); | 28 | text-transform: props.get(vars.$heading--text-transform); |
| 29 | letter-spacing: props.get(vars.$heading--letter-spacing); | 29 | letter-spacing: props.get(vars.$heading--letter-spacing); |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.elem('cell') { | 32 | @include bem.elem("cell") { |
| 33 | padding-block: props.get(vars.$pad-b); | 33 | padding-block: props.get(vars.$pad-b); |
| 34 | padding-inline: props.get(vars.$pad-i); | 34 | padding-inline: props.get(vars.$pad-i); |
| 35 | border-color: props.get(vars.$border-color); | 35 | border-color: props.get(vars.$border-color); |
| 36 | border-style: solid; | 36 | border-style: solid; |
| 37 | border-width: 0; | 37 | border-width: 0; |
| 38 | border-block-start-width: props.get(vars.$border-width); | 38 | border-block-start-width: props.get(vars.$border-width); |
| 39 | 39 | ||
| 40 | @include bem.modifier('divider') { | 40 | @include bem.modifier("divider") { |
| 41 | border-inline-end-width: props.get(vars.$border-width); | 41 | border-inline-end-width: props.get(vars.$border-width); |
| 42 | } | 42 | } |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | @include bem.elem('row') { | 45 | @include bem.elem("row") { |
| 46 | &:last-child { | 46 | &:last-child { |
| 47 | @include bem.elem('cell') { | 47 | @include bem.elem("cell") { |
| 48 | border-block-end-width: props.get(vars.$border-width); | 48 | border-block-end-width: props.get(vars.$border-width); |
| 49 | } | 49 | } |
| 50 | } | 50 | } |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | @include bem.modifier('flush') { | 53 | @include bem.modifier("flush") { |
| 54 | @include bem.elem('head-cell', 'cell') { | 54 | @include bem.elem("head-cell", "cell") { |
| 55 | &:first-child { | 55 | &:first-child { |
| 56 | padding-inline-start: 0; | 56 | padding-inline-start: 0; |
| 57 | } | 57 | } |
| @@ -62,8 +62,8 @@ | |||
| 62 | } | 62 | } |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | @include bem.modifier('box') { | 65 | @include bem.modifier("box") { |
| 66 | @include bem.elem('cell') { | 66 | @include bem.elem("cell") { |
| 67 | background-color: props.get(vars.$box--bg-color); | 67 | background-color: props.get(vars.$box--bg-color); |
| 68 | 68 | ||
| 69 | &:first-child { | 69 | &:first-child { |
| @@ -75,9 +75,9 @@ | |||
| 75 | } | 75 | } |
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | @include bem.elem('row') { | 78 | @include bem.elem("row") { |
| 79 | &:first-child { | 79 | &:first-child { |
| 80 | @include bem.elem('cell') { | 80 | @include bem.elem("cell") { |
| 81 | &:first-child { | 81 | &:first-child { |
| 82 | border-start-start-radius: props.get(vars.$rounding); | 82 | border-start-start-radius: props.get(vars.$rounding); |
| 83 | } | 83 | } |
| @@ -89,7 +89,7 @@ | |||
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | &:last-child { | 91 | &:last-child { |
| 92 | @include bem.elem('cell') { | 92 | @include bem.elem("cell") { |
| 93 | &:first-child { | 93 | &:first-child { |
| 94 | border-end-start-radius: props.get(vars.$rounding); | 94 | border-end-start-radius: props.get(vars.$rounding); |
| 95 | } | 95 | } |
| @@ -102,35 +102,35 @@ | |||
| 102 | } | 102 | } |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | @include bem.modifier('interactive') { | 105 | @include bem.modifier("interactive") { |
| 106 | @include bem.elem('row') { | 106 | @include bem.elem("row") { |
| 107 | @include bem.elem('cell') { | 107 | @include bem.elem("cell") { |
| 108 | cursor: pointer; | 108 | cursor: pointer; |
| 109 | } | 109 | } |
| 110 | 110 | ||
| 111 | &:hover { | 111 | &:hover { |
| 112 | @include bem.elem('cell') { | 112 | @include bem.elem("cell") { |
| 113 | background-color: props.get(vars.$hover--bg-color); | 113 | background-color: props.get(vars.$hover--bg-color); |
| 114 | } | 114 | } |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | &:active { | 117 | &:active { |
| 118 | @include bem.elem('cell') { | 118 | @include bem.elem("cell") { |
| 119 | background-color: props.get(vars.$active--bg-color); | 119 | background-color: props.get(vars.$active--bg-color); |
| 120 | } | 120 | } |
| 121 | } | 121 | } |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | @include bem.modifier('box') { | 124 | @include bem.modifier("box") { |
| 125 | @include bem.elem('row') { | 125 | @include bem.elem("row") { |
| 126 | &:hover { | 126 | &:hover { |
| 127 | @include bem.elem('cell') { | 127 | @include bem.elem("cell") { |
| 128 | background-color: props.get(vars.$box--hover--bg-color); | 128 | background-color: props.get(vars.$box--hover--bg-color); |
| 129 | } | 129 | } |
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | &:active { | 132 | &:active { |
| 133 | @include bem.elem('cell') { | 133 | @include bem.elem("cell") { |
| 134 | background-color: props.get(vars.$box--active--bg-color); | 134 | background-color: props.get(vars.$box--active--bg-color); |
| 135 | } | 135 | } |
| 136 | } | 136 | } |
| @@ -138,8 +138,8 @@ | |||
| 138 | } | 138 | } |
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | @include bem.modifier('sm') { | 141 | @include bem.modifier("sm") { |
| 142 | @include bem.elem('head-cell', 'cell') { | 142 | @include bem.elem("head-cell", "cell") { |
| 143 | padding-block: props.get(vars.$pad-b--sm); | 143 | padding-block: props.get(vars.$pad-b--sm); |
| 144 | } | 144 | } |
| 145 | } | 145 | } |
diff --git a/src/objects/_table.vars.scss b/src/objects/_table.vars.scss index 7c5683c..e00010f 100644 --- a/src/objects/_table.vars.scss +++ b/src/objects/_table.vars.scss | |||
| @@ -1,25 +1,59 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $pad-i: props.def(--o-table--pad-i, props.get(core.$size--175)) !default; | 5 | $pad-i: props.def(--o-table--pad-i, props.get(core.$size--175)) !default; |
| 6 | $pad-b: props.def(--o-table--pad-b, props.get(core.$size--125)) !default; | 6 | $pad-b: props.def(--o-table--pad-b, props.get(core.$size--125)) !default; |
| 7 | $rounding: props.def(--o-table--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-table--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $border-width: props.def(--o-table--border-width, props.get(core.$border-width--thin)) !default; | 8 | $border-width: props.def(--o-table--border-width, props.get(core.$border-width--thin)) !default; |
| 9 | 9 | ||
| 10 | $heading--font-family: props.def(--o-table--heading--font-family, props.get(core.$font--standard--family)) !default; | 10 | $heading--font-family: props.def( |
| 11 | $heading--font-size: props.def(--o-table--heading--font-size, props.get(core.$font-size--50)) !default; | 11 | --o-table--heading--font-family, |
| 12 | $heading--font-weight: props.def(--o-table--heading--font-weight, bold) !default; | 12 | props.get(core.$font--standard--family) |
| 13 | ) !default; | ||
| 14 | $heading--font-size: props.def( | ||
| 15 | --o-table--heading--font-size, | ||
| 16 | props.get(core.$font-size--50) | ||
| 17 | ) !default; | ||
| 18 | $heading--font-weight: props.def(--o-table--heading--font-weight, bold) !default; | ||
| 13 | $heading--text-transform: props.def(--o-table--heading--text-transform, uppercase) !default; | 19 | $heading--text-transform: props.def(--o-table--heading--text-transform, uppercase) !default; |
| 14 | $heading--letter-spacing: props.def(--o-table--heading--letter-spacing, .5px) !default; | 20 | $heading--letter-spacing: props.def(--o-table--heading--letter-spacing, 0.5px) !default; |
| 15 | 21 | ||
| 16 | $pad-b--sm: props.def(--o-table--sm--pad-b, props.get(core.$size--75)) !default; | 22 | $pad-b--sm: props.def(--o-table--sm--pad-b, props.get(core.$size--75)) !default; |
| 17 | 23 | ||
| 18 | $border-color: props.def(--o-table--border-color, props.get(core.$theme, --border), 'color') !default; | 24 | $border-color: props.def( |
| 19 | $heading-color: props.def(--o-table--heading-color, props.get(core.$theme, --heading), 'color') !default; | 25 | --o-table--border-color, |
| 20 | $hover--bg-color: props.def(--o-table--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 26 | props.get(core.$theme, --border), |
| 21 | $active--bg-color: props.def(--o-table--active--bg-color, props.get(core.$theme, --border), 'color') !default; | 27 | "color" |
| 28 | ) !default; | ||
| 29 | $heading-color: props.def( | ||
| 30 | --o-table--heading-color, | ||
| 31 | props.get(core.$theme, --heading), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 34 | $hover--bg-color: props.def( | ||
| 35 | --o-table--hover--bg-color, | ||
| 36 | props.get(core.$theme, --border-mute), | ||
| 37 | "color" | ||
| 38 | ) !default; | ||
| 39 | $active--bg-color: props.def( | ||
| 40 | --o-table--active--bg-color, | ||
| 41 | props.get(core.$theme, --border), | ||
| 42 | "color" | ||
| 43 | ) !default; | ||
| 22 | 44 | ||
| 23 | $box--bg-color: props.def(--o-table--box--bg-color, props.get(core.$theme, --base, --50), 'color') !default; | 45 | $box--bg-color: props.def( |
| 24 | $box--hover--bg-color: props.def(--o-table--box--hover--bg-color, props.get(core.$theme, --bg-base), 'color') !default; | 46 | --o-table--box--bg-color, |
| 25 | $box--active--bg-color: props.def(--o-table--box--active--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 47 | props.get(core.$theme, --base, --50), |
| 48 | "color" | ||
| 49 | ) !default; | ||
| 50 | $box--hover--bg-color: props.def( | ||
| 51 | --o-table--box--hover--bg-color, | ||
| 52 | props.get(core.$theme, --bg-base), | ||
| 53 | "color" | ||
| 54 | ) !default; | ||
| 55 | $box--active--bg-color: props.def( | ||
| 56 | --o-table--box--active--bg-color, | ||
| 57 | props.get(core.$theme, --border-mute), | ||
| 58 | "color" | ||
| 59 | ) !default; | ||
diff --git a/src/objects/_text-field.scss b/src/objects/_text-field.scss index 5a48df3..a8d3ec8 100644 --- a/src/objects/_text-field.scss +++ b/src/objects/_text-field.scss | |||
| @@ -1,84 +1,91 @@ | |||
| 1 | @use 'sass:meta'; | 1 | @use "sass:meta"; |
| 2 | @use 'pkg:iro-sass/src/bem'; | 2 | @use "pkg:iro-sass/bem"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../props' as *; | 4 | @use "../props" as *; |
| 5 | 5 | ||
| 6 | @forward 'text-field.vars'; | 6 | @forward "text-field.vars"; |
| 7 | @use 'text-field.vars' as vars; | 7 | @use "text-field.vars" as vars; |
| 8 | 8 | ||
| 9 | @mixin -invalid { | 9 | @mixin -invalid { |
| 10 | $focus-border-offset: calc(props.get(vars.$border-width) - props.get(vars.$focus--border-width)); | 10 | $focus-border-offset: calc( |
| 11 | props.get(vars.$border-width) - props.get(vars.$focus--border-width) | ||
| 12 | ); | ||
| 11 | 13 | ||
| 12 | @include bem.sibling-elem('bg') { | 14 | @include bem.sibling-elem("bg") { |
| 13 | inset-block: $focus-border-offset; | 15 | inset-block: $focus-border-offset; |
| 14 | inset-inline: $focus-border-offset; | 16 | inset-inline: $focus-border-offset; |
| 15 | border: props.get(vars.$focus--border-width) solid props.get(vars.$error--border-color); | 17 | border: props.get(vars.$focus--border-width) solid props.get(vars.$error--border-color); |
| 16 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 18 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 17 | } | 19 | } |
| 18 | 20 | ||
| 19 | &:hover { | 21 | &:hover { |
| 20 | @include bem.sibling-elem('bg') { | 22 | @include bem.sibling-elem("bg") { |
| 21 | border-color: props.get(vars.$error--hover--border-color); | 23 | border-color: props.get(vars.$error--hover--border-color); |
| 22 | } | 24 | } |
| 23 | } | 25 | } |
| 24 | 26 | ||
| 25 | &:focus { | 27 | &:focus { |
| 26 | @include bem.sibling-elem('bg') { | 28 | @include bem.sibling-elem("bg") { |
| 27 | border-color: props.get(vars.$error--focus--border-color); | 29 | border-color: props.get(vars.$error--focus--border-color); |
| 28 | } | 30 | } |
| 29 | } | 31 | } |
| 30 | } | 32 | } |
| 31 | 33 | ||
| 32 | @mixin -keyboard-focus { | 34 | @mixin -keyboard-focus { |
| 33 | @include bem.sibling-elem('bg') { | 35 | @include bem.sibling-elem("bg") { |
| 34 | outline: props.get(vars.$key-focus--outline-color) solid props.get(vars.$key-focus--border-width); | 36 | outline: props.get(vars.$key-focus--outline-color) solid |
| 35 | border-color: props.get(vars.$key-focus--border-color); | 37 | props.get(vars.$key-focus--border-width); |
| 38 | border-color: props.get(vars.$key-focus--border-color); | ||
| 36 | //outline-offset: props.get(vars.$focus --border); | 39 | //outline-offset: props.get(vars.$focus --border); |
| 37 | } | 40 | } |
| 38 | } | 41 | } |
| 39 | 42 | ||
| 40 | @mixin styles { | 43 | @mixin styles { |
| 41 | @include materialize-at-root(meta.module-variables('vars')); | 44 | @include materialize-at-root(meta.module-variables("vars")); |
| 42 | 45 | ||
| 43 | @include bem.object('text-field') { | 46 | @include bem.object("text-field") { |
| 44 | $focus-border-offset: calc(props.get(vars.$border-width) - props.get(vars.$focus--border-width)); | 47 | $focus-border-offset: calc( |
| 48 | props.get(vars.$border-width) - props.get(vars.$focus--border-width) | ||
| 49 | ); | ||
| 45 | 50 | ||
| 46 | position: relative; | 51 | position: relative; |
| 47 | min-inline-size: 0; | 52 | min-inline-size: 0; |
| 48 | background-color: props.get(vars.$bg-color); | 53 | background-color: props.get(vars.$bg-color); |
| 49 | border-radius: props.get(vars.$rounding); | 54 | border-radius: props.get(vars.$rounding); |
| 50 | 55 | ||
| 51 | @include bem.elem('bg') { | 56 | @include bem.elem("bg") { |
| 52 | position: absolute; | 57 | position: absolute; |
| 53 | inset-block: 0; | 58 | inset-block: 0; |
| 54 | inset-inline: 0; | 59 | inset-inline: 0; |
| 55 | display: block; | 60 | display: block; |
| 56 | pointer-events: none; | 61 | pointer-events: none; |
| 57 | border: props.get(vars.$border-width) solid props.get(vars.$border-color); | 62 | border: props.get(vars.$border-width) solid props.get(vars.$border-color); |
| 58 | border-radius: props.get(vars.$rounding); | 63 | border-radius: props.get(vars.$rounding); |
| 59 | } | 64 | } |
| 60 | 65 | ||
| 61 | @include bem.elem('native') { | 66 | @include bem.elem("native") { |
| 62 | box-sizing: border-box; | 67 | box-sizing: border-box; |
| 63 | inline-size: 100%; | 68 | inline-size: 100%; |
| 64 | padding-block: calc(props.get(vars.$pad-b) - .5em * (props.get(vars.$line-height) - 1)); | 69 | padding-block: calc( |
| 65 | padding-inline: props.get(vars.$pad-i); | 70 | props.get(vars.$pad-b) - 0.5em * (props.get(vars.$line-height) - 1) |
| 66 | font: inherit; | 71 | ); |
| 67 | line-height: props.get(vars.$line-height); | 72 | padding-inline: props.get(vars.$pad-i); |
| 68 | color: props.get(vars.$text-color); | 73 | font: inherit; |
| 69 | appearance: none; | 74 | line-height: props.get(vars.$line-height); |
| 70 | resize: none; | 75 | color: props.get(vars.$text-color); |
| 76 | appearance: none; | ||
| 77 | resize: none; | ||
| 71 | background-color: transparent; | 78 | background-color: transparent; |
| 72 | border: 1px solid transparent; | 79 | border: 1px solid transparent; |
| 73 | 80 | ||
| 74 | &::placeholder { | 81 | &::placeholder { |
| 75 | font-style: italic; | 82 | font-style: italic; |
| 76 | color: props.get(vars.$placeholder-color); | 83 | color: props.get(vars.$placeholder-color); |
| 77 | opacity: 1; | 84 | opacity: 1; |
| 78 | } | 85 | } |
| 79 | 86 | ||
| 80 | &:hover { | 87 | &:hover { |
| 81 | @include bem.sibling-elem('bg') { | 88 | @include bem.sibling-elem("bg") { |
| 82 | border-color: props.get(vars.$hover--border-color); | 89 | border-color: props.get(vars.$hover--border-color); |
| 83 | } | 90 | } |
| 84 | } | 91 | } |
| @@ -86,10 +93,11 @@ | |||
| 86 | &:focus { | 93 | &:focus { |
| 87 | outline: 0; | 94 | outline: 0; |
| 88 | 95 | ||
| 89 | @include bem.sibling-elem('bg') { | 96 | @include bem.sibling-elem("bg") { |
| 90 | inset-block: $focus-border-offset; | 97 | inset-block: $focus-border-offset; |
| 91 | inset-inline: $focus-border-offset; | 98 | inset-inline: $focus-border-offset; |
| 92 | border: props.get(vars.$focus--border-width) solid props.get(vars.$focus--border-color); | 99 | border: props.get(vars.$focus--border-width) solid |
| 100 | props.get(vars.$focus--border-color); | ||
| 93 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 101 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 94 | } | 102 | } |
| 95 | } | 103 | } |
| @@ -104,46 +112,49 @@ | |||
| 104 | } | 112 | } |
| 105 | } | 113 | } |
| 106 | 114 | ||
| 107 | @include bem.modifier('extended') { | 115 | @include bem.modifier("extended") { |
| 108 | padding: props.get(vars.$extended--pad); | 116 | padding: props.get(vars.$extended--pad); |
| 109 | 117 | ||
| 110 | @include bem.multi('&', 'elem' 'bg') { | 118 | @include bem.multi("&", "elem" "bg") { |
| 111 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad)); | 119 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad)); |
| 112 | } | 120 | } |
| 113 | 121 | ||
| 114 | @include bem.elem('native') { | 122 | @include bem.elem("native") { |
| 115 | &:focus { | 123 | &:focus { |
| 116 | @include bem.sibling-elem('bg') { | 124 | @include bem.sibling-elem("bg") { |
| 117 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad) - $focus-border-offset); | 125 | border-radius: calc( |
| 126 | props.get(vars.$rounding) + props.get(vars.$extended--pad) - | ||
| 127 | $focus-border-offset | ||
| 128 | ); | ||
| 118 | } | 129 | } |
| 119 | } | 130 | } |
| 120 | } | 131 | } |
| 121 | } | 132 | } |
| 122 | 133 | ||
| 123 | @include bem.modifier('pill') { | 134 | @include bem.modifier("pill") { |
| 124 | @include bem.multi('&', 'elem' 'bg') { | 135 | @include bem.multi("&", "elem" "bg") { |
| 125 | border-radius: 100em; | 136 | border-radius: 100em; |
| 126 | } | 137 | } |
| 127 | 138 | ||
| 128 | @include bem.elem('native') { | 139 | @include bem.elem("native") { |
| 129 | padding-inline: props.get(vars.$pad-i-pill); | 140 | padding-inline: props.get(vars.$pad-i-pill); |
| 130 | 141 | ||
| 131 | &:focus { | 142 | &:focus { |
| 132 | @include bem.sibling-elem('bg') { | 143 | @include bem.sibling-elem("bg") { |
| 133 | border-radius: 100em; | 144 | border-radius: 100em; |
| 134 | } | 145 | } |
| 135 | } | 146 | } |
| 136 | } | 147 | } |
| 137 | 148 | ||
| 138 | @include bem.modifier('extended') { | 149 | @include bem.modifier("extended") { |
| 139 | @include bem.elem('native') { | 150 | @include bem.elem("native") { |
| 140 | padding-inline: props.get(vars.$pad-i); | 151 | padding-inline: props.get(vars.$pad-i); |
| 141 | } | 152 | } |
| 142 | } | 153 | } |
| 143 | } | 154 | } |
| 144 | 155 | ||
| 145 | @include bem.is('invalid') { | 156 | @include bem.is("invalid") { |
| 146 | @include bem.elem('native') { | 157 | @include bem.elem("native") { |
| 147 | @include -invalid; | 158 | @include -invalid; |
| 148 | 159 | ||
| 149 | &:focus-visible { | 160 | &:focus-visible { |
| @@ -152,10 +163,10 @@ | |||
| 152 | } | 163 | } |
| 153 | } | 164 | } |
| 154 | 165 | ||
| 155 | @include bem.is('disabled') { | 166 | @include bem.is("disabled") { |
| 156 | background-color: props.get(vars.$disabled--bg-color); | 167 | background-color: props.get(vars.$disabled--bg-color); |
| 157 | 168 | ||
| 158 | @include bem.elem('native') { | 169 | @include bem.elem("native") { |
| 159 | color: props.get(vars.$disabled--text-color); | 170 | color: props.get(vars.$disabled--text-color); |
| 160 | 171 | ||
| 161 | &::placeholder { | 172 | &::placeholder { |
| @@ -163,21 +174,21 @@ | |||
| 163 | } | 174 | } |
| 164 | } | 175 | } |
| 165 | 176 | ||
| 166 | @include bem.elem('bg') { | 177 | @include bem.elem("bg") { |
| 167 | border-color: props.get(vars.$disabled--border-color); | 178 | border-color: props.get(vars.$disabled--border-color); |
| 168 | } | 179 | } |
| 169 | 180 | ||
| 170 | @include bem.is('invalid') { | 181 | @include bem.is("invalid") { |
| 171 | @include bem.elem('native') { | 182 | @include bem.elem("native") { |
| 172 | @include bem.sibling-elem('bg') { | 183 | @include bem.sibling-elem("bg") { |
| 173 | border-color: props.get(vars.$disabled--border-color); | 184 | border-color: props.get(vars.$disabled--border-color); |
| 174 | } | 185 | } |
| 175 | } | 186 | } |
| 176 | } | 187 | } |
| 177 | 188 | ||
| 178 | @include bem.elem('native') { | 189 | @include bem.elem("native") { |
| 179 | &:invalid { | 190 | &:invalid { |
| 180 | @include bem.sibling-elem('bg') { | 191 | @include bem.sibling-elem("bg") { |
| 181 | border-color: props.get(vars.$disabled--border-color); | 192 | border-color: props.get(vars.$disabled--border-color); |
| 182 | } | 193 | } |
| 183 | } | 194 | } |
diff --git a/src/objects/_text-field.vars.scss b/src/objects/_text-field.vars.scss index ef06822..9a2a16a 100644 --- a/src/objects/_text-field.vars.scss +++ b/src/objects/_text-field.vars.scss | |||
| @@ -1,39 +1,108 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'pkg:iro-sass/src/props'; | 2 | @use "pkg:iro-sass/props"; |
| 3 | @use '../core.vars' as core; | 3 | @use "../core.vars" as core; |
| 4 | 4 | ||
| 5 | $line-height: props.def(--o-text-field--line-height, 1.4) !default; | 5 | $line-height: props.def(--o-text-field--line-height, 1.4) !default; |
| 6 | $pad-i: props.def(--o-text-field--pad-i, props.get(core.$size--125)) !default; | 6 | $pad-i: props.def(--o-text-field--pad-i, props.get(core.$size--125)) !default; |
| 7 | $pad-i-pill: props.def(--o-text-field--pad-i-pill, props.get(core.$size--175)) !default; | 7 | $pad-i-pill: props.def(--o-text-field--pad-i-pill, props.get(core.$size--175)) !default; |
| 8 | $pad-b: props.def(--o-text-field--pad-b, props.get(core.$size--125)) !default; | 8 | $pad-b: props.def(--o-text-field--pad-b, props.get(core.$size--125)) !default; |
| 9 | $border-width: props.def(--o-text-field--border-width, props.get(core.$border-width--thin)) !default; | 9 | $border-width: props.def( |
| 10 | $rounding: props.def(--o-text-field--rounding, props.get(core.$rounding--sm)) !default; | 10 | --o-text-field--border-width, |
| 11 | props.get(core.$border-width--thin) | ||
| 12 | ) !default; | ||
| 13 | $rounding: props.def(--o-text-field--rounding, props.get(core.$rounding--sm)) !default; | ||
| 11 | 14 | ||
| 12 | $extended--pad: props.def(--o-text-field--extended--pad, props.get(core.$size--50)) !default; | 15 | $extended--pad: props.def(--o-text-field--extended--pad, props.get(core.$size--50)) !default; |
| 13 | 16 | ||
| 14 | $focus--border-width: props.def(--o-text-field--focus--border-width, props.get(core.$border-width--medium)) !default; | 17 | $focus--border-width: props.def( |
| 18 | --o-text-field--focus--border-width, | ||
| 19 | props.get(core.$border-width--medium) | ||
| 20 | ) !default; | ||
| 15 | 21 | ||
| 16 | $key-focus--border-width: props.def(--o-text-field--key-focus--border-width, props.get(core.$key-focus--outline-width)) !default; | 22 | $key-focus--border-width: props.def( |
| 23 | --o-text-field--key-focus--border-width, | ||
| 24 | props.get(core.$key-focus--outline-width) | ||
| 25 | ) !default; | ||
| 17 | 26 | ||
| 18 | $bg-color: props.def(--o-text-field--bg-color, props.get(core.$theme, --base, --50), 'color') !default; | 27 | $bg-color: props.def( |
| 19 | $placeholder-color: props.def(--o-text-field--placeholder-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 28 | --o-text-field--bg-color, |
| 20 | $text-color: props.def(--o-text-field--text-color, props.get(core.$theme, --text), 'color') !default; | 29 | props.get(core.$theme, --base, --50), |
| 21 | $border-color: props.def(--o-text-field--border-color, props.get(core.$theme, --border-strong), 'color') !default; | 30 | "color" |
| 31 | ) !default; | ||
| 32 | $placeholder-color: props.def( | ||
| 33 | --o-text-field--placeholder-color, | ||
| 34 | props.get(core.$theme, --text-mute-more), | ||
| 35 | "color" | ||
| 36 | ) !default; | ||
| 37 | $text-color: props.def( | ||
| 38 | --o-text-field--text-color, | ||
| 39 | props.get(core.$theme, --text), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | $border-color: props.def( | ||
| 43 | --o-text-field--border-color, | ||
| 44 | props.get(core.$theme, --border-strong), | ||
| 45 | "color" | ||
| 46 | ) !default; | ||
| 22 | 47 | ||
| 23 | $hover--border-color: props.def(--o-text-field--hover--border-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 48 | $hover--border-color: props.def( |
| 49 | --o-text-field--hover--border-color, | ||
| 50 | props.get(core.$theme, --text-mute-more), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 24 | 53 | ||
| 25 | $focus--border-color: props.def(--o-text-field--focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 54 | $focus--border-color: props.def( |
| 55 | --o-text-field--focus--border-color, | ||
| 56 | props.get(core.$theme, --focus, --border), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 26 | 59 | ||
| 27 | $key-focus--border-color: props.def(--o-text-field--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 60 | $key-focus--border-color: props.def( |
| 28 | $key-focus--outline-color: props.def(--o-text-field--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 61 | --o-text-field--key-focus--border-color, |
| 62 | props.get(core.$theme, --focus, --border), | ||
| 63 | "color" | ||
| 64 | ) !default; | ||
| 65 | $key-focus--outline-color: props.def( | ||
| 66 | --o-text-field--key-focus--outline-color, | ||
| 67 | props.get(core.$theme, --focus, --outline), | ||
| 68 | "color" | ||
| 69 | ) !default; | ||
| 29 | 70 | ||
| 30 | $error--border-color: props.def(--o-text-field--error--border-color, props.get(core.$theme, --negative, --700), 'color') !default; | 71 | $error--border-color: props.def( |
| 72 | --o-text-field--error--border-color, | ||
| 73 | props.get(core.$theme, --negative, --700), | ||
| 74 | "color" | ||
| 75 | ) !default; | ||
| 31 | 76 | ||
| 32 | $error--hover--border-color: props.def(--o-text-field--error--hover--border-color, props.get(core.$theme, --negative, --900), 'color') !default; | 77 | $error--hover--border-color: props.def( |
| 78 | --o-text-field--error--hover--border-color, | ||
| 79 | props.get(core.$theme, --negative, --900), | ||
| 80 | "color" | ||
| 81 | ) !default; | ||
| 33 | 82 | ||
| 34 | $error--focus--border-color: props.def(--o-text-field--error--focus--border-color, props.get(core.$theme, --negative, --900), 'color') !default; | 83 | $error--focus--border-color: props.def( |
| 84 | --o-text-field--error--focus--border-color, | ||
| 85 | props.get(core.$theme, --negative, --900), | ||
| 86 | "color" | ||
| 87 | ) !default; | ||
| 35 | 88 | ||
| 36 | $disabled--bg-color: props.def(--o-text-field--disabled--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 89 | $disabled--bg-color: props.def( |
| 37 | $disabled--placeholder-color: props.def(--o-text-field--disabled--placeholder-color, props.get(core.$theme, --text-disabled), 'color') !default; | 90 | --o-text-field--disabled--bg-color, |
| 38 | $disabled--text-color: props.def(--o-text-field--disabled--text-color, props.get(core.$theme, --text-disabled), 'color') !default; | 91 | props.get(core.$theme, --border-mute), |
| 39 | $disabled--border-color: props.def(--o-text-field--disabled--border-color, props.get(core.$theme, --border-mute), 'color') !default; | 92 | "color" |
| 93 | ) !default; | ||
| 94 | $disabled--placeholder-color: props.def( | ||
| 95 | --o-text-field--disabled--placeholder-color, | ||
| 96 | props.get(core.$theme, --text-disabled), | ||
| 97 | "color" | ||
| 98 | ) !default; | ||
| 99 | $disabled--text-color: props.def( | ||
| 100 | --o-text-field--disabled--text-color, | ||
| 101 | props.get(core.$theme, --text-disabled), | ||
| 102 | "color" | ||
| 103 | ) !default; | ||
| 104 | $disabled--border-color: props.def( | ||
| 105 | --o-text-field--disabled--border-color, | ||
| 106 | props.get(core.$theme, --border-mute), | ||
| 107 | "color" | ||
| 108 | ) !default; | ||
diff --git a/src/objects/_thumbnail.scss b/src/objects/_thumbnail.scss index 9925dd0..c7a9791 100644 --- a/src/objects/_thumbnail.scss +++ b/src/objects/_thumbnail.scss | |||
| @@ -1,65 +1,66 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:meta'; | 2 | @use "sass:meta"; |
| 3 | @use 'sass:string'; | 3 | @use "sass:string"; |
| 4 | @use 'pkg:iro-sass/src/bem'; | 4 | @use "pkg:iro-sass/bem"; |
| 5 | @use 'pkg:iro-sass/src/props'; | 5 | @use "pkg:iro-sass/props"; |
| 6 | @use '../props' as *; | 6 | @use "../props" as *; |
| 7 | 7 | ||
| 8 | @forward 'thumbnail.vars'; | 8 | @forward "thumbnail.vars"; |
| 9 | @use 'thumbnail.vars' as vars; | 9 | @use "thumbnail.vars" as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables('vars')); | 12 | @include materialize-at-root(meta.module-variables("vars")); |
| 13 | 13 | ||
| 14 | @include bem.object('thumbnail') { | 14 | @include bem.object("thumbnail") { |
| 15 | position: relative; | 15 | position: relative; |
| 16 | display: block; | 16 | display: block; |
| 17 | flex: 0 0 auto; | 17 | flex: 0 0 auto; |
| 18 | inline-size: props.get(vars.$size); | 18 | inline-size: props.get(vars.$size); |
| 19 | block-size: props.get(vars.$size); | 19 | block-size: props.get(vars.$size); |
| 20 | overflow: hidden; | 20 | overflow: hidden; |
| 21 | outline: props.get(vars.$border-color) solid props.get(vars.$border-width); | 21 | outline: props.get(vars.$border-color) solid props.get(vars.$border-width); |
| 22 | outline-offset: calc(-1 * props.get(vars.$border-width)); | 22 | outline-offset: calc(-1 * props.get(vars.$border-width)); |
| 23 | border-radius: props.get(vars.$rounding); | 23 | border-radius: props.get(vars.$rounding); |
| 24 | 24 | ||
| 25 | &:hover, | 25 | &:hover, |
| 26 | &:active, | 26 | &:active, |
| 27 | &:focus-visible { | 27 | &:focus-visible { |
| 28 | outline-color: props.get(vars.$hover--border-color); | 28 | outline-color: props.get(vars.$hover--border-color); |
| 29 | opacity: 1; | 29 | opacity: 1; |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.elem('image') { | 32 | @include bem.elem("image") { |
| 33 | position: absolute; | 33 | position: absolute; |
| 34 | inset-block-start: 0; | 34 | inset-block-start: 0; |
| 35 | inset-inline-start: 0; | 35 | inset-inline-start: 0; |
| 36 | display: block; | 36 | display: block; |
| 37 | inline-size: 100%; | 37 | inline-size: 100%; |
| 38 | block-size: 100%; | 38 | block-size: 100%; |
| 39 | object-fit: cover; | 39 | object-fit: cover; |
| 40 | object-position: center center; | 40 | object-position: center center; |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | @include bem.elem('icon') { | 43 | @include bem.elem("icon") { |
| 44 | position: absolute; | 44 | position: absolute; |
| 45 | inset-block-start: 50%; | 45 | inset-block-start: 50%; |
| 46 | inset-inline-start: 50%; | 46 | inset-inline-start: 50%; |
| 47 | transform: translate(-50%, -50%); | 47 | transform: translate(-50%, -50%); |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | &:focus-visible { | 50 | &:focus-visible { |
| 51 | $focus-border-offset: calc(-1 * props.get(vars.$key-focus--border-offset)); | 51 | $focus-border-offset: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 52 | 52 | ||
| 53 | margin: $focus-border-offset; | 53 | margin: $focus-border-offset; |
| 54 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); | 54 | outline: props.get(vars.$key-focus--border-color) solid |
| 55 | props.get(vars.$key-focus--border-width); | ||
| 55 | outline-offset: 0; | 56 | outline-offset: 0; |
| 56 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 57 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 57 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 58 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 58 | box-shadow: | 59 | box-shadow: 0 0 0 |
| 59 | 0 | 60 | calc( |
| 60 | 0 | 61 | props.get(vars.$key-focus--outline-width) + |
| 61 | 0 | 62 | props.get(vars.$key-focus--border-width) |
| 62 | calc(props.get(vars.$key-focus--outline-width) + props.get(vars.$key-focus--border-width)) | 63 | ) |
| 63 | props.get(vars.$key-focus--outline-color); | 64 | props.get(vars.$key-focus--outline-color); |
| 64 | } | 65 | } |
| 65 | 66 | ||
| @@ -73,18 +74,18 @@ | |||
| 73 | outline-color: props.get(vars.$static-themes, $theme, --hover, --border); | 74 | outline-color: props.get(vars.$static-themes, $theme, --hover, --border); |
| 74 | } | 75 | } |
| 75 | 76 | ||
| 76 | @include bem.is('selected') { | 77 | @include bem.is("selected") { |
| 77 | border-color: props.get(vars.$static-themes, $theme, --selected, --border); | 78 | border-color: props.get(vars.$static-themes, $theme, --selected, --border); |
| 78 | } | 79 | } |
| 79 | 80 | ||
| 80 | &:focus-visible { | 81 | &:focus-visible { |
| 81 | outline-color: props.get(vars.$static-themes, $theme, --key-focus, --border); | 82 | outline-color: props.get(vars.$static-themes, $theme, --key-focus, --border); |
| 82 | border-color: transparent; | 83 | border-color: transparent; |
| 83 | box-shadow: | 84 | box-shadow: 0 0 0 |
| 84 | 0 | 85 | calc( |
| 85 | 0 | 86 | props.get(vars.$key-focus--outline-width) + |
| 86 | 0 | 87 | props.get(vars.$key-focus--border-width) |
| 87 | calc(props.get(vars.$key-focus--outline-width) + props.get(vars.$key-focus--border-width)) | 88 | ) |
| 88 | props.get(vars.$static-themes, $theme, --key-focus, --outline); | 89 | props.get(vars.$static-themes, $theme, --key-focus, --outline); |
| 89 | } | 90 | } |
| 90 | } | 91 | } |
diff --git a/src/objects/_thumbnail.vars.scss b/src/objects/_thumbnail.vars.scss index a5625fc..737a626 100644 --- a/src/objects/_thumbnail.vars.scss +++ b/src/objects/_thumbnail.vars.scss | |||
| @@ -1,51 +1,85 @@ | |||
| 1 | @use 'sass:map'; | 1 | @use "sass:map"; |
| 2 | @use 'sass:string'; | 2 | @use "sass:string"; |
| 3 | @use 'pkg:iro-sass/src/props'; | 3 | @use "pkg:iro-sass/props"; |
| 4 | @use '../core.vars' as core; | 4 | @use "../core.vars" as core; |
| 5 | 5 | ||
| 6 | $size: props.def(--o-thumbnail--size, props.get(core.$size--900)) !default; | 6 | $size: props.def(--o-thumbnail--size, props.get(core.$size--900)) !default; |
| 7 | $rounding: props.def(--o-thumbnail--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-thumbnail--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $spacing: props.def(--o-thumbnail--spacing, props.get(core.$size--100)) !default; | 8 | $spacing: props.def(--o-thumbnail--spacing, props.get(core.$size--100)) !default; |
| 9 | $border-width: props.def(--o-thumbnail--border-width, props.get(core.$border-width--thin)) !default; | 9 | $border-width: props.def(--o-thumbnail--border-width, props.get(core.$border-width--thin)) !default; |
| 10 | 10 | ||
| 11 | $selected--border-width: props.def(--o-thumbnail--selected--border-width, props.get(core.$border-width--medium)) !default; | 11 | $selected--border-width: props.def( |
| 12 | --o-thumbnail--selected--border-width, | ||
| 13 | props.get(core.$border-width--medium) | ||
| 14 | ) !default; | ||
| 12 | 15 | ||
| 13 | $key-focus--border-width: props.def(--o-thumbnail--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; | 16 | $key-focus--border-width: props.def( |
| 14 | $key-focus--border-offset: props.def(--o-thumbnail--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; | 17 | --o-thumbnail--key-focus--border-width, |
| 15 | $key-focus--outline-width: props.def(--o-thumbnail--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; | 18 | props.get(core.$key-focus--border-width) |
| 19 | ) !default; | ||
| 20 | $key-focus--border-offset: props.def( | ||
| 21 | --o-thumbnail--key-focus--border-offset, | ||
| 22 | props.get(core.$key-focus--border-offset) | ||
| 23 | ) !default; | ||
| 24 | $key-focus--outline-width: props.def( | ||
| 25 | --o-thumbnail--key-focus--outline-width, | ||
| 26 | props.get(core.$key-focus--outline-width) | ||
| 27 | ) !default; | ||
| 16 | 28 | ||
| 17 | $border-color: props.def(--o-thumbnail--border-color, props.get(core.$theme, --border-strong), 'color') !default; | 29 | $border-color: props.def( |
| 30 | --o-thumbnail--border-color, | ||
| 31 | props.get(core.$theme, --border-strong), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 18 | 34 | ||
| 19 | $hover--border-color: props.def(--o-thumbnail--hover--border-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 35 | $hover--border-color: props.def( |
| 36 | --o-thumbnail--hover--border-color, | ||
| 37 | props.get(core.$theme, --text-mute-more), | ||
| 38 | "color" | ||
| 39 | ) !default; | ||
| 20 | 40 | ||
| 21 | $selected--border-color: props.def(--o-thumbnail--selected--border-color, props.get(core.$theme, --heading), 'color') !default; | 41 | $selected--border-color: props.def( |
| 42 | --o-thumbnail--selected--border-color, | ||
| 43 | props.get(core.$theme, --heading), | ||
| 44 | "color" | ||
| 45 | ) !default; | ||
| 22 | 46 | ||
| 23 | $key-focus--border-color: props.def(--o-thumbnail--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 47 | $key-focus--border-color: props.def( |
| 24 | $key-focus--outline-color: props.def(--o-thumbnail--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 48 | --o-thumbnail--key-focus--border-color, |
| 49 | props.get(core.$theme, --focus, --border), | ||
| 50 | "color" | ||
| 51 | ) !default; | ||
| 52 | $key-focus--outline-color: props.def( | ||
| 53 | --o-thumbnail--key-focus--outline-color, | ||
| 54 | props.get(core.$theme, --focus, --outline), | ||
| 55 | "color" | ||
| 56 | ) !default; | ||
| 25 | 57 | ||
| 26 | $size--md: props.def(--o-thumbnail--size, props.get(core.$size--600), 'md') !default; | 58 | $size--md: props.def(--o-thumbnail--size, props.get(core.$size--600), "md") !default; |
| 27 | 59 | ||
| 28 | $static-themes: props.def(--o-thumbnail, (), 'color'); | 60 | $static-themes: props.def(--o-thumbnail, (), "color"); |
| 29 | 61 | ||
| 30 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 62 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 31 | $thumbnail-theme: --static-#{string.slice($theme, 3)}; | 63 | $thumbnail-theme: --static-#{string.slice($theme, 3)}; |
| 32 | 64 | ||
| 33 | $static-themes: props.merge($static-themes, ( | 65 | $static-themes: props.merge( |
| 34 | $thumbnail-theme: ( | 66 | $static-themes, |
| 35 | --border: props.get(core.$transparent-colors, $theme, --400), | 67 | ( |
| 68 | $thumbnail-theme: ( | ||
| 69 | --border: props.get(core.$transparent-colors, $theme, --400), | ||
| 70 | --hover: ( | ||
| 71 | --border: props.get(core.$transparent-colors, $theme, --500), | ||
| 72 | ), | ||
| 36 | 73 | ||
| 37 | --hover: ( | 74 | --selected: ( |
| 38 | --border: props.get(core.$transparent-colors, $theme, --500), | 75 | --border: props.get(core.$transparent-colors, $theme, --900), |
| 39 | ), | 76 | ), |
| 40 | 77 | ||
| 41 | --selected: ( | 78 | --key-focus: ( |
| 42 | --border: props.get(core.$transparent-colors, $theme, --900), | 79 | --border: props.get(core.$transparent-colors, $theme, --900), |
| 43 | ), | 80 | --outline: props.get(core.$transparent-colors, $theme, --300), |
| 44 | 81 | ), | |
| 45 | --key-focus: ( | 82 | ), |
| 46 | --border: props.get(core.$transparent-colors, $theme, --900), | ||
| 47 | --outline: props.get(core.$transparent-colors, $theme, --300), | ||
| 48 | ), | ||
| 49 | ) | 83 | ) |
| 50 | )); | 84 | ); |
| 51 | } | 85 | } |
