diff options
| author | Volpeon <git@volpeon.ink> | 2026-07-22 13:00:59 +0200 |
|---|---|---|
| committer | Volpeon <git@volpeon.ink> | 2026-07-22 13:00:59 +0200 |
| commit | aeed08dc46662a0d70e04bcea612a701633736e7 (patch) | |
| tree | a4077017d3519185ccd9ea08955fccdd737ffe17 /src/objects | |
| parent | Paths (diff) | |
| download | iro-design-aeed08dc46662a0d70e04bcea612a701633736e7.tar.gz iro-design-aeed08dc46662a0d70e04bcea612a701633736e7.tar.bz2 iro-design-aeed08dc46662a0d70e04bcea612a701633736e7.zip | |
Revert "Paths"
This reverts commit cc5329a5f4d3ea91cac93bc7f9b8f943b7ced226.
Diffstat (limited to 'src/objects')
53 files changed, 2524 insertions, 3879 deletions
diff --git a/src/objects/_alert.scss b/src/objects/_alert.scss index 3aeb781..c2a1c58 100644 --- a/src/objects/_alert.scss +++ b/src/objects/_alert.scss | |||
| @@ -1,37 +1,44 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "pkg:iro-sass/bem"; | 3 | @use 'pkg:iro-sass/src/bem'; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/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: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) | 20 | box-shadow: |
| 21 | props.get(vars.$shadow-grow) props.get(vars.$shadow-color); | 21 | props.get(vars.$shadow-x) |
| 22 | props.get(vars.$shadow-y) | ||
| 23 | props.get(vars.$shadow-blur) | ||
| 24 | props.get(vars.$shadow-grow) | ||
| 25 | props.get(vars.$shadow-color); | ||
| 22 | 26 | ||
| 23 | &::before { | 27 | &::before { |
| 24 | display: block; | 28 | display: block; |
| 25 | margin-block: -100em 100em; | 29 | margin-block: -100em 100em; |
| 26 | content: ""; | 30 | content: ''; |
| 27 | } | 31 | } |
| 28 | 32 | ||
| 29 | @each $mod, $theme in vars.$themes-config { | 33 | @each $mod, $theme in vars.$themes-config { |
| 30 | @include bem.modifier($mod) { | 34 | @include bem.modifier($mod) { |
| 31 | background-color: props.get(vars.$themes, $theme, --bg-color); | 35 | background-color: props.get(vars.$themes, $theme, --bg-color); |
| 32 | border-color: props.get(vars.$themes, $theme, --border-color); | 36 | border-color: props.get(vars.$themes, $theme, --border-color); |
| 33 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 37 | box-shadow: |
| 34 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 38 | props.get(vars.$shadow-x) |
| 39 | props.get(vars.$shadow-y) | ||
| 40 | props.get(vars.$shadow-blur) | ||
| 41 | props.get(vars.$shadow-grow) | ||
| 35 | props.get(vars.$themes, $theme, --shadow-color); | 42 | props.get(vars.$themes, $theme, --shadow-color); |
| 36 | } | 43 | } |
| 37 | } | 44 | } |
diff --git a/src/objects/_alert.vars.scss b/src/objects/_alert.vars.scss index aedd917..bbd3dad 100644 --- a/src/objects/_alert.vars.scss +++ b/src/objects/_alert.vars.scss | |||
| @@ -1,50 +1,36 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/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( | 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; |
| 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; | ||
| 21 | 16 | ||
| 22 | $shadow-color: props.def( | 17 | $shadow-color: props.def(--o-alert--shadow-color, props.get(core.$transparent-colors, --black, --200), 'color') !default; |
| 23 | --o-alert--shadow-color, | ||
| 24 | props.get(core.$transparent-colors, --black, --200), | ||
| 25 | "color" | ||
| 26 | ) !default; | ||
| 27 | 18 | ||
| 28 | $themes-config: ( | 19 | $themes-config: ( |
| 29 | accent: --accent, | 20 | accent: --accent, |
| 30 | positive: --positive, | 21 | positive: --positive, |
| 31 | negative: --negative, | 22 | negative: --negative, |
| 32 | warning: --warning, | 23 | warning: --warning, |
| 33 | ) !default; | 24 | ) !default; |
| 34 | 25 | ||
| 35 | $themes: props.def(--o-alert, (), "color"); | 26 | $themes: props.def(--o-alert, (), 'color'); |
| 36 | 27 | ||
| 37 | @each $theme, $key in $themes-config { | 28 | @each $theme, $key in $themes-config { |
| 38 | $themes: props.merge( | 29 | $themes: props.merge($themes, ( |
| 39 | $themes, | 30 | $key: ( |
| 40 | ( | 31 | --bg-color: props.get(core.$theme, --bg-l2), |
| 41 | $key: ( | 32 | --border-color: props.get(core.$theme, $key, --700) props.get(core.$theme, $key, --700) props.get(core.$theme, $key, --800), |
| 42 | --bg-color: props.get(core.$theme, --bg-l2), | 33 | --shadow-color: props.get(core.$theme, $key, --200), |
| 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 | ), | ||
| 48 | ) | 34 | ) |
| 49 | ); | 35 | )); |
| 50 | } | 36 | } |
diff --git a/src/objects/_avatar.scss b/src/objects/_avatar.scss index f805502..272c213 100644 --- a/src/objects/_avatar.scss +++ b/src/objects/_avatar.scss | |||
| @@ -1,135 +1,118 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 15 | mask-image: radial-gradient(circle calc(.5 * props.get($indicator-size) + props.get(vars.$indicator-spacing)) at |
| 16 | circle calc(0.5 * props.get($indicator-size) + props.get(vars.$indicator-spacing)) | 16 | calc(100% - .5 * props.get($indicator-size)) |
| 17 | at calc(100% - 0.5 * props.get($indicator-size)) | 17 | calc(100% - .5 * props.get($indicator-size)), |
| 18 | calc(100% - 0.5 * props.get($indicator-size)), | 18 | transparent 95%, |
| 19 | transparent 95%, | 19 | #fff); |
| 20 | #fff | ||
| 21 | ); | ||
| 22 | } | 20 | } |
| 23 | } | 21 | } |
| 24 | } | 22 | } |
| 25 | 23 | ||
| 26 | @mixin styles { | 24 | @mixin styles { |
| 27 | @include materialize-at-root(meta.module-variables("vars")); | 25 | @include materialize-at-root(meta.module-variables('vars')); |
| 28 | 26 | ||
| 29 | @include bem.object("avatar") { | 27 | @include bem.object('avatar') { |
| 30 | position: relative; | 28 | position: relative; |
| 31 | display: inline-block; | 29 | display: inline-block; |
| 32 | font-style: normal; | 30 | font-style: normal; |
| 33 | vertical-align: 0.05em; | 31 | vertical-align: .05em; |
| 34 | border-radius: props.get(vars.$rounding); | 32 | border-radius: props.get(vars.$rounding); |
| 35 | 33 | ||
| 36 | &::after { | 34 | &::after { |
| 37 | position: absolute; | 35 | position: absolute; |
| 38 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); | 36 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 39 | z-index: 1; | 37 | z-index: 1; |
| 40 | display: none; | 38 | display: none; |
| 41 | pointer-events: none; | 39 | pointer-events: none; |
| 42 | outline: props.get(vars.$key-focus--border-color) solid | 40 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 43 | props.get(vars.$key-focus--border-width); | 41 | content: ''; |
| 44 | content: ""; | 42 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 45 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 43 | border-radius: props.get(vars.$rounding); |
| 46 | border-radius: props.get(vars.$rounding); | 44 | box-shadow: |
| 47 | box-shadow: 0 0 0 | 45 | 0 |
| 48 | calc( | 46 | 0 |
| 49 | props.get(vars.$key-focus--border-width) + | 47 | 0 |
| 50 | props.get(vars.$key-focus--outline-width) | 48 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 51 | ) | ||
| 52 | props.get(vars.$key-focus--outline-color); | 49 | props.get(vars.$key-focus--outline-color); |
| 53 | } | 50 | } |
| 54 | 51 | ||
| 55 | @include bem.elem("status") { | 52 | @include bem.elem('status') { |
| 56 | position: absolute; | 53 | position: absolute; |
| 57 | inset-block-end: 0; | 54 | inset-block-end: 0; |
| 58 | inset-inline-end: 0; | 55 | inset-inline-end: 0; |
| 59 | } | 56 | } |
| 60 | 57 | ||
| 61 | @include bem.elem("icon") { | 58 | @include bem.elem('icon') { |
| 62 | position: absolute; | 59 | position: absolute; |
| 63 | inset-block-end: 0; | 60 | inset-block-end: 0; |
| 64 | inset-inline-end: 0; | 61 | inset-inline-end: 0; |
| 65 | display: flex; | 62 | display: flex; |
| 66 | align-items: flex-end; | 63 | align-items: flex-end; |
| 67 | justify-content: flex-end; | 64 | justify-content: flex-end; |
| 68 | inline-size: props.get(vars.$icon-size); | 65 | inline-size: props.get(vars.$icon-size); |
| 69 | block-size: props.get(vars.$icon-size); | 66 | block-size: props.get(vars.$icon-size); |
| 70 | 67 | ||
| 71 | @include bem.sibling-elem("content") { | 68 | @include bem.sibling-elem('content') { |
| 72 | clip-path: props.get(vars.$icon-mask); | 69 | clip-path: props.get(vars.$icon-mask); |
| 73 | } | 70 | } |
| 74 | } | 71 | } |
| 75 | 72 | ||
| 76 | @include bem.elem("content") { | 73 | @include bem.elem('content') { |
| 77 | display: block; | 74 | display: block; |
| 78 | inline-size: props.get(vars.$size); | 75 | inline-size: props.get(vars.$size); |
| 79 | block-size: props.get(vars.$size); | 76 | block-size: props.get(vars.$size); |
| 80 | font-size: props.get(vars.$font-size); | 77 | font-size: props.get(vars.$font-size); |
| 81 | line-height: props.get(vars.$size); | 78 | line-height: props.get(vars.$size); |
| 82 | text-align: center; | 79 | text-align: center; |
| 83 | object-fit: cover; | 80 | object-fit: cover; |
| 84 | object-position: center center; | 81 | object-position: center center; |
| 85 | border-radius: props.get(vars.$rounding); | 82 | border-radius: props.get(vars.$rounding); |
| 86 | } | 83 | } |
| 87 | 84 | ||
| 88 | @include bem.modifier("circle") { | 85 | @include bem.modifier('circle') { |
| 89 | border-radius: 100%; | 86 | border-radius: 100%; |
| 90 | 87 | ||
| 91 | &::after { | 88 | &::after { |
| 92 | border-radius: 100%; | 89 | border-radius: 100%; |
| 93 | } | 90 | } |
| 94 | 91 | ||
| 95 | @include bem.elem("content") { | 92 | @include bem.elem('content') { |
| 96 | border-radius: 100%; | 93 | border-radius: 100%; |
| 97 | } | 94 | } |
| 98 | } | 95 | } |
| 99 | 96 | ||
| 100 | @include bem.modifier("placeholder") { | 97 | @include bem.modifier('placeholder') { |
| 101 | @include bem.elem("content") { | 98 | @include bem.elem('content') { |
| 102 | background-color: hsl(0, 0%, props.get(vars.$bg-color--l)); | 99 | background-color: hsl(0, 0%, props.get(vars.$bg-color--l)); |
| 103 | } | 100 | } |
| 104 | } | 101 | } |
| 105 | 102 | ||
| 106 | @include bem.modifier("colored") { | 103 | @include bem.modifier('colored') { |
| 107 | @include bem.elem("content") { | 104 | @include bem.elem('content') { |
| 108 | color: #fff; | 105 | color: #fff; |
| 109 | background-color: hsl( | 106 | background-color: hsl(props.get(vars.$bg-color--h), props.get(vars.$bg-color--s), props.get(vars.$bg-color--l)); |
| 110 | props.get(vars.$bg-color--h), | ||
| 111 | props.get(vars.$bg-color--s), | ||
| 112 | props.get(vars.$bg-color--l) | ||
| 113 | ); | ||
| 114 | } | 107 | } |
| 115 | } | 108 | } |
| 116 | 109 | ||
| 117 | @include bem.modifier("colored-gradient") { | 110 | @include bem.modifier('colored-gradient') { |
| 118 | @include bem.elem("content") { | 111 | @include bem.elem('content') { |
| 119 | color: #fff; | 112 | color: #fff; |
| 120 | background: linear-gradient( | 113 | background: linear-gradient(props.get(vars.$bg-angle), |
| 121 | props.get(vars.$bg-angle), | 114 | hsl(props.get(vars.$bg-color--h), props.get(vars.$bg-color--s), props.get(vars.$bg-color--l)), |
| 122 | hsl( | 115 | hsl(props.get(vars.$bg-color-2--h), props.get(vars.$bg-color-2--s), props.get(vars.$bg-color-2--l))); |
| 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 | ); | ||
| 133 | } | 116 | } |
| 134 | } | 117 | } |
| 135 | 118 | ||
| @@ -139,19 +122,19 @@ | |||
| 139 | @include bem.modifier($mod) { | 122 | @include bem.modifier($mod) { |
| 140 | @include status($indicator-size); | 123 | @include status($indicator-size); |
| 141 | 124 | ||
| 142 | @include bem.elem("icon") { | 125 | @include bem.elem('icon') { |
| 143 | inline-size: props.get($icon-size); | 126 | inline-size: props.get($icon-size); |
| 144 | block-size: props.get($icon-size); | 127 | block-size: props.get($icon-size); |
| 145 | 128 | ||
| 146 | @include bem.sibling-elem("content") { | 129 | @include bem.sibling-elem('content') { |
| 147 | clip-path: props.get($icon-mask); | 130 | clip-path: props.get($icon-mask); |
| 148 | } | 131 | } |
| 149 | } | 132 | } |
| 150 | 133 | ||
| 151 | @include bem.elem("content") { | 134 | @include bem.elem('content') { |
| 152 | inline-size: props.get($size); | 135 | inline-size: props.get($size); |
| 153 | block-size: props.get($size); | 136 | block-size: props.get($size); |
| 154 | font-size: props.get($font-size); | 137 | font-size: props.get($font-size); |
| 155 | line-height: props.get($size); | 138 | line-height: props.get($size); |
| 156 | } | 139 | } |
| 157 | } | 140 | } |
diff --git a/src/objects/_avatar.vars.scss b/src/objects/_avatar.vars.scss index 7d1c342..467d7cc 100644 --- a/src/objects/_avatar.vars.scss +++ b/src/objects/_avatar.vars.scss | |||
| @@ -1,102 +1,79 @@ | |||
| 1 | @use "sass:math"; | 1 | @use 'sass:math'; |
| 2 | 2 | ||
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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(0.5))) !default; | 17 | $icon-mask: props.def(--o-avatar--icon-mask, url(icon-mask(.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( | 21 | $indicator-size--xxxl: props.def(--o-avatar--xxxl--indicator-size, props.get(core.$size--400)) !default; |
| 22 | --o-avatar--xxxl--indicator-size, | 22 | $icon-size--xxxl: props.def(--o-avatar--xxxl--icon-size, 1.9em) !default; |
| 23 | props.get(core.$size--400) | 23 | $icon-mask--xxxl: props.def(--o-avatar--xxxl--icon-mask, url(icon-mask(.75))) !default; |
| 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; | ||
| 27 | 24 | ||
| 28 | $size--xxl: props.def(--o-avatar--xxl--size, props.get(core.$size--1200)) !default; | 25 | $size--xxl: props.def(--o-avatar--xxl--size, props.get(core.$size--1200)) !default; |
| 29 | $font-size--xxl: props.def(--o-avatar--xxl--font-size, props.get(core.$font-size--600)) !default; | 26 | $font-size--xxl: props.def(--o-avatar--xxl--font-size, props.get(core.$font-size--600)) !default; |
| 30 | $indicator-size--xxl: props.def( | 27 | $indicator-size--xxl: props.def(--o-avatar--xxl--indicator-size, props.get(core.$size--300)) !default; |
| 31 | --o-avatar--xxl--indicator-size, | 28 | $icon-size--xxl: props.def(--o-avatar--xxl--icon-size, 1.7em) !default; |
| 32 | props.get(core.$size--300) | 29 | $icon-mask--xxl: props.def(--o-avatar--xxl--icon-mask, url(icon-mask(.7))) !default; |
| 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; | ||
| 36 | 30 | ||
| 37 | $size--xl: props.def(--o-avatar--xl--size, props.get(core.$size--800)) !default; | 31 | $size--xl: props.def(--o-avatar--xl--size, props.get(core.$size--800)) !default; |
| 38 | $font-size--xl: props.def(--o-avatar--xl--font-size, props.get(core.$font-size--300)) !default; | 32 | $font-size--xl: props.def(--o-avatar--xl--font-size, props.get(core.$font-size--300)) !default; |
| 39 | $indicator-size--xl: props.def(--o-avatar--xl--indicator-size, props.get(core.$size--225)) !default; | 33 | $indicator-size--xl: props.def(--o-avatar--xl--indicator-size, props.get(core.$size--225)) !default; |
| 40 | $icon-size--xl: props.def(--o-avatar--xl--icon-size, 1.5em) !default; | 34 | $icon-size--xl: props.def(--o-avatar--xl--icon-size, 1.5em) !default; |
| 41 | $icon-mask--xl: props.def(--o-avatar--xl--icon-mask, url(icon-mask(0.6))) !default; | 35 | $icon-mask--xl: props.def(--o-avatar--xl--icon-mask, url(icon-mask(.6))) !default; |
| 42 | 36 | ||
| 43 | $size--lg: props.def(--o-avatar--lg--size, props.get(core.$size--650)) !default; | 37 | $size--lg: props.def(--o-avatar--lg--size, props.get(core.$size--650)) !default; |
| 44 | $font-size--lg: props.def(--o-avatar--lg--font-size, props.get(core.$font-size--200)) !default; | 38 | $font-size--lg: props.def(--o-avatar--lg--font-size, props.get(core.$font-size--200)) !default; |
| 45 | $indicator-size--lg: props.def(--o-avatar--lg--indicator-size, props.get(core.$size--175)) !default; | 39 | $indicator-size--lg: props.def(--o-avatar--lg--indicator-size, props.get(core.$size--175)) !default; |
| 46 | $icon-size--lg: props.def(--o-avatar--lg--icon-size, 1.25em) !default; | 40 | $icon-size--lg: props.def(--o-avatar--lg--icon-size, 1.25em) !default; |
| 47 | $icon-mask--lg: props.def(--o-avatar--lg--icon-mask, url(icon-mask(0.55))) !default; | 41 | $icon-mask--lg: props.def(--o-avatar--lg--icon-mask, url(icon-mask(.55))) !default; |
| 48 | 42 | ||
| 49 | $size--sm: props.def(--o-avatar--sm--size, props.get(core.$size--375)) !default; | 43 | $size--sm: props.def(--o-avatar--sm--size, props.get(core.$size--375)) !default; |
| 50 | $font-size--sm: props.def(--o-avatar--sm--font-size, props.get(core.$font-size--75)) !default; | 44 | $font-size--sm: props.def(--o-avatar--sm--font-size, props.get(core.$font-size--75)) !default; |
| 51 | $indicator-size--sm: props.def(--o-avatar--sm--indicator-size, props.get(core.$size--125)) !default; | 45 | $indicator-size--sm: props.def(--o-avatar--sm--indicator-size, props.get(core.$size--125)) !default; |
| 52 | $icon-size--sm: props.def(--o-avatar--sm--icon-size, 1.2em) !default; | 46 | $icon-size--sm: props.def(--o-avatar--sm--icon-size, 1.2em) !default; |
| 53 | $icon-mask--sm: props.def(--o-avatar--sm--icon-mask, url(icon-mask(0.5))) !default; | 47 | $icon-mask--sm: props.def(--o-avatar--sm--icon-mask, url(icon-mask(.5))) !default; |
| 54 | 48 | ||
| 55 | $size--xs: props.def(--o-avatar--xs--size, props.get(core.$size--250)) !default; | 49 | $size--xs: props.def(--o-avatar--xs--size, props.get(core.$size--250)) !default; |
| 56 | $font-size--xs: props.def(--o-avatar--xs--font-size, props.get(core.$font-size--50)) !default; | 50 | $font-size--xs: props.def(--o-avatar--xs--font-size, props.get(core.$font-size--50)) !default; |
| 57 | $indicator-size--xs: props.def(--o-avatar--xs--indicator-size, props.get(core.$size--100)) !default; | 51 | $indicator-size--xs: props.def(--o-avatar--xs--indicator-size, props.get(core.$size--100)) !default; |
| 58 | $icon-size--xs: props.def(--o-avatar--xs--icon-size, 1.2em) !default; | 52 | $icon-size--xs: props.def(--o-avatar--xs--icon-size, 1.2em) !default; |
| 59 | $icon-mask--xs: props.def(--o-avatar--xs--icon-mask, url(icon-mask(0.5))) !default; | 53 | $icon-mask--xs: props.def(--o-avatar--xs--icon-mask, url(icon-mask(.5))) !default; |
| 60 | 54 | ||
| 61 | $key-focus--border-width: props.def( | 55 | $key-focus--border-width: props.def(--o-avatar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 62 | --o-avatar--key-focus--border-width, | 56 | $key-focus--border-offset: props.def(--o-avatar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 63 | props.get(core.$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; |
| 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; | ||
| 73 | 58 | ||
| 74 | $bg-color--h: props.def(--o-avatar--bg-color--h, 354, "color") !default; | 59 | $bg-color--h: props.def(--o-avatar--bg-color--h, 354, 'color') !default; |
| 75 | $bg-color--s: props.def(--o-avatar--bg-color--s, 44%, "color") !default; | 60 | $bg-color--s: props.def(--o-avatar--bg-color--s, 44%, 'color') !default; |
| 76 | $bg-color--l: props.def(--o-avatar--bg-color--l, 45%, "color") !default; | 61 | $bg-color--l: props.def(--o-avatar--bg-color--l, 45%, 'color') !default; |
| 77 | 62 | ||
| 78 | $bg-color-2--h: props.def(--o-avatar--bg-color-2--h, 354, "color") !default; | 63 | $bg-color-2--h: props.def(--o-avatar--bg-color-2--h, 354, 'color') !default; |
| 79 | $bg-color-2--s: props.def(--o-avatar--bg-color-2--s, 44%, "color") !default; | 64 | $bg-color-2--s: props.def(--o-avatar--bg-color-2--s, 44%, 'color') !default; |
| 80 | $bg-color-2--l: props.def(--o-avatar--bg-color-2--l, 45%, "color") !default; | 65 | $bg-color-2--l: props.def(--o-avatar--bg-color-2--l, 45%, 'color') !default; |
| 81 | 66 | ||
| 82 | $bg-angle: props.def(--o-avatar--bg-angle, 180deg) !default; | 67 | $bg-angle: props.def(--o-avatar--bg-angle, 180deg) !default; |
| 83 | 68 | ||
| 84 | $key-focus--border-color: props.def( | 69 | $key-focus--border-color: props.def(--o-avatar--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 85 | --o-avatar--key-focus--border-color, | 70 | $key-focus--outline-color: props.def(--o-avatar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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; | ||
| 94 | 71 | ||
| 95 | $sizes: ( | 72 | $sizes: ( |
| 96 | "xs" $size--xs $font-size--xs $indicator-size--xs $icon-size--xs $icon-mask--xs, | 73 | 'xs' $size--xs $font-size--xs $indicator-size--xs $icon-size--xs $icon-mask--xs, |
| 97 | "sm" $size--sm $font-size--sm $indicator-size--sm $icon-size--sm $icon-mask--sm, | 74 | 'sm' $size--sm $font-size--sm $indicator-size--sm $icon-size--sm $icon-mask--sm, |
| 98 | "lg" $size--lg $font-size--lg $indicator-size--lg $icon-size--lg $icon-mask--lg, | 75 | 'lg' $size--lg $font-size--lg $indicator-size--lg $icon-size--lg $icon-mask--lg, |
| 99 | "xl" $size--xl $font-size--xl $indicator-size--xl $icon-size--xl $icon-mask--xl, | 76 | 'xl' $size--xl $font-size--xl $indicator-size--xl $icon-size--xl $icon-mask--xl, |
| 100 | "xxl" $size--xxl $font-size--xxl $indicator-size--xxl $icon-size--xxl $icon-mask--xxl, | 77 | 'xxl' $size--xxl $font-size--xxl $indicator-size--xxl $icon-size--xxl $icon-mask--xxl, |
| 101 | "xxxl" $size--xxxl $font-size--xxxl $indicator-size--xxxl $icon-size--xxxl $icon-mask--xxxl | 78 | 'xxxl' $size--xxxl $font-size--xxxl $indicator-size--xxxl $icon-size--xxxl $icon-mask--xxxl, |
| 102 | ) !default; | 79 | ) !default; |
diff --git a/src/objects/_backdrop.scss b/src/objects/_backdrop.scss index 1a7d1fa..6660abf 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/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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 78f4742..9206117 100644 --- a/src/objects/_backdrop.vars.scss +++ b/src/objects/_backdrop.vars.scss | |||
| @@ -1,10 +1,6 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/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( | 6 | $bg-color: props.def(--o-backdrop--bg-color, props.get(core.$transparent-colors, --black, --600), 'color') !default; |
| 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 8adc0f7..a3c8187 100644 --- a/src/objects/_button.scss +++ b/src/objects/_button.scss | |||
| @@ -1,119 +1,115 @@ | |||
| 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/bem"; | 5 | @use 'pkg:iro-sass/src/bem'; |
| 6 | @use "pkg:iro-sass/props"; | 6 | @use 'pkg:iro-sass/src/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: 0 0 0 | 19 | box-shadow: |
| 20 | calc( | 20 | 0 |
| 21 | props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width) | 21 | 0 |
| 22 | ) | 22 | 0 |
| 23 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | ||
| 23 | props.get($theme, list.join($key, --key-focus --outline-color)...); | 24 | props.get($theme, list.join($key, --key-focus --outline-color)...); |
| 24 | } | 25 | } |
| 25 | 26 | ||
| 26 | &:link, | 27 | &:link, |
| 27 | &:visited, | 28 | &:visited, |
| 28 | &:enabled { | 29 | &:enabled { |
| 29 | color: props.get($theme, list.join($key, --label-color)...); | 30 | color: props.get($theme, list.join($key, --label-color)...); |
| 30 | background-color: props.get($theme, list.join($key, --bg-color)...); | 31 | background-color: props.get($theme, list.join($key, --bg-color)...); |
| 31 | border-color: props.get($theme, list.join($key, --border-color)...); | 32 | border-color: props.get($theme, list.join($key, --border-color)...); |
| 32 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) | 33 | box-shadow: |
| 33 | props.get(vars.$shadow-grow) props.get($theme, list.join($key, --shadow-color)...); | 34 | props.get(vars.$shadow-x) |
| 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)...); | ||
| 34 | 39 | ||
| 35 | &:hover, | 40 | &:hover, |
| 36 | &:focus-visible { | 41 | &:focus-visible { |
| 37 | color: props.get($theme, list.join($key, --hover --label-color)...); | 42 | color: props.get($theme, list.join($key, --hover --label-color)...); |
| 38 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); | 43 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); |
| 39 | border-color: props.get($theme, list.join($key, --hover --border-color)...); | 44 | border-color: props.get($theme, list.join($key, --hover --border-color)...); |
| 40 | } | 45 | } |
| 41 | 46 | ||
| 42 | &:active { | 47 | &:active { |
| 43 | color: props.get($theme, list.join($key, --active --label-color)...); | 48 | color: props.get($theme, list.join($key, --active --label-color)...); |
| 44 | background-color: props.get($theme, list.join($key, --active --bg-color)...); | 49 | background-color: props.get($theme, list.join($key, --active --bg-color)...); |
| 45 | border-color: props.get($theme, list.join($key, --active --border-color)...); | 50 | border-color: props.get($theme, list.join($key, --active --border-color)...); |
| 46 | box-shadow: none; | 51 | box-shadow: none; |
| 47 | } | 52 | } |
| 48 | } | 53 | } |
| 49 | 54 | ||
| 50 | @include bem.modifier("badge") { | 55 | @include bem.modifier('badge') { |
| 51 | color: props.get($theme, list.join($key, --badge --label-color)...); | 56 | color: props.get($theme, list.join($key, --badge --label-color)...); |
| 52 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); | 57 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); |
| 53 | border-color: props.get($theme, list.join($key, --badge --border-color)...); | 58 | border-color: props.get($theme, list.join($key, --badge --border-color)...); |
| 54 | box-shadow: none; | 59 | box-shadow: none; |
| 55 | 60 | ||
| 56 | &:link, | 61 | &:link, |
| 57 | &:visited, | 62 | &:visited, |
| 58 | &:enabled { | 63 | &:enabled { |
| 59 | color: props.get($theme, list.join($key, --badge --label-color)...); | 64 | color: props.get($theme, list.join($key, --badge --label-color)...); |
| 60 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); | 65 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); |
| 61 | border-color: props.get($theme, list.join($key, --badge --border-color)...); | 66 | border-color: props.get($theme, list.join($key, --badge --border-color)...); |
| 62 | box-shadow: none; | 67 | box-shadow: none; |
| 63 | 68 | ||
| 64 | &:hover, | 69 | &:hover, |
| 65 | &:focus-visible { | 70 | &:focus-visible { |
| 66 | color: props.get($theme, list.join($key, --badge --hover --label-color)...); | 71 | color: props.get($theme, list.join($key, --badge --hover --label-color)...); |
| 67 | background-color: props.get($theme, list.join($key, --badge --hover --bg-color)...); | 72 | background-color: props.get($theme, list.join($key, --badge --hover --bg-color)...); |
| 68 | border-color: props.get($theme, list.join($key, --badge --hover --border-color)...); | 73 | border-color: props.get($theme, list.join($key, --badge --hover --border-color)...); |
| 69 | } | 74 | } |
| 70 | 75 | ||
| 71 | &:active { | 76 | &:active { |
| 72 | color: props.get($theme, list.join($key, --badge --active --label-color)...); | 77 | color: props.get($theme, list.join($key, --badge --active --label-color)...); |
| 73 | background-color: props.get( | 78 | background-color: props.get($theme, list.join($key, --badge --active --bg-color)...); |
| 74 | $theme, | 79 | border-color: props.get($theme, list.join($key, --badge --active --border-color)...); |
| 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 | ); | ||
| 81 | } | 80 | } |
| 82 | } | 81 | } |
| 83 | } | 82 | } |
| 84 | 83 | ||
| 85 | @include bem.modifier("quiet") { | 84 | @include bem.modifier('quiet') { |
| 86 | color: props.get($theme, list.join($key, --quiet --disabled --label-color)...); | 85 | color: props.get($theme, list.join($key, --quiet --disabled --label-color)...); |
| 87 | background-color: transparent; | 86 | background-color: transparent; |
| 88 | border-color: transparent; | 87 | border-color: transparent; |
| 89 | 88 | ||
| 90 | &:link, | 89 | &:link, |
| 91 | &:visited, | 90 | &:visited, |
| 92 | &:enabled { | 91 | &:enabled { |
| 93 | color: props.get($theme, list.join($key, --quiet --label-color)...); | 92 | color: props.get($theme, list.join($key, --quiet --label-color)...); |
| 94 | background-color: transparent; | 93 | background-color: transparent; |
| 95 | border-color: transparent; | 94 | border-color: transparent; |
| 96 | box-shadow: none; | 95 | box-shadow: none; |
| 97 | 96 | ||
| 98 | &:hover, | 97 | &:hover, |
| 99 | &:focus-visible { | 98 | &:focus-visible { |
| 100 | color: props.get($theme, list.join($key, --quiet --hover --label-color)...); | 99 | color: props.get($theme, list.join($key, --quiet --hover --label-color)...); |
| 101 | background-color: props.get($theme, list.join($key, --quiet --hover --bg-color)...); | 100 | background-color: props.get($theme, list.join($key, --quiet --hover --bg-color)...); |
| 102 | border-color: transparent; | 101 | border-color: transparent; |
| 103 | } | 102 | } |
| 104 | 103 | ||
| 105 | &:active { | 104 | &:active { |
| 106 | color: props.get($theme, list.join($key, --quiet --active --label-color)...); | 105 | color: props.get($theme, list.join($key, --quiet --active --label-color)...); |
| 107 | background-color: props.get( | 106 | background-color: props.get($theme, list.join($key, --quiet --active --bg-color)...); |
| 108 | $theme, | 107 | border-color: transparent; |
| 109 | list.join($key, --quiet --active --bg-color)... | ||
| 110 | ); | ||
| 111 | border-color: transparent; | ||
| 112 | } | 108 | } |
| 113 | } | 109 | } |
| 114 | } | 110 | } |
| 115 | 111 | ||
| 116 | @include bem.is("highlighted") { | 112 | @include bem.is('highlighted') { |
| 117 | &:link, | 113 | &:link, |
| 118 | &:visited, | 114 | &:visited, |
| 119 | &:enabled { | 115 | &:enabled { |
| @@ -125,27 +121,32 @@ | |||
| 125 | 121 | ||
| 126 | box-shadow: | 122 | box-shadow: |
| 127 | 0 0 0 1px props.get($theme, list.join($key, --highlighted --border-color)...), | 123 | 0 0 0 1px props.get($theme, list.join($key, --highlighted --border-color)...), |
| 128 | props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) | 124 | props.get(vars.$shadow-x) |
| 129 | props.get(vars.$shadow-grow) | 125 | props.get(vars.$shadow-y) |
| 130 | props.get($theme, list.join($key, --highlighted --shadow-color)...); | 126 | props.get(vars.$shadow-blur) |
| 127 | props.get(vars.$shadow-grow) | ||
| 128 | props.get($theme, list.join($key, --highlighted --shadow-color)...); | ||
| 131 | 129 | ||
| 132 | &:focus-visible { | 130 | &:focus-visible { |
| 133 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 131 | box-shadow: |
| 134 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 132 | props.get(vars.$shadow-x) |
| 133 | props.get(vars.$shadow-y) | ||
| 134 | props.get(vars.$shadow-blur) | ||
| 135 | props.get(vars.$shadow-grow) | ||
| 135 | props.get($theme, list.join($key, --shadow-color)...); | 136 | props.get($theme, list.join($key, --shadow-color)...); |
| 136 | } | 137 | } |
| 137 | } | 138 | } |
| 138 | } | 139 | } |
| 139 | 140 | ||
| 140 | @include bem.is("selected") { | 141 | @include bem.is('selected') { |
| 141 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); | 142 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); |
| 142 | background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...); | 143 | background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...); |
| 143 | border-color: props.get($theme, list.join($key, --selected --disabled --border-color)...); | 144 | border-color: props.get($theme, list.join($key, --selected --disabled --border-color)...); |
| 144 | 145 | ||
| 145 | @include bem.multi("&:link, &:visited, &:enabled", "modifier" "badge") { | 146 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'badge') { |
| 146 | color: props.get($theme, list.join($key, --selected --label-color)...); | 147 | color: props.get($theme, list.join($key, --selected --label-color)...); |
| 147 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); | 148 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); |
| 148 | border-color: props.get($theme, list.join($key, --selected --border-color)...); | 149 | border-color: props.get($theme, list.join($key, --selected --border-color)...); |
| 149 | } | 150 | } |
| 150 | 151 | ||
| 151 | &:link, | 152 | &:link, |
| @@ -153,67 +154,47 @@ | |||
| 153 | &:enabled { | 154 | &:enabled { |
| 154 | &:hover, | 155 | &:hover, |
| 155 | &:focus-visible { | 156 | &:focus-visible { |
| 156 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); | 157 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); |
| 157 | background-color: props.get( | 158 | background-color: props.get($theme, list.join($key, --selected --hover --bg-color)...); |
| 158 | $theme, | 159 | border-color: props.get($theme, list.join($key, --selected --hover --border-color)...); |
| 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 | ); | ||
| 165 | } | 160 | } |
| 166 | 161 | ||
| 167 | &:active { | 162 | &:active { |
| 168 | color: props.get($theme, list.join($key, --selected --active --label-color)...); | 163 | color: props.get($theme, list.join($key, --selected --active --label-color)...); |
| 169 | background-color: props.get( | 164 | background-color: props.get($theme, list.join($key, --selected --active --bg-color)...); |
| 170 | $theme, | 165 | border-color: props.get($theme, list.join($key, --selected --active --border-color)...); |
| 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 | ); | ||
| 177 | } | 166 | } |
| 178 | } | 167 | } |
| 179 | } | 168 | } |
| 180 | } | 169 | } |
| 181 | 170 | ||
| 182 | @mixin styles { | 171 | @mixin styles { |
| 183 | @include materialize-at-root(meta.module-variables("vars")); | 172 | @include materialize-at-root(meta.module-variables('vars')); |
| 184 | 173 | ||
| 185 | @include bem.object("button") { | 174 | @include bem.object('button') { |
| 186 | position: relative; | 175 | position: relative; |
| 187 | display: inline-block; | 176 | display: inline-block; |
| 188 | padding-block: props.get(vars.$pad-b); | 177 | padding-block: props.get(vars.$pad-b); |
| 189 | padding-inline: props.get(vars.$pad-i); | 178 | padding-inline: props.get(vars.$pad-i); |
| 190 | text-overflow: ellipsis; | 179 | text-overflow: ellipsis; |
| 191 | font-size: props.get(vars.$font-size); | 180 | font-size: props.get(vars.$font-size); |
| 192 | line-height: props.get(vars.$line-height); | 181 | line-height: props.get(vars.$line-height); |
| 193 | text-align: center; | 182 | text-align: center; |
| 194 | white-space: nowrap; | 183 | white-space: nowrap; |
| 195 | text-decoration: none; | 184 | text-decoration: none; |
| 196 | border: props.get(vars.$border-width) solid transparent; | 185 | border: props.get(vars.$border-width) solid transparent; |
| 197 | border-radius: props.get(vars.$rounding); | 186 | border-radius: props.get(vars.$rounding); |
| 198 | transition: | 187 | transition: color .1s, background-color .1s, border-color .1s, box-shadow .1s; |
| 199 | color 0.1s, | ||
| 200 | background-color 0.1s, | ||
| 201 | border-color 0.1s, | ||
| 202 | box-shadow 0.1s; | ||
| 203 | 188 | ||
| 204 | &::after { | 189 | &::after { |
| 205 | position: absolute; | 190 | position: absolute; |
| 206 | inset: calc( | 191 | inset: calc(-1 * props.get(vars.$border-width) - props.get(vars.$key-focus--border-offset)); |
| 207 | -1 * props.get(vars.$border-width) - props.get(vars.$key-focus--border-offset) | 192 | z-index: 1; |
| 208 | ); | 193 | display: none; |
| 209 | z-index: 1; | ||
| 210 | display: none; | ||
| 211 | pointer-events: none; | 194 | pointer-events: none; |
| 212 | outline: transparent solid props.get(vars.$key-focus--border-width); | 195 | outline: transparent solid props.get(vars.$key-focus--border-width); |
| 213 | content: ""; | 196 | content: ''; |
| 214 | border-radius: calc( | 197 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); |
| 215 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) | ||
| 216 | ); | ||
| 217 | } | 198 | } |
| 218 | 199 | ||
| 219 | &:link, | 200 | &:link, |
| @@ -228,7 +209,7 @@ | |||
| 228 | } | 209 | } |
| 229 | } | 210 | } |
| 230 | 211 | ||
| 231 | @include bem.elem("label") { | 212 | @include bem.elem('label') { |
| 232 | display: inline-block; | 213 | display: inline-block; |
| 233 | margin-inline: props.get(vars.$pad-i-label); | 214 | margin-inline: props.get(vars.$pad-i-label); |
| 234 | } | 215 | } |
| @@ -241,91 +222,79 @@ | |||
| 241 | } | 222 | } |
| 242 | } | 223 | } |
| 243 | 224 | ||
| 244 | @include bem.modifier("pill") { | 225 | @include bem.modifier('pill') { |
| 245 | padding-inline: props.get(vars.$pad-i-pill); | 226 | padding-inline: props.get(vars.$pad-i-pill); |
| 246 | border-radius: 100em; | 227 | border-radius: 100em; |
| 247 | 228 | ||
| 248 | &::after { | 229 | &::after { |
| 249 | border-radius: 100em; | 230 | border-radius: 100em; |
| 250 | } | 231 | } |
| 251 | } | 232 | } |
| 252 | 233 | ||
| 253 | @include bem.modifier("icon") { | 234 | @include bem.modifier('icon') { |
| 254 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get(vars.$pad-b)); | 235 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get(vars.$pad-b)); |
| 255 | padding-inline: 0; | 236 | padding-inline: 0; |
| 256 | } | 237 | } |
| 257 | 238 | ||
| 258 | @include bem.modifier("wide") { | 239 | @include bem.modifier('wide') { |
| 259 | @include bem.elem("label") { | 240 | @include bem.elem('label') { |
| 260 | margin-inline: props.get(vars.$pad-i-wide); | 241 | margin-inline: props.get(vars.$pad-i-wide); |
| 261 | } | 242 | } |
| 262 | } | 243 | } |
| 263 | 244 | ||
| 264 | @include bem.modifier("justify") { | 245 | @include bem.modifier('justify') { |
| 265 | text-align: justify; | 246 | text-align: justify; |
| 266 | text-align-last: justify; | 247 | text-align-last: justify; |
| 267 | } | 248 | } |
| 268 | 249 | ||
| 269 | @each $mod, $pad-i, $pad-i-label, $pad-i-wide, $pad-i-pill, $pad-b, | 250 | @each $mod, $pad-i, $pad-i-label, $pad-i-wide, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { |
| 270 | $font-size in vars.$fixed-sizes | ||
| 271 | { | ||
| 272 | @include bem.modifier($mod) { | 251 | @include bem.modifier($mod) { |
| 273 | padding-block: props.get($pad-b); | 252 | padding-block: props.get($pad-b); |
| 274 | padding-inline: props.get($pad-i); | 253 | padding-inline: props.get($pad-i); |
| 275 | font-size: props.get($font-size); | 254 | font-size: props.get($font-size); |
| 276 | 255 | ||
| 277 | @include bem.elem("label") { | 256 | @include bem.elem('label') { |
| 278 | margin-inline: props.get($pad-i-label); | 257 | margin-inline: props.get($pad-i-label); |
| 279 | } | 258 | } |
| 280 | 259 | ||
| 281 | @include bem.modifier("pill") { | 260 | @include bem.modifier('pill') { |
| 282 | padding-inline: props.get($pad-i-pill); | 261 | padding-inline: props.get($pad-i-pill); |
| 283 | } | 262 | } |
| 284 | 263 | ||
| 285 | @include bem.modifier("icon") { | 264 | @include bem.modifier('icon') { |
| 286 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get($pad-b)); | 265 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get($pad-b)); |
| 287 | padding-inline: 0; | 266 | padding-inline: 0; |
| 288 | } | 267 | } |
| 289 | 268 | ||
| 290 | @include bem.modifier("wide") { | 269 | @include bem.modifier('wide') { |
| 291 | @include bem.elem("label") { | 270 | @include bem.elem('label') { |
| 292 | margin-inline: props.get($pad-i-wide); | 271 | margin-inline: props.get($pad-i-wide); |
| 293 | } | 272 | } |
| 294 | } | 273 | } |
| 295 | } | 274 | } |
| 296 | } | 275 | } |
| 297 | 276 | ||
| 298 | @include bem.modifier("align-block") { | 277 | @include bem.modifier('align-block') { |
| 299 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$border-width)); | 278 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$border-width)); |
| 300 | 279 | ||
| 301 | @include bem.modifier("pill") { | 280 | @include bem.modifier('pill') { |
| 302 | margin-inline: calc( | 281 | margin-inline: calc(-1 * props.get(vars.$pad-i-pill) - props.get(vars.$border-width)); |
| 303 | -1 * props.get(vars.$pad-i-pill) - props.get(vars.$border-width) | ||
| 304 | ); | ||
| 305 | } | 282 | } |
| 306 | 283 | ||
| 307 | @include bem.modifier("icon") { | 284 | @include bem.modifier('icon') { |
| 308 | margin-inline: calc( | 285 | margin-inline: calc(-1 * props.get(vars.$pad-b) - props.get(vars.$border-width) - .5em * (props.get(vars.$line-height) - 1)); |
| 309 | -1 * props.get(vars.$pad-b) - props.get(vars.$border-width) - 0.5em * | ||
| 310 | (props.get(vars.$line-height) - 1) | ||
| 311 | ); | ||
| 312 | } | 286 | } |
| 313 | 287 | ||
| 314 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { | 288 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { |
| 315 | @include bem.modifier($mod) { | 289 | @include bem.modifier($mod) { |
| 316 | margin-inline: calc(-1 * props.get($pad-i) - props.get(vars.$border-width)); | 290 | margin-inline: calc(-1 * props.get($pad-i) - props.get(vars.$border-width)); |
| 317 | 291 | ||
| 318 | @include bem.modifier("pill") { | 292 | @include bem.modifier('pill') { |
| 319 | margin-inline: calc( | 293 | margin-inline: calc(-1 * props.get($pad-i-pill) - props.get(vars.$border-width)); |
| 320 | -1 * props.get($pad-i-pill) - props.get(vars.$border-width) | ||
| 321 | ); | ||
| 322 | } | 294 | } |
| 323 | 295 | ||
| 324 | @include bem.modifier("icon") { | 296 | @include bem.modifier('icon') { |
| 325 | margin-inline: calc( | 297 | margin-inline: calc(-1 * props.get($pad-b) - props.get(vars.$border-width) - .5em * (props.get(vars.$line-height) - 1)); |
| 326 | -1 * props.get($pad-b) - props.get(vars.$border-width) - 0.5em * | ||
| 327 | (props.get(vars.$line-height) - 1) | ||
| 328 | ); | ||
| 329 | } | 298 | } |
| 330 | } | 299 | } |
| 331 | } | 300 | } |
diff --git a/src/objects/_button.vars.scss b/src/objects/_button.vars.scss index a137d6d..3f835ae 100644 --- a/src/objects/_button.vars.scss +++ b/src/objects/_button.vars.scss | |||
| @@ -1,456 +1,386 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 50 | $key-focus--border-width: props.def(--o-button--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 51 | --o-button--key-focus--border-width, | 51 | $key-focus--border-offset: props.def(--o-button--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 52 | props.get(core.$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; |
| 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; | ||
| 62 | 53 | ||
| 63 | $fixed-sizes: ( | 54 | $fixed-sizes: ( |
| 64 | "xs" $pad-i--xs $pad-i-label--xs $pad-i-wide--xs $pad-i-pill--xs $pad-b--xs $font-size--xs, | 55 | 'xs' $pad-i--xs $pad-i-label--xs $pad-i-wide--xs $pad-i-pill--xs $pad-b--xs $font-size--xs, |
| 65 | "sm" $pad-i--sm $pad-i-label--sm $pad-i-wide--sm $pad-i-pill--sm $pad-b--sm $font-size--sm, | 56 | 'sm' $pad-i--sm $pad-i-label--sm $pad-i-wide--sm $pad-i-pill--sm $pad-b--sm $font-size--sm, |
| 66 | "lg" $pad-i--lg $pad-i-label--lg $pad-i-wide--lg $pad-i-pill--lg $pad-b--lg $font-size--lg, | 57 | 'lg' $pad-i--lg $pad-i-label--lg $pad-i-wide--lg $pad-i-pill--lg $pad-b--lg $font-size--lg, |
| 67 | "xl" $pad-i--xl $pad-i-label--xl $pad-i-wide--xl $pad-i-pill--xl $pad-b--xl $font-size--xl | 58 | 'xl' $pad-i--xl $pad-i-label--xl $pad-i-wide--xl $pad-i-pill--xl $pad-b--xl $font-size--xl, |
| 68 | ) !default; | 59 | ) !default; |
| 69 | 60 | ||
| 70 | $themes: props.def(--o-button, (), "color"); | 61 | $themes: props.def(--o-button, (), 'color'); |
| 71 | 62 | ||
| 72 | $default-theme-override: () !default; | 63 | $default-theme-override: () !default; |
| 73 | $default-theme: map.deep-merge( | 64 | $default-theme: map.deep-merge(( |
| 74 | ( | 65 | --bg-color: props.get(core.$theme, --bg-l2), |
| 75 | --bg-color: props.get(core.$theme, --bg-l2), | 66 | --label-color: props.get(core.$theme, --text), |
| 76 | --label-color: props.get(core.$theme, --text), | 67 | --border-color: props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border-strong), |
| 77 | --border-color: props.get(core.$theme, --box, --border) | 68 | --shadow-color: props.get(core.$theme, --shadow), |
| 78 | props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border-strong), | 69 | |
| 79 | --shadow-color: props.get(core.$theme, --shadow), | 70 | --hover: ( |
| 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 | |||
| 80 | --hover: ( | 103 | --hover: ( |
| 81 | --bg-color: props.get(core.$theme, --bg-l1), | 104 | --bg-color: props.get(core.$theme, --text), |
| 82 | --label-color: props.get(core.$theme, --heading), | 105 | --label-color: props.get(core.$theme, --base, --50), |
| 83 | --border-color: props.get(core.$theme, --border), | 106 | --border-color: props.get(core.$theme, --text), |
| 84 | ), | 107 | ), |
| 85 | 108 | ||
| 86 | --active: ( | 109 | --active: ( |
| 87 | --bg-color: props.get(core.$theme, --border-mute), | 110 | --bg-color: props.get(core.$theme, --text-mute), |
| 88 | --label-color: props.get(core.$theme, --heading), | 111 | --label-color: props.get(core.$theme, --base, --50), |
| 89 | --border-color: props.get(core.$theme, --border-strong), | 112 | --border-color: props.get(core.$theme, --text-mute), |
| 90 | ), | 113 | ), |
| 91 | 114 | ||
| 92 | --disabled: ( | 115 | --disabled: ( |
| 93 | --bg-color: transparent, | 116 | --bg-color: props.get(core.$theme, --border-mute), |
| 94 | --label-color: props.get(core.$theme, --border-strong), | 117 | --label-color: props.get(core.$theme, --border-strong), |
| 95 | --border-color: props.get(core.$theme, --text-disabled), | 118 | --border-color: props.get(core.$theme, --border-mute), |
| 96 | ), | 119 | ), |
| 120 | ), | ||
| 97 | 121 | ||
| 98 | --key-focus: ( | 122 | --badge: ( |
| 99 | --border-color: props.get(core.$theme, --focus, --border), | 123 | --bg-color: props.get(core.$theme, --border-mute), |
| 100 | --outline-color: props.get(core.$theme, --focus, --outline), | 124 | --label-color: props.get(core.$theme, --heading), |
| 101 | ), | 125 | --border-color: props.get(core.$theme, --border-mute), |
| 102 | 126 | ||
| 103 | --highlighted: ( | 127 | --hover: ( |
| 104 | --border-color: props.get(core.$theme, --focus, --border), | 128 | --bg-color: props.get(core.$theme, --border), |
| 105 | --shadow-color: props.get(core.$theme, --focus, --outline), | 129 | --label-color: props.get(core.$theme, --heading), |
| 130 | --border-color: props.get(core.$theme, --border), | ||
| 106 | ), | 131 | ), |
| 107 | 132 | ||
| 108 | --selected: ( | 133 | --active: ( |
| 109 | --bg-color: props.get(core.$theme, --heading), | 134 | --bg-color: props.get(core.$theme, --border-strong), |
| 110 | --label-color: props.get(core.$theme, --base, --50), | 135 | --label-color: props.get(core.$theme, --heading), |
| 111 | --border-color: props.get(core.$theme, --heading), | 136 | --border-color: props.get(core.$theme, --border-strong), |
| 112 | --hover: ( | 137 | ), |
| 113 | --bg-color: props.get(core.$theme, --text), | 138 | ), |
| 114 | --label-color: props.get(core.$theme, --base, --50), | ||
| 115 | --border-color: props.get(core.$theme, --text), | ||
| 116 | ), | ||
| 117 | 139 | ||
| 118 | --active: ( | 140 | --quiet: ( |
| 119 | --bg-color: props.get(core.$theme, --text-mute), | 141 | --label-color: props.get(core.$theme, --text), |
| 120 | --label-color: props.get(core.$theme, --base, --50), | ||
| 121 | --border-color: props.get(core.$theme, --text-mute), | ||
| 122 | ), | ||
| 123 | 142 | ||
| 124 | --disabled: ( | 143 | --hover: ( |
| 125 | --bg-color: props.get(core.$theme, --border-mute), | 144 | --bg-color: props.get(core.$theme, --border-mute), |
| 126 | --label-color: props.get(core.$theme, --border-strong), | 145 | --label-color: props.get(core.$theme, --heading), |
| 127 | --border-color: props.get(core.$theme, --border-mute), | ||
| 128 | ), | ||
| 129 | ), | 146 | ), |
| 130 | 147 | ||
| 131 | --badge: ( | 148 | --active: ( |
| 132 | --bg-color: props.get(core.$theme, --border-mute), | 149 | --bg-color: props.get(core.$theme, --border), |
| 133 | --label-color: props.get(core.$theme, --heading), | 150 | --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 | ), | ||
| 146 | ), | 151 | ), |
| 147 | 152 | ||
| 148 | --quiet: ( | 153 | --disabled: ( |
| 149 | --label-color: props.get(core.$theme, --text), | 154 | --label-color: props.get(core.$theme, --border-strong), |
| 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 | ), | ||
| 163 | ), | 155 | ), |
| 164 | ), | 156 | ), |
| 165 | $default-theme-override | 157 | ), $default-theme-override) !default; |
| 166 | ) !default; | 158 | $default-theme: props.def(--o-button, $default-theme, 'color'); |
| 167 | $default-theme: props.def(--o-button, $default-theme, "color"); | ||
| 168 | 159 | ||
| 169 | $default-theme-dark-override: () !default; | 160 | $default-theme-dark-override: () !default; |
| 170 | $default-theme-dark: map.deep-merge( | 161 | $default-theme-dark: map.deep-merge(( |
| 171 | ( | 162 | --bg-color: props.get(core.$theme, --border-mute), |
| 172 | --bg-color: props.get(core.$theme, --border-mute), | 163 | --border-color: props.get(core.$theme, --border-mute), |
| 173 | --border-color: props.get(core.$theme, --border-mute), | ||
| 174 | --hover: ( | ||
| 175 | --bg-color: props.get(core.$theme, --border), | ||
| 176 | --border-color: props.get(core.$theme, --border), | ||
| 177 | ), | ||
| 178 | 164 | ||
| 179 | --active: ( | 165 | --hover: ( |
| 180 | --bg-color: props.get(core.$theme, --border-strong), | 166 | --bg-color: props.get(core.$theme, --border), |
| 181 | --border-color: props.get(core.$theme, --border-strong), | 167 | --border-color: props.get(core.$theme, --border), |
| 182 | ), | 168 | ), |
| 183 | 169 | ||
| 184 | --selected: ( | 170 | --active: ( |
| 185 | --border-color: props.get(core.$theme, --text), | 171 | --bg-color: props.get(core.$theme, --border-strong), |
| 186 | ), | 172 | --border-color: props.get(core.$theme, --border-strong), |
| 187 | ), | 173 | ), |
| 188 | $default-theme-override | 174 | |
| 189 | ) !default; | 175 | --selected: ( |
| 190 | $default-theme-dark: props.def(--o-button, $default-theme-dark, "dark"); | 176 | --border-color: props.get(core.$theme, --text), |
| 177 | ), | ||
| 178 | ), $default-theme-override) !default; | ||
| 179 | $default-theme-dark: props.def(--o-button, $default-theme-dark, 'dark'); | ||
| 191 | 180 | ||
| 192 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 181 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 193 | $button-theme: --static-#{string.slice($theme, 3)}; | 182 | $button-theme: --static-#{string.slice($theme, 3)}; |
| 194 | 183 | ||
| 195 | $themes: props.merge( | 184 | $themes: props.merge($themes, ( |
| 196 | $themes, | 185 | $button-theme: ( |
| 197 | ( | 186 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 198 | $button-theme: ( | 187 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 199 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 188 | --border-color: props.get(core.$transparent-colors, $theme, --300) props.get(core.$transparent-colors, $theme, --300) props.get(core.$transparent-colors, $theme, --400), |
| 200 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 189 | --shadow-color: props.get(core.$transparent-colors, --black, --200), |
| 201 | --border-color: props.get(core.$transparent-colors, $theme, --300) | 190 | |
| 202 | props.get(core.$transparent-colors, $theme, --300) | 191 | --hover: ( |
| 203 | props.get(core.$transparent-colors, $theme, --400), | 192 | --bg-color: props.get(core.$transparent-colors, $theme, --300), |
| 204 | --shadow-color: props.get(core.$transparent-colors, --black, --200), | 193 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 205 | --hover: ( | 194 | --border-color: props.get(core.$transparent-colors, $theme, --400), |
| 206 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 195 | ), |
| 207 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 208 | --border-color: props.get(core.$transparent-colors, $theme, --400), | ||
| 209 | ), | ||
| 210 | 196 | ||
| 211 | --active: ( | 197 | --active: ( |
| 212 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 198 | --bg-color: props.get(core.$transparent-colors, $theme, --400), |
| 213 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 199 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 214 | --border-color: props.get(core.$transparent-colors, $theme, --500), | 200 | --border-color: props.get(core.$transparent-colors, $theme, --500), |
| 215 | ), | 201 | ), |
| 216 | 202 | ||
| 217 | --disabled: ( | 203 | --disabled: ( |
| 218 | --bg-color: props.get(core.$transparent-colors, $theme, --100), | 204 | --bg-color: props.get(core.$transparent-colors, $theme, --100), |
| 219 | --label-color: props.get(core.$transparent-colors, $theme, --500), | 205 | --label-color: props.get(core.$transparent-colors, $theme, --500), |
| 220 | --border-color: props.get(core.$transparent-colors, $theme, --300), | 206 | --border-color: props.get(core.$transparent-colors, $theme, --300), |
| 221 | ), | 207 | ), |
| 222 | 208 | ||
| 223 | --key-focus: ( | 209 | --key-focus: ( |
| 224 | --border-color: props.get(core.$transparent-colors, $theme, --900), | 210 | --border-color: props.get(core.$transparent-colors, $theme, --900), |
| 225 | --outline-color: props.get(core.$transparent-colors, $theme, --300), | 211 | --outline-color: props.get(core.$transparent-colors, $theme, --300), |
| 226 | ), | 212 | ), |
| 227 | 213 | ||
| 228 | --highlighted: ( | 214 | --highlighted: ( |
| 229 | --border-color: props.get(core.$transparent-colors, $theme, --900), | 215 | --border-color: props.get(core.$transparent-colors, $theme, --900), |
| 230 | --shadow-color: props.get(core.$transparent-colors, --black, --200), | 216 | --shadow-color: props.get(core.$transparent-colors, --black, --200), |
| 231 | ), | 217 | ), |
| 232 | 218 | ||
| 233 | --selected: ( | 219 | --selected: ( |
| 234 | --bg-color: props.get(core.$transparent-colors, $theme, --900), | 220 | --bg-color: props.get(core.$transparent-colors, $theme, --900), |
| 235 | --label-color: props.get(core.$transparent-colors, $theme, --text), | 221 | --label-color: props.get(core.$transparent-colors, $theme, --text), |
| 236 | --border-color: props.get(core.$transparent-colors, $theme, --100) | 222 | --border-color: props.get(core.$transparent-colors, $theme, --100) props.get(core.$transparent-colors, $theme, --100) props.get(core.$transparent-colors, $theme, --200), |
| 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 | ), | ||
| 252 | 223 | ||
| 253 | --active: ( | 224 | --hover: ( |
| 254 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | 225 | --bg-color: props.get(core.$transparent-colors, $theme, --800), |
| 255 | --label-color: props.get( | 226 | --label-color: props.get(core.$transparent-colors, $theme, --text), |
| 256 | core.$transparent-colors, | 227 | --border-color: props.get(core.$transparent-colors, $theme, --100), |
| 257 | $theme, | 228 | ), |
| 258 | --text | ||
| 259 | ), | ||
| 260 | --border-color: props.get( | ||
| 261 | core.$transparent-colors, | ||
| 262 | $theme, | ||
| 263 | --100 | ||
| 264 | ), | ||
| 265 | ), | ||
| 266 | 229 | ||
| 267 | --disabled: ( | 230 | --active: ( |
| 268 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 231 | --bg-color: props.get(core.$transparent-colors, $theme, --800), |
| 269 | --label-color: props.get( | 232 | --label-color: props.get(core.$transparent-colors, $theme, --text), |
| 270 | core.$transparent-colors, | 233 | --border-color: props.get(core.$transparent-colors, $theme, --100), |
| 271 | $theme, | 234 | ), |
| 272 | --500 | ||
| 273 | ), | ||
| 274 | --border-color: props.get( | ||
| 275 | core.$transparent-colors, | ||
| 276 | $theme, | ||
| 277 | --100 | ||
| 278 | ), | ||
| 279 | ), | ||
| 280 | ), | ||
| 281 | 235 | ||
| 282 | --badge: ( | 236 | --disabled: ( |
| 283 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 237 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 284 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 238 | --label-color: props.get(core.$transparent-colors, $theme, --500), |
| 285 | --border-color: transparent, | 239 | --border-color: props.get(core.$transparent-colors, $theme, --100), |
| 240 | ), | ||
| 241 | ), | ||
| 286 | 242 | ||
| 287 | --hover: ( | 243 | --badge: ( |
| 288 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 244 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 289 | --label-color: props.get( | 245 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 290 | core.$transparent-colors, | 246 | --border-color: transparent, |
| 291 | $theme, | ||
| 292 | --900 | ||
| 293 | ), | ||
| 294 | --border-color: transparent, | ||
| 295 | ), | ||
| 296 | 247 | ||
| 297 | --active: ( | 248 | --hover: ( |
| 298 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 249 | --bg-color: props.get(core.$transparent-colors, $theme, --300), |
| 299 | --label-color: props.get( | 250 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 300 | core.$transparent-colors, | 251 | --border-color: transparent, |
| 301 | $theme, | 252 | ), |
| 302 | --900 | ||
| 303 | ), | ||
| 304 | --border-color: transparent, | ||
| 305 | ), | ||
| 306 | ), | ||
| 307 | 253 | ||
| 308 | --quiet: ( | 254 | --active: ( |
| 309 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 255 | --bg-color: props.get(core.$transparent-colors, $theme, --400), |
| 310 | --hover: ( | 256 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 311 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 257 | --border-color: transparent, |
| 312 | --label-color: props.get( | 258 | ), |
| 313 | core.$transparent-colors, | 259 | ), |
| 314 | $theme, | ||
| 315 | --900 | ||
| 316 | ), | ||
| 317 | ), | ||
| 318 | 260 | ||
| 319 | --active: ( | 261 | --quiet: ( |
| 320 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 262 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 321 | --label-color: props.get( | ||
| 322 | core.$transparent-colors, | ||
| 323 | $theme, | ||
| 324 | --900 | ||
| 325 | ), | ||
| 326 | ), | ||
| 327 | 263 | ||
| 328 | --disabled: ( | 264 | --hover: ( |
| 329 | --label-color: props.get( | 265 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 330 | core.$transparent-colors, | 266 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 331 | $theme, | ||
| 332 | --500 | ||
| 333 | ), | ||
| 334 | ), | ||
| 335 | ), | ||
| 336 | ), | 267 | ), |
| 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 | ), | ||
| 337 | ) | 278 | ) |
| 338 | ); | 279 | )); |
| 339 | } | 280 | } |
| 340 | 281 | ||
| 341 | $themes-config: ( | 282 | $themes-config: ( |
| 342 | accent: --accent, | 283 | accent: --accent, |
| 343 | positive: --positive, | 284 | positive: --positive, |
| 344 | negative: --negative, | 285 | negative: --negative, |
| 345 | warning: --warning, | 286 | warning: --warning, |
| 346 | ) !default; | 287 | ) !default; |
| 347 | 288 | ||
| 348 | @each $theme, $key in $themes-config { | 289 | @each $theme, $key in $themes-config { |
| 349 | $themes: props.merge( | 290 | $themes: props.merge($themes, ( |
| 350 | $themes, | 291 | --#{$theme}: ( |
| 351 | ( | 292 | --bg-color: props.get(core.$theme, $key, --100), |
| 352 | --#{$theme}: ( | 293 | --label-color: props.get(core.$theme, $key, --1100), |
| 353 | --bg-color: props.get(core.$theme, $key, --100), | 294 | --border-color: props.get(core.$theme, $key, --500) props.get(core.$theme, $key, --500) props.get(core.$theme, $key, --600), |
| 354 | --label-color: props.get(core.$theme, $key, --1100), | 295 | --shadow-color: props.get(core.$theme, $key, --200), |
| 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 | ), | ||
| 364 | 296 | ||
| 365 | --active: ( | 297 | --hover: ( |
| 366 | --bg-color: props.get(core.$theme, $key, --300), | 298 | --bg-color: props.get(core.$theme, $key, --200), |
| 367 | --label-color: props.get(core.$theme, $key, --1300), | 299 | --label-color: props.get(core.$theme, $key, --1200), |
| 368 | --border-color: props.get(core.$theme, $key, --800), | 300 | --border-color: props.get(core.$theme, $key, --600), |
| 369 | ), | 301 | ), |
| 370 | 302 | ||
| 371 | --disabled: ( | 303 | --active: ( |
| 372 | --bg-color: props.get(core.$theme, --bg-l1), | 304 | --bg-color: props.get(core.$theme, $key, --300), |
| 373 | --label-color: props.get(core.$theme, --border-strong), | 305 | --label-color: props.get(core.$theme, $key, --1300), |
| 374 | --border-color: props.get(core.$theme, --border), | 306 | --border-color: props.get(core.$theme, $key, --800), |
| 375 | ), | 307 | ), |
| 376 | 308 | ||
| 377 | --key-focus: ( | 309 | --disabled: ( |
| 378 | --border-color: props.get(core.$theme, --focus, --border), | 310 | --bg-color: props.get(core.$theme, --bg-l1), |
| 379 | --outline-color: props.get(core.$theme, --focus, --outline), | 311 | --label-color: props.get(core.$theme, --border-strong), |
| 380 | ), | 312 | --border-color: props.get(core.$theme, --border), |
| 313 | ), | ||
| 381 | 314 | ||
| 382 | --highlighted: ( | 315 | --key-focus: ( |
| 383 | --border-color: props.get(core.$theme, $key, --900), | 316 | --border-color: props.get(core.$theme, --focus, --border), |
| 384 | --shadow-color: props.get(core.$theme, $key, --200), | 317 | --outline-color: props.get(core.$theme, --focus, --outline), |
| 385 | ), | 318 | ), |
| 386 | 319 | ||
| 387 | --selected: ( | 320 | --highlighted: ( |
| 388 | --bg-color: props.get(core.$theme, #{$key}-static, --900), | 321 | --border-color: props.get(core.$theme, $key, --900), |
| 389 | --label-color: props.get(core.$theme, #{$key}-static, --900-text), | 322 | --shadow-color: props.get(core.$theme, $key, --200), |
| 390 | --border-color: props.get(core.$theme, #{$key}-static, --900) | 323 | ), |
| 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 | ), | ||
| 402 | 324 | ||
| 403 | --active: ( | 325 | --selected: ( |
| 404 | --bg-color: props.get(core.$theme, #{$key}-static, --1100), | 326 | --bg-color: props.get(core.$theme, #{$key}-static, --900), |
| 405 | --label-color: props.get( | 327 | --label-color: props.get(core.$theme, #{$key}-static, --900-text), |
| 406 | core.$theme, | 328 | --border-color: props.get(core.$theme, #{$key}-static, --900) props.get(core.$theme, #{$key}-static, --900) props.get(core.$theme, #{$key}-static, --1000), |
| 407 | #{$key}-static, | ||
| 408 | --1100-text | ||
| 409 | ), | ||
| 410 | --border-color: props.get(core.$theme, #{$key}-static, --1100), | ||
| 411 | ), | ||
| 412 | 329 | ||
| 413 | --disabled: ( | 330 | --hover: ( |
| 414 | --bg-color: props.get(core.$theme, --border-mute), | 331 | --bg-color: props.get(core.$theme, #{$key}-static, --1000), |
| 415 | --label-color: props.get(core.$theme, --border-strong), | 332 | --label-color: props.get(core.$theme, #{$key}-static, --1000-text), |
| 416 | --border-color: props.get(core.$theme, --border-mute), | 333 | --border-color: props.get(core.$theme, #{$key}-static, --1000), |
| 417 | ), | 334 | ), |
| 418 | ), | ||
| 419 | 335 | ||
| 420 | --badge: ( | 336 | --active: ( |
| 421 | --bg-color: props.get(core.$theme, $key, --100), | 337 | --bg-color: props.get(core.$theme, #{$key}-static, --1100), |
| 422 | --label-color: props.get(core.$theme, $key, --1100), | 338 | --label-color: props.get(core.$theme, #{$key}-static, --1100-text), |
| 423 | --border-color: props.get(core.$theme, $key, --300), | 339 | --border-color: props.get(core.$theme, #{$key}-static, --1100), |
| 424 | --hover: ( | 340 | ), |
| 425 | --bg-color: props.get(core.$theme, $key, --200), | 341 | |
| 426 | --label-color: props.get(core.$theme, $key, --1200), | 342 | --disabled: ( |
| 427 | --border-color: props.get(core.$theme, $key, --400), | 343 | --bg-color: props.get(core.$theme, --border-mute), |
| 428 | ), | 344 | --label-color: props.get(core.$theme, --border-strong), |
| 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 | ), | ||
| 429 | 359 | ||
| 430 | --active: ( | 360 | --active: ( |
| 431 | --bg-color: props.get(core.$theme, $key, --300), | 361 | --bg-color: props.get(core.$theme, $key, --300), |
| 432 | --label-color: props.get(core.$theme, $key, --1300), | 362 | --label-color: props.get(core.$theme, $key, --1300), |
| 433 | --border-color: props.get(core.$theme, $key, --500), | 363 | --border-color: props.get(core.$theme, $key, --500), |
| 434 | ), | 364 | ), |
| 435 | ), | 365 | ), |
| 436 | 366 | ||
| 437 | --quiet: ( | 367 | --quiet: ( |
| 438 | --label-color: props.get(core.$theme, $key, --1100), | 368 | --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 | ), | ||
| 443 | 369 | ||
| 444 | --active: ( | 370 | --hover: ( |
| 445 | --bg-color: props.get(core.$theme, $key, --300), | 371 | --bg-color: props.get(core.$theme, $key, --200), |
| 446 | --label-color: props.get(core.$theme, $key, --1300), | 372 | --label-color: props.get(core.$theme, $key, --1200), |
| 447 | ), | 373 | ), |
| 448 | 374 | ||
| 449 | --disabled: ( | 375 | --active: ( |
| 450 | --label-color: props.get(core.$theme, --border-strong), | 376 | --bg-color: props.get(core.$theme, $key, --300), |
| 451 | ), | 377 | --label-color: props.get(core.$theme, $key, --1300), |
| 452 | ), | 378 | ), |
| 453 | ) | 379 | |
| 380 | --disabled: ( | ||
| 381 | --label-color: props.get(core.$theme, --border-strong), | ||
| 382 | ), | ||
| 383 | ), | ||
| 454 | ) | 384 | ) |
| 455 | ); | 385 | )); |
| 456 | } | 386 | } |
diff --git a/src/objects/_card.scss b/src/objects/_card.scss index 3275bc8..b8bc727 100644 --- a/src/objects/_card.scss +++ b/src/objects/_card.scss | |||
| @@ -1,95 +1,84 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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: | 21 | transition: transform .2s, background-color .2s, border-color .2s, box-shadow .2s; |
| 22 | transform 0.2s, | ||
| 23 | background-color 0.2s, | ||
| 24 | border-color 0.2s, | ||
| 25 | box-shadow 0.2s; | ||
| 26 | 22 | ||
| 27 | @include bem.multi( | 23 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 28 | "&:link, &:visited, &:enabled", | ||
| 29 | "modifier" "interactive", | ||
| 30 | "modifier" "collapsible" | ||
| 31 | ) { | ||
| 32 | &:hover, | 24 | &:hover, |
| 33 | &:active, | 25 | &:active, |
| 34 | &:focus-visible { | 26 | &:focus-visible { |
| 35 | background-color: props.get(vars.$hover--bg-color); | 27 | background-color: props.get(vars.$hover--bg-color); |
| 36 | border-color: props.get(vars.$hover--border-color); | 28 | border-color: props.get(vars.$hover--border-color); |
| 37 | box-shadow: none; | 29 | box-shadow: none; |
| 38 | transform: translateY(props.get(vars.$hover--offset-b)); | 30 | transform: translateY(props.get(vars.$hover--offset-b)); |
| 39 | } | 31 | } |
| 40 | 32 | ||
| 41 | &:focus-visible { | 33 | &:focus-visible { |
| 42 | margin: calc(-1 * props.get(vars.$key-focus--border-width)); | 34 | margin: calc(-1 * props.get(vars.$key-focus--border-width)); |
| 43 | outline: props.get(vars.$key-focus--border-color) solid | 35 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 44 | props.get(vars.$key-focus--border-width); | 36 | border: calc(props.get(vars.$key-focus--border-offset) + props.get(vars.$border-width)) solid transparent; |
| 45 | border: calc( | 37 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); |
| 46 | props.get(vars.$key-focus--border-offset) + props.get(vars.$border-width) | 38 | box-shadow: |
| 47 | ) | 39 | 0 0 0 |
| 48 | solid transparent; | 40 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 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 | ) | ||
| 57 | props.get(vars.$key-focus--outline-color); | 41 | props.get(vars.$key-focus--outline-color); |
| 58 | transition: transform 0.2s; | 42 | transition: transform .2s; |
| 59 | } | 43 | } |
| 60 | } | 44 | } |
| 61 | 45 | ||
| 62 | @include bem.modifier("borderless") { | 46 | @include bem.modifier('borderless') { |
| 63 | border-color: props.get(vars.$bg-color); | 47 | border-color: props.get(vars.$bg-color); |
| 64 | } | 48 | } |
| 65 | 49 | ||
| 66 | @include bem.modifier("shadow") { | 50 | @include bem.modifier('shadow') { |
| 67 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 51 | box-shadow: |
| 68 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 52 | props.get(vars.$shadow-x) |
| 53 | props.get(vars.$shadow-y) | ||
| 54 | props.get(vars.$shadow-blur) | ||
| 55 | props.get(vars.$shadow-grow) | ||
| 69 | props.get(vars.$shadow-color); | 56 | props.get(vars.$shadow-color); |
| 70 | 57 | ||
| 71 | @include bem.modifier("quiet") { | 58 | @include bem.modifier('quiet') { |
| 72 | @include bem.elem("image") { | 59 | @include bem.elem('image') { |
| 73 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 60 | box-shadow: |
| 74 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 61 | props.get(vars.$shadow-x) |
| 62 | props.get(vars.$shadow-y) | ||
| 63 | props.get(vars.$shadow-blur) | ||
| 64 | props.get(vars.$shadow-grow) | ||
| 75 | props.get(vars.$shadow-color); | 65 | props.get(vars.$shadow-color); |
| 76 | } | 66 | } |
| 77 | } | 67 | } |
| 78 | } | 68 | } |
| 79 | 69 | ||
| 80 | @include bem.modifier("highlight") { | 70 | @include bem.modifier('highlight') { |
| 81 | margin: calc(props.get(vars.$border-width) - props.get(vars.$highlight--border-width)); | 71 | margin: calc(props.get(vars.$border-width) - props.get(vars.$highlight--border-width)); |
| 82 | border-color: props.get(vars.$highlight--border-color); | 72 | border-color: props.get(vars.$highlight--border-color); |
| 83 | border-width: props.get(vars.$highlight--border-width); | 73 | border-width: props.get(vars.$highlight--border-width); |
| 84 | box-shadow: props.get(vars.$highlight--shadow-x) props.get(vars.$highlight--shadow-y) | 74 | box-shadow: |
| 85 | props.get(vars.$highlight--shadow-blur) props.get(vars.$highlight--shadow-grow) | 75 | props.get(vars.$highlight--shadow-x) |
| 76 | props.get(vars.$highlight--shadow-y) | ||
| 77 | props.get(vars.$highlight--shadow-blur) | ||
| 78 | props.get(vars.$highlight--shadow-grow) | ||
| 86 | props.get(vars.$highlight--shadow-color); | 79 | props.get(vars.$highlight--shadow-color); |
| 87 | 80 | ||
| 88 | @include bem.multi( | 81 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 89 | "&:link, &:visited, &:enabled", | ||
| 90 | "modifier" "interactive", | ||
| 91 | "modifier" "collapsible" | ||
| 92 | ) { | ||
| 93 | &:hover, | 82 | &:hover, |
| 94 | &:active { | 83 | &:active { |
| 95 | border-color: props.get(vars.$highlight--border-color); | 84 | border-color: props.get(vars.$highlight--border-color); |
| @@ -97,238 +86,207 @@ | |||
| 97 | } | 86 | } |
| 98 | } | 87 | } |
| 99 | 88 | ||
| 100 | @include bem.elem("avatar") { | 89 | @include bem.elem('avatar') { |
| 101 | margin-block-start: props.get(vars.$pad-b); | 90 | margin-block-start: props.get(vars.$pad-b); |
| 102 | margin-inline-start: props.get(vars.$pad-i); | 91 | margin-inline-start: props.get(vars.$pad-i); |
| 103 | } | 92 | } |
| 104 | 93 | ||
| 105 | @include bem.elem("image") { | 94 | @include bem.elem('image') { |
| 106 | position: relative; | 95 | position: relative; |
| 107 | display: block; | 96 | display: block; |
| 108 | flex: 0 0 auto; | 97 | flex: 0 0 auto; |
| 109 | inline-size: calc(100% + 2 * props.get(vars.$border-width)); | 98 | inline-size: calc(100% + 2 * props.get(vars.$border-width)); |
| 110 | margin: calc(-1 * props.get(vars.$border-width)); | 99 | margin: calc(-1 * props.get(vars.$border-width)); |
| 111 | overflow: hidden; | 100 | overflow: hidden; |
| 112 | object-fit: cover; | 101 | object-fit: cover; |
| 113 | transition: | 102 | transition: background-color .2s, transform .2s, opacity .2s; |
| 114 | background-color 0.2s, | ||
| 115 | transform 0.2s, | ||
| 116 | opacity 0.2s; | ||
| 117 | 103 | ||
| 118 | &:first-child { | 104 | &:first-child { |
| 119 | border-start-start-radius: calc( | 105 | border-start-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 120 | props.get(vars.$rounding) - props.get(vars.$border-width) | 106 | border-start-end-radius: calc(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 | ); | ||
| 125 | } | 107 | } |
| 126 | 108 | ||
| 127 | &:last-child { | 109 | &:last-child { |
| 128 | border-end-start-radius: calc( | 110 | border-end-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 129 | props.get(vars.$rounding) - props.get(vars.$border-width) | 111 | border-end-end-radius: calc(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 | ); | ||
| 134 | } | 112 | } |
| 135 | 113 | ||
| 136 | @include bem.next-elem("avatar") { | 114 | @include bem.next-elem('avatar') { |
| 137 | margin-block-start: calc(-0.7 * props.get(avatar.$size--xl)); | 115 | margin-block-start: calc(-.7 * props.get(avatar.$size--xl)); |
| 138 | } | 116 | } |
| 139 | } | 117 | } |
| 140 | 118 | ||
| 141 | @include bem.elem("image-img") { | 119 | @include bem.elem('image-img') { |
| 142 | display: block; | 120 | display: block; |
| 143 | inline-size: 100%; | 121 | inline-size: 100%; |
| 144 | block-size: 100%; | 122 | block-size: 100%; |
| 145 | object-fit: cover; | 123 | object-fit: cover; |
| 146 | } | 124 | } |
| 147 | 125 | ||
| 148 | @include bem.elem("image-overlay") { | 126 | @include bem.elem('image-overlay') { |
| 149 | position: absolute; | 127 | position: absolute; |
| 150 | inset-block-end: 0; | 128 | inset-block-end: 0; |
| 151 | inset-inline: 0; | 129 | inset-inline: 0; |
| 152 | z-index: 5; | 130 | z-index: 5; |
| 153 | padding-block: props.get(vars.$image-overlay--pad-b); | 131 | padding-block: props.get(vars.$image-overlay--pad-b); |
| 154 | padding-inline: props.get(vars.$image-overlay--pad-i); | 132 | padding-inline: props.get(vars.$image-overlay--pad-i); |
| 155 | } | 133 | } |
| 156 | 134 | ||
| 157 | @include bem.elem("body") { | 135 | @include bem.elem('body') { |
| 158 | flex: 0 0 auto; | 136 | flex: 0 0 auto; |
| 159 | padding-block: props.get(vars.$pad-b); | 137 | padding-block: props.get(vars.$pad-b); |
| 160 | padding-inline: props.get(vars.$pad-i); | 138 | padding-inline: props.get(vars.$pad-i); |
| 161 | 139 | ||
| 162 | &::before { | 140 | &::before { |
| 163 | display: block; | 141 | display: block; |
| 164 | margin-block: -100em 100em; | 142 | margin-block: -100em 100em; |
| 165 | content: ""; | 143 | content: ''; |
| 166 | } | 144 | } |
| 167 | 145 | ||
| 168 | @include bem.modifier("no-mbs-neutralize") { | 146 | @include bem.modifier('no-mbs-neutralize') { |
| 169 | &::before { | 147 | &::before { |
| 170 | display: none; | 148 | display: none; |
| 171 | } | 149 | } |
| 172 | } | 150 | } |
| 173 | 151 | ||
| 174 | @include bem.modifier("main") { | 152 | @include bem.modifier('main') { |
| 175 | flex-shrink: 1; | 153 | flex-shrink: 1; |
| 176 | block-size: 100%; | 154 | block-size: 100%; |
| 177 | min-block-size: 0; | 155 | min-block-size: 0; |
| 178 | } | 156 | } |
| 179 | } | 157 | } |
| 180 | 158 | ||
| 181 | @include bem.elem("content") { | 159 | @include bem.elem('content') { |
| 182 | margin-block-start: props.get(vars.$spacing); | 160 | margin-block-start: props.get(vars.$spacing); |
| 183 | } | 161 | } |
| 184 | 162 | ||
| 185 | @include bem.elem("footer") { | 163 | @include bem.elem('footer') { |
| 186 | flex: 0 0 auto; | 164 | flex: 0 0 auto; |
| 187 | padding-block: 0 props.get(vars.$pad-b); | 165 | padding-block: 0 props.get(vars.$pad-b); |
| 188 | padding-inline: props.get(vars.$pad-i); | 166 | padding-inline: props.get(vars.$pad-i); |
| 189 | margin-block-start: calc(-1 * props.get(vars.$pad-b)); | 167 | margin-block-start: calc(-1 * props.get(vars.$pad-b)); |
| 190 | 168 | ||
| 191 | &::before { | 169 | &::before { |
| 192 | display: block; | 170 | display: block; |
| 193 | block-size: props.get(vars.$divider-width); | 171 | block-size: props.get(vars.$divider-width); |
| 194 | margin-block: props.get(vars.$spacing); | 172 | margin-block: props.get(vars.$spacing); |
| 195 | content: ""; | 173 | content: ''; |
| 196 | background-color: props.get(vars.$divider-width); | 174 | background-color: props.get(vars.$divider-width); |
| 197 | } | 175 | } |
| 198 | } | 176 | } |
| 199 | 177 | ||
| 200 | @include bem.modifier("quiet") { | 178 | @include bem.modifier('quiet') { |
| 201 | margin-inline: 0; | 179 | margin-inline: 0; |
| 202 | background-color: transparent; | 180 | background-color: transparent; |
| 203 | border: 0; | 181 | border: 0; |
| 204 | box-shadow: none; | 182 | box-shadow: none; |
| 205 | 183 | ||
| 206 | @include bem.multi( | 184 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 207 | "&:link, &:visited, &:enabled", | ||
| 208 | "modifier" "interactive", | ||
| 209 | "modifier" "collapsible" | ||
| 210 | ) { | ||
| 211 | &:hover, | 185 | &:hover, |
| 212 | &:active, | 186 | &:active, |
| 213 | &:focus-visible { | 187 | &:focus-visible { |
| 214 | background-color: transparent; | 188 | background-color: transparent; |
| 215 | transform: none; | 189 | transform: none; |
| 216 | 190 | ||
| 217 | @include bem.elem("image") { | 191 | @include bem.elem('image') { |
| 218 | background-color: props.get(vars.$quiet--hover--image-color); | 192 | background-color: props.get(vars.$quiet--hover--image-color); |
| 219 | opacity: 0.75; | 193 | opacity: .75; |
| 220 | transform: translateY(props.get(vars.$hover--offset-b)); | 194 | transform: translateY(props.get(vars.$hover--offset-b)); |
| 221 | } | 195 | } |
| 222 | } | 196 | } |
| 223 | 197 | ||
| 224 | &:focus-visible { | 198 | &:focus-visible { |
| 225 | margin: 0; | 199 | margin: 0; |
| 226 | outline: none; | 200 | outline: none; |
| 227 | border: 0; | 201 | border: 0; |
| 228 | box-shadow: none; | 202 | box-shadow: none; |
| 229 | 203 | ||
| 230 | @include bem.elem("image") { | 204 | @include bem.elem('image') { |
| 231 | margin: calc( | 205 | margin: calc(-1 * props.get(vars.$key-focus--border-width) - props.get(vars.$border-width)); |
| 232 | -1 * | 206 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 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); | ||
| 239 | background-color: props.get(vars.$quiet--hover--image-color); | 207 | background-color: props.get(vars.$quiet--hover--image-color); |
| 240 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 208 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 241 | border-radius: calc( | 209 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); |
| 242 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) | 210 | box-shadow: |
| 243 | ); | 211 | 0 |
| 244 | box-shadow: 0 0 0 | 212 | 0 |
| 245 | calc( | 213 | 0 |
| 246 | props.get(vars.$key-focus--border-width) + | 214 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 247 | props.get(vars.$key-focus--outline-width) | ||
| 248 | ) | ||
| 249 | props.get(vars.$key-focus--outline-color); | 215 | props.get(vars.$key-focus--outline-color); |
| 250 | opacity: 1; | 216 | opacity: 1; |
| 251 | } | 217 | } |
| 252 | } | 218 | } |
| 253 | } | 219 | } |
| 254 | 220 | ||
| 255 | @include bem.elem("image") { | 221 | @include bem.elem('image') { |
| 256 | position: relative; | 222 | position: relative; |
| 257 | background-color: props.get(vars.$quiet--image-color); | 223 | background-color: props.get(vars.$quiet--image-color); |
| 258 | background-clip: padding-box; | 224 | background-clip: padding-box; |
| 259 | border-radius: props.get(vars.$rounding); | 225 | border-radius: props.get(vars.$rounding); |
| 260 | } | 226 | } |
| 261 | 227 | ||
| 262 | @include bem.elem("body") { | 228 | @include bem.elem('body') { |
| 263 | padding: 0; | 229 | padding: 0; |
| 264 | padding-block-start: props.get(vars.$spacing); | 230 | padding-block-start: props.get(vars.$spacing); |
| 265 | } | 231 | } |
| 266 | 232 | ||
| 267 | @include bem.elem("footer") { | 233 | @include bem.elem('footer') { |
| 268 | padding-inline: 0; | 234 | padding-inline: 0; |
| 269 | } | 235 | } |
| 270 | } | 236 | } |
| 271 | 237 | ||
| 272 | @include bem.modifier("thumbnail") { | 238 | @include bem.modifier('thumbnail') { |
| 273 | @include bem.elem("image") { | 239 | @include bem.elem('image') { |
| 274 | border-radius: props.get(vars.$rounding); | 240 | border-radius: props.get(vars.$rounding); |
| 275 | } | 241 | } |
| 276 | 242 | ||
| 277 | @include bem.elem("body") { | 243 | @include bem.elem('body') { |
| 278 | position: absolute; | 244 | position: absolute; |
| 279 | inset-block-end: calc(-1 * props.get(vars.$border-width)); | 245 | inset-block-end: calc(-1 * props.get(vars.$border-width)); |
| 280 | inset-inline: calc(-1 * props.get(vars.$border-width)); | 246 | inset-inline: calc(-1 * props.get(vars.$border-width)); |
| 281 | z-index: 10; | 247 | z-index: 10; |
| 282 | visibility: hidden; | 248 | visibility: hidden; |
| 283 | background-color: props.get(vars.$hover--bg-color); | 249 | background-color: props.get(vars.$hover--bg-color); |
| 284 | border-color: transparent; | 250 | border-color: transparent; |
| 285 | border-style: solid; | 251 | border-style: solid; |
| 286 | border-width: 0 props.get(vars.$border-width) props.get(vars.$border-width); | 252 | border-width: 0 props.get(vars.$border-width) props.get(vars.$border-width); |
| 287 | border-end-start-radius: calc( | 253 | border-end-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 288 | props.get(vars.$rounding) - props.get(vars.$border-width) | 254 | border-end-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 289 | ); | 255 | opacity: 0; |
| 290 | border-end-end-radius: calc( | ||
| 291 | props.get(vars.$rounding) - props.get(vars.$border-width) | ||
| 292 | ); | ||
| 293 | opacity: 0; | ||
| 294 | transition: | 256 | transition: |
| 295 | border-color 0.2s ease, | 257 | border-color .2s ease, |
| 296 | opacity 0.2s ease, | 258 | opacity .2s ease, |
| 297 | visibility 0s 0.2s linear; | 259 | visibility 0s .2s linear; |
| 298 | } | 260 | } |
| 299 | 261 | ||
| 300 | @include bem.multi( | 262 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 301 | "&:link, &:visited, &:enabled", | ||
| 302 | "modifier" "interactive", | ||
| 303 | "modifier" "collapsible" | ||
| 304 | ) { | ||
| 305 | &:hover, | 263 | &:hover, |
| 306 | &:active, | 264 | &:active, |
| 307 | &:focus-visible { | 265 | &:focus-visible { |
| 308 | @include bem.elem("body") { | 266 | @include bem.elem('body') { |
| 309 | visibility: visible; | 267 | visibility: visible; |
| 310 | border-color: props.get(vars.$hover--border-color); | 268 | border-color: props.get(vars.$hover--border-color); |
| 311 | opacity: 1; | 269 | opacity: 1; |
| 312 | transition: | 270 | transition: |
| 313 | border-color 0.2s ease, | 271 | border-color .2s ease, |
| 314 | opacity 0.2s ease, | 272 | opacity .2s ease, |
| 315 | visibility 0.2s linear; | 273 | visibility .2s linear; |
| 316 | } | 274 | } |
| 317 | } | 275 | } |
| 318 | } | 276 | } |
| 319 | } | 277 | } |
| 320 | 278 | ||
| 321 | @include bem.modifier("horizontal") { | 279 | @include bem.modifier('horizontal') { |
| 322 | flex-direction: row; | 280 | flex-direction: row; |
| 323 | align-items: center; | 281 | align-items: center; |
| 324 | 282 | ||
| 325 | @include bem.elem("image") { | 283 | @include bem.elem('image') { |
| 326 | align-self: stretch; | 284 | align-self: stretch; |
| 327 | inline-size: auto; | 285 | inline-size: auto; |
| 328 | 286 | ||
| 329 | &:first-child { | 287 | &:first-child { |
| 330 | border-start-end-radius: 0; | 288 | border-start-end-radius: 0; |
| 331 | border-end-start-radius: props.get(vars.$rounding); | 289 | border-end-start-radius: props.get(vars.$rounding); |
| 332 | } | 290 | } |
| 333 | 291 | ||
| 334 | &:last-child { | 292 | &:last-child { |
| @@ -337,38 +295,37 @@ | |||
| 337 | } | 295 | } |
| 338 | } | 296 | } |
| 339 | 297 | ||
| 340 | @include bem.elem("body") { | 298 | @include bem.elem('body') { |
| 341 | @include bem.modifier("main") { | 299 | @include bem.modifier('main') { |
| 342 | block-size: auto; | 300 | block-size: auto; |
| 343 | min-block-size: none; | 301 | min-block-size: none; |
| 344 | inline-size: 100%; | 302 | inline-size: 100%; |
| 345 | min-inline-size: 0; | 303 | min-inline-size: 0; |
| 346 | } | 304 | } |
| 347 | } | 305 | } |
| 348 | } | 306 | } |
| 349 | 307 | ||
| 350 | @include bem.modifier("collapsible") { | 308 | @include bem.modifier('collapsible') { |
| 351 | display: block; | 309 | display: block; |
| 352 | interpolate-size: allow-keywords; | 310 | interpolate-size: allow-keywords; |
| 353 | 311 | ||
| 354 | @include bem.elem("header") { | 312 | @include bem.elem("header") { |
| 355 | display: flex; | 313 | display: flex; |
| 356 | align-items: center; | 314 | align-items: center; |
| 357 | gap: 1em; | 315 | gap: 1em; |
| 358 | cursor: pointer; | 316 | cursor: pointer; |
| 359 | 317 | ||
| 360 | &::before { | 318 | &::before { |
| 361 | margin: 0; | 319 | margin: 0; |
| 362 | inline-size: 1em; | 320 | inline-size: 1em; |
| 363 | font-size: 0.8em; | 321 | font-size: 0.8em; |
| 364 | content: "â–¶"; | 322 | content: "â–¶"; |
| 365 | } | 323 | } |
| 366 | 324 | ||
| 367 | &:focus-visible { | 325 | &:focus-visible { |
| 368 | outline: props.get(vars.$key-focus--border-color) solid | 326 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 369 | props.get(vars.$key-focus--border-width); | ||
| 370 | outline-offset: calc(-1 * props.get(vars.$key-focus--border-width)); | 327 | outline-offset: calc(-1 * props.get(vars.$key-focus--border-width)); |
| 371 | border-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 328 | border-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 372 | } | 329 | } |
| 373 | 330 | ||
| 374 | @include bem.next-elem("body") { | 331 | @include bem.next-elem("body") { |
| @@ -377,7 +334,7 @@ | |||
| 377 | } | 334 | } |
| 378 | 335 | ||
| 379 | &::details-content { | 336 | &::details-content { |
| 380 | opacity: 0; | 337 | opacity: 0; |
| 381 | block-size: 0; | 338 | block-size: 0; |
| 382 | overflow-y: clip; | 339 | overflow-y: clip; |
| 383 | transition: | 340 | transition: |
| @@ -394,7 +351,7 @@ | |||
| 394 | } | 351 | } |
| 395 | 352 | ||
| 396 | &::details-content { | 353 | &::details-content { |
| 397 | opacity: 1; | 354 | opacity: 1; |
| 398 | block-size: auto; | 355 | block-size: auto; |
| 399 | } | 356 | } |
| 400 | } | 357 | } |
diff --git a/src/objects/_card.vars.scss b/src/objects/_card.vars.scss index 96f3cb9..4616c80 100644 --- a/src/objects/_card.vars.scss +++ b/src/objects/_card.vars.scss | |||
| @@ -1,130 +1,51 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 7 | $sub-border-width: props.def(--o-card--sub-border-width, props.get(core.$border-width--thick)) !default; |
| 8 | --o-card--sub-border-width, | 8 | $pad-i: props.def(--o-card--pad-i, props.get(core.$size--300)) !default; |
| 9 | props.get(core.$border-width--thick) | 9 | $pad-b: props.def(--o-card--pad-b, props.get(core.$size--250)) !default; |
| 10 | ) !default; | 10 | $spacing: props.def(--o-card--spacing, props.get(core.$size--200)) !default; |
| 11 | $pad-i: props.def(--o-card--pad-i, props.get(core.$size--300)) !default; | 11 | $rounding: props.def(--o-card--rounding, props.get(core.$rounding)) !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; | ||
| 15 | $image-overlay--pad-i: props.def(--o-card--image-overlay--pad-i, props.get($pad-i)) !default; | 12 | $image-overlay--pad-i: props.def(--o-card--image-overlay--pad-i, props.get($pad-i)) !default; |
| 16 | $image-overlay--pad-b: props.def(--o-card--image-overlay--pad-b, props.get($pad-b)) !default; | 13 | $image-overlay--pad-b: props.def(--o-card--image-overlay--pad-b, props.get($pad-b)) !default; |
| 17 | 14 | ||
| 18 | $hover--offset-b: props.def( | 15 | $hover--offset-b: props.def(--o-card--hover--offset-b, calc(-1 * props.get(core.$size--65))) !default; |
| 19 | --o-card--hover--offset-b, | ||
| 20 | calc(-1 * props.get(core.$size--65)) | ||
| 21 | ) !default; | ||
| 22 | 16 | ||
| 23 | $shadow-x: props.def(--o-card--shadow-x, props.get(core.$shadow--l1--x)) !default; | 17 | $shadow-x: props.def(--o-card--shadow-x, props.get(core.$shadow--l1--x)) !default; |
| 24 | $shadow-y: props.def(--o-card--shadow-y, props.get(core.$shadow--l1--y)) !default; | 18 | $shadow-y: props.def(--o-card--shadow-y, props.get(core.$shadow--l1--y)) !default; |
| 25 | $shadow-blur: props.def(--o-card--shadow-blur, props.get(core.$shadow--l1--blur)) !default; | 19 | $shadow-blur: props.def(--o-card--shadow-blur, props.get(core.$shadow--l1--blur)) !default; |
| 26 | $shadow-grow: props.def(--o-card--shadow-grow, props.get(core.$shadow--l1--grow)) !default; | 20 | $shadow-grow: props.def(--o-card--shadow-grow, props.get(core.$shadow--l1--grow)) !default; |
| 27 | 21 | ||
| 28 | $key-focus--border-width: props.def( | 22 | $key-focus--border-width: props.def(--o-card--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 29 | --o-card--key-focus--border-width, | 23 | $key-focus--border-offset: props.def(--o-card--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 30 | props.get(core.$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; |
| 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; | ||
| 40 | 25 | ||
| 41 | $shadow-color: props.def( | 26 | $shadow-color: props.def(--o-card--shadow-color, props.get(core.$theme, --shadow), 'color') !default; |
| 42 | --o-card--shadow-color, | 27 | $bg-color: props.def(--o-card--bg-color, props.get(core.$theme, --bg-l2), 'color') !default; |
| 43 | props.get(core.$theme, --shadow), | 28 | $border-color: props.def(--o-card--border-color, props.get(core.$theme, --box, --border), 'color') !default; |
| 44 | "color" | 29 | $divider-color: props.def(--o-card--divider-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 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; | ||
| 57 | 30 | ||
| 58 | $highlight--shadow-x: props.def( | 31 | $highlight--shadow-x: props.def(--o-card--highlight--shadow-x, props.get(core.$shadow--l2--x)) !default; |
| 59 | --o-card--highlight--shadow-x, | 32 | $highlight--shadow-y: props.def(--o-card--highlight--shadow-y, props.get(core.$shadow--l2--y)) !default; |
| 60 | props.get(core.$shadow--l2--x) | 33 | $highlight--shadow-blur: props.def(--o-card--highlight--shadow-blur, props.get(core.$shadow--l2--blur)) !default; |
| 61 | ) !default; | 34 | $highlight--shadow-grow: props.def(--o-card--highlight--shadow-grow, props.get(core.$shadow--l2--grow)) !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; | ||
| 74 | 35 | ||
| 75 | $highlight--border-width: props.def( | 36 | $highlight--border-width: props.def(--o-card--highlight--border-width, props.get(core.$border-width--medium)) !default; |
| 76 | --o-card--highlight--border-width, | 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; |
| 77 | props.get(core.$border-width--medium) | 38 | $highlight--shadow-color: props.def(--o-card--highlight--shadow-color, props.get(core.$theme, --accent, --200), 'color') !default; |
| 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; | ||
| 90 | 39 | ||
| 91 | $hover--bg-color: props.def( | 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; |
| 92 | --o-card--hover--bg-color, | 41 | $hover--border-color: props.def(--o-card--hover--border-color, props.get(core.$theme, --border), 'color') !default; |
| 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; | ||
| 101 | 42 | ||
| 102 | $key-focus--label-color: props.def( | 43 | $key-focus--label-color: props.def(--o-card--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 103 | --o-card--key-focus--label-color, | 44 | $key-focus--border-color: props.def(--o-card--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 104 | props.get(core.$theme, --focus, --text), | 45 | $key-focus--outline-color: props.def(--o-card--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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; | ||
| 117 | 46 | ||
| 118 | $quiet--image-color: props.def( | 47 | $quiet--image-color: props.def(--o-card--quiet--image-color, props.get(core.$theme, --bg-base), 'color') !default; |
| 119 | --o-card--quiet--image-color, | 48 | $quiet--hover--image-color: props.def(--o-card--quiet--hover--image-color, props.get(core.$theme, --border), 'color') !default; |
| 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; | ||
| 128 | 49 | ||
| 129 | $pad-i--sm: props.def(--o-card--pad-i, props.get(core.$size--200), "sm") !default; | 50 | $pad-i--sm: props.def(--o-card--pad-i, props.get(core.$size--200), 'sm') !default; |
| 130 | $pad-b--sm: props.def(--o-card--pad-b, props.get(core.$size--175), "sm") !default; | 51 | $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 60cee65..f3fb793 100644 --- a/src/objects/_checkbox.scss +++ b/src/objects/_checkbox.scss | |||
| @@ -1,140 +1,130 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/functions" as fn; | 3 | @use 'pkg:iro-sass/src/functions' as fn; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/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: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 19 | margin-inline: |
| 20 | calc( | 20 | calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) |
| 21 | props.get(vars.$spacing-sibling) - props.get(vars.$pad-b) - props.get( | 21 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-b) - props.get(vars.$key-focus--border-offset)); |
| 22 | vars.$key-focus--border-offset | ||
| 23 | ) | ||
| 24 | ); | ||
| 25 | 22 | ||
| 26 | @include bem.elem("box") { | 23 | @include bem.elem('box') { |
| 27 | position: relative; | 24 | position: relative; |
| 28 | display: inline-block; | 25 | display: inline-block; |
| 29 | flex: 0 0 auto; | 26 | flex: 0 0 auto; |
| 30 | inline-size: props.get(vars.$size); | 27 | inline-size: props.get(vars.$size); |
| 31 | block-size: props.get(vars.$size); | 28 | block-size: props.get(vars.$size); |
| 32 | margin-block-start: calc( | 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)); |
| 33 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * | 30 | vertical-align: top; |
| 34 | props.get(vars.$size) - props.get(vars.$key-focus--border-offset) | 31 | background-color: props.get(vars.$box-border-color); |
| 35 | ); | 32 | background-clip: padding-box; |
| 36 | vertical-align: top; | 33 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 37 | background-color: props.get(vars.$box-border-color); | 34 | border-radius: calc(props.get(vars.$border-width) + props.get(vars.$key-focus--border-offset)); |
| 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 | ); | ||
| 43 | 35 | ||
| 44 | &::before, | 36 | &::before, |
| 45 | &::after { | 37 | &::after { |
| 46 | position: absolute; | 38 | position: absolute; |
| 47 | display: block; | 39 | display: block; |
| 48 | content: ""; | 40 | content: ''; |
| 49 | } | 41 | } |
| 50 | 42 | ||
| 51 | &::before { | 43 | &::before { |
| 52 | inset-block-start: props.get(vars.$border-width); | 44 | inset-block-start: props.get(vars.$border-width); |
| 53 | inset-inline-start: props.get(vars.$border-width); | 45 | inset-inline-start: props.get(vars.$border-width); |
| 54 | z-index: 2; | 46 | z-index: 2; |
| 55 | inline-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); | 47 | inline-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)); | 48 | block-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); |
| 57 | background-color: props.get(vars.$box-bg-color); | 49 | background-color: props.get(vars.$box-bg-color); |
| 58 | transition: transform 0.2s ease; | 50 | transition: transform .2s ease; |
| 59 | } | 51 | } |
| 60 | 52 | ||
| 61 | &::after { | 53 | &::after { |
| 62 | inset-block-start: calc(0.5 * props.get(vars.$size) - 1px); | 54 | inset-block-start: calc(.5 * props.get(vars.$size) - 1px); |
| 63 | inset-inline-start: calc(1.5 * props.get(vars.$border-width)); | 55 | inset-inline-start: calc(1.5 * props.get(vars.$border-width)); |
| 64 | z-index: 3; | 56 | z-index: 3; |
| 65 | box-sizing: border-box; | 57 | box-sizing: border-box; |
| 66 | inline-size: calc(props.get(vars.$size) - 3 * props.get(vars.$border-width)); | 58 | inline-size: calc(props.get(vars.$size) - 3 * props.get(vars.$border-width)); |
| 67 | block-size: 0; | 59 | block-size: 0; |
| 68 | border-color: props.get(vars.$box-bg-color); | 60 | border-color: props.get(vars.$box-bg-color); |
| 69 | border-style: solid; | 61 | border-style: solid; |
| 70 | border-radius: 2px; | 62 | border-radius: 2px; |
| 71 | transform: scale(0); | 63 | transform: scale(0); |
| 72 | transition: transform 0.2s ease; | 64 | transition: transform .2s ease; |
| 73 | border-block-width: 0 2px; | 65 | border-block-width: 0 2px; |
| 74 | border-inline-width: 0 2px; | 66 | border-inline-width: 0 2px; |
| 75 | } | 67 | } |
| 76 | } | 68 | } |
| 77 | 69 | ||
| 78 | @include bem.elem("check-icon") { | 70 | @include bem.elem('check-icon') { |
| 79 | position: absolute; | 71 | position: absolute; |
| 80 | inset-block-start: calc(1 * props.get(vars.$border-width)); | 72 | inset-block-start: calc(1 * props.get(vars.$border-width)); |
| 81 | inset-inline-start: calc(1 * props.get(vars.$border-width)); | 73 | inset-inline-start: calc(1 * props.get(vars.$border-width)); |
| 82 | z-index: 2; | 74 | z-index: 2; |
| 83 | display: block; | 75 | display: block; |
| 84 | inline-size: calc(100% - 2 * props.get(vars.$border-width)); | 76 | inline-size: calc(100% - 2 * props.get(vars.$border-width)); |
| 85 | block-size: calc(100% - 2 * props.get(vars.$border-width)); | 77 | block-size: calc(100% - 2 * props.get(vars.$border-width)); |
| 86 | margin: 0; | 78 | margin: 0; |
| 87 | color: props.get(vars.$box-bg-color); | 79 | color: props.get(vars.$box-bg-color); |
| 88 | stroke-width: fn.px-to-rem(3px); | 80 | stroke-width: fn.px-to-rem(3px); |
| 89 | transform: scale(0); | 81 | transform: scale(0); |
| 90 | transform-origin: 40% 90%; | 82 | transform-origin: 40% 90%; |
| 91 | transition: transform 0.2s ease; | 83 | transition: transform .2s ease; |
| 92 | } | 84 | } |
| 93 | 85 | ||
| 94 | @include bem.elem("label") { | 86 | @include bem.elem('label') { |
| 95 | margin-inline-start: calc( | 87 | margin-inline-start: calc(props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset)); |
| 96 | props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset) | ||
| 97 | ); | ||
| 98 | } | 88 | } |
| 99 | 89 | ||
| 100 | @include bem.elem("native") { | 90 | @include bem.elem('native') { |
| 101 | position: absolute; | 91 | position: absolute; |
| 102 | inset-block-start: 0; | 92 | inset-block-start: 0; |
| 103 | inset-inline-start: 0; | 93 | inset-inline-start: 0; |
| 104 | z-index: -1; | 94 | z-index: -1; |
| 105 | inline-size: 100%; | 95 | inline-size: 100%; |
| 106 | block-size: 100%; | 96 | block-size: 100%; |
| 107 | padding: 0; | 97 | padding: 0; |
| 108 | margin: 0; | 98 | margin: 0; |
| 109 | overflow: hidden; | 99 | overflow: hidden; |
| 110 | appearance: none; | 100 | appearance: none; |
| 111 | border-radius: props.get(vars.$rounding); | 101 | border-radius: props.get(vars.$rounding); |
| 112 | 102 | ||
| 113 | &:hover, | 103 | &:hover, |
| 114 | &:focus-visible { | 104 | &:focus-visible { |
| 115 | @include bem.sibling-elem("label") { | 105 | @include bem.sibling-elem('label') { |
| 116 | color: props.get(vars.$hover--label-color); | 106 | color: props.get(vars.$hover--label-color); |
| 117 | } | 107 | } |
| 118 | 108 | ||
| 119 | @include bem.sibling-elem("box") { | 109 | @include bem.sibling-elem('box') { |
| 120 | background-color: props.get(vars.$hover--box-border-color); | 110 | background-color: props.get(vars.$hover--box-border-color); |
| 121 | } | 111 | } |
| 122 | } | 112 | } |
| 123 | 113 | ||
| 124 | &:checked { | 114 | &:checked { |
| 125 | @include bem.sibling-elem("box") { | 115 | @include bem.sibling-elem('box') { |
| 126 | &::before { | 116 | &::before { |
| 127 | transform: scale(0); | 117 | transform: scale(0); |
| 128 | } | 118 | } |
| 129 | 119 | ||
| 130 | @include bem.elem("check-icon") { | 120 | @include bem.elem('check-icon') { |
| 131 | transform: scale(1); | 121 | transform: scale(1); |
| 132 | } | 122 | } |
| 133 | } | 123 | } |
| 134 | } | 124 | } |
| 135 | 125 | ||
| 136 | &:indeterminate { | 126 | &:indeterminate { |
| 137 | @include bem.sibling-elem("box") { | 127 | @include bem.sibling-elem('box') { |
| 138 | &::before { | 128 | &::before { |
| 139 | transform: scale(0); | 129 | transform: scale(0); |
| 140 | } | 130 | } |
| @@ -143,18 +133,18 @@ | |||
| 143 | transform: scale(1); | 133 | transform: scale(1); |
| 144 | } | 134 | } |
| 145 | 135 | ||
| 146 | @include bem.elem("check-icon") { | 136 | @include bem.elem('check-icon') { |
| 147 | transform: scale(0); | 137 | transform: scale(0); |
| 148 | } | 138 | } |
| 149 | } | 139 | } |
| 150 | } | 140 | } |
| 151 | 141 | ||
| 152 | &:disabled { | 142 | &:disabled { |
| 153 | @include bem.sibling-elem("label") { | 143 | @include bem.sibling-elem('label') { |
| 154 | color: props.get(vars.$disabled--label-color); | 144 | color: props.get(vars.$disabled--label-color); |
| 155 | } | 145 | } |
| 156 | 146 | ||
| 157 | @include bem.sibling-elem("box") { | 147 | @include bem.sibling-elem('box') { |
| 158 | background-color: props.get(vars.$disabled--box-border-color); | 148 | background-color: props.get(vars.$disabled--box-border-color); |
| 159 | 149 | ||
| 160 | &::before { | 150 | &::before { |
| @@ -164,59 +154,58 @@ | |||
| 164 | } | 154 | } |
| 165 | 155 | ||
| 166 | &:focus-visible { | 156 | &:focus-visible { |
| 167 | @include bem.sibling-elem("label") { | 157 | @include bem.sibling-elem('label') { |
| 168 | color: props.get(vars.$key-focus--label-color); | 158 | color: props.get(vars.$key-focus--label-color); |
| 169 | } | 159 | } |
| 170 | 160 | ||
| 171 | @include bem.sibling-elem("box") { | 161 | @include bem.sibling-elem('box') { |
| 172 | outline: props.get(vars.$key-focus--border-color) solid | 162 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 173 | props.get(vars.$key-focus--border-width); | 163 | box-shadow: |
| 174 | box-shadow: 0 0 0 | 164 | 0 |
| 175 | calc( | 165 | 0 |
| 176 | props.get(vars.$key-focus--border-width) + | 166 | 0 |
| 177 | props.get(vars.$key-focus--outline-width) | 167 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 178 | ) | ||
| 179 | props.get(vars.$key-focus--outline-color); | 168 | props.get(vars.$key-focus--outline-color); |
| 180 | } | 169 | } |
| 181 | } | 170 | } |
| 182 | } | 171 | } |
| 183 | 172 | ||
| 184 | @include bem.modifier("standalone") { | 173 | @include bem.modifier('standalone') { |
| 185 | @include bem.elem("box") { | 174 | @include bem.elem('box') { |
| 186 | margin-block-start: 0; | 175 | margin-block-start: 0; |
| 187 | } | 176 | } |
| 188 | } | 177 | } |
| 189 | 178 | ||
| 190 | @include bem.modifier("accent") { | 179 | @include bem.modifier('accent') { |
| 191 | @include bem.elem("native") { | 180 | @include bem.elem('native') { |
| 192 | &:checked { | 181 | &:checked { |
| 193 | @include bem.sibling-elem("box") { | 182 | @include bem.sibling-elem('box') { |
| 194 | background-color: props.get(vars.$accent--box-border-color); | 183 | background-color: props.get(vars.$accent--box-border-color); |
| 195 | } | 184 | } |
| 196 | 185 | ||
| 197 | &:hover, | 186 | &:hover, |
| 198 | &:focus-visible { | 187 | &:focus-visible { |
| 199 | @include bem.sibling-elem("box") { | 188 | @include bem.sibling-elem('box') { |
| 200 | background-color: props.get(vars.$accent--hover--box-border-color); | 189 | background-color: props.get(vars.$accent--hover--box-border-color); |
| 201 | } | 190 | } |
| 202 | } | 191 | } |
| 203 | } | 192 | } |
| 204 | 193 | ||
| 205 | &:indeterminate { | 194 | &:indeterminate { |
| 206 | @include bem.sibling-elem("box") { | 195 | @include bem.sibling-elem('box') { |
| 207 | background-color: props.get(vars.$accent--box-border-color); | 196 | background-color: props.get(vars.$accent--box-border-color); |
| 208 | } | 197 | } |
| 209 | 198 | ||
| 210 | &:hover, | 199 | &:hover, |
| 211 | &:focus-visible { | 200 | &:focus-visible { |
| 212 | @include bem.sibling-elem("box") { | 201 | @include bem.sibling-elem('box') { |
| 213 | background-color: props.get(vars.$accent--hover--box-border-color); | 202 | background-color: props.get(vars.$accent--hover--box-border-color); |
| 214 | } | 203 | } |
| 215 | } | 204 | } |
| 216 | } | 205 | } |
| 217 | 206 | ||
| 218 | &:disabled { | 207 | &:disabled { |
| 219 | @include bem.sibling-elem("box") { | 208 | @include bem.sibling-elem('box') { |
| 220 | background-color: props.get(vars.$disabled--box-border-color); | 209 | background-color: props.get(vars.$disabled--box-border-color); |
| 221 | 210 | ||
| 222 | &::before { | 211 | &::before { |
| @@ -225,13 +214,13 @@ | |||
| 225 | } | 214 | } |
| 226 | 215 | ||
| 227 | &:checked { | 216 | &:checked { |
| 228 | @include bem.sibling-elem("box") { | 217 | @include bem.sibling-elem('box') { |
| 229 | background-color: props.get(vars.$disabled--box-border-color); | 218 | background-color: props.get(vars.$disabled--box-border-color); |
| 230 | } | 219 | } |
| 231 | } | 220 | } |
| 232 | 221 | ||
| 233 | &:indeterminate { | 222 | &:indeterminate { |
| 234 | @include bem.sibling-elem("box") { | 223 | @include bem.sibling-elem('box') { |
| 235 | background-color: props.get(vars.$disabled--box-border-color); | 224 | background-color: props.get(vars.$disabled--box-border-color); |
| 236 | } | 225 | } |
| 237 | } | 226 | } |
diff --git a/src/objects/_checkbox.vars.scss b/src/objects/_checkbox.vars.scss index 8362aa7..278aac8 100644 --- a/src/objects/_checkbox.vars.scss +++ b/src/objects/_checkbox.vars.scss | |||
| @@ -1,92 +1,32 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 7 | $border-width: props.def(--o-checkbox--border-width, props.get(core.$border-width--medium)) !default; |
| 8 | --o-checkbox--border-width, | 8 | $pad-i: props.def(--o-checkbox--pad-i, props.get(core.$size--65)) !default; |
| 9 | props.get(core.$border-width--medium) | 9 | $pad-b: props.def(--o-checkbox--pad-b, props.get(core.$size--65)) !default; |
| 10 | ) !default; | 10 | $rounding: props.def(--o-checkbox--rounding, props.get(core.$rounding--sm)) !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; | ||
| 14 | $spacing-sibling: props.def(--o-checkbox--spacing-sibling, props.get(core.$size--300)) !default; | 11 | $spacing-sibling: props.def(--o-checkbox--spacing-sibling, props.get(core.$size--300)) !default; |
| 15 | 12 | ||
| 16 | $key-focus--border-width: props.def( | 13 | $key-focus--border-width: props.def(--o-checkbox--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 17 | --o-checkbox--key-focus--border-width, | 14 | $key-focus--border-offset: props.def(--o-checkbox--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 18 | props.get(core.$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; |
| 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; | ||
| 28 | 16 | ||
| 29 | $box-border-color: props.def( | 17 | $box-border-color: props.def(--o-checkbox--box-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 30 | --o-checkbox--box-border-color, | 18 | $box-bg-color: props.def(--o-checkbox--box-bg-color, props.get(core.$theme, --base, --75), 'color') !default; |
| 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; | ||
| 39 | 19 | ||
| 40 | $hover--label-color: props.def( | 20 | $hover--label-color: props.def(--o-checkbox--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 41 | --o-checkbox--hover--label-color, | 21 | $hover--box-border-color: props.def(--o-checkbox--hover--box-border-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 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; | ||
| 50 | 22 | ||
| 51 | $accent--box-border-color: props.def( | 23 | $accent--box-border-color: props.def(--o-checkbox--accent--box-border-color, props.get(core.$theme, --accent, --900), 'color') !default; |
| 52 | --o-checkbox--accent--box-border-color, | 24 | $accent--hover--box-border-color: props.def(--o-checkbox--accent--hover--box-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; |
| 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; | ||
| 61 | 25 | ||
| 62 | $disabled--label-color: props.def( | 26 | $disabled--label-color: props.def(--o-checkbox--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 63 | --o-checkbox--disabled--label-color, | 27 | $disabled--box-border-color: props.def(--o-checkbox--disabled--box-border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 64 | props.get(core.$theme, --text-disabled), | 28 | $disabled--box-bg-color: props.def(--o-checkbox--disabled--box-bg-color, props.get(core.$theme, --base, --75), 'color') !default; |
| 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; | ||
| 77 | 29 | ||
| 78 | $key-focus--label-color: props.def( | 30 | $key-focus--label-color: props.def(--o-checkbox--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 79 | --o-checkbox--key-focus--label-color, | 31 | $key-focus--border-color: props.def(--o-checkbox--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 80 | props.get(core.$theme, --focus, --text), | 32 | $key-focus--outline-color: props.def(--o-checkbox--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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 f5584e6..d2ee8c3 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/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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,40 +31,38 @@ | |||
| 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( | 55 | padding-block-start: calc(.5 * props.get(vars.$body--pad-b) - props.get(divider.$margin-b)); |
| 56 | 0.5 * props.get(vars.$body--pad-b) - props.get(divider.$margin-b) | ||
| 57 | ); | ||
| 58 | } | 56 | } |
| 59 | } | 57 | } |
| 60 | 58 | ||
| 61 | @include bem.elem("body") { | 59 | @include bem.elem('body') { |
| 62 | padding: props.get(vars.$body--pad-b) props.get(vars.$body--pad-i); | 60 | padding: props.get(vars.$body--pad-b) props.get(vars.$body--pad-i); |
| 63 | 61 | ||
| 64 | &::before { | 62 | &::before { |
| 65 | display: block; | 63 | display: block; |
| 66 | margin-block: -100em 100em; | 64 | margin-block: -100em 100em; |
| 67 | content: ""; | 65 | content: ''; |
| 68 | } | 66 | } |
| 69 | } | 67 | } |
| 70 | } | 68 | } |
diff --git a/src/objects/_dialog.vars.scss b/src/objects/_dialog.vars.scss index 8650e51..39c47ba 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/props"; | 2 | @use 'pkg:iro-sass/src/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,9 +12,5 @@ $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( | 16 | $border-color: props.def(--o-dialog--border-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 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 f082d12..d81284b 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/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/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 38224d4..a8b0f9f 100644 --- a/src/objects/_divider.vars.scss +++ b/src/objects/_divider.vars.scss | |||
| @@ -1,153 +1,80 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 7 | $vertical--border-width: props.def(--o-divider--vertical--width, props.get(core.$border-width--thin)) !default; |
| 8 | --o-divider--vertical--width, | 8 | $dot--size: props.def(--o-divider--dot--size, props.get(core.$size--50)) !default; |
| 9 | props.get(core.$border-width--thin) | 9 | $letter-spacing: props.def(--o-divider--letter-spacing, 1px) !default; |
| 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; | ||
| 13 | 10 | ||
| 14 | $strong--border-width: props.def( | 11 | $strong--border-width: props.def(--o-divider--strong--border-width, props.get(core.$border-width--thick)) !default; |
| 15 | --o-divider--strong--border-width, | 12 | $strong--label-font-size: props.def(--o-divider--strong--label-font-size, props.get(core.$font-size--100)) !default; |
| 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; | ||
| 22 | 13 | ||
| 23 | $medium--border-width: props.def( | 14 | $medium--border-width: props.def(--o-divider--medium--border-width, props.get(core.$border-width--medium)) !default; |
| 24 | --o-divider--medium--border-width, | 15 | $medium--label-font-size: props.def(--o-divider--medium--label-font-size, props.get(core.$font-size--75)) !default; |
| 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; | ||
| 31 | 16 | ||
| 32 | $quiet--border-width: props.def( | 17 | $quiet--border-width: props.def(--o-divider--quiet--border-width, props.get(core.$border-width--thin)) !default; |
| 33 | --o-divider--quiet--border-width, | 18 | $quiet--label-font-size: props.def(--o-divider--quiet--label-font-size, props.get(core.$font-size--50)) !default; |
| 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; | ||
| 40 | 19 | ||
| 41 | $faint--border-width: props.def( | 20 | $faint--border-width: props.def(--o-divider--faint--border-width, props.get(core.$border-width--thin)) !default; |
| 42 | --o-divider--faint--border-width, | 21 | $faint--label-font-size: props.def(--o-divider--faint--label-font-size, props.get(core.$font-size--50)) !default; |
| 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; | ||
| 49 | 22 | ||
| 50 | $strong--bg-color: props.def( | 23 | $strong--bg-color: props.def(--o-divider--strong--bg-color, props.get(core.$theme, --text), 'color') !default; |
| 51 | --o-divider--strong--bg-color, | 24 | $strong--label-color: props.def(--o-divider--strong--label-color, props.get(core.$theme, --text), 'color') !default; |
| 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; | ||
| 60 | 25 | ||
| 61 | $medium--bg-color: props.def( | 26 | $medium--bg-color: props.def(--o-divider--medium--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 62 | --o-divider--medium--bg-color, | 27 | $medium--label-color: props.def(--o-divider--medium--label-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 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; | ||
| 71 | 28 | ||
| 72 | $quiet--bg-color: props.def( | 29 | $quiet--bg-color: props.def(--o-divider--quiet--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 73 | --o-divider--quiet--bg-color, | 30 | $quiet--label-color: props.def(--o-divider--quiet--label-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 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; | ||
| 82 | 31 | ||
| 83 | $faint--bg-color: props.def( | 32 | $faint--bg-color: props.def(--o-divider--faint--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 84 | --o-divider--faint--bg-color, | 33 | $faint--label-color: props.def(--o-divider--faint--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 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; | ||
| 93 | 34 | ||
| 94 | $vertical--quiet--bg-color: props.def( | 35 | $vertical--quiet--bg-color: props.def(--o-divider--vertical--quiet--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 95 | --o-divider--vertical--quiet--bg-color, | ||
| 96 | props.get(core.$theme, --border-mute), | ||
| 97 | "color" | ||
| 98 | ) !default; | ||
| 99 | 36 | ||
| 100 | $dot--quiet--bg-color: props.def( | 37 | $dot--quiet--bg-color: props.def(--o-divider--dot--quiet--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 101 | --o-divider--dot--quiet--bg-color, | ||
| 102 | props.get(core.$theme, --border-mute), | ||
| 103 | "color" | ||
| 104 | ) !default; | ||
| 105 | 38 | ||
| 106 | $static-themes: props.def(--o-divider, (), "color"); | 39 | $static-themes: props.def(--o-divider, (), 'color'); |
| 107 | 40 | ||
| 108 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 41 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 109 | $button-theme: --static-#{string.slice($theme, 3)}; | 42 | $button-theme: --static-#{string.slice($theme, 3)}; |
| 110 | 43 | ||
| 111 | $static-themes: props.merge( | 44 | $static-themes: props.merge($static-themes, ( |
| 112 | $static-themes, | 45 | $button-theme: ( |
| 113 | ( | 46 | --strong: ( |
| 114 | $button-theme: ( | 47 | --bg: props.get(core.$transparent-colors, $theme, --800), |
| 115 | --strong: ( | 48 | --label: props.get(core.$transparent-colors, $theme, --900), |
| 116 | --bg: props.get(core.$transparent-colors, $theme, --800), | 49 | ), |
| 117 | --label: props.get(core.$transparent-colors, $theme, --900), | 50 | --medium: ( |
| 118 | ), | 51 | --bg: props.get(core.$transparent-colors, $theme, --300), |
| 119 | --medium: ( | 52 | --label: props.get(core.$transparent-colors, $theme, --500), |
| 120 | --bg: props.get(core.$transparent-colors, $theme, --300), | 53 | ), |
| 121 | --label: props.get(core.$transparent-colors, $theme, --500), | 54 | --quiet: ( |
| 122 | ), | 55 | --bg: props.get(core.$transparent-colors, $theme, --300), |
| 123 | --quiet: ( | 56 | --label: props.get(core.$transparent-colors, $theme, --500), |
| 124 | --bg: props.get(core.$transparent-colors, $theme, --300), | 57 | ), |
| 125 | --label: props.get(core.$transparent-colors, $theme, --500), | 58 | --faint: ( |
| 126 | ), | 59 | --bg: props.get(core.$transparent-colors, $theme, --200), |
| 127 | --faint: ( | 60 | --label: props.get(core.$transparent-colors, $theme, --400), |
| 128 | --bg: props.get(core.$transparent-colors, $theme, --200), | 61 | ), |
| 129 | --label: props.get(core.$transparent-colors, $theme, --400), | ||
| 130 | ), | ||
| 131 | ), | ||
| 132 | ) | 62 | ) |
| 133 | ); | 63 | )); |
| 134 | } | 64 | } |
| 135 | 65 | ||
| 136 | $themes-config: ( | 66 | $themes-config: ( |
| 137 | accent: --accent, | 67 | accent: --accent, |
| 138 | negative: --negative, | 68 | negative: --negative, |
| 139 | ) !default; | 69 | ) !default; |
| 140 | 70 | ||
| 141 | $themes: props.def(--o-divider, (), "color"); | 71 | $themes: props.def(--o-divider, (), 'color'); |
| 142 | 72 | ||
| 143 | @each $theme, $key in $themes-config { | 73 | @each $theme, $key in $themes-config { |
| 144 | $themes: props.merge( | 74 | $themes: props.merge($themes, ( |
| 145 | $themes, | 75 | --#{$theme}: ( |
| 146 | ( | 76 | --bg: props.get(core.$theme, $key, --800), |
| 147 | --#{$theme}: ( | 77 | --label: props.get(core.$theme, $key, --1000), |
| 148 | --bg: props.get(core.$theme, $key, --800), | ||
| 149 | --label: props.get(core.$theme, $key, --1000), | ||
| 150 | ) | ||
| 151 | ) | 78 | ) |
| 152 | ); | 79 | )); |
| 153 | } | 80 | } |
diff --git a/src/objects/_emoji.scss b/src/objects/_emoji.scss index 0257b32..655e662 100644 --- a/src/objects/_emoji.scss +++ b/src/objects/_emoji.scss | |||
| @@ -1,55 +1,49 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 24 | margin: calc(-1 * props.get(vars.$pad) - .5 * (props.get(vars.$size) - props.get(icon.$size))); |
| 25 | -1 * props.get(vars.$pad) - 0.5 * (props.get(vars.$size) - props.get(icon.$size)) | ||
| 26 | ); | ||
| 27 | vertical-align: props.get(icon.$valign); | 25 | vertical-align: props.get(icon.$valign); |
| 28 | } | 26 | } |
| 29 | 27 | ||
| 30 | @each $mod, $size, $valign in vars.$sizes { | 28 | @each $mod, $size, $valign in vars.$sizes { |
| 31 | @include bem.modifier($mod) { | 29 | @include bem.modifier($mod) { |
| 32 | inline-size: props.get($size); | 30 | inline-size: props.get($size); |
| 33 | block-size: props.get($size); | 31 | block-size: props.get($size); |
| 34 | vertical-align: props.get($valign); | 32 | vertical-align: props.get($valign); |
| 35 | 33 | ||
| 36 | @include bem.modifier("icon") { | 34 | @include bem.modifier('icon') { |
| 37 | margin: calc( | 35 | margin: calc(-1 * props.get(vars.$pad) - .5 * (props.get($size) - props.get(icon.$size))); |
| 38 | -1 * props.get(vars.$pad) - 0.5 * (props.get($size) - props.get(icon.$size)) | ||
| 39 | ); | ||
| 40 | } | 36 | } |
| 41 | } | 37 | } |
| 42 | } | 38 | } |
| 43 | 39 | ||
| 44 | @include bem.modifier("zoomable") { | 40 | @include bem.modifier('zoomable') { |
| 45 | border-radius: calc(props.get(vars.$rounding) / props.get(vars.$zoom)); | 41 | border-radius: calc(props.get(vars.$rounding) / props.get(vars.$zoom)); |
| 46 | transition: | 42 | transition: transform .2s ease, background-color .2s ease; |
| 47 | transform 0.2s ease, | ||
| 48 | background-color 0.2s ease; | ||
| 49 | 43 | ||
| 50 | &:hover { | 44 | &:hover { |
| 51 | background-color: props.get(vars.$bg-color); | 45 | background-color: props.get(vars.$bg-color); |
| 52 | transform: scale(props.get(vars.$zoom)); | 46 | transform: scale(props.get(vars.$zoom)); |
| 53 | } | 47 | } |
| 54 | } | 48 | } |
| 55 | } | 49 | } |
diff --git a/src/objects/_emoji.vars.scss b/src/objects/_emoji.vars.scss index 1c2a0e2..cf940cf 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/props"; | 2 | @use 'pkg:iro-sass/src/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, 0.3em) !default; | 6 | $pad: props.def(--o-emoji--pad, .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, -0.25em) !default; | 9 | $valign: props.def(--o-emoji--valign, -.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, -0.45em) !default; | 12 | $valign--125: props.def(--o-emoji--125--valign, -.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, -0.65em) !default; | 15 | $valign--150: props.def(--o-emoji--150--valign, -.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 fb664b4..23875f5 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/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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 4588e70..5bd4547 100644 --- a/src/objects/_field-label.vars.scss +++ b/src/objects/_field-label.vars.scss | |||
| @@ -1,34 +1,12 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/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( | 6 | $label-font-size: props.def(--o-field-label--label-font-size, props.get(core.$font-size--75)) !default; |
| 7 | --o-field-label--label-font-size, | 7 | $hint-font-size: props.def(--o-field-label--hint-font-size, props.get(core.$font-size--75)) !default; |
| 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; | ||
| 14 | 8 | ||
| 15 | $label-color: props.def( | 9 | $label-color: props.def(--o-field-label--label-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 16 | --o-field-label--label-color, | 10 | $hint-color: props.def(--o-field-label--hint-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 17 | props.get(core.$theme, --text-mute), | 11 | $error-hint-color: props.def(--o-field-label--error-hint-color, props.get(core.$theme, --negative, --900), 'color') !default; |
| 18 | "color" | 12 | $disabled-color: props.def(--o-field-label--disabled-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 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 d3e37b3..04b9bdf 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/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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 936932d..3de3406 100644 --- a/src/objects/_figure.vars.scss +++ b/src/objects/_figure.vars.scss | |||
| @@ -1,17 +1,9 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/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( | 8 | $text-color: props.def(--o-figure--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 9 | --o-figure--text-color, | 9 | $border-color: props.def(--o-figure--border-color, props.get(core.$theme, --border), 'color') !default; |
| 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 87a6269..0e8392e 100644 --- a/src/objects/_heading.scss +++ b/src/objects/_heading.scss | |||
| @@ -1,70 +1,64 @@ | |||
| 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/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/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( | 30 | background-image: linear-gradient(to top, |
| 31 | to top, | 31 | transparent props.get(vars.$bg-start), |
| 32 | transparent props.get(vars.$bg-start), | 32 | props.get(vars.$bg-color) props.get(vars.$bg-start), |
| 33 | props.get(vars.$bg-color) props.get(vars.$bg-start), | 33 | props.get(vars.$bg-color) props.get(vars.$bg-end), |
| 34 | props.get(vars.$bg-color) props.get(vars.$bg-end), | 34 | transparent props.get(vars.$bg-end)); |
| 35 | transparent props.get(vars.$bg-end) | ||
| 36 | ); | ||
| 37 | } | 35 | } |
| 38 | 36 | ||
| 39 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, | 37 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, $feature-settings, $text-transform, $text-color in vars.$sizes { |
| 40 | $feature-settings, $text-transform, $text-color in vars.$sizes | ||
| 41 | { | ||
| 42 | @include bem.modifier($mod) { | 38 | @include bem.modifier($mod) { |
| 43 | font-family: props.get($font-family); | 39 | font-family: props.get($font-family); |
| 44 | font-size: props.get($font-size); | 40 | font-size: props.get($font-size); |
| 45 | font-weight: props.get($font-weight); | 41 | font-weight: props.get($font-weight); |
| 46 | font-feature-settings: props.get($feature-settings); | 42 | font-feature-settings: props.get($feature-settings); |
| 47 | line-height: props.get($line-height); | 43 | line-height: props.get($line-height); |
| 48 | color: props.get($text-color); | 44 | color: props.get($text-color); |
| 49 | text-transform: props.get($text-transform); | 45 | text-transform: props.get($text-transform); |
| 50 | letter-spacing: props.get($letter-spacing); | 46 | letter-spacing: props.get($letter-spacing); |
| 51 | } | 47 | } |
| 52 | } | 48 | } |
| 53 | 49 | ||
| 54 | @include bem.modifier("display") { | 50 | @include bem.modifier('display') { |
| 55 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, | 51 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, $feature-settings, $text-transform, $text-color in vars.$display--sizes { |
| 56 | $feature-settings, $text-transform, $text-color in vars.$display--sizes | ||
| 57 | { | ||
| 58 | @include bem.modifier($mod) { | 52 | @include bem.modifier($mod) { |
| 59 | font-family: props.get($font-family); | 53 | font-family: props.get($font-family); |
| 60 | font-size: props.get($font-size); | 54 | font-size: props.get($font-size); |
| 61 | font-weight: props.get($font-weight); | 55 | font-weight: props.get($font-weight); |
| 62 | font-feature-settings: props.get($feature-settings); | 56 | font-feature-settings: props.get($feature-settings); |
| 63 | line-height: props.get($line-height); | 57 | line-height: props.get($line-height); |
| 64 | color: props.get($text-color); | 58 | color: props.get($text-color); |
| 65 | text-transform: props.get($text-transform); | 59 | text-transform: props.get($text-transform); |
| 66 | letter-spacing: props.get($letter-spacing); | 60 | letter-spacing: props.get($letter-spacing); |
| 67 | transform: translateX(props.get(vars.$offset)); | 61 | transform: translateX(props.get(vars.$offset)); |
| 68 | } | 62 | } |
| 69 | } | 63 | } |
| 70 | } | 64 | } |
| @@ -79,26 +73,18 @@ | |||
| 79 | } | 73 | } |
| 80 | } | 74 | } |
| 81 | 75 | ||
| 82 | @include bem.elem("highlight") { | 76 | @include bem.elem('highlight') { |
| 83 | background-image: linear-gradient( | 77 | background-image: linear-gradient(to top, |
| 84 | to top, | 78 | transparent props.get(vars.$bg-start), |
| 85 | transparent props.get(vars.$bg-start), | 79 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-start), |
| 86 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-start), | 80 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-end), |
| 87 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-end), | 81 | transparent props.get(vars.$bg-end)); |
| 88 | transparent props.get(vars.$bg-end) | ||
| 89 | ); | ||
| 90 | } | 82 | } |
| 91 | 83 | ||
| 92 | @include bem.modifier("display") { | 84 | @include bem.modifier('display') { |
| 93 | @each $mod, $value in vars.$sizes { | 85 | @each $mod, $value in vars.$sizes { |
| 94 | @include bem.modifier($mod) { | 86 | @include bem.modifier($mod) { |
| 95 | color: props.get( | 87 | color: props.get(vars.$static-themes, $theme, --display, --#{$mod}, --text-color); |
| 96 | vars.$static-themes, | ||
| 97 | $theme, | ||
| 98 | --display, | ||
| 99 | --#{$mod}, | ||
| 100 | --text-color | ||
| 101 | ); | ||
| 102 | } | 88 | } |
| 103 | } | 89 | } |
| 104 | } | 90 | } |
diff --git a/src/objects/_heading.vars.scss b/src/objects/_heading.vars.scss index 8943622..4267b8c 100644 --- a/src/objects/_heading.vars.scss +++ b/src/objects/_heading.vars.scss | |||
| @@ -1,472 +1,208 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../core.vars" as core; | 4 | @use '../core.vars' as core; |
| 5 | 5 | ||
| 6 | $offset: props.def(--o-heading--offset, -0.02em) !default; | 6 | $offset: props.def(--o-heading--offset, -.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( | 10 | $text-color: props.def(--o-heading--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 11 | --o-heading--text-color, | 11 | $bg-color: props.def(--o-heading--bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 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; | ||
| 16 | 12 | ||
| 17 | $text-color--xxl: props.def( | 13 | $text-color--xxl: props.def(--o-heading--xxl--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 18 | --o-heading--xxl--text-color, | 14 | $text-color--xl: props.def(--o-heading--xl--text-color, props.get($text-color--xxl), 'color') !default; |
| 19 | props.get(core.$theme, --heading), | 15 | $text-color--lg: props.def(--o-heading--lg--text-color, props.get($text-color--xxl), 'color') !default; |
| 20 | "color" | 16 | $text-color--md: props.def(--o-heading--md--text-color, props.get($text-color--xxl), 'color') !default; |
| 21 | ) !default; | 17 | $text-color--sm: props.def(--o-heading--sm--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 22 | $text-color--xl: props.def( | 18 | $text-color--xs: props.def(--o-heading--xs--text-color, props.get($text-color--sm), 'color') !default; |
| 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; | ||
| 47 | 19 | ||
| 48 | $display--text-color--xxl: props.def( | 20 | $display--text-color--xxl: props.def(--o-heading--display--xxl--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 49 | --o-heading--display--xxl--text-color, | 21 | $display--text-color--xl: props.def(--o-heading--display--xl--text-color, props.get($display--text-color--xxl), 'color') !default; |
| 50 | props.get(core.$theme, --heading), | 22 | $display--text-color--lg: props.def(--o-heading--display--lg--text-color, props.get($display--text-color--xxl), 'color') !default; |
| 51 | "color" | 23 | $display--text-color--md: props.def(--o-heading--display--md--text-color, props.get($display--text-color--xxl), 'color') !default; |
| 52 | ) !default; | 24 | $display--text-color--sm: props.def(--o-heading--display--sm--text-color, props.get($display--text-color--xxl), 'color') !default; |
| 53 | $display--text-color--xl: props.def( | 25 | $display--text-color--xs: props.def(--o-heading--display--xs--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 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; | ||
| 78 | 26 | ||
| 79 | $bg-start: props.def(--o-heading--bg-start, 0.05em) !default; | 27 | $bg-start: props.def(--o-heading--bg-start, .05em) !default; |
| 80 | $bg-end: props.def(--o-heading--bg-end, 0.5em) !default; | 28 | $bg-end: props.def(--o-heading--bg-end, .5em) !default; |
| 81 | 29 | ||
| 82 | $font-family: props.def(--o-heading--font-family, props.get(core.$font--standard--family)) !default; | 30 | $font-family: props.def(--o-heading--font-family, props.get(core.$font--standard--family)) !default; |
| 83 | $line-height: props.def( | 31 | $line-height: props.def(--o-heading--line-height, props.get(core.$font--standard--line-height)) !default; |
| 84 | --o-heading--line-height, | 32 | $font-weight: props.def(--o-heading--font-weight, bold) !default; |
| 85 | props.get(core.$font--standard--line-height) | 33 | $feature-settings: props.def(--o-heading--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 86 | ) !default; | 34 | $text-transform: props.def(--o-heading--text-transform, none) !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; | ||
| 93 | 35 | ||
| 94 | $font-family--xxl: props.def( | 36 | $font-family--xxl: props.def(--o-heading--xxl--font-family, props.get(core.$font--standard--family)) !default; |
| 95 | --o-heading--xxl--font-family, | 37 | $line-height--xxl: props.def(--o-heading--xxl--line-height, props.get(core.$font--standard--line-height)) !default; |
| 96 | props.get(core.$font--standard--family) | 38 | $font-size--xxl: props.def(--o-heading--xxl--font-size, props.get(core.$font-size--300)) !default; |
| 97 | ) !default; | 39 | $font-weight--xxl: props.def(--o-heading--xxl--font-weight, bold) !default; |
| 98 | $line-height--xxl: props.def( | 40 | $letter-spacing--xxl: props.def(--o-heading--xxl--letter-spacing, 0) !default; |
| 99 | --o-heading--xxl--line-height, | 41 | $feature-settings--xxl: props.def(--o-heading--xxl--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 100 | props.get(core.$font--standard--line-height) | 42 | $text-transform--xxl: props.def(--o-heading--xxl--text-transform, none) !default; |
| 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; | ||
| 110 | 43 | ||
| 111 | $font-family--xl: props.def( | 44 | $font-family--xl: props.def(--o-heading--xl--font-family, props.get(core.$font--standard--family)) !default; |
| 112 | --o-heading--xl--font-family, | 45 | $line-height--xl: props.def(--o-heading--xl--line-height, props.get(core.$font--standard--line-height)) !default; |
| 113 | props.get(core.$font--standard--family) | 46 | $font-size--xl: props.def(--o-heading--xl--font-size, props.get(core.$font-size--200)) !default; |
| 114 | ) !default; | 47 | $font-weight--xl: props.def(--o-heading--xl--font-weight, bold) !default; |
| 115 | $line-height--xl: props.def( | 48 | $letter-spacing--xl: props.def(--o-heading--xl--letter-spacing, 0) !default; |
| 116 | --o-heading--xl--line-height, | 49 | $feature-settings--xl: props.def(--o-heading--xl--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 117 | props.get(core.$font--standard--line-height) | 50 | $text-transform--xl: props.def(--o-heading--xl--text-transform, none) !default; |
| 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; | ||
| 127 | 51 | ||
| 128 | $font-family--lg: props.def( | 52 | $font-family--lg: props.def(--o-heading--lg--font-family, props.get(core.$font--standard--family)) !default; |
| 129 | --o-heading--lg--font-family, | 53 | $line-height--lg: props.def(--o-heading--lg--line-height, props.get(core.$font--standard--line-height)) !default; |
| 130 | props.get(core.$font--standard--family) | 54 | $font-size--lg: props.def(--o-heading--lg--font-size, props.get(core.$font-size--150)) !default; |
| 131 | ) !default; | 55 | $font-weight--lg: props.def(--o-heading--lg--font-weight, bold) !default; |
| 132 | $line-height--lg: props.def( | 56 | $letter-spacing--lg: props.def(--o-heading--lg--letter-spacing, 0) !default; |
| 133 | --o-heading--lg--line-height, | 57 | $feature-settings--lg: props.def(--o-heading--lg--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 134 | props.get(core.$font--standard--line-height) | 58 | $text-transform--lg: props.def(--o-heading--lg--text-transform, none) !default; |
| 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; | ||
| 144 | 59 | ||
| 145 | $font-family--md: props.def( | 60 | $font-family--md: props.def(--o-heading--md--font-family, props.get(core.$font--standard--family)) !default; |
| 146 | --o-heading--md--font-family, | 61 | $line-height--md: props.def(--o-heading--md--line-height, props.get(core.$font--standard--line-height)) !default; |
| 147 | props.get(core.$font--standard--family) | 62 | $font-size--md: props.def(--o-heading--md--font-size, props.get(core.$font-size--100)) !default; |
| 148 | ) !default; | 63 | $font-weight--md: props.def(--o-heading--md--font-weight, bold) !default; |
| 149 | $line-height--md: props.def( | 64 | $letter-spacing--md: props.def(--o-heading--md--letter-spacing, 0) !default; |
| 150 | --o-heading--md--line-height, | 65 | $feature-settings--md: props.def(--o-heading--md--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 151 | props.get(core.$font--standard--line-height) | 66 | $text-transform--md: props.def(--o-heading--md--text-transform, none) !default; |
| 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; | ||
| 161 | 67 | ||
| 162 | $font-family--sm: props.def( | 68 | $font-family--sm: props.def(--o-heading--sm--font-family, props.get(core.$font--standard--family)) !default; |
| 163 | --o-heading--sm--font-family, | 69 | $line-height--sm: props.def(--o-heading--sm--line-height, props.get(core.$font--standard--line-height)) !default; |
| 164 | props.get(core.$font--standard--family) | 70 | $font-size--sm: props.def(--o-heading--sm--font-size, props.get(core.$font-size--100)) !default; |
| 165 | ) !default; | 71 | $font-weight--sm: props.def(--o-heading--sm--font-weight, normal) !default; |
| 166 | $line-height--sm: props.def( | 72 | $letter-spacing--sm: props.def(--o-heading--sm--letter-spacing, 0) !default; |
| 167 | --o-heading--sm--line-height, | 73 | $feature-settings--sm: props.def(--o-heading--sm--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 168 | props.get(core.$font--standard--line-height) | 74 | $text-transform--sm: props.def(--o-heading--sm--text-transform, none) !default; |
| 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; | ||
| 178 | 75 | ||
| 179 | $font-family--xs: props.def( | 76 | $font-family--xs: props.def(--o-heading--xs--font-family, props.get(core.$font--standard--family)) !default; |
| 180 | --o-heading--xs--font-family, | 77 | $line-height--xs: props.def(--o-heading--xs--line-height, props.get(core.$font--standard--line-height)) !default; |
| 181 | props.get(core.$font--standard--family) | 78 | $font-size--xs: props.def(--o-heading--xs--font-size, props.get(core.$font-size--50)) !default; |
| 182 | ) !default; | 79 | $font-weight--xs: props.def(--o-heading--xs--font-weight, normal) !default; |
| 183 | $line-height--xs: props.def( | 80 | $letter-spacing--xs: props.def(--o-heading--xs--letter-spacing, 1px) !default; |
| 184 | --o-heading--xs--line-height, | 81 | $feature-settings--xs: props.def(--o-heading--xs--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 185 | props.get(core.$font--standard--line-height) | 82 | $text-transform--xs: props.def(--o-heading--xs--text-transform, none) !default; |
| 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; | ||
| 195 | 83 | ||
| 196 | $sizes: ( | 84 | $sizes: ( |
| 197 | "xs" $font-family--xs $line-height--xs $font-size--xs $font-weight--xs $letter-spacing--xs | 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, |
| 198 | $feature-settings--xs $text-transform--xs $text-color--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, |
| 199 | "sm" $font-family--sm $line-height--sm $font-size--sm $font-weight--sm $letter-spacing--sm | 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, |
| 200 | $feature-settings--sm $text-transform--sm $text-color--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, |
| 201 | "md" $font-family--md $line-height--md $font-size--md $font-weight--md $letter-spacing--md | 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, |
| 202 | $feature-settings--md $text-transform--md $text-color--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, |
| 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 | ||
| 209 | ) !default; | 91 | ) !default; |
| 210 | 92 | ||
| 211 | $display--font-family--xxl: props.def( | 93 | $display--font-family--xxl: props.def(--o-heading--display--xxl--font-family, props.get(core.$font--headline--family)) !default; |
| 212 | --o-heading--display--xxl--font-family, | 94 | $display--line-height--xxl: props.def(--o-heading--display--xxl--line-height, props.get(core.$font--headline--line-height)) !default; |
| 213 | props.get(core.$font--headline--family) | 95 | $display--font-size--xxl: props.def(--o-heading--display--xxl--font-size, props.get(core.$font-size--1100)) !default; |
| 214 | ) !default; | 96 | $display--font-weight--xxl: props.def(--o-heading--display--xxl--font-weight, props.get(core.$font--headline--weight)) !default; |
| 215 | $display--line-height--xxl: props.def( | 97 | $display--letter-spacing--xxl: props.def(--o-heading--display--xxl--letter-spacing, 0) !default; |
| 216 | --o-heading--display--xxl--line-height, | 98 | $display--feature-settings--xxl: props.def(--o-heading--display--xxl--feature-settings, props.get(core.$font--headline--feature-settings)) !default; |
| 217 | props.get(core.$font--headline--line-height) | 99 | $display--text-transform--xxl: props.def(--o-heading--display--xxl--text-transform, none) !default; |
| 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; | ||
| 233 | 100 | ||
| 234 | $display--font-family--xl: props.def( | 101 | $display--font-family--xl: props.def(--o-heading--display--xl--font-family, props.get(core.$font--headline--family)) !default; |
| 235 | --o-heading--display--xl--font-family, | 102 | $display--line-height--xl: props.def(--o-heading--display--xl--line-height, props.get(core.$font--headline--line-height)) !default; |
| 236 | props.get(core.$font--headline--family) | 103 | $display--font-size--xl: props.def(--o-heading--display--xl--font-size, props.get(core.$font-size--700)) !default; |
| 237 | ) !default; | 104 | $display--font-weight--xl: props.def(--o-heading--display--xl--font-weight, props.get(core.$font--headline--weight)) !default; |
| 238 | $display--line-height--xl: props.def( | 105 | $display--letter-spacing--xl: props.def(--o-heading--display--xl--letter-spacing, 0) !default; |
| 239 | --o-heading--display--xl--line-height, | 106 | $display--feature-settings--xl: props.def(--o-heading--display--xl--feature-settings, props.get(core.$font--headline--feature-settings)) !default; |
| 240 | props.get(core.$font--headline--line-height) | 107 | $display--text-transform--xl: props.def(--o-heading--display--xl--text-transform, none) !default; |
| 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; | ||
| 256 | 108 | ||
| 257 | $display--font-family--lg: props.def( | 109 | $display--font-family--lg: props.def(--o-heading--display--lg--font-family, props.get(core.$font--headline--family)) !default; |
| 258 | --o-heading--display--lg--font-family, | 110 | $display--line-height--lg: props.def(--o-heading--display--lg--line-height, props.get(core.$font--headline--line-height)) !default; |
| 259 | props.get(core.$font--headline--family) | 111 | $display--font-size--lg: props.def(--o-heading--display--lg--font-size, props.get(core.$font-size--300)) !default; |
| 260 | ) !default; | 112 | $display--font-weight--lg: props.def(--o-heading--display--lg--font-weight, props.get(core.$font--headline--weight)) !default; |
| 261 | $display--line-height--lg: props.def( | 113 | $display--letter-spacing--lg: props.def(--o-heading--display--lg--letter-spacing, 1px) !default; |
| 262 | --o-heading--display--lg--line-height, | 114 | $display--feature-settings--lg: props.def(--o-heading--display--lg--feature-settings, props.get(core.$font--headline--feature-settings)) !default; |
| 263 | props.get(core.$font--headline--line-height) | 115 | $display--text-transform--lg: props.def(--o-heading--display--lg--text-transform, uppercase) !default; |
| 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; | ||
| 282 | 116 | ||
| 283 | $display--font-family--md: props.def( | 117 | $display--font-family--md: props.def(--o-heading--display--md--font-family, props.get(core.$font--standard--family)) !default; |
| 284 | --o-heading--display--md--font-family, | 118 | $display--line-height--md: props.def(--o-heading--display--md--line-height, props.get(core.$font--standard--line-height)) !default; |
| 285 | props.get(core.$font--standard--family) | 119 | $display--font-size--md: props.def(--o-heading--display--md--font-size, props.get(core.$font-size--150)) !default; |
| 286 | ) !default; | 120 | $display--font-weight--md: props.def(--o-heading--display--md--font-weight, bold) !default; |
| 287 | $display--line-height--md: props.def( | 121 | $display--letter-spacing--md: props.def(--o-heading--display--md--letter-spacing, 0) !default; |
| 288 | --o-heading--display--md--line-height, | 122 | $display--feature-settings--md: props.def(--o-heading--display--md--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 289 | props.get(core.$font--standard--line-height) | 123 | $display--text-transform--md: props.def(--o-heading--display--md--text-transform, none) !default; |
| 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; | ||
| 302 | 124 | ||
| 303 | $display--font-family--sm: props.def( | 125 | $display--font-family--sm: props.def(--o-heading--display--sm--font-family, props.get(core.$font--standard--family)) !default; |
| 304 | --o-heading--display--sm--font-family, | 126 | $display--line-height--sm: props.def(--o-heading--display--sm--line-height, props.get(core.$font--standard--line-height)) !default; |
| 305 | props.get(core.$font--standard--family) | 127 | $display--font-size--sm: props.def(--o-heading--display--sm--font-size, props.get(core.$font-size--100)) !default; |
| 306 | ) !default; | 128 | $display--font-weight--sm: props.def(--o-heading--display--sm--font-weight, bold) !default; |
| 307 | $display--line-height--sm: props.def( | 129 | $display--letter-spacing--sm: props.def(--o-heading--display--sm--letter-spacing, 0) !default; |
| 308 | --o-heading--display--sm--line-height, | 130 | $display--feature-settings--sm: props.def(--o-heading--display--sm--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 309 | props.get(core.$font--standard--line-height) | 131 | $display--text-transform--sm: props.def(--o-heading--display--sm--text-transform, none) !default; |
| 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; | ||
| 322 | 132 | ||
| 323 | $display--font-family--xs: props.def( | 133 | $display--font-family--xs: props.def(--o-heading--display--xs--font-family, props.get(core.$font--standard--family)) !default; |
| 324 | --o-heading--display--xs--font-family, | 134 | $display--line-height--xs: props.def(--o-heading--display--xs--line-height, props.get(core.$font--standard--line-height)) !default; |
| 325 | props.get(core.$font--standard--family) | 135 | $display--font-size--xs: props.def(--o-heading--display--xs--font-size, props.get(core.$font-size--50)) !default; |
| 326 | ) !default; | 136 | $display--font-weight--xs: props.def(--o-heading--display--xs--font-weight, normal) !default; |
| 327 | $display--line-height--xs: props.def( | 137 | $display--letter-spacing--xs: props.def(--o-heading--display--xs--letter-spacing, 1px) !default; |
| 328 | --o-heading--display--xs--line-height, | 138 | $display--feature-settings--xs: props.def(--o-heading--display--xs--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 329 | props.get(core.$font--standard--line-height) | 139 | $display--text-transform--xs: props.def(--o-heading--display--xs--text-transform, none) !default; |
| 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; | ||
| 342 | 140 | ||
| 343 | $display--font-size--xxl--md: props.def( | 141 | $display--font-size--xxl--md: props.def(--o-heading--display--xxl--font-size, props.get(core.$font-size--900), 'md') !default; |
| 344 | --o-heading--display--xxl--font-size, | 142 | $display--font-size--xl--md: props.def(--o-heading--display--xl--font-size, props.get(core.$font-size--600), 'md') !default; |
| 345 | props.get(core.$font-size--900), | 143 | $display--font-size--lg--md: props.def(--o-heading--display--lg--font-size, props.get(core.$font-size--200), 'md') !default; |
| 346 | "md" | 144 | $display--font-size--md--md: props.def(--o-heading--display--md--font-size, props.get(core.$font-size--100), 'md') !default; |
| 347 | ) !default; | 145 | $display--font-size--sm--md: props.def(--o-heading--display--sm--font-size, props.get(core.$font-size--75), 'md') !default; |
| 348 | $display--font-size--xl--md: props.def( | 146 | $display--font-size--xs--md: props.def(--o-heading--display--xs--font-size, props.get(core.$font-size--50), 'md') !default; |
| 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; | ||
| 373 | 147 | ||
| 374 | $display--sizes: ( | 148 | $display--sizes: ( |
| 375 | "xs" $display--font-family--xs $display--line-height--xs $display--font-size--xs | 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, |
| 376 | $display--font-weight--xs $display--letter-spacing--xs $display--feature-settings--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, |
| 377 | $display--text-transform--xs $display--text-color--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, |
| 378 | "sm" $display--font-family--sm $display--line-height--sm $display--font-size--sm | 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, |
| 379 | $display--font-weight--sm $display--letter-spacing--sm $display--feature-settings--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, |
| 380 | $display--text-transform--sm $display--text-color--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, |
| 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 | ||
| 393 | ) !default; | 155 | ) !default; |
| 394 | 156 | ||
| 395 | $static-themes: props.def(--o-heading, (), "color"); | 157 | $static-themes: props.def(--o-heading, (), 'color'); |
| 396 | 158 | ||
| 397 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 159 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 398 | $heading-theme: --static-#{string.slice($theme, 3)}; | 160 | $heading-theme: --static-#{string.slice($theme, 3)}; |
| 399 | 161 | ||
| 400 | $static-themes: props.merge( | 162 | $static-themes: props.merge($static-themes, ( |
| 401 | $static-themes, | 163 | $heading-theme: ( |
| 402 | ( | 164 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 403 | $heading-theme: ( | 165 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 404 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | ||
| 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 | 166 | ||
| 425 | --display: ( | 167 | --xxl: ( |
| 426 | --xxl: ( | 168 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 427 | --text-color: props.get( | 169 | ), |
| 428 | core.$transparent-colors, | 170 | --xl: ( |
| 429 | $theme, | 171 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 430 | --900 | 172 | ), |
| 431 | ), | 173 | --lg: ( |
| 432 | ), | 174 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 433 | --xl: ( | 175 | ), |
| 434 | --text-color: props.get( | 176 | --md: ( |
| 435 | core.$transparent-colors, | 177 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 436 | $theme, | 178 | ), |
| 437 | --900 | 179 | --sm: ( |
| 438 | ), | 180 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 439 | ), | 181 | ), |
| 440 | --lg: ( | 182 | --xs: ( |
| 441 | --text-color: props.get( | 183 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 442 | core.$transparent-colors, | 184 | ), |
| 443 | $theme, | 185 | |
| 444 | --900 | 186 | --display: ( |
| 445 | ), | 187 | --xxl: ( |
| 446 | ), | 188 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 447 | --md: ( | 189 | ), |
| 448 | --text-color: props.get( | 190 | --xl: ( |
| 449 | core.$transparent-colors, | 191 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 450 | $theme, | 192 | ), |
| 451 | --900 | 193 | --lg: ( |
| 452 | ), | 194 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 453 | ), | 195 | ), |
| 454 | --sm: ( | 196 | --md: ( |
| 455 | --text-color: props.get( | 197 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 456 | core.$transparent-colors, | 198 | ), |
| 457 | $theme, | 199 | --sm: ( |
| 458 | --900 | 200 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 459 | ), | 201 | ), |
| 460 | ), | 202 | --xs: ( |
| 461 | --xs: ( | 203 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 462 | --text-color: props.get( | ||
| 463 | core.$transparent-colors, | ||
| 464 | $theme, | ||
| 465 | --500 | ||
| 466 | ), | ||
| 467 | ), | ||
| 468 | ), | ||
| 469 | ), | 204 | ), |
| 205 | ), | ||
| 470 | ) | 206 | ) |
| 471 | ); | 207 | )); |
| 472 | } | 208 | } |
diff --git a/src/objects/_icon.scss b/src/objects/_icon.scss index 7baa3f8..1d046e0 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/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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 4fdbfae..2a37212 100644 --- a/src/objects/_icon.vars.scss +++ b/src/objects/_icon.vars.scss | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/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, -0.18em) !default; | 5 | $valign: props.def(--o-icon--valign, -.18em) !default; |
diff --git a/src/objects/_lightbox.scss b/src/objects/_lightbox.scss index 2b4abad..a173d57 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/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/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,79 +50,80 @@ | |||
| 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: props.get(vars.$controls--shadow-x) props.get(vars.$controls--shadow-y) | 63 | box-shadow: |
| 64 | props.get(vars.$controls--shadow-blur) props.get(vars.$controls--shadow-grow) | 64 | props.get(vars.$controls--shadow-x) |
| 65 | props.get(vars.$controls--shadow-y) | ||
| 66 | props.get(vars.$controls--shadow-blur) | ||
| 67 | props.get(vars.$controls--shadow-grow) | ||
| 65 | props.get(vars.$controls--shadow-color); | 68 | props.get(vars.$controls--shadow-color); |
| 66 | } | 69 | } |
| 67 | 70 | ||
| 68 | @include bem.elem("info") { | 71 | @include bem.elem('info') { |
| 69 | inset-inline-start: props.get(vars.$pad); | 72 | inset-inline-start: props.get(vars.$pad); |
| 70 | font-variant-numeric: tabular-nums; | 73 | font-variant-numeric: tabular-nums; |
| 71 | } | 74 | } |
| 72 | 75 | ||
| 73 | @include bem.elem("controls") { | 76 | @include bem.elem('controls') { |
| 74 | inset-inline-end: props.get(vars.$pad); | 77 | inset-inline-end: props.get(vars.$pad); |
| 75 | } | 78 | } |
| 76 | 79 | ||
| 77 | @include bem.elem("img") { | 80 | @include bem.elem('img') { |
| 78 | position: relative; | 81 | position: relative; |
| 79 | z-index: 10; | 82 | z-index: 10; |
| 80 | display: block; | 83 | display: block; |
| 81 | grid-area: image; | 84 | grid-area: image; |
| 82 | inline-size: auto; | 85 | inline-size: auto; |
| 83 | min-inline-size: 0; | 86 | min-inline-size: 0; |
| 84 | max-inline-size: 100%; | 87 | max-inline-size: 100%; |
| 85 | block-size: auto; | 88 | block-size: auto; |
| 86 | min-block-size: 0; | 89 | min-block-size: 0; |
| 87 | max-block-size: 100%; | 90 | max-block-size: 100%; |
| 88 | user-select: none; | 91 | user-select: none; |
| 89 | object-fit: contain; | 92 | object-fit: contain; |
| 90 | 93 | ||
| 91 | @include bem.is("hidden") { | 94 | @include bem.is('hidden') { |
| 92 | display: none; | 95 | display: none; |
| 93 | 96 | ||
| 94 | @include bem.next-elem("placeholder") { | 97 | @include bem.next-elem('placeholder') { |
| 95 | display: block; | 98 | display: block; |
| 96 | } | 99 | } |
| 97 | } | 100 | } |
| 98 | } | 101 | } |
| 99 | 102 | ||
| 100 | @include bem.elem("placeholder") { | 103 | @include bem.elem('placeholder') { |
| 101 | position: absolute; | 104 | position: absolute; |
| 102 | inset-block-start: 50%; | 105 | inset-block-start: 50%; |
| 103 | inset-inline-start: 50%; | 106 | inset-inline-start: 50%; |
| 104 | z-index: 5; | 107 | z-index: 5; |
| 105 | display: none; | 108 | display: none; |
| 106 | transform: translate(-50, -50); | 109 | transform: translate(-50, -50); |
| 107 | } | 110 | } |
| 108 | 111 | ||
| 109 | @include bem.elem("thumbnails") { | 112 | @include bem.elem('thumbnails') { |
| 110 | display: flex; | 113 | display: flex; |
| 111 | grid-area: thumbnails; | 114 | grid-area: thumbnails; |
| 112 | gap: props.get(vars.$thumbnail--spacing); | 115 | gap: props.get(vars.$thumbnail--spacing); |
| 113 | justify-content: center; | 116 | justify-content: center; |
| 114 | padding: props.get(vars.$pad); | 117 | padding: props.get(vars.$pad); |
| 115 | overflow: auto; | 118 | overflow: auto; |
| 116 | } | 119 | } |
| 117 | 120 | ||
| 118 | @include bem.elem("thumbnail") { | 121 | @include bem.elem('thumbnail') { |
| 119 | inline-size: props.get(vars.$thumbnail--width); | 122 | inline-size: props.get(vars.$thumbnail--width); |
| 120 | transition: | 123 | transition: inline-size .2s ease, margin-inline .2s ease; |
| 121 | inline-size 0.2s ease, | ||
| 122 | margin-inline 0.2s ease; | ||
| 123 | 124 | ||
| 124 | @include bem.is("selected") { | 125 | @include bem.is('selected') { |
| 125 | inline-size: props.get(vars.$thumbnail--active--width); | 126 | inline-size: props.get(vars.$thumbnail--active--width); |
| 126 | margin-inline: props.get(vars.$thumbnail--active--spacing); | 127 | margin-inline: props.get(vars.$thumbnail--active--spacing); |
| 127 | } | 128 | } |
| 128 | } | 129 | } |
diff --git a/src/objects/_lightbox.vars.scss b/src/objects/_lightbox.vars.scss index dc9a2a1..6fb84f7 100644 --- a/src/objects/_lightbox.vars.scss +++ b/src/objects/_lightbox.vars.scss | |||
| @@ -1,80 +1,37 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 9 | $controls--block-size: props.def(--o-lightbox--controls--block-size, props.get(core.$size--550)) !default; |
| 10 | --o-lightbox--controls--block-size, | ||
| 11 | props.get(core.$size--550) | ||
| 12 | ) !default; | ||
| 13 | 10 | ||
| 14 | $controls--shadow-x: props.def( | 11 | $controls--shadow-x: props.def(--o-lightbox--controls--shadow-x, props.get(core.$shadow--l2--x)) !default; |
| 15 | --o-lightbox--controls--shadow-x, | 12 | $controls--shadow-y: props.def(--o-lightbox--controls--shadow-y, props.get(core.$shadow--l2--y)) !default; |
| 16 | props.get(core.$shadow--l2--x) | 13 | $controls--shadow-blur: props.def(--o-lightbox--controls--shadow-blur, props.get(core.$shadow--l2--blur)) !default; |
| 17 | ) !default; | 14 | $controls--shadow-grow: props.def(--o-lightbox--controls--shadow-grow, props.get(core.$shadow--l2--grow)) !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; | ||
| 30 | 15 | ||
| 31 | $thumbnail--width: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--600)) !default; | 16 | $thumbnail--width: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--600)) !default; |
| 32 | $thumbnail--spacing: props.def( | 17 | $thumbnail--spacing: props.def(--o-lightbox--thumbnail--spacing, props.get(core.$size--100)) !default; |
| 33 | --o-lightbox--thumbnail--spacing, | 18 | $thumbnail--active--width: props.def(--o-lightbox--thumbnail--active--width, props.get(core.$size--1000)) !default; |
| 34 | props.get(core.$size--100) | 19 | $thumbnail--active--spacing: props.def(--o-lightbox--thumbnail--active--spacing, props.get(core.$size--250)) !default; |
| 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; | ||
| 44 | 20 | ||
| 45 | $thumbnail--width--md: props.def( | 21 | $thumbnail--width--md: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--400), 'md') !default; |
| 46 | --o-lightbox--thumbnail--width, | 22 | $thumbnail--active--width--md: props.def(--o-lightbox--thumbnail--active--width, props.get(core.$size--600), 'md') !default; |
| 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; | ||
| 55 | 23 | ||
| 56 | $controls--bg: props.def( | 24 | $controls--bg: props.def(--o-lightbox--controls--bg, props.get(core.$transparent-colors, --black, --700), 'color') !default; |
| 57 | --o-lightbox--controls--bg, | 25 | $controls--shadow-color: props.def(--o-lightbox--controls--shadow-color, props.get(core.$transparent-colors, --black, --300), 'color') !default; |
| 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; | ||
| 66 | 26 | ||
| 67 | $static-themes: props.def(--o-lightbox, (), "color"); | 27 | $static-themes: props.def(--o-lightbox, (), 'color'); |
| 68 | 28 | ||
| 69 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 29 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 70 | $lightbox-theme: --static-#{string.slice($theme, 3)}; | 30 | $lightbox-theme: --static-#{string.slice($theme, 3)}; |
| 71 | 31 | ||
| 72 | $static-themes: props.merge( | 32 | $static-themes: props.merge($static-themes, ( |
| 73 | $static-themes, | 33 | $lightbox-theme: ( |
| 74 | ( | 34 | --text: props.get(core.$transparent-colors, $theme, --text), |
| 75 | $lightbox-theme: ( | ||
| 76 | --text: props.get(core.$transparent-colors, $theme, --text), | ||
| 77 | ), | ||
| 78 | ) | 35 | ) |
| 79 | ); | 36 | )); |
| 80 | } | 37 | } |
diff --git a/src/objects/_menu.scss b/src/objects/_menu.scss index c7fbc0e..dce14a8 100644 --- a/src/objects/_menu.scss +++ b/src/objects/_menu.scss | |||
| @@ -1,82 +1,75 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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: 0.5px; | 25 | letter-spacing: .5px; |
| 26 | 26 | ||
| 27 | @include bem.next-twin-elem { | 27 | @include bem.next-twin-elem { |
| 28 | margin-block-start: calc( | 28 | margin-block-start: calc(props.get(vars.$separator-width) + props.get(vars.$spacing)); |
| 29 | props.get(vars.$separator-width) + props.get(vars.$spacing) | ||
| 30 | ); | ||
| 31 | } | 29 | } |
| 32 | } | 30 | } |
| 33 | 31 | ||
| 34 | @include bem.elem("item") { | 32 | @include bem.elem('item') { |
| 35 | padding-block: props.get(vars.$item--pad-b); | 33 | padding-block: props.get(vars.$item--pad-b); |
| 36 | padding-inline: props.get(vars.$item--pad-i); | 34 | padding-inline: props.get(vars.$item--pad-i); |
| 37 | margin: calc(-1 * props.get(vars.$item--key-focus--outline-width)); | 35 | margin: calc(-1 * props.get(vars.$item--key-focus--outline-width)); |
| 38 | color: props.get(vars.$item--disabled--label-color); | 36 | color: props.get(vars.$item--disabled--label-color); |
| 39 | background-clip: padding-box; | 37 | background-clip: padding-box; |
| 40 | border: props.get(vars.$item--key-focus--outline-width) solid transparent; | 38 | border: props.get(vars.$item--key-focus--outline-width) solid transparent; |
| 41 | border-radius: calc( | 39 | border-radius: calc(props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--outline-width)); |
| 42 | props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--outline-width) | ||
| 43 | ); | ||
| 44 | 40 | ||
| 45 | &:link, | 41 | &:link, |
| 46 | &:visited, | 42 | &:visited, |
| 47 | &:enabled { | 43 | &:enabled { |
| 48 | color: currentColor; | 44 | color: currentColor; |
| 49 | 45 | ||
| 50 | @include bem.multi("&:hover, &:focus-visible", "is" "selected") { | 46 | @include bem.multi('&:hover, &:focus-visible', 'is' 'selected') { |
| 51 | color: props.get(vars.$item--hover--label-color); | 47 | color: props.get(vars.$item--hover--label-color); |
| 52 | background-color: props.get(vars.$item--hover--bg-color); | 48 | background-color: props.get(vars.$item--hover--bg-color); |
| 53 | } | 49 | } |
| 54 | 50 | ||
| 55 | &:active { | 51 | &:active { |
| 56 | color: props.get(vars.$item--active--label-color); | 52 | color: props.get(vars.$item--active--label-color); |
| 57 | background-color: props.get(vars.$item--active--bg-color); | 53 | background-color: props.get(vars.$item--active--bg-color); |
| 58 | } | 54 | } |
| 59 | 55 | ||
| 60 | &:focus-visible { | 56 | &:focus-visible { |
| 61 | outline: props.get(vars.$item--key-focus--border-color) solid | 57 | outline: props.get(vars.$item--key-focus--border-color) solid props.get(vars.$item--key-focus--border-width); |
| 62 | props.get(vars.$item--key-focus--border-width); | 58 | box-shadow: |
| 63 | box-shadow: 0 0 0 | 59 | 0 |
| 64 | calc( | 60 | 0 |
| 65 | props.get(vars.$item--key-focus--border-width) + | 61 | 0 |
| 66 | props.get(vars.$item--key-focus--outline-width) | 62 | calc(props.get(vars.$item--key-focus--border-width) + props.get(vars.$item--key-focus--outline-width)) |
| 67 | ) | ||
| 68 | props.get(vars.$item--key-focus--outline-color); | 63 | props.get(vars.$item--key-focus--outline-color); |
| 69 | } | 64 | } |
| 70 | } | 65 | } |
| 71 | 66 | ||
| 72 | @include bem.next-elem("header") { | 67 | @include bem.next-elem('header') { |
| 73 | margin-block-start: calc( | 68 | margin-block-start: calc(props.get(vars.$separator-width) + props.get(vars.$spacing)); |
| 74 | props.get(vars.$separator-width) + props.get(vars.$spacing) | ||
| 75 | ); | ||
| 76 | } | 69 | } |
| 77 | } | 70 | } |
| 78 | 71 | ||
| 79 | @include bem.elem("header") { | 72 | @include bem.elem('header') { |
| 80 | &:link, | 73 | &:link, |
| 81 | &:visited, | 74 | &:visited, |
| 82 | &:enabled { | 75 | &:enabled { |
| @@ -84,25 +77,25 @@ | |||
| 84 | } | 77 | } |
| 85 | } | 78 | } |
| 86 | 79 | ||
| 87 | @include bem.elem("separator") { | 80 | @include bem.elem('separator') { |
| 88 | block-size: 1px; | 81 | block-size: 1px; |
| 89 | margin-block: props.get(vars.$separator-width); | 82 | margin-block: props.get(vars.$separator-width); |
| 90 | margin-inline: props.get(vars.$item--pad-i); | 83 | margin-inline: props.get(vars.$item--pad-i); |
| 91 | background-color: props.get(vars.$separator-color); | 84 | background-color: props.get(vars.$separator-color); |
| 92 | } | 85 | } |
| 93 | 86 | ||
| 94 | @include bem.elem("slot") { | 87 | @include bem.elem('slot') { |
| 95 | padding-block: props.get(vars.$item--pad-b); | 88 | padding-block: props.get(vars.$item--pad-b); |
| 96 | padding-inline: props.get(vars.$item--pad-i); | 89 | padding-inline: props.get(vars.$item--pad-i); |
| 97 | } | 90 | } |
| 98 | 91 | ||
| 99 | @include bem.elem("icon-slot") { | 92 | @include bem.elem('icon-slot') { |
| 100 | display: flex; | 93 | display: flex; |
| 101 | justify-content: center; | 94 | justify-content: center; |
| 102 | inline-size: props.get(icon.$size); | 95 | inline-size: props.get(icon.$size); |
| 103 | } | 96 | } |
| 104 | 97 | ||
| 105 | @include bem.modifier("pull") { | 98 | @include bem.modifier('pull') { |
| 106 | margin: calc(-1 * props.get(vars.$item--pad-i)); | 99 | margin: calc(-1 * props.get(vars.$item--pad-i)); |
| 107 | } | 100 | } |
| 108 | } | 101 | } |
diff --git a/src/objects/_menu.vars.scss b/src/objects/_menu.vars.scss index c168c30..9396117 100644 --- a/src/objects/_menu.vars.scss +++ b/src/objects/_menu.vars.scss | |||
| @@ -1,74 +1,29 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 13 | $item--key-focus--border-width: props.def(--o-menu--item--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 14 | --o-menu--item--key-focus--border-width, | 14 | $item--key-focus--border-offset: props.def(--o-menu--item--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 15 | props.get(core.$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; |
| 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; | ||
| 25 | 16 | ||
| 26 | $separator-color: props.def( | 17 | $separator-color: props.def(--o-menu--separator-color, props.get(core.$theme, --border), 'color') !default; |
| 27 | --o-menu--separator-color, | 18 | $header--label-color: props.def(--o-menu--header--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 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; | ||
| 36 | 19 | ||
| 37 | $item--hover--bg-color: props.def( | 20 | $item--hover--bg-color: props.def(--o-menu--item--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 38 | --o-menu--item--hover--bg-color, | 21 | $item--hover--label-color: props.def(--o-menu--item--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 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; | ||
| 47 | 22 | ||
| 48 | $item--active--bg-color: props.def( | 23 | $item--active--bg-color: props.def(--o-menu--item--active--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 49 | --o-menu--item--active--bg-color, | 24 | $item--active--label-color: props.def(--o-menu--item--active--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 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; | ||
| 58 | 25 | ||
| 59 | $item--disabled--label-color: props.def( | 26 | $item--disabled--label-color: props.def(--o-menu--item--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 60 | --o-menu--item--disabled--label-color, | ||
| 61 | props.get(core.$theme, --text-disabled), | ||
| 62 | "color" | ||
| 63 | ) !default; | ||
| 64 | 27 | ||
| 65 | $item--key-focus--border-color: props.def( | 28 | $item--key-focus--border-color: props.def(--o-menu--item--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 66 | --o-menu--item--key-focus--border-color, | 29 | $item--key-focus--outline-color: props.def(--o-menu--item--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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 4b678e0..cc1eaaa 100644 --- a/src/objects/_navbar.scss +++ b/src/objects/_navbar.scss | |||
| @@ -1,197 +1,151 @@ | |||
| 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/bem"; | 5 | @use 'pkg:iro-sass/src/bem'; |
| 6 | @use "pkg:iro-sass/props"; | 6 | @use 'pkg:iro-sass/src/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 | 21 | outline: props.get($theme, list.join($key, --key-focus --border)...) solid props.get(vars.$key-focus--border-width); |
| 22 | props.get(vars.$key-focus--border-width); | 22 | box-shadow: |
| 23 | box-shadow: 0 0 0 | 23 | 0 |
| 24 | calc( | 24 | 0 |
| 25 | props.get(vars.$key-focus--border-width) + | 25 | 0 |
| 26 | props.get(vars.$key-focus--outline-width) | 26 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 27 | ) | ||
| 28 | props.get($theme, list.join($key, --key-focus --outline)...); | 27 | props.get($theme, list.join($key, --key-focus --outline)...); |
| 29 | } | 28 | } |
| 30 | } | 29 | } |
| 31 | 30 | ||
| 32 | @include bem.elem("item") { | 31 | @include bem.elem('item') { |
| 33 | &:link, | 32 | &:link, |
| 34 | &:visited, | 33 | &:visited, |
| 35 | &:enabled { | 34 | &:enabled { |
| 36 | @include bem.elem("item-label") { | 35 | @include bem.elem('item-label') { |
| 37 | color: props.get($theme, list.join($key, --label-color)...); | 36 | color: props.get($theme, list.join($key, --label-color)...); |
| 38 | } | 37 | } |
| 39 | 38 | ||
| 40 | @include bem.elem("item-content") { | 39 | @include bem.elem('item-content') { |
| 41 | color: props.get($theme, list.join($key, --text-color)...); | 40 | color: props.get($theme, list.join($key, --text-color)...); |
| 42 | } | 41 | } |
| 43 | 42 | ||
| 44 | &:hover, | 43 | &:hover, |
| 45 | &:focus-visible { | 44 | &:focus-visible { |
| 46 | @include bem.elem("item-label") { | 45 | @include bem.elem('item-label') { |
| 47 | color: props.get($theme, list.join($key, --hover --label-color)...); | 46 | color: props.get($theme, list.join($key, --hover --label-color)...); |
| 48 | } | 47 | } |
| 49 | 48 | ||
| 50 | @include bem.elem("item-content") { | 49 | @include bem.elem('item-content') { |
| 51 | color: props.get($theme, list.join($key, --hover --text-color)...); | 50 | color: props.get($theme, list.join($key, --hover --text-color)...); |
| 52 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); | 51 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); |
| 53 | } | 52 | } |
| 54 | } | 53 | } |
| 55 | 54 | ||
| 56 | &:focus-visible { | 55 | &:focus-visible { |
| 57 | @include bem.elem("item-label") { | 56 | @include bem.elem('item-label') { |
| 58 | color: props.get($theme, list.join($key, --key-focus --label)...); | 57 | color: props.get($theme, list.join($key, --key-focus --label)...); |
| 59 | } | 58 | } |
| 60 | } | 59 | } |
| 61 | 60 | ||
| 62 | &:active { | 61 | &:active { |
| 63 | @include bem.elem("item-label") { | 62 | @include bem.elem('item-label') { |
| 64 | color: props.get($theme, list.join($key, --active --label-color)...); | 63 | color: props.get($theme, list.join($key, --active --label-color)...); |
| 65 | } | 64 | } |
| 66 | 65 | ||
| 67 | @include bem.elem("item-content") { | 66 | @include bem.elem('item-content') { |
| 68 | color: props.get($theme, list.join($key, --active --text-color)...); | 67 | color: props.get($theme, list.join($key, --active --text-color)...); |
| 69 | background-color: props.get($theme, list.join($key, --active --bg-color)...); | 68 | background-color: props.get($theme, list.join($key, --active --bg-color)...); |
| 70 | } | 69 | } |
| 71 | } | 70 | } |
| 72 | } | 71 | } |
| 73 | 72 | ||
| 74 | @include bem.is("selected") { | 73 | @include bem.is('selected') { |
| 75 | @include bem.elem("item-label") { | 74 | @include bem.elem('item-label') { |
| 76 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); | 75 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); |
| 77 | } | 76 | } |
| 78 | 77 | ||
| 79 | @include bem.elem("item-content") { | 78 | @include bem.elem('item-content') { |
| 80 | color: props.get($theme, list.join($key, --selected --disabled --text-color)...); | 79 | color: props.get($theme, list.join($key, --selected --disabled --text-color)...); |
| 81 | background-color: props.get( | 80 | background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...); |
| 82 | $theme, | ||
| 83 | list.join($key, --selected --disabled --bg-color)... | ||
| 84 | ); | ||
| 85 | } | 81 | } |
| 86 | 82 | ||
| 87 | &:link, | 83 | &:link, |
| 88 | &:visited, | 84 | &:visited, |
| 89 | &:enabled { | 85 | &:enabled { |
| 90 | @include bem.elem("item-label") { | 86 | @include bem.elem('item-label') { |
| 91 | color: props.get($theme, list.join($key, --selected --label-color)...); | 87 | color: props.get($theme, list.join($key, --selected --label-color)...); |
| 92 | } | 88 | } |
| 93 | 89 | ||
| 94 | @include bem.elem("item-content") { | 90 | @include bem.elem('item-content') { |
| 95 | color: props.get($theme, list.join($key, --selected --text-color)...); | 91 | color: props.get($theme, list.join($key, --selected --text-color)...); |
| 96 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); | 92 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); |
| 97 | } | 93 | } |
| 98 | 94 | ||
| 99 | &:hover, | 95 | &:hover, |
| 100 | &:focus-visible { | 96 | &:focus-visible { |
| 101 | @include bem.elem("item-label") { | 97 | @include bem.elem('item-label') { |
| 102 | color: props.get( | 98 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); |
| 103 | $theme, | ||
| 104 | list.join($key, --selected --hover --label-color)... | ||
| 105 | ); | ||
| 106 | } | 99 | } |
| 107 | 100 | ||
| 108 | @include bem.elem("item-content") { | 101 | @include bem.elem('item-content') { |
| 109 | color: props.get( | 102 | color: props.get($theme, list.join($key, --selected --hover --text-color)...); |
| 110 | $theme, | 103 | background-color: props.get($theme, list.join($key, --selected --hover --bg-color)...); |
| 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 | ); | ||
| 117 | } | 104 | } |
| 118 | } | 105 | } |
| 119 | 106 | ||
| 120 | &:active { | 107 | &:active { |
| 121 | @include bem.elem("item-label") { | 108 | @include bem.elem('item-label') { |
| 122 | color: props.get( | 109 | color: props.get($theme, list.join($key, --selected --active --label-color)...); |
| 123 | $theme, | ||
| 124 | list.join($key, --selected --active --label-color)... | ||
| 125 | ); | ||
| 126 | } | 110 | } |
| 127 | 111 | ||
| 128 | @include bem.elem("item-content") { | 112 | @include bem.elem('item-content') { |
| 129 | color: props.get( | 113 | color: props.get($theme, list.join($key, --selected --active --text-color)...); |
| 130 | $theme, | 114 | background-color: props.get($theme, list.join($key, --selected --active --bg-color)...); |
| 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 | ); | ||
| 137 | } | 115 | } |
| 138 | } | 116 | } |
| 139 | } | 117 | } |
| 140 | } | 118 | } |
| 141 | } | 119 | } |
| 142 | 120 | ||
| 143 | @include bem.modifier("quiet") { | 121 | @include bem.modifier('quiet') { |
| 144 | @include bem.elem("item") { | 122 | @include bem.elem('item') { |
| 145 | @include bem.is("selected") { | 123 | @include bem.is('selected') { |
| 146 | @include bem.elem("item-content") { | 124 | @include bem.elem('item-content') { |
| 147 | color: props.get( | 125 | color: props.get($theme, list.join($key, --quiet --selected --disabled --text-color)...); |
| 148 | $theme, | 126 | background-color: props.get($theme, list.join($key, --quiet --selected --disabled --bg-color)...); |
| 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 | ); | ||
| 155 | } | 127 | } |
| 156 | 128 | ||
| 157 | &:link, | 129 | &:link, |
| 158 | &:visited, | 130 | &:visited, |
| 159 | &:enabled { | 131 | &:enabled { |
| 160 | @include bem.elem("item-content") { | 132 | @include bem.elem('item-content') { |
| 161 | color: props.get( | 133 | color: props.get($theme, list.join($key, --quiet --selected --text-color)...); |
| 162 | $theme, | 134 | background-color: props.get($theme, list.join($key, --quiet --selected --bg-color)...); |
| 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 | ); | ||
| 169 | } | 135 | } |
| 170 | 136 | ||
| 171 | &:hover, | 137 | &:hover, |
| 172 | &:focus-visible { | 138 | &:focus-visible { |
| 173 | @include bem.elem("item-content") { | 139 | @include bem.elem('item-content') { |
| 174 | color: props.get( | 140 | color: props.get($theme, list.join($key, --quiet --selected --hover --text-color)...); |
| 175 | $theme, | 141 | background-color: props.get($theme, list.join($key, --quiet --selected --hover --bg-color)...); |
| 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 | ); | ||
| 182 | } | 142 | } |
| 183 | } | 143 | } |
| 184 | 144 | ||
| 185 | &:active { | 145 | &:active { |
| 186 | @include bem.elem("item-content") { | 146 | @include bem.elem('item-content') { |
| 187 | color: props.get( | 147 | color: props.get($theme, list.join($key, --quiet --selected --active --text-color)...); |
| 188 | $theme, | 148 | background-color: props.get($theme, list.join($key, --quiet --selected --active --bg-color)...); |
| 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 | ); | ||
| 195 | } | 149 | } |
| 196 | } | 150 | } |
| 197 | } | 151 | } |
| @@ -201,64 +155,64 @@ | |||
| 201 | } | 155 | } |
| 202 | 156 | ||
| 203 | @mixin styles { | 157 | @mixin styles { |
| 204 | @include materialize-at-root(meta.module-variables("vars")); | 158 | @include materialize-at-root(meta.module-variables('vars')); |
| 205 | 159 | ||
| 206 | @include bem.object("navbar") { | 160 | @include bem.object('navbar') { |
| 207 | display: flex; | 161 | display: flex; |
| 208 | block-size: props.get(vars.$block-size); | 162 | block-size: props.get(vars.$block-size); |
| 209 | 163 | ||
| 210 | @include bem.elem("item-label") { | 164 | @include bem.elem('item-label') { |
| 211 | order: 2; | 165 | order: 2; |
| 212 | margin-block-start: props.get(vars.$item--pad-b-icon); | 166 | margin-block-start: props.get(vars.$item--pad-b-icon); |
| 213 | font-size: props.get(vars.$item--label-font-size); | 167 | font-size: props.get(vars.$item--label-font-size); |
| 214 | font-weight: bold; | 168 | font-weight: bold; |
| 215 | 169 | ||
| 216 | @include bem.next-elem("item-content") { | 170 | @include bem.next-elem('item-content') { |
| 217 | padding-block: props.get(vars.$item--pad-b-icon); | 171 | padding-block: props.get(vars.$item--pad-b-icon); |
| 218 | padding-inline: props.get(vars.$item--pad-i-icon); | 172 | padding-inline: props.get(vars.$item--pad-i-icon); |
| 219 | font-size: props.get(vars.$item--icon-size); | 173 | font-size: props.get(vars.$item--icon-size); |
| 220 | } | 174 | } |
| 221 | } | 175 | } |
| 222 | 176 | ||
| 223 | @include bem.elem("item-content-text") { | 177 | @include bem.elem('item-content-text') { |
| 224 | margin-inline: props.get(vars.$item--pad-i-label); | 178 | margin-inline: props.get(vars.$item--pad-i-label); |
| 225 | } | 179 | } |
| 226 | 180 | ||
| 227 | @include bem.elem("item-content") { | 181 | @include bem.elem('item-content') { |
| 228 | position: relative; | 182 | position: relative; |
| 229 | order: 1; | 183 | order: 1; |
| 230 | padding-block: props.get(vars.$item--pad-b); | 184 | padding-block: props.get(vars.$item--pad-b); |
| 231 | padding-inline: props.get(vars.$item--pad-i); | 185 | padding-inline: props.get(vars.$item--pad-i); |
| 232 | font-size: props.get(vars.$item--font-size); | 186 | font-size: props.get(vars.$item--font-size); |
| 233 | white-space: nowrap; | 187 | white-space: nowrap; |
| 234 | border-radius: 100em; | 188 | border-radius: 100em; |
| 235 | 189 | ||
| 236 | &::after { | 190 | &::after { |
| 237 | position: absolute; | 191 | position: absolute; |
| 238 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); | 192 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 239 | z-index: -10; | 193 | z-index: -10; |
| 240 | display: block; | 194 | display: block; |
| 241 | visibility: hidden; | 195 | visibility: hidden; |
| 242 | pointer-events: none; | 196 | pointer-events: none; |
| 243 | content: ""; | 197 | content: ''; |
| 244 | border-radius: 100em; | 198 | border-radius: 100em; |
| 245 | } | 199 | } |
| 246 | } | 200 | } |
| 247 | 201 | ||
| 248 | @include bem.elem("item") { | 202 | @include bem.elem('item') { |
| 249 | display: flex; | 203 | display: flex; |
| 250 | flex-direction: column; | 204 | flex-direction: column; |
| 251 | align-items: center; | 205 | align-items: center; |
| 252 | justify-content: center; | 206 | justify-content: center; |
| 253 | inline-size: 100%; | 207 | inline-size: 100%; |
| 254 | padding-inline: calc(0.5 * props.get(vars.$spacing)); | 208 | padding-inline: calc(.5 * props.get(vars.$spacing)); |
| 255 | font-weight: 500; | 209 | font-weight: 500; |
| 256 | 210 | ||
| 257 | &:link, | 211 | &:link, |
| 258 | &:visited, | 212 | &:visited, |
| 259 | &:enabled { | 213 | &:enabled { |
| 260 | &:focus-visible { | 214 | &:focus-visible { |
| 261 | @include bem.elem("item-content") { | 215 | @include bem.elem('item-content') { |
| 262 | &::after { | 216 | &::after { |
| 263 | visibility: visible; | 217 | visibility: visible; |
| 264 | } | 218 | } |
| @@ -266,7 +220,7 @@ | |||
| 266 | } | 220 | } |
| 267 | } | 221 | } |
| 268 | 222 | ||
| 269 | @include bem.is("selected") { | 223 | @include bem.is('selected') { |
| 270 | font-weight: bold; | 224 | font-weight: bold; |
| 271 | } | 225 | } |
| 272 | } | 226 | } |
| @@ -279,21 +233,22 @@ | |||
| 279 | } | 233 | } |
| 280 | } | 234 | } |
| 281 | 235 | ||
| 282 | @include bem.modifier("hide-unselected") { | 236 | @include bem.modifier('hide-unselected') { |
| 283 | @include bem.elem("item") { | 237 | @include bem.elem('item') { |
| 284 | display: none; | 238 | display: none; |
| 285 | 239 | ||
| 286 | @include bem.is("selected") { | 240 | @include bem.is('selected') { |
| 287 | display: flex; | 241 | display: flex; |
| 288 | } | 242 | } |
| 289 | } | 243 | } |
| 290 | } | 244 | } |
| 291 | 245 | ||
| 292 | @include bem.modifier("adapt") { | 246 | @include bem.modifier('adapt') { |
| 293 | block-size: 100%; | 247 | block-size: 100%; |
| 294 | } | 248 | } |
| 295 | 249 | ||
| 296 | @include bem.modifier("align-block") { | 250 | |
| 251 | @include bem.modifier('align-block') { | ||
| 297 | margin-inline: calc(-1 * props.get(vars.$item--pad-i)); | 252 | margin-inline: calc(-1 * props.get(vars.$item--pad-i)); |
| 298 | } | 253 | } |
| 299 | } | 254 | } |
diff --git a/src/objects/_navbar.vars.scss b/src/objects/_navbar.vars.scss index b7d7e16..e96b714 100644 --- a/src/objects/_navbar.vars.scss +++ b/src/objects/_navbar.vars.scss | |||
| @@ -1,242 +1,178 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 16 | $item--label-font-size: props.def(--o-navbar--item--label-font-size, props.get(core.$font-size--50)) !default; |
| 17 | --o-navbar--item--label-font-size, | ||
| 18 | props.get(core.$font-size--50) | ||
| 19 | ) !default; | ||
| 20 | 17 | ||
| 21 | $key-focus--border-width: props.def( | 18 | $key-focus--border-width: props.def(--o-navbar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 22 | --o-navbar--key-focus--border-width, | 19 | $key-focus--border-offset: props.def(--o-navbar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 23 | props.get(core.$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; |
| 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; | ||
| 33 | 21 | ||
| 34 | $themes: props.def(--o-navbar, (), "color"); | 22 | $themes: props.def(--o-navbar, (), 'color'); |
| 35 | 23 | ||
| 36 | $default-theme-override: () !default; | 24 | $default-theme-override: () !default; |
| 37 | $default-theme: map.deep-merge( | 25 | $default-theme: map.deep-merge(( |
| 38 | ( | 26 | --text-color: props.get(core.$theme, --text), |
| 39 | --text-color: props.get(core.$theme, --text), | 27 | --label-color: props.get(core.$theme, --text-mute), |
| 40 | --label-color: props.get(core.$theme, --text-mute), | 28 | |
| 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 | |||
| 41 | --hover: ( | 57 | --hover: ( |
| 42 | --bg-color: props.get(core.$theme, --border-mute), | 58 | --bg-color: props.get(core.$theme, --text), |
| 43 | --text-color: props.get(core.$theme, --heading), | 59 | --text-color: props.get(core.$theme, --base, --50), |
| 44 | --label-color: props.get(core.$theme, --text), | 60 | --label-color: props.get(core.$theme, --heading), |
| 45 | ), | 61 | ), |
| 46 | 62 | ||
| 47 | --active: ( | 63 | --active: ( |
| 48 | --bg-color: props.get(core.$theme, --border), | 64 | --bg-color: props.get(core.$theme, --text-mute), |
| 49 | --text-color: props.get(core.$theme, --heading), | 65 | --text-color: props.get(core.$theme, --base, --50), |
| 50 | --label-color: props.get(core.$theme, --heading), | 66 | --label-color: props.get(core.$theme, --heading), |
| 51 | ), | 67 | ), |
| 52 | 68 | ||
| 53 | --disabled: ( | 69 | --disabled: ( |
| 54 | --text-color: props.get(core.$theme, --border-strong), | 70 | --bg-color: props.get(core.$theme, --border-mute), |
| 71 | --text-color: props.get(core.$theme, --border-strong), | ||
| 55 | --label-color: props.get(core.$theme, --text-disabled), | 72 | --label-color: props.get(core.$theme, --text-disabled), |
| 56 | ), | 73 | ), |
| 74 | ), | ||
| 57 | 75 | ||
| 58 | --key-focus: ( | 76 | --quiet: ( |
| 59 | --label: props.get(core.$theme, --focus, --text), | ||
| 60 | --border: props.get(core.$theme, --focus, --border), | ||
| 61 | --outline: props.get(core.$theme, --focus, --outline), | ||
| 62 | ), | ||
| 63 | |||
| 64 | --selected: ( | 77 | --selected: ( |
| 65 | --bg-color: props.get(core.$theme, --heading), | 78 | --bg-color: props.get(core.$theme, --border-mute), |
| 66 | --text-color: props.get(core.$theme, --base, --50), | 79 | --text-color: props.get(core.$theme, --heading), |
| 67 | --label-color: props.get(core.$theme, --heading), | 80 | |
| 68 | --hover: ( | 81 | --hover: ( |
| 69 | --bg-color: props.get(core.$theme, --text), | 82 | --bg-color: props.get(core.$theme, --border), |
| 70 | --text-color: props.get(core.$theme, --base, --50), | 83 | --text-color: props.get(core.$theme, --heading), |
| 71 | --label-color: props.get(core.$theme, --heading), | ||
| 72 | ), | 84 | ), |
| 73 | 85 | ||
| 74 | --active: ( | 86 | --active: ( |
| 75 | --bg-color: props.get(core.$theme, --text-mute), | 87 | --bg-color: props.get(core.$theme, --border-strong), |
| 76 | --text-color: props.get(core.$theme, --base, --50), | 88 | --text-color: props.get(core.$theme, --heading), |
| 77 | --label-color: props.get(core.$theme, --heading), | ||
| 78 | ), | 89 | ), |
| 79 | 90 | ||
| 80 | --disabled: ( | 91 | --disabled: ( |
| 81 | --bg-color: props.get(core.$theme, --border-mute), | 92 | --bg-color: props.get(core.$theme, --border-mute), |
| 82 | --text-color: props.get(core.$theme, --border-strong), | 93 | --text-color: props.get(core.$theme, --border-strong), |
| 83 | --label-color: props.get(core.$theme, --text-disabled), | 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 | |||
| 103 | $themes: props.merge($themes, ( | ||
| 104 | $nav-theme: ( | ||
| 105 | --text-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 106 | --label-color: props.get(core.$transparent-colors, $theme, --700), | ||
| 107 | |||
| 108 | --hover: ( | ||
| 109 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | ||
| 110 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 111 | --label-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 112 | ), | ||
| 113 | |||
| 114 | --active: ( | ||
| 115 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | ||
| 116 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 117 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 118 | ), | ||
| 119 | |||
| 120 | --disabled: ( | ||
| 121 | --text-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 122 | --label-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 123 | ), | ||
| 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), | ||
| 84 | ), | 129 | ), |
| 85 | ), | ||
| 86 | 130 | ||
| 87 | --quiet: ( | ||
| 88 | --selected: ( | 131 | --selected: ( |
| 89 | --bg-color: props.get(core.$theme, --border-mute), | 132 | --bg-color: props.get(core.$transparent-colors, $theme, --900), |
| 90 | --text-color: props.get(core.$theme, --heading), | 133 | --text-color: props.get(core.$transparent-colors, $theme, --text), |
| 134 | --label-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 135 | |||
| 91 | --hover: ( | 136 | --hover: ( |
| 92 | --bg-color: props.get(core.$theme, --border), | 137 | --bg-color: props.get(core.$transparent-colors, $theme, --800), |
| 93 | --text-color: props.get(core.$theme, --heading), | 138 | --text-color: props.get(core.$transparent-colors, $theme, --text), |
| 139 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 94 | ), | 140 | ), |
| 95 | 141 | ||
| 96 | --active: ( | 142 | --active: ( |
| 97 | --bg-color: props.get(core.$theme, --border-strong), | 143 | --bg-color: props.get(core.$transparent-colors, $theme, --800), |
| 98 | --text-color: props.get(core.$theme, --heading), | 144 | --text-color: props.get(core.$transparent-colors, $theme, --text), |
| 145 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 99 | ), | 146 | ), |
| 100 | 147 | ||
| 101 | --disabled: ( | 148 | --disabled: ( |
| 102 | --bg-color: props.get(core.$theme, --border-mute), | 149 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 103 | --text-color: props.get(core.$theme, --border-strong), | 150 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 151 | --label-color: props.get(core.$transparent-colors, $theme, --100), | ||
| 104 | ), | 152 | ), |
| 105 | ), | 153 | ), |
| 106 | ), | ||
| 107 | ), | ||
| 108 | $default-theme-override | ||
| 109 | ) !default; | ||
| 110 | $default-theme: props.def(--o-navbar, $default-theme, "color"); | ||
| 111 | 154 | ||
| 112 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 155 | --quiet: ( |
| 113 | $nav-theme: --static-#{string.slice($theme, 3)}; | 156 | --selected: ( |
| 157 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | ||
| 158 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 114 | 159 | ||
| 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), | ||
| 121 | --hover: ( | 160 | --hover: ( |
| 122 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 161 | --bg-color: props.get(core.$transparent-colors, $theme, --400), |
| 123 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 162 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 124 | --label-color: props.get(core.$transparent-colors, $theme, --800), | 163 | ), |
| 125 | ), | ||
| 126 | 164 | ||
| 127 | --active: ( | 165 | --active: ( |
| 128 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 166 | --bg-color: props.get(core.$transparent-colors, $theme, --500), |
| 129 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 167 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 130 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 168 | ), |
| 131 | ), | ||
| 132 | 169 | ||
| 133 | --disabled: ( | 170 | --disabled: ( |
| 134 | --text-color: props.get(core.$transparent-colors, $theme, --500), | 171 | --bg-color: props.get(core.$transparent-colors, $theme, --100), |
| 135 | --label-color: props.get(core.$transparent-colors, $theme, --500), | 172 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 136 | ), | 173 | ), |
| 137 | 174 | ) | |
| 138 | --key-focus: ( | 175 | ) |
| 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 | ), | ||
| 240 | ) | 176 | ) |
| 241 | ); | 177 | )); |
| 242 | } | 178 | } |
diff --git a/src/objects/_palette.scss b/src/objects/_palette.scss index 88448e0..f503812 100644 --- a/src/objects/_palette.scss +++ b/src/objects/_palette.scss | |||
| @@ -1,27 +1,21 @@ | |||
| 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/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "../config"; | 5 | @use '../config'; |
| 6 | @use "pkg:iro-sass/props"; | 6 | @use 'pkg:iro-sass/src/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( | 18 | $levels: map.get(config.$themes, config.$theme-default, light, --levels, list.nth($palette, 2)); |
| 19 | config.$themes, | ||
| 20 | config.$theme-default, | ||
| 21 | light, | ||
| 22 | --levels, | ||
| 23 | list.nth($palette, 2) | ||
| 24 | ); | ||
| 25 | 19 | ||
| 26 | @for $i from 1 through list.length($levels) { | 20 | @for $i from 1 through list.length($levels) { |
| 27 | $key: list.nth(map.keys($levels), $i); | 21 | $key: list.nth(map.keys($levels), $i); |
| @@ -32,19 +26,11 @@ | |||
| 32 | } | 26 | } |
| 33 | } | 27 | } |
| 34 | 28 | ||
| 35 | @each $palette-name, | 29 | @each $palette-name, $palette in map.get(config.$themes, config.$theme-default, light, --palettes) { |
| 36 | $palette in map.get(config.$themes, config.$theme-default, light, --palettes) | 30 | $levels: map.get(config.$themes, config.$theme-default, light, --levels, list.nth($palette, 2)); |
| 37 | { | ||
| 38 | $levels: map.get( | ||
| 39 | config.$themes, | ||
| 40 | config.$theme-default, | ||
| 41 | light, | ||
| 42 | --levels, | ||
| 43 | list.nth($palette, 2) | ||
| 44 | ); | ||
| 45 | 31 | ||
| 46 | @include bem.modifier(string.slice($palette-name, 3)) { | 32 | @include bem.modifier(string.slice($palette-name, 3)) { |
| 47 | @include bem.elem("item") { | 33 | @include bem.elem('item') { |
| 48 | @for $i from 1 through list.length($levels) { | 34 | @for $i from 1 through list.length($levels) { |
| 49 | $key: list.nth(map.keys($levels), $i); | 35 | $key: list.nth(map.keys($levels), $i); |
| 50 | 36 | ||
| @@ -56,21 +42,17 @@ | |||
| 56 | } | 42 | } |
| 57 | } | 43 | } |
| 58 | 44 | ||
| 59 | @include bem.modifier("static") { | 45 | @include bem.modifier('static') { |
| 60 | @each $palette-name, $palette in map.get(config.$static-colors, --palettes) { | 46 | @each $palette-name, $palette in map.get(config.$static-colors, --palettes) { |
| 61 | $levels: map.get(config.$static-colors, --levels); | 47 | $levels: map.get(config.$static-colors, --levels); |
| 62 | 48 | ||
| 63 | @include bem.modifier(string.slice($palette-name, 3)) { | 49 | @include bem.modifier(string.slice($palette-name, 3)) { |
| 64 | @include bem.elem("item") { | 50 | @include bem.elem('item') { |
| 65 | @for $i from 1 through list.length($levels) { | 51 | @for $i from 1 through list.length($levels) { |
| 66 | $key: list.nth(map.keys($levels), $i); | 52 | $key: list.nth(map.keys($levels), $i); |
| 67 | 53 | ||
| 68 | &:nth-child(#{$i}) { | 54 | &:nth-child(#{$i}) { |
| 69 | background-color: props.get( | 55 | background-color: props.get(core.$theme, #{$palette-name}-static, $key); |
| 70 | core.$theme, | ||
| 71 | #{$palette-name}-static, | ||
| 72 | $key | ||
| 73 | ); | ||
| 74 | } | 56 | } |
| 75 | } | 57 | } |
| 76 | } | 58 | } |
diff --git a/src/objects/_placeholders.scss b/src/objects/_placeholders.scss index d0af033..683f57e 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/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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 87e1657..1ac4ef7 100644 --- a/src/objects/_placeholders.vars.scss +++ b/src/objects/_placeholders.vars.scss | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/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, 0.5) !default; | 6 | $opacity: props.def(--o-placeholder--opacity, .5) !default; |
diff --git a/src/objects/_popover.scss b/src/objects/_popover.scss index 90187c1..1cb5660 100644 --- a/src/objects/_popover.scss +++ b/src/objects/_popover.scss | |||
| @@ -1,40 +1,44 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) | 25 | box-shadow: |
| 26 | props.get(vars.$shadow-grow) props.get(vars.$shadow-color); | 26 | props.get(vars.$shadow-x) |
| 27 | transform: translate(var(--x), var(--y)); | 27 | props.get(vars.$shadow-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)); | ||
| 28 | 32 | ||
| 29 | @include bem.modifier("up-left") { | 33 | @include bem.modifier('up-left') { |
| 30 | transform: translate(var(--x), calc(var(--y) - 100%)); | 34 | transform: translate(var(--x), calc(var(--y) - 100%)); |
| 31 | } | 35 | } |
| 32 | 36 | ||
| 33 | @include bem.modifier("up-right") { | 37 | @include bem.modifier('up-right') { |
| 34 | transform: translate(calc(var(--x) - 100%), calc(var(--y) - 100%)); | 38 | transform: translate(calc(var(--x) - 100%), calc(var(--y) - 100%)); |
| 35 | } | 39 | } |
| 36 | 40 | ||
| 37 | @include bem.modifier("down-right") { | 41 | @include bem.modifier('down-right') { |
| 38 | transform: translate(calc(var(--x) - 100%), var(--y)); | 42 | transform: translate(calc(var(--x) - 100%), var(--y)); |
| 39 | } | 43 | } |
| 40 | } | 44 | } |
diff --git a/src/objects/_popover.vars.scss b/src/objects/_popover.vars.scss index df1072e..202d71a 100644 --- a/src/objects/_popover.vars.scss +++ b/src/objects/_popover.vars.scss | |||
| @@ -1,28 +1,19 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 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; |
| 19 | --o-popover--border-color, | 19 | $shadow-color: props.def(--o-popover--shadow-color, props.get(core.$theme, --shadow), 'color') !default; |
| 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 c964657..ae4a85a 100644 --- a/src/objects/_radio.scss +++ b/src/objects/_radio.scss | |||
| @@ -1,100 +1,92 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 18 | margin-inline: |
| 19 | calc( | 19 | calc(-1 * 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( | 20 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)); |
| 21 | vars.$key-focus--border-offset | ||
| 22 | ) | ||
| 23 | ); | ||
| 24 | 21 | ||
| 25 | @include bem.elem("circle") { | 22 | @include bem.elem('circle') { |
| 26 | display: inline-block; | 23 | display: inline-block; |
| 27 | flex: 0 0 auto; | 24 | flex: 0 0 auto; |
| 28 | inline-size: props.get(vars.$diameter); | 25 | inline-size: props.get(vars.$diameter); |
| 29 | block-size: props.get(vars.$diameter); | 26 | block-size: props.get(vars.$diameter); |
| 30 | margin-block-start: calc( | 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)); |
| 31 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * | 28 | vertical-align: top; |
| 32 | props.get(vars.$diameter) - props.get(vars.$key-focus--border-offset) | 29 | background-color: props.get(vars.$circle-border-color); |
| 33 | ); | 30 | background-clip: padding-box; |
| 34 | vertical-align: top; | 31 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 35 | background-color: props.get(vars.$circle-border-color); | 32 | border-radius: 2em; |
| 36 | background-clip: padding-box; | ||
| 37 | border: props.get(vars.$key-focus--border-offset) solid transparent; | ||
| 38 | border-radius: 2em; | ||
| 39 | 33 | ||
| 40 | &::after { | 34 | &::after { |
| 41 | position: relative; | 35 | position: relative; |
| 42 | inset-block-start: props.get(vars.$border-width); | 36 | inset-block-start: props.get(vars.$border-width); |
| 43 | inset-inline-start: props.get(vars.$border-width); | 37 | inset-inline-start: props.get(vars.$border-width); |
| 44 | display: block; | 38 | display: block; |
| 45 | inline-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); | 39 | inline-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)); | 40 | block-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); |
| 47 | content: ""; | 41 | content: ''; |
| 48 | background-color: props.get(vars.$circle-bg-color); | 42 | background-color: props.get(vars.$circle-bg-color); |
| 49 | border-radius: props.get(vars.$diameter); | 43 | border-radius: props.get(vars.$diameter); |
| 50 | transition: transform 0.2s ease; | 44 | transition: transform .2s ease; |
| 51 | } | 45 | } |
| 52 | } | 46 | } |
| 53 | 47 | ||
| 54 | @include bem.elem("label") { | 48 | @include bem.elem('label') { |
| 55 | margin-inline-start: calc( | 49 | margin-inline-start: calc(props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset)); |
| 56 | props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset) | ||
| 57 | ); | ||
| 58 | } | 50 | } |
| 59 | 51 | ||
| 60 | @include bem.elem("native") { | 52 | @include bem.elem('native') { |
| 61 | position: absolute; | 53 | position: absolute; |
| 62 | inset-block-start: 0; | 54 | inset-block-start: 0; |
| 63 | inset-inline-start: 0; | 55 | inset-inline-start: 0; |
| 64 | z-index: -1; | 56 | z-index: -1; |
| 65 | inline-size: 100%; | 57 | inline-size: 100%; |
| 66 | block-size: 100%; | 58 | block-size: 100%; |
| 67 | padding: 0; | 59 | padding: 0; |
| 68 | margin: 0; | 60 | margin: 0; |
| 69 | overflow: hidden; | 61 | overflow: hidden; |
| 70 | appearance: none; | 62 | appearance: none; |
| 71 | border-radius: props.get(vars.$rounding); | 63 | border-radius: props.get(vars.$rounding); |
| 72 | 64 | ||
| 73 | &:hover, | 65 | &:hover, |
| 74 | &:focus-visible { | 66 | &:focus-visible { |
| 75 | @include bem.sibling-elem("label") { | 67 | @include bem.sibling-elem('label') { |
| 76 | color: props.get(vars.$hover--label-color); | 68 | color: props.get(vars.$hover--label-color); |
| 77 | } | 69 | } |
| 78 | 70 | ||
| 79 | @include bem.sibling-elem("circle") { | 71 | @include bem.sibling-elem('circle') { |
| 80 | background-color: props.get(vars.$hover--circle-border-color); | 72 | background-color: props.get(vars.$hover--circle-border-color); |
| 81 | } | 73 | } |
| 82 | } | 74 | } |
| 83 | 75 | ||
| 84 | &:checked { | 76 | &:checked { |
| 85 | @include bem.sibling-elem("circle") { | 77 | @include bem.sibling-elem('circle') { |
| 86 | &::after { | 78 | &::after { |
| 87 | transform: scale(0.44); | 79 | transform: scale(.44); |
| 88 | } | 80 | } |
| 89 | } | 81 | } |
| 90 | } | 82 | } |
| 91 | 83 | ||
| 92 | &:disabled { | 84 | &:disabled { |
| 93 | @include bem.sibling-elem("label") { | 85 | @include bem.sibling-elem('label') { |
| 94 | color: props.get(vars.$disabled--label-color); | 86 | color: props.get(vars.$disabled--label-color); |
| 95 | } | 87 | } |
| 96 | 88 | ||
| 97 | @include bem.sibling-elem("circle") { | 89 | @include bem.sibling-elem('circle') { |
| 98 | background-color: props.get(vars.$disabled--circle-border-color); | 90 | background-color: props.get(vars.$disabled--circle-border-color); |
| 99 | 91 | ||
| 100 | &::after { | 92 | &::after { |
| @@ -104,46 +96,45 @@ | |||
| 104 | } | 96 | } |
| 105 | 97 | ||
| 106 | &:focus-visible { | 98 | &:focus-visible { |
| 107 | @include bem.sibling-elem("label") { | 99 | @include bem.sibling-elem('label') { |
| 108 | color: props.get(vars.$key-focus--label-color); | 100 | color: props.get(vars.$key-focus--label-color); |
| 109 | } | 101 | } |
| 110 | 102 | ||
| 111 | @include bem.sibling-elem("circle") { | 103 | @include bem.sibling-elem('circle') { |
| 112 | outline: props.get(vars.$key-focus--border-color) solid | 104 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 113 | props.get(vars.$key-focus--border-width); | 105 | box-shadow: |
| 114 | box-shadow: 0 0 0 | 106 | 0 |
| 115 | calc( | 107 | 0 |
| 116 | props.get(vars.$key-focus--border-width) + | 108 | 0 |
| 117 | props.get(vars.$key-focus--outline-width) | 109 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 118 | ) | ||
| 119 | props.get(vars.$key-focus--outline-color); | 110 | props.get(vars.$key-focus--outline-color); |
| 120 | } | 111 | } |
| 121 | } | 112 | } |
| 122 | } | 113 | } |
| 123 | 114 | ||
| 124 | @include bem.modifier("standalone") { | 115 | @include bem.modifier('standalone') { |
| 125 | @include bem.elem("circle") { | 116 | @include bem.elem('circle') { |
| 126 | margin-block-start: 0; | 117 | margin-block-start: 0; |
| 127 | } | 118 | } |
| 128 | } | 119 | } |
| 129 | 120 | ||
| 130 | @include bem.modifier("accent") { | 121 | @include bem.modifier('accent') { |
| 131 | @include bem.elem("native") { | 122 | @include bem.elem('native') { |
| 132 | &:checked { | 123 | &:checked { |
| 133 | @include bem.sibling-elem("circle") { | 124 | @include bem.sibling-elem('circle') { |
| 134 | background-color: props.get(vars.$accent--circle-border-color); | 125 | background-color: props.get(vars.$accent--circle-border-color); |
| 135 | } | 126 | } |
| 136 | 127 | ||
| 137 | &:hover, | 128 | &:hover, |
| 138 | &:focus-visible { | 129 | &:focus-visible { |
| 139 | @include bem.sibling-elem("circle") { | 130 | @include bem.sibling-elem('circle') { |
| 140 | background-color: props.get(vars.$accent--hover--circle-border-color); | 131 | background-color: props.get(vars.$accent--hover--circle-border-color); |
| 141 | } | 132 | } |
| 142 | } | 133 | } |
| 143 | } | 134 | } |
| 144 | 135 | ||
| 145 | &:disabled { | 136 | &:disabled { |
| 146 | @include bem.sibling-elem("circle") { | 137 | @include bem.sibling-elem('circle') { |
| 147 | background-color: props.get(vars.$disabled--circle-border-color); | 138 | background-color: props.get(vars.$disabled--circle-border-color); |
| 148 | 139 | ||
| 149 | &::after { | 140 | &::after { |
| @@ -152,7 +143,7 @@ | |||
| 152 | } | 143 | } |
| 153 | 144 | ||
| 154 | &:checked { | 145 | &:checked { |
| 155 | @include bem.sibling-elem("circle") { | 146 | @include bem.sibling-elem('circle') { |
| 156 | background-color: props.get(vars.$disabled--circle-border-color); | 147 | background-color: props.get(vars.$disabled--circle-border-color); |
| 157 | } | 148 | } |
| 158 | } | 149 | } |
diff --git a/src/objects/_radio.vars.scss b/src/objects/_radio.vars.scss index e7a41a4..a5f249d 100644 --- a/src/objects/_radio.vars.scss +++ b/src/objects/_radio.vars.scss | |||
| @@ -1,90 +1,33 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 13 | $key-focus--border-width: props.def(--o-radio--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 14 | --o-radio--key-focus--border-width, | 14 | $key-focus--border-offset: props.def(--o-radio--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 15 | props.get(core.$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; |
| 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; | ||
| 25 | 16 | ||
| 26 | $circle-border-color: props.def( | 17 | $circle-border-color: props.def(--o-radio--circle-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 27 | --o-radio--circle-border-color, | 18 | $circle-bg-color: props.def(--o-radio--circle-bg-color, props.get(core.$theme, --base, --75), 'color') !default; |
| 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; | ||
| 36 | 19 | ||
| 37 | $hover--label-color: props.def( | 20 | $hover--label-color: props.def(--o-radio--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 38 | --o-radio--hover--label-color, | 21 | $hover--circle-border-color: props.def(--o-radio--hover--circle-border-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 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; | ||
| 47 | 22 | ||
| 48 | $accent--circle-border-color: props.def( | 23 | $accent--circle-border-color: props.def(--o-radio--accent--circle-border-color, props.get(core.$theme, --accent, --900), 'color') !default; |
| 49 | --o-radio--accent--circle-border-color, | ||
| 50 | props.get(core.$theme, --accent, --900), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 53 | 24 | ||
| 54 | $accent--hover--circle-border-color: props.def( | 25 | $accent--hover--circle-border-color: props.def(--o-radio--accent--hover--circle-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; |
| 55 | --o-radio--accent--hover--circle-border-color, | ||
| 56 | props.get(core.$theme, --accent, --1000), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 59 | 26 | ||
| 60 | $disabled--label-color: props.def( | 27 | $disabled--label-color: props.def(--o-radio--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 61 | --o-radio--disabled--label-color, | 28 | $disabled--circle-border-color: props.def(--o-radio--disabled--circle-border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 62 | props.get(core.$theme, --text-disabled), | 29 | $disabled--circle-bg-color: props.def(--o-radio--disabled--circle-bg-color, props.get(core.$theme, --base, --75), 'color') !default; |
| 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; | ||
| 75 | 30 | ||
| 76 | $key-focus--label-color: props.def( | 31 | $key-focus--label-color: props.def(--o-radio--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 77 | --o-radio--key-focus--label-color, | 32 | $key-focus--border-color: props.def(--o-radio--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 78 | props.get(core.$theme, --focus, --text), | 33 | $key-focus--outline-color: props.def(--o-radio--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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 ed0f3dc..272d38c 100644 --- a/src/objects/_side-nav.scss +++ b/src/objects/_side-nav.scss | |||
| @@ -1,79 +1,76 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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: 0.5px; | 25 | letter-spacing: .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( | 40 | border-radius: calc(props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--border-offset)); |
| 41 | props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--border-offset) | ||
| 42 | ); | ||
| 43 | 41 | ||
| 44 | &:link, | 42 | &:link, |
| 45 | &:visited, | 43 | &:visited, |
| 46 | &:enabled { | 44 | &:enabled { |
| 47 | color: currentColor; | 45 | color: currentColor; |
| 48 | 46 | ||
| 49 | @include bem.multi("&:hover, &:focus-visible", "is" "selected") { | 47 | @include bem.multi('&:hover, &:focus-visible', 'is' 'selected') { |
| 50 | color: props.get(vars.$item--hover--label-color); | 48 | color: props.get(vars.$item--hover--label-color); |
| 51 | background-color: props.get(vars.$item--hover--bg-color); | 49 | background-color: props.get(vars.$item--hover--bg-color); |
| 52 | } | 50 | } |
| 53 | 51 | ||
| 54 | &:active { | 52 | &:active { |
| 55 | color: props.get(vars.$item--active--label-color); | 53 | color: props.get(vars.$item--active--label-color); |
| 56 | background-color: props.get(vars.$item--active--bg-color); | 54 | background-color: props.get(vars.$item--active--bg-color); |
| 57 | } | 55 | } |
| 58 | 56 | ||
| 59 | &:focus-visible { | 57 | &:focus-visible { |
| 60 | outline: props.get(vars.$item--key-focus--border-color) solid | 58 | outline: props.get(vars.$item--key-focus--border-color) solid props.get(vars.$item--key-focus--border-width); |
| 61 | props.get(vars.$item--key-focus--border-width); | 59 | box-shadow: |
| 62 | box-shadow: 0 0 0 | 60 | 0 |
| 63 | calc( | 61 | 0 |
| 64 | props.get(vars.$item--key-focus--border-width) + | 62 | 0 |
| 65 | props.get(vars.$item--key-focus--outline-width) | 63 | calc(props.get(vars.$item--key-focus--border-width) + props.get(vars.$item--key-focus--outline-width)) |
| 66 | ) | ||
| 67 | props.get(vars.$item--key-focus--outline-color); | 64 | props.get(vars.$item--key-focus--outline-color); |
| 68 | } | 65 | } |
| 69 | } | 66 | } |
| 70 | 67 | ||
| 71 | @include bem.next-elem("header") { | 68 | @include bem.next-elem('header') { |
| 72 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); | 69 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); |
| 73 | } | 70 | } |
| 74 | } | 71 | } |
| 75 | 72 | ||
| 76 | @include bem.elem("header") { | 73 | @include bem.elem('header') { |
| 77 | &:link, | 74 | &:link, |
| 78 | &:visited, | 75 | &:visited, |
| 79 | &:enabled { | 76 | &:enabled { |
| @@ -81,14 +78,14 @@ | |||
| 81 | } | 78 | } |
| 82 | } | 79 | } |
| 83 | 80 | ||
| 84 | @include bem.elem("separator") { | 81 | @include bem.elem('separator') { |
| 85 | block-size: props.get(vars.$separator); | 82 | block-size: props.get(vars.$separator); |
| 86 | } | 83 | } |
| 87 | 84 | ||
| 88 | @include bem.elem("icon-slot") { | 85 | @include bem.elem('icon-slot') { |
| 89 | display: flex; | 86 | display: flex; |
| 90 | justify-content: center; | 87 | justify-content: center; |
| 91 | inline-size: props.get(icon.$size); | 88 | inline-size: props.get(icon.$size); |
| 92 | } | 89 | } |
| 93 | } | 90 | } |
| 94 | } | 91 | } |
diff --git a/src/objects/_side-nav.vars.scss b/src/objects/_side-nav.vars.scss index 8abb0df..d6a7de1 100644 --- a/src/objects/_side-nav.vars.scss +++ b/src/objects/_side-nav.vars.scss | |||
| @@ -1,72 +1,28 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 6 | $header--font-size: props.def(--o-side-nav--header--font-size, props.get(core.$font-size--50)) !default; |
| 7 | --o-side-nav--header--font-size, | 7 | $separator: props.def(--o-side-nav--separator, props.get(core.$size--200)) !default; |
| 8 | props.get(core.$font-size--50) | ||
| 9 | ) !default; | ||
| 10 | $separator: props.def(--o-side-nav--separator, props.get(core.$size--200)) !default; | ||
| 11 | 8 | ||
| 12 | $item--pad-i: props.def(--o-side-nav--item--pad-i, props.get(core.$size--150)) !default; | 9 | $item--pad-i: props.def(--o-side-nav--item--pad-i, props.get(core.$size--150)) !default; |
| 13 | $item--pad-b: props.def(--o-side-nav--item--pad-b, props.get(core.$size--75)) !default; | 10 | $item--pad-b: props.def(--o-side-nav--item--pad-b, props.get(core.$size--75)) !default; |
| 14 | $item--rounding: props.def(--o-side-nav--item--rounding, props.get(core.$rounding--sm)) !default; | 11 | $item--rounding: props.def(--o-side-nav--item--rounding, props.get(core.$rounding--sm)) !default; |
| 15 | 12 | ||
| 16 | $item--key-focus--border-width: props.def( | 13 | $item--key-focus--border-width: props.def(--o-side-nav--item--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 17 | --o-side-nav--item--key-focus--border-width, | 14 | $item--key-focus--border-offset: props.def(--o-side-nav--item--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 18 | props.get(core.$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; |
| 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; | ||
| 28 | 16 | ||
| 29 | $header--label-color: props.def( | 17 | $header--label-color: props.def(--o-side-nav--header--label-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 30 | --o-side-nav--header--label-color, | ||
| 31 | props.get(core.$theme, --text-mute-more), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 34 | 18 | ||
| 35 | $item--hover--bg-color: props.def( | 19 | $item--hover--bg-color: props.def(--o-side-nav--item--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 36 | --o-side-nav--item--hover--bg-color, | 20 | $item--hover--label-color: props.def(--o-side-nav--item--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 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; | ||
| 45 | 21 | ||
| 46 | $item--active--bg-color: props.def( | 22 | $item--active--bg-color: props.def(--o-side-nav--item--active--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 47 | --o-side-nav--item--active--bg-color, | 23 | $item--active--label-color: props.def(--o-side-nav--item--active--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 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; | ||
| 56 | 24 | ||
| 57 | $item--disabled--label-color: props.def( | 25 | $item--disabled--label-color: props.def(--o-side-nav--item--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 58 | --o-side-nav--item--disabled--label-color, | ||
| 59 | props.get(core.$theme, --text-disabled), | ||
| 60 | "color" | ||
| 61 | ) !default; | ||
| 62 | 26 | ||
| 63 | $item--key-focus--border-color: props.def( | 27 | $item--key-focus--border-color: props.def(--o-side-nav--item--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 64 | --o-side-nav--item--key-focus--border-color, | 28 | $item--key-focus--outline-color: props.def(--o-side-nav--item--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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 8885929..fe8fe26 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/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/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 66a11e8..dfe628f 100644 --- a/src/objects/_status-indicator.vars.scss +++ b/src/objects/_status-indicator.vars.scss | |||
| @@ -1,32 +1,26 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 8 | $default: props.def(--o-status-indicator--default, props.get(core.$theme, --border-strong), 'color') !default; |
| 9 | --o-status-indicator--default, | 9 | $primary: props.def(--o-status-indicator--primary, props.get(core.$theme, --text), 'color') !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; | ||
| 18 | 10 | ||
| 19 | $themes-config: ( | 11 | $themes-config: ( |
| 20 | accent: --accent, | 12 | accent: --accent, |
| 21 | positive: --positive, | 13 | positive: --positive, |
| 22 | negative: --negative, | 14 | negative: --negative, |
| 23 | warning: --warning, | 15 | warning: --warning, |
| 24 | ) !default; | 16 | ) !default; |
| 25 | 17 | ||
| 26 | $themes: props.def(--o-status-indicator, (), "color"); | 18 | $themes: props.def(--o-status-indicator, (), 'color'); |
| 27 | 19 | ||
| 28 | @each $theme, $key in $themes-config { | 20 | @each $theme, $key in $themes-config { |
| 29 | @if $theme != --base { | 21 | @if $theme != --base { |
| 30 | $themes: props.merge($themes, (--#{$theme}: props.get(core.$theme, $key, --700))); | 22 | $themes: props.merge($themes, ( |
| 23 | --#{$theme}: props.get(core.$theme, $key, --700), | ||
| 24 | )); | ||
| 31 | } | 25 | } |
| 32 | } | 26 | } |
diff --git a/src/objects/_switch.scss b/src/objects/_switch.scss index c1f7411..0ef95e6 100644 --- a/src/objects/_switch.scss +++ b/src/objects/_switch.scss | |||
| @@ -1,79 +1,73 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 18 | margin-inline: |
| 19 | calc( | 19 | calc(-1 * 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( | 20 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)); |
| 21 | vars.$key-focus--border-offset | ||
| 22 | ) | ||
| 23 | ); | ||
| 24 | 21 | ||
| 25 | @include bem.elem("indicator") { | 22 | @include bem.elem('indicator') { |
| 26 | display: inline-block; | 23 | display: inline-block; |
| 27 | flex: 0 0 auto; | 24 | flex: 0 0 auto; |
| 28 | inline-size: props.get(vars.$inline-size); | 25 | inline-size: props.get(vars.$inline-size); |
| 29 | block-size: props.get(vars.$block-size); | 26 | block-size: props.get(vars.$block-size); |
| 30 | margin-block-start: calc( | 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)); |
| 31 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * | 28 | vertical-align: top; |
| 32 | props.get(vars.$block-size) - props.get(vars.$key-focus--border-offset) | 29 | background-color: props.get(vars.$track-bg-color); |
| 33 | ); | 30 | background-clip: padding-box; |
| 34 | vertical-align: top; | 31 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 35 | background-color: props.get(vars.$track-bg-color); | 32 | border-radius: 2em; |
| 36 | background-clip: padding-box; | 33 | transition: background-color .2s ease; |
| 37 | border: props.get(vars.$key-focus--border-offset) solid transparent; | ||
| 38 | border-radius: 2em; | ||
| 39 | transition: background-color 0.2s ease; | ||
| 40 | 34 | ||
| 41 | &::after { | 35 | &::after { |
| 42 | display: block; | 36 | display: block; |
| 43 | inline-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); | 37 | inline-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)); | 38 | block-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); |
| 45 | content: ""; | 39 | content: ''; |
| 46 | background-color: props.get(vars.$handle-bg-color); | 40 | background-color: props.get(vars.$handle-bg-color); |
| 47 | border: props.get(vars.$border-width) solid props.get(vars.$handle-border-color); | 41 | border: props.get(vars.$border-width) solid props.get(vars.$handle-border-color); |
| 48 | border-radius: props.get(vars.$inline-size); | 42 | border-radius: props.get(vars.$inline-size); |
| 49 | transition: transform 0.2s ease; | 43 | transition: transform .2s ease; |
| 50 | } | 44 | } |
| 51 | } | 45 | } |
| 52 | 46 | ||
| 53 | @include bem.elem("label") { | 47 | @include bem.elem('label') { |
| 54 | margin-inline-start: props.get(vars.$label-gap); | 48 | margin-inline-start: props.get(vars.$label-gap); |
| 55 | } | 49 | } |
| 56 | 50 | ||
| 57 | @include bem.elem("native") { | 51 | @include bem.elem('native') { |
| 58 | position: absolute; | 52 | position: absolute; |
| 59 | inset-block-start: 0; | 53 | inset-block-start: 0; |
| 60 | inset-inline-start: 0; | 54 | inset-inline-start: 0; |
| 61 | z-index: -1; | 55 | z-index: -1; |
| 62 | inline-size: 100%; | 56 | inline-size: 100%; |
| 63 | block-size: 100%; | 57 | block-size: 100%; |
| 64 | padding: 0; | 58 | padding: 0; |
| 65 | margin: 0; | 59 | margin: 0; |
| 66 | overflow: hidden; | 60 | overflow: hidden; |
| 67 | appearance: none; | 61 | appearance: none; |
| 68 | border-radius: props.get(vars.$rounding); | 62 | border-radius: props.get(vars.$rounding); |
| 69 | 63 | ||
| 70 | &:hover, | 64 | &:hover, |
| 71 | &:focus-visible { | 65 | &:focus-visible { |
| 72 | @include bem.sibling-elem("label") { | 66 | @include bem.sibling-elem('label') { |
| 73 | color: props.get(vars.$hover--label-color); | 67 | color: props.get(vars.$hover--label-color); |
| 74 | } | 68 | } |
| 75 | 69 | ||
| 76 | @include bem.sibling-elem("indicator") { | 70 | @include bem.sibling-elem('indicator') { |
| 77 | &::after { | 71 | &::after { |
| 78 | border-color: props.get(vars.$hover--handle-border-color); | 72 | border-color: props.get(vars.$hover--handle-border-color); |
| 79 | } | 73 | } |
| @@ -81,23 +75,18 @@ | |||
| 81 | } | 75 | } |
| 82 | 76 | ||
| 83 | &:checked { | 77 | &:checked { |
| 84 | @include bem.sibling-elem("indicator") { | 78 | @include bem.sibling-elem('indicator') { |
| 85 | background-color: props.get(vars.$handle-border-color); | 79 | background-color: props.get(vars.$handle-border-color); |
| 86 | 80 | ||
| 87 | &::after { | 81 | &::after { |
| 88 | border-color: props.get(vars.$handle-border-color); | 82 | border-color: props.get(vars.$handle-border-color); |
| 89 | transform: translate( | 83 | transform: translate(calc(props.get(vars.$inline-size) - props.get(vars.$block-size) + .5px), 0); |
| 90 | calc( | ||
| 91 | props.get(vars.$inline-size) - props.get(vars.$block-size) + 0.5px | ||
| 92 | ), | ||
| 93 | 0 | ||
| 94 | ); | ||
| 95 | } | 84 | } |
| 96 | } | 85 | } |
| 97 | 86 | ||
| 98 | &:hover, | 87 | &:hover, |
| 99 | &:focus-visible { | 88 | &:focus-visible { |
| 100 | @include bem.sibling-elem("indicator") { | 89 | @include bem.sibling-elem('indicator') { |
| 101 | background-color: props.get(vars.$hover--handle-border-color); | 90 | background-color: props.get(vars.$hover--handle-border-color); |
| 102 | 91 | ||
| 103 | &::after { | 92 | &::after { |
| @@ -108,21 +97,21 @@ | |||
| 108 | } | 97 | } |
| 109 | 98 | ||
| 110 | &:disabled { | 99 | &:disabled { |
| 111 | @include bem.sibling-elem("label") { | 100 | @include bem.sibling-elem('label') { |
| 112 | color: props.get(vars.$disabled--label-color); | 101 | color: props.get(vars.$disabled--label-color); |
| 113 | } | 102 | } |
| 114 | 103 | ||
| 115 | @include bem.sibling-elem("indicator") { | 104 | @include bem.sibling-elem('indicator') { |
| 116 | background-color: props.get(vars.$disabled--track-bg-color); | 105 | background-color: props.get(vars.$disabled--track-bg-color); |
| 117 | 106 | ||
| 118 | &::after { | 107 | &::after { |
| 119 | background-color: props.get(vars.$disabled--handle-bg-color); | 108 | background-color: props.get(vars.$disabled--handle-bg-color); |
| 120 | border-color: props.get(vars.$disabled--handle-border-color); | 109 | border-color: props.get(vars.$disabled--handle-border-color); |
| 121 | } | 110 | } |
| 122 | } | 111 | } |
| 123 | 112 | ||
| 124 | &:checked { | 113 | &:checked { |
| 125 | @include bem.sibling-elem("indicator") { | 114 | @include bem.sibling-elem('indicator') { |
| 126 | background-color: props.get(vars.$disabled--handle-border-color); | 115 | background-color: props.get(vars.$disabled--handle-border-color); |
| 127 | 116 | ||
| 128 | &::after { | 117 | &::after { |
| @@ -133,33 +122,32 @@ | |||
| 133 | } | 122 | } |
| 134 | 123 | ||
| 135 | &:focus-visible { | 124 | &:focus-visible { |
| 136 | @include bem.sibling-elem("label") { | 125 | @include bem.sibling-elem('label') { |
| 137 | color: props.get(vars.$key-focus--label-color); | 126 | color: props.get(vars.$key-focus--label-color); |
| 138 | } | 127 | } |
| 139 | 128 | ||
| 140 | @include bem.sibling-elem("indicator") { | 129 | @include bem.sibling-elem('indicator') { |
| 141 | outline: props.get(vars.$key-focus--border-color) solid | 130 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 142 | props.get(vars.$key-focus--border-width); | 131 | box-shadow: |
| 143 | box-shadow: 0 0 0 | 132 | 0 |
| 144 | calc( | 133 | 0 |
| 145 | props.get(vars.$key-focus--border-width) + | 134 | 0 |
| 146 | props.get(vars.$key-focus--outline-width) | 135 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 147 | ) | ||
| 148 | props.get(vars.$key-focus--outline-color); | 136 | props.get(vars.$key-focus--outline-color); |
| 149 | } | 137 | } |
| 150 | } | 138 | } |
| 151 | } | 139 | } |
| 152 | 140 | ||
| 153 | @include bem.modifier("standalone") { | 141 | @include bem.modifier('standalone') { |
| 154 | @include bem.elem("indicator") { | 142 | @include bem.elem('indicator') { |
| 155 | margin-block-start: 0; | 143 | margin-block-start: 0; |
| 156 | } | 144 | } |
| 157 | } | 145 | } |
| 158 | 146 | ||
| 159 | @include bem.modifier("accent") { | 147 | @include bem.modifier('accent') { |
| 160 | @include bem.elem("native") { | 148 | @include bem.elem('native') { |
| 161 | &:checked { | 149 | &:checked { |
| 162 | @include bem.sibling-elem("indicator") { | 150 | @include bem.sibling-elem('indicator') { |
| 163 | background-color: props.get(vars.$accent--handle-border-color); | 151 | background-color: props.get(vars.$accent--handle-border-color); |
| 164 | 152 | ||
| 165 | &::after { | 153 | &::after { |
| @@ -169,7 +157,7 @@ | |||
| 169 | 157 | ||
| 170 | &:hover, | 158 | &:hover, |
| 171 | &:focus-visible { | 159 | &:focus-visible { |
| 172 | @include bem.sibling-elem("indicator") { | 160 | @include bem.sibling-elem('indicator') { |
| 173 | background-color: props.get(vars.$accent--hover--handle-border-color); | 161 | background-color: props.get(vars.$accent--hover--handle-border-color); |
| 174 | 162 | ||
| 175 | &::after { | 163 | &::after { |
| @@ -180,12 +168,12 @@ | |||
| 180 | } | 168 | } |
| 181 | 169 | ||
| 182 | &:disabled { | 170 | &:disabled { |
| 183 | @include bem.sibling-elem("label") { | 171 | @include bem.sibling-elem('label') { |
| 184 | color: props.get(vars.$disabled--label-color); | 172 | color: props.get(vars.$disabled--label-color); |
| 185 | } | 173 | } |
| 186 | 174 | ||
| 187 | &:checked { | 175 | &:checked { |
| 188 | @include bem.sibling-elem("indicator") { | 176 | @include bem.sibling-elem('indicator') { |
| 189 | background-color: props.get(vars.$disabled--handle-border-color); | 177 | background-color: props.get(vars.$disabled--handle-border-color); |
| 190 | 178 | ||
| 191 | &::after { | 179 | &::after { |
diff --git a/src/objects/_switch.vars.scss b/src/objects/_switch.vars.scss index 6f56ec7..761cacd 100644 --- a/src/objects/_switch.vars.scss +++ b/src/objects/_switch.vars.scss | |||
| @@ -1,101 +1,36 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 14 | $key-focus--border-width: props.def(--o-switch--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 15 | --o-switch--key-focus--border-width, | 15 | $key-focus--border-offset: props.def(--o-switch--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 16 | props.get(core.$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; |
| 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; | ||
| 26 | 17 | ||
| 27 | $track-bg-color: props.def( | 18 | $track-bg-color: props.def(--o-switch--track-bg-color, props.get(core.$theme, --border), 'color') !default; |
| 28 | --o-switch--track-bg-color, | 19 | $handle-border-color: props.def(--o-switch--handle-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 29 | props.get(core.$theme, --border), | 20 | $handle-bg-color: props.def(--o-switch--handle-bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 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; | ||
| 42 | 21 | ||
| 43 | $hover--label-color: props.def( | 22 | $hover--label-color: props.def(--o-switch--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 44 | --o-switch--hover--label-color, | 23 | $hover--handle-border-color: props.def(--o-switch--hover--handle-border-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 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; | ||
| 53 | 24 | ||
| 54 | $accent--handle-border-color: props.def( | 25 | $accent--handle-border-color: props.def(--o-switch--accent--handle-border-color, props.get(core.$theme, --accent, --900), 'color') !default; |
| 55 | --o-switch--accent--handle-border-color, | ||
| 56 | props.get(core.$theme, --accent, --900), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 59 | 26 | ||
| 60 | $accent--hover--handle-border-color: props.def( | 27 | $accent--hover--handle-border-color: props.def(--o-switch--accent--hover--handle-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; |
| 61 | --o-switch--accent--hover--handle-border-color, | ||
| 62 | props.get(core.$theme, --accent, --1000), | ||
| 63 | "color" | ||
| 64 | ) !default; | ||
| 65 | 28 | ||
| 66 | $disabled--label-color: props.def( | 29 | $disabled--label-color: props.def(--o-switch--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 67 | --o-switch--disabled--label-color, | 30 | $disabled--track-bg-color: props.def(--o-switch--disabled--track-bg-color, props.get(core.$theme, --border), 'color') !default; |
| 68 | props.get(core.$theme, --text-disabled), | 31 | $disabled--handle-border-color: props.def(--o-switch--disabled--handle-border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 69 | "color" | 32 | $disabled--handle-bg-color: props.def(--o-switch--disabled--handle-bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 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; | ||
| 86 | 33 | ||
| 87 | $key-focus--label-color: props.def( | 34 | $key-focus--label-color: props.def(--o-switch--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 88 | --o-switch--key-focus--label-color, | 35 | $key-focus--border-color: props.def(--o-switch--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 89 | props.get(core.$theme, --focus, --text), | 36 | $key-focus--outline-color: props.def(--o-switch--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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 02519f9..d43208f 100644 --- a/src/objects/_tabbar.scss +++ b/src/objects/_tabbar.scss | |||
| @@ -1,77 +1,75 @@ | |||
| 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/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/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(0.5 * props.get(vars.$spacing)); | 49 | padding-inline: calc(.5 * props.get(vars.$spacing)); |
| 50 | margin-inline: calc(-0.5 * props.get(vars.$spacing)); | 50 | margin-inline: calc(-.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( | 57 | inset-inline: calc(-1 * props.get(vars.$tab--pad-i) + .5 * props.get(vars.$spacing)); |
| 58 | -1 * props.get(vars.$tab--pad-i) + 0.5 * props.get(vars.$spacing) | 58 | z-index: -10; |
| 59 | ); | 59 | block-size: 1.5em; |
| 60 | z-index: -10; | 60 | content: ''; |
| 61 | block-size: 1.5em; | 61 | border-radius: props.get(vars.$rounding); |
| 62 | content: ""; | 62 | transform: translateY(-50%); |
| 63 | border-radius: props.get(vars.$rounding); | ||
| 64 | transform: translateY(-50%); | ||
| 65 | } | 63 | } |
| 66 | 64 | ||
| 67 | &::after { | 65 | &::after { |
| 68 | position: absolute; | 66 | position: absolute; |
| 69 | inset-block-end: 0; | 67 | inset-block-end: 0; |
| 70 | inset-inline: calc(0.5 * props.get(vars.$spacing)); | 68 | inset-inline: calc(.5 * props.get(vars.$spacing)); |
| 71 | z-index: 10; | 69 | z-index: 10; |
| 72 | display: none; | 70 | display: none; |
| 73 | block-size: props.get(vars.$indicator--width); | 71 | block-size: props.get(vars.$indicator--width); |
| 74 | content: ""; | 72 | content: ''; |
| 75 | background-color: props.get(vars.$tab--selected--text-color); | 73 | background-color: props.get(vars.$tab--selected--text-color); |
| 76 | } | 74 | } |
| 77 | 75 | ||
| @@ -85,25 +83,21 @@ | |||
| 85 | 83 | ||
| 86 | &:focus-visible { | 84 | &:focus-visible { |
| 87 | &::before { | 85 | &::before { |
| 88 | color: props.get(vars.$key-focus--text-color); | 86 | color: props.get(vars.$key-focus--text-color); |
| 89 | text-decoration: none; | 87 | text-decoration: none; |
| 90 | outline: props.get(vars.$key-focus--border-color) solid | 88 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 91 | props.get(vars.$key-focus--border-width); | ||
| 92 | box-shadow: 0 0 0 | 89 | box-shadow: 0 0 0 |
| 93 | calc( | 90 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 94 | props.get(vars.$key-focus--border-width) + | ||
| 95 | props.get(vars.$key-focus--outline-width) | ||
| 96 | ) | ||
| 97 | props.get(vars.$key-focus--outline-color); | 91 | props.get(vars.$key-focus--outline-color); |
| 98 | } | 92 | } |
| 99 | } | 93 | } |
| 100 | } | 94 | } |
| 101 | 95 | ||
| 102 | @include bem.next-twin-elem { | 96 | @include bem.next-twin-elem { |
| 103 | margin-inline-start: calc(0.5 * props.get(vars.$spacing)); | 97 | margin-inline-start: calc(.5 * props.get(vars.$spacing)); |
| 104 | } | 98 | } |
| 105 | 99 | ||
| 106 | @include bem.is("selected") { | 100 | @include bem.is('selected') { |
| 107 | color: props.get(vars.$tab--selected--text-color); | 101 | color: props.get(vars.$tab--selected--text-color); |
| 108 | 102 | ||
| 109 | &::after { | 103 | &::after { |
| @@ -112,13 +106,13 @@ | |||
| 112 | } | 106 | } |
| 113 | } | 107 | } |
| 114 | 108 | ||
| 115 | @include bem.modifier("accent") { | 109 | @include bem.modifier('accent') { |
| 116 | @include bem.elem("tab") { | 110 | @include bem.elem('tab') { |
| 117 | &::after { | 111 | &::after { |
| 118 | background-color: props.get(vars.$tab--accent--text-color); | 112 | background-color: props.get(vars.$tab--accent--text-color); |
| 119 | } | 113 | } |
| 120 | 114 | ||
| 121 | @include bem.is("selected") { | 115 | @include bem.is('selected') { |
| 122 | color: props.get(vars.$tab--accent--text-color); | 116 | color: props.get(vars.$tab--accent--text-color); |
| 123 | } | 117 | } |
| 124 | } | 118 | } |
diff --git a/src/objects/_tabbar.vars.scss b/src/objects/_tabbar.vars.scss index d26f302..d9cc53e 100644 --- a/src/objects/_tabbar.vars.scss +++ b/src/objects/_tabbar.vars.scss | |||
| @@ -1,66 +1,26 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 12 | $indicator--width: props.def(--o-tabbar--indicator--width, props.get(core.$border-width--medium)) !default; |
| 13 | --o-tabbar--indicator--width, | ||
| 14 | props.get(core.$border-width--medium) | ||
| 15 | ) !default; | ||
| 16 | 13 | ||
| 17 | $key-focus--border-width: props.def( | 14 | $key-focus--border-width: props.def(--o-tabbar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 18 | --o-tabbar--key-focus--border-width, | 15 | $key-focus--border-offset: props.def(--o-tabbar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 19 | props.get(core.$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; |
| 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; | ||
| 29 | 17 | ||
| 30 | $tab--text-color: props.def( | 18 | $tab--text-color: props.def(--o-tabbar--tab--text-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 31 | --o-tabbar--tab--text-color, | 19 | $tab--selected--text-color: props.def(--o-tabbar--tab--selected--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 32 | props.get(core.$theme, --text-mute), | 20 | $tab--accent--text-color: props.def(--o-tabbar--tab--accent--text-color, props.get(core.$theme, --accent, --1100), 'color') !default; |
| 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; | ||
| 45 | 21 | ||
| 46 | $railing--bg-color: props.def( | 22 | $railing--bg-color: props.def(--o-tabbar--railing--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 47 | --o-tabbar--railing--bg-color, | ||
| 48 | props.get(core.$theme, --border-mute), | ||
| 49 | "color" | ||
| 50 | ) !default; | ||
| 51 | 23 | ||
| 52 | $key-focus--text-color: props.def( | 24 | $key-focus--text-color: props.def(--o-tabbar--key-focus--text-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 53 | --o-tabbar--key-focus--text-color, | 25 | $key-focus--border-color: props.def(--o-tabbar--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 54 | props.get(core.$theme, --focus, --text), | 26 | $key-focus--outline-color: props.def(--o-tabbar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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 a985f78..effa61f 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/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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 e00010f..7c5683c 100644 --- a/src/objects/_table.vars.scss +++ b/src/objects/_table.vars.scss | |||
| @@ -1,59 +1,25 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 10 | $heading--font-family: props.def(--o-table--heading--font-family, props.get(core.$font--standard--family)) !default; |
| 11 | --o-table--heading--font-family, | 11 | $heading--font-size: props.def(--o-table--heading--font-size, props.get(core.$font-size--50)) !default; |
| 12 | props.get(core.$font--standard--family) | 12 | $heading--font-weight: props.def(--o-table--heading--font-weight, bold) !default; |
| 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; | ||
| 19 | $heading--text-transform: props.def(--o-table--heading--text-transform, uppercase) !default; | 13 | $heading--text-transform: props.def(--o-table--heading--text-transform, uppercase) !default; |
| 20 | $heading--letter-spacing: props.def(--o-table--heading--letter-spacing, 0.5px) !default; | 14 | $heading--letter-spacing: props.def(--o-table--heading--letter-spacing, .5px) !default; |
| 21 | 15 | ||
| 22 | $pad-b--sm: props.def(--o-table--sm--pad-b, props.get(core.$size--75)) !default; | 16 | $pad-b--sm: props.def(--o-table--sm--pad-b, props.get(core.$size--75)) !default; |
| 23 | 17 | ||
| 24 | $border-color: props.def( | 18 | $border-color: props.def(--o-table--border-color, props.get(core.$theme, --border), 'color') !default; |
| 25 | --o-table--border-color, | 19 | $heading-color: props.def(--o-table--heading-color, props.get(core.$theme, --heading), 'color') !default; |
| 26 | props.get(core.$theme, --border), | 20 | $hover--bg-color: props.def(--o-table--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 27 | "color" | 21 | $active--bg-color: props.def(--o-table--active--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 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; | ||
| 44 | 22 | ||
| 45 | $box--bg-color: props.def( | 23 | $box--bg-color: props.def(--o-table--box--bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 46 | --o-table--box--bg-color, | 24 | $box--hover--bg-color: props.def(--o-table--box--hover--bg-color, props.get(core.$theme, --bg-base), 'color') !default; |
| 47 | props.get(core.$theme, --base, --50), | 25 | $box--active--bg-color: props.def(--o-table--box--active--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 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 a8d3ec8..5a48df3 100644 --- a/src/objects/_text-field.scss +++ b/src/objects/_text-field.scss | |||
| @@ -1,91 +1,84 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 10 | $focus-border-offset: calc(props.get(vars.$border-width) - props.get(vars.$focus--border-width)); |
| 11 | props.get(vars.$border-width) - props.get(vars.$focus--border-width) | ||
| 12 | ); | ||
| 13 | 11 | ||
| 14 | @include bem.sibling-elem("bg") { | 12 | @include bem.sibling-elem('bg') { |
| 15 | inset-block: $focus-border-offset; | 13 | inset-block: $focus-border-offset; |
| 16 | inset-inline: $focus-border-offset; | 14 | inset-inline: $focus-border-offset; |
| 17 | border: props.get(vars.$focus--border-width) solid props.get(vars.$error--border-color); | 15 | border: props.get(vars.$focus--border-width) solid props.get(vars.$error--border-color); |
| 18 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 16 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 19 | } | 17 | } |
| 20 | 18 | ||
| 21 | &:hover { | 19 | &:hover { |
| 22 | @include bem.sibling-elem("bg") { | 20 | @include bem.sibling-elem('bg') { |
| 23 | border-color: props.get(vars.$error--hover--border-color); | 21 | border-color: props.get(vars.$error--hover--border-color); |
| 24 | } | 22 | } |
| 25 | } | 23 | } |
| 26 | 24 | ||
| 27 | &:focus { | 25 | &:focus { |
| 28 | @include bem.sibling-elem("bg") { | 26 | @include bem.sibling-elem('bg') { |
| 29 | border-color: props.get(vars.$error--focus--border-color); | 27 | border-color: props.get(vars.$error--focus--border-color); |
| 30 | } | 28 | } |
| 31 | } | 29 | } |
| 32 | } | 30 | } |
| 33 | 31 | ||
| 34 | @mixin -keyboard-focus { | 32 | @mixin -keyboard-focus { |
| 35 | @include bem.sibling-elem("bg") { | 33 | @include bem.sibling-elem('bg') { |
| 36 | outline: props.get(vars.$key-focus--outline-color) solid | 34 | outline: props.get(vars.$key-focus--outline-color) solid props.get(vars.$key-focus--border-width); |
| 37 | props.get(vars.$key-focus--border-width); | 35 | border-color: props.get(vars.$key-focus--border-color); |
| 38 | border-color: props.get(vars.$key-focus--border-color); | ||
| 39 | //outline-offset: props.get(vars.$focus --border); | 36 | //outline-offset: props.get(vars.$focus --border); |
| 40 | } | 37 | } |
| 41 | } | 38 | } |
| 42 | 39 | ||
| 43 | @mixin styles { | 40 | @mixin styles { |
| 44 | @include materialize-at-root(meta.module-variables("vars")); | 41 | @include materialize-at-root(meta.module-variables('vars')); |
| 45 | 42 | ||
| 46 | @include bem.object("text-field") { | 43 | @include bem.object('text-field') { |
| 47 | $focus-border-offset: calc( | 44 | $focus-border-offset: calc(props.get(vars.$border-width) - props.get(vars.$focus--border-width)); |
| 48 | props.get(vars.$border-width) - props.get(vars.$focus--border-width) | ||
| 49 | ); | ||
| 50 | 45 | ||
| 51 | position: relative; | 46 | position: relative; |
| 52 | min-inline-size: 0; | 47 | min-inline-size: 0; |
| 53 | background-color: props.get(vars.$bg-color); | 48 | background-color: props.get(vars.$bg-color); |
| 54 | border-radius: props.get(vars.$rounding); | 49 | border-radius: props.get(vars.$rounding); |
| 55 | 50 | ||
| 56 | @include bem.elem("bg") { | 51 | @include bem.elem('bg') { |
| 57 | position: absolute; | 52 | position: absolute; |
| 58 | inset-block: 0; | 53 | inset-block: 0; |
| 59 | inset-inline: 0; | 54 | inset-inline: 0; |
| 60 | display: block; | 55 | display: block; |
| 61 | pointer-events: none; | 56 | pointer-events: none; |
| 62 | border: props.get(vars.$border-width) solid props.get(vars.$border-color); | 57 | border: props.get(vars.$border-width) solid props.get(vars.$border-color); |
| 63 | border-radius: props.get(vars.$rounding); | 58 | border-radius: props.get(vars.$rounding); |
| 64 | } | 59 | } |
| 65 | 60 | ||
| 66 | @include bem.elem("native") { | 61 | @include bem.elem('native') { |
| 67 | box-sizing: border-box; | 62 | box-sizing: border-box; |
| 68 | inline-size: 100%; | 63 | inline-size: 100%; |
| 69 | padding-block: calc( | 64 | padding-block: calc(props.get(vars.$pad-b) - .5em * (props.get(vars.$line-height) - 1)); |
| 70 | props.get(vars.$pad-b) - 0.5em * (props.get(vars.$line-height) - 1) | 65 | padding-inline: props.get(vars.$pad-i); |
| 71 | ); | 66 | font: inherit; |
| 72 | padding-inline: props.get(vars.$pad-i); | 67 | line-height: props.get(vars.$line-height); |
| 73 | font: inherit; | 68 | color: props.get(vars.$text-color); |
| 74 | line-height: props.get(vars.$line-height); | 69 | appearance: none; |
| 75 | color: props.get(vars.$text-color); | 70 | resize: none; |
| 76 | appearance: none; | ||
| 77 | resize: none; | ||
| 78 | background-color: transparent; | 71 | background-color: transparent; |
| 79 | border: 1px solid transparent; | 72 | border: 1px solid transparent; |
| 80 | 73 | ||
| 81 | &::placeholder { | 74 | &::placeholder { |
| 82 | font-style: italic; | 75 | font-style: italic; |
| 83 | color: props.get(vars.$placeholder-color); | 76 | color: props.get(vars.$placeholder-color); |
| 84 | opacity: 1; | 77 | opacity: 1; |
| 85 | } | 78 | } |
| 86 | 79 | ||
| 87 | &:hover { | 80 | &:hover { |
| 88 | @include bem.sibling-elem("bg") { | 81 | @include bem.sibling-elem('bg') { |
| 89 | border-color: props.get(vars.$hover--border-color); | 82 | border-color: props.get(vars.$hover--border-color); |
| 90 | } | 83 | } |
| 91 | } | 84 | } |
| @@ -93,11 +86,10 @@ | |||
| 93 | &:focus { | 86 | &:focus { |
| 94 | outline: 0; | 87 | outline: 0; |
| 95 | 88 | ||
| 96 | @include bem.sibling-elem("bg") { | 89 | @include bem.sibling-elem('bg') { |
| 97 | inset-block: $focus-border-offset; | 90 | inset-block: $focus-border-offset; |
| 98 | inset-inline: $focus-border-offset; | 91 | inset-inline: $focus-border-offset; |
| 99 | border: props.get(vars.$focus--border-width) solid | 92 | border: props.get(vars.$focus--border-width) solid props.get(vars.$focus--border-color); |
| 100 | props.get(vars.$focus--border-color); | ||
| 101 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 93 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 102 | } | 94 | } |
| 103 | } | 95 | } |
| @@ -112,49 +104,46 @@ | |||
| 112 | } | 104 | } |
| 113 | } | 105 | } |
| 114 | 106 | ||
| 115 | @include bem.modifier("extended") { | 107 | @include bem.modifier('extended') { |
| 116 | padding: props.get(vars.$extended--pad); | 108 | padding: props.get(vars.$extended--pad); |
| 117 | 109 | ||
| 118 | @include bem.multi("&", "elem" "bg") { | 110 | @include bem.multi('&', 'elem' 'bg') { |
| 119 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad)); | 111 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad)); |
| 120 | } | 112 | } |
| 121 | 113 | ||
| 122 | @include bem.elem("native") { | 114 | @include bem.elem('native') { |
| 123 | &:focus { | 115 | &:focus { |
| 124 | @include bem.sibling-elem("bg") { | 116 | @include bem.sibling-elem('bg') { |
| 125 | border-radius: calc( | 117 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad) - $focus-border-offset); |
| 126 | props.get(vars.$rounding) + props.get(vars.$extended--pad) - | ||
| 127 | $focus-border-offset | ||
| 128 | ); | ||
| 129 | } | 118 | } |
| 130 | } | 119 | } |
| 131 | } | 120 | } |
| 132 | } | 121 | } |
| 133 | 122 | ||
| 134 | @include bem.modifier("pill") { | 123 | @include bem.modifier('pill') { |
| 135 | @include bem.multi("&", "elem" "bg") { | 124 | @include bem.multi('&', 'elem' 'bg') { |
| 136 | border-radius: 100em; | 125 | border-radius: 100em; |
| 137 | } | 126 | } |
| 138 | 127 | ||
| 139 | @include bem.elem("native") { | 128 | @include bem.elem('native') { |
| 140 | padding-inline: props.get(vars.$pad-i-pill); | 129 | padding-inline: props.get(vars.$pad-i-pill); |
| 141 | 130 | ||
| 142 | &:focus { | 131 | &:focus { |
| 143 | @include bem.sibling-elem("bg") { | 132 | @include bem.sibling-elem('bg') { |
| 144 | border-radius: 100em; | 133 | border-radius: 100em; |
| 145 | } | 134 | } |
| 146 | } | 135 | } |
| 147 | } | 136 | } |
| 148 | 137 | ||
| 149 | @include bem.modifier("extended") { | 138 | @include bem.modifier('extended') { |
| 150 | @include bem.elem("native") { | 139 | @include bem.elem('native') { |
| 151 | padding-inline: props.get(vars.$pad-i); | 140 | padding-inline: props.get(vars.$pad-i); |
| 152 | } | 141 | } |
| 153 | } | 142 | } |
| 154 | } | 143 | } |
| 155 | 144 | ||
| 156 | @include bem.is("invalid") { | 145 | @include bem.is('invalid') { |
| 157 | @include bem.elem("native") { | 146 | @include bem.elem('native') { |
| 158 | @include -invalid; | 147 | @include -invalid; |
| 159 | 148 | ||
| 160 | &:focus-visible { | 149 | &:focus-visible { |
| @@ -163,10 +152,10 @@ | |||
| 163 | } | 152 | } |
| 164 | } | 153 | } |
| 165 | 154 | ||
| 166 | @include bem.is("disabled") { | 155 | @include bem.is('disabled') { |
| 167 | background-color: props.get(vars.$disabled--bg-color); | 156 | background-color: props.get(vars.$disabled--bg-color); |
| 168 | 157 | ||
| 169 | @include bem.elem("native") { | 158 | @include bem.elem('native') { |
| 170 | color: props.get(vars.$disabled--text-color); | 159 | color: props.get(vars.$disabled--text-color); |
| 171 | 160 | ||
| 172 | &::placeholder { | 161 | &::placeholder { |
| @@ -174,21 +163,21 @@ | |||
| 174 | } | 163 | } |
| 175 | } | 164 | } |
| 176 | 165 | ||
| 177 | @include bem.elem("bg") { | 166 | @include bem.elem('bg') { |
| 178 | border-color: props.get(vars.$disabled--border-color); | 167 | border-color: props.get(vars.$disabled--border-color); |
| 179 | } | 168 | } |
| 180 | 169 | ||
| 181 | @include bem.is("invalid") { | 170 | @include bem.is('invalid') { |
| 182 | @include bem.elem("native") { | 171 | @include bem.elem('native') { |
| 183 | @include bem.sibling-elem("bg") { | 172 | @include bem.sibling-elem('bg') { |
| 184 | border-color: props.get(vars.$disabled--border-color); | 173 | border-color: props.get(vars.$disabled--border-color); |
| 185 | } | 174 | } |
| 186 | } | 175 | } |
| 187 | } | 176 | } |
| 188 | 177 | ||
| 189 | @include bem.elem("native") { | 178 | @include bem.elem('native') { |
| 190 | &:invalid { | 179 | &:invalid { |
| 191 | @include bem.sibling-elem("bg") { | 180 | @include bem.sibling-elem('bg') { |
| 192 | border-color: props.get(vars.$disabled--border-color); | 181 | border-color: props.get(vars.$disabled--border-color); |
| 193 | } | 182 | } |
| 194 | } | 183 | } |
diff --git a/src/objects/_text-field.vars.scss b/src/objects/_text-field.vars.scss index 9a2a16a..ef06822 100644 --- a/src/objects/_text-field.vars.scss +++ b/src/objects/_text-field.vars.scss | |||
| @@ -1,108 +1,39 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/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( | 9 | $border-width: props.def(--o-text-field--border-width, props.get(core.$border-width--thin)) !default; |
| 10 | --o-text-field--border-width, | 10 | $rounding: props.def(--o-text-field--rounding, props.get(core.$rounding--sm)) !default; |
| 11 | props.get(core.$border-width--thin) | ||
| 12 | ) !default; | ||
| 13 | $rounding: props.def(--o-text-field--rounding, props.get(core.$rounding--sm)) !default; | ||
| 14 | 11 | ||
| 15 | $extended--pad: props.def(--o-text-field--extended--pad, props.get(core.$size--50)) !default; | 12 | $extended--pad: props.def(--o-text-field--extended--pad, props.get(core.$size--50)) !default; |
| 16 | 13 | ||
| 17 | $focus--border-width: props.def( | 14 | $focus--border-width: props.def(--o-text-field--focus--border-width, props.get(core.$border-width--medium)) !default; |
| 18 | --o-text-field--focus--border-width, | ||
| 19 | props.get(core.$border-width--medium) | ||
| 20 | ) !default; | ||
| 21 | 15 | ||
| 22 | $key-focus--border-width: props.def( | 16 | $key-focus--border-width: props.def(--o-text-field--key-focus--border-width, props.get(core.$key-focus--outline-width)) !default; |
| 23 | --o-text-field--key-focus--border-width, | ||
| 24 | props.get(core.$key-focus--outline-width) | ||
| 25 | ) !default; | ||
| 26 | 17 | ||
| 27 | $bg-color: props.def( | 18 | $bg-color: props.def(--o-text-field--bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 28 | --o-text-field--bg-color, | 19 | $placeholder-color: props.def(--o-text-field--placeholder-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 29 | props.get(core.$theme, --base, --50), | 20 | $text-color: props.def(--o-text-field--text-color, props.get(core.$theme, --text), 'color') !default; |
| 30 | "color" | 21 | $border-color: props.def(--o-text-field--border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 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; | ||
| 47 | 22 | ||
| 48 | $hover--border-color: props.def( | 23 | $hover--border-color: props.def(--o-text-field--hover--border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 49 | --o-text-field--hover--border-color, | ||
| 50 | props.get(core.$theme, --text-mute-more), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 53 | 24 | ||
| 54 | $focus--border-color: props.def( | 25 | $focus--border-color: props.def(--o-text-field--focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 55 | --o-text-field--focus--border-color, | ||
| 56 | props.get(core.$theme, --focus, --border), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 59 | 26 | ||
| 60 | $key-focus--border-color: props.def( | 27 | $key-focus--border-color: props.def(--o-text-field--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 61 | --o-text-field--key-focus--border-color, | 28 | $key-focus--outline-color: props.def(--o-text-field--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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; | ||
| 70 | 29 | ||
| 71 | $error--border-color: props.def( | 30 | $error--border-color: props.def(--o-text-field--error--border-color, props.get(core.$theme, --negative, --700), 'color') !default; |
| 72 | --o-text-field--error--border-color, | ||
| 73 | props.get(core.$theme, --negative, --700), | ||
| 74 | "color" | ||
| 75 | ) !default; | ||
| 76 | 31 | ||
| 77 | $error--hover--border-color: props.def( | 32 | $error--hover--border-color: props.def(--o-text-field--error--hover--border-color, props.get(core.$theme, --negative, --900), 'color') !default; |
| 78 | --o-text-field--error--hover--border-color, | ||
| 79 | props.get(core.$theme, --negative, --900), | ||
| 80 | "color" | ||
| 81 | ) !default; | ||
| 82 | 33 | ||
| 83 | $error--focus--border-color: props.def( | 34 | $error--focus--border-color: props.def(--o-text-field--error--focus--border-color, props.get(core.$theme, --negative, --900), 'color') !default; |
| 84 | --o-text-field--error--focus--border-color, | ||
| 85 | props.get(core.$theme, --negative, --900), | ||
| 86 | "color" | ||
| 87 | ) !default; | ||
| 88 | 35 | ||
| 89 | $disabled--bg-color: props.def( | 36 | $disabled--bg-color: props.def(--o-text-field--disabled--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 90 | --o-text-field--disabled--bg-color, | 37 | $disabled--placeholder-color: props.def(--o-text-field--disabled--placeholder-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 91 | props.get(core.$theme, --border-mute), | 38 | $disabled--text-color: props.def(--o-text-field--disabled--text-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 92 | "color" | 39 | $disabled--border-color: props.def(--o-text-field--disabled--border-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 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 c7a9791..9925dd0 100644 --- a/src/objects/_thumbnail.scss +++ b/src/objects/_thumbnail.scss | |||
| @@ -1,66 +1,65 @@ | |||
| 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/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/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 | 54 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 55 | props.get(vars.$key-focus--border-width); | ||
| 56 | outline-offset: 0; | 55 | outline-offset: 0; |
| 57 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 56 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 58 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 57 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 59 | box-shadow: 0 0 0 | 58 | box-shadow: |
| 60 | calc( | 59 | 0 |
| 61 | props.get(vars.$key-focus--outline-width) + | 60 | 0 |
| 62 | props.get(vars.$key-focus--border-width) | 61 | 0 |
| 63 | ) | 62 | calc(props.get(vars.$key-focus--outline-width) + props.get(vars.$key-focus--border-width)) |
| 64 | props.get(vars.$key-focus--outline-color); | 63 | props.get(vars.$key-focus--outline-color); |
| 65 | } | 64 | } |
| 66 | 65 | ||
| @@ -74,18 +73,18 @@ | |||
| 74 | outline-color: props.get(vars.$static-themes, $theme, --hover, --border); | 73 | outline-color: props.get(vars.$static-themes, $theme, --hover, --border); |
| 75 | } | 74 | } |
| 76 | 75 | ||
| 77 | @include bem.is("selected") { | 76 | @include bem.is('selected') { |
| 78 | border-color: props.get(vars.$static-themes, $theme, --selected, --border); | 77 | border-color: props.get(vars.$static-themes, $theme, --selected, --border); |
| 79 | } | 78 | } |
| 80 | 79 | ||
| 81 | &:focus-visible { | 80 | &:focus-visible { |
| 82 | outline-color: props.get(vars.$static-themes, $theme, --key-focus, --border); | 81 | outline-color: props.get(vars.$static-themes, $theme, --key-focus, --border); |
| 83 | border-color: transparent; | 82 | border-color: transparent; |
| 84 | box-shadow: 0 0 0 | 83 | box-shadow: |
| 85 | calc( | 84 | 0 |
| 86 | props.get(vars.$key-focus--outline-width) + | 85 | 0 |
| 87 | props.get(vars.$key-focus--border-width) | 86 | 0 |
| 88 | ) | 87 | calc(props.get(vars.$key-focus--outline-width) + props.get(vars.$key-focus--border-width)) |
| 89 | props.get(vars.$static-themes, $theme, --key-focus, --outline); | 88 | props.get(vars.$static-themes, $theme, --key-focus, --outline); |
| 90 | } | 89 | } |
| 91 | } | 90 | } |
diff --git a/src/objects/_thumbnail.vars.scss b/src/objects/_thumbnail.vars.scss index 737a626..a5625fc 100644 --- a/src/objects/_thumbnail.vars.scss +++ b/src/objects/_thumbnail.vars.scss | |||
| @@ -1,85 +1,51 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/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( | 11 | $selected--border-width: props.def(--o-thumbnail--selected--border-width, props.get(core.$border-width--medium)) !default; |
| 12 | --o-thumbnail--selected--border-width, | ||
| 13 | props.get(core.$border-width--medium) | ||
| 14 | ) !default; | ||
| 15 | 12 | ||
| 16 | $key-focus--border-width: props.def( | 13 | $key-focus--border-width: props.def(--o-thumbnail--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 17 | --o-thumbnail--key-focus--border-width, | 14 | $key-focus--border-offset: props.def(--o-thumbnail--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 18 | props.get(core.$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; |
| 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; | ||
| 28 | 16 | ||
| 29 | $border-color: props.def( | 17 | $border-color: props.def(--o-thumbnail--border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 30 | --o-thumbnail--border-color, | ||
| 31 | props.get(core.$theme, --border-strong), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 34 | 18 | ||
| 35 | $hover--border-color: props.def( | 19 | $hover--border-color: props.def(--o-thumbnail--hover--border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 36 | --o-thumbnail--hover--border-color, | ||
| 37 | props.get(core.$theme, --text-mute-more), | ||
| 38 | "color" | ||
| 39 | ) !default; | ||
| 40 | 20 | ||
| 41 | $selected--border-color: props.def( | 21 | $selected--border-color: props.def(--o-thumbnail--selected--border-color, props.get(core.$theme, --heading), 'color') !default; |
| 42 | --o-thumbnail--selected--border-color, | ||
| 43 | props.get(core.$theme, --heading), | ||
| 44 | "color" | ||
| 45 | ) !default; | ||
| 46 | 22 | ||
| 47 | $key-focus--border-color: props.def( | 23 | $key-focus--border-color: props.def(--o-thumbnail--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 48 | --o-thumbnail--key-focus--border-color, | 24 | $key-focus--outline-color: props.def(--o-thumbnail--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 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; | ||
| 57 | 25 | ||
| 58 | $size--md: props.def(--o-thumbnail--size, props.get(core.$size--600), "md") !default; | 26 | $size--md: props.def(--o-thumbnail--size, props.get(core.$size--600), 'md') !default; |
| 59 | 27 | ||
| 60 | $static-themes: props.def(--o-thumbnail, (), "color"); | 28 | $static-themes: props.def(--o-thumbnail, (), 'color'); |
| 61 | 29 | ||
| 62 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 30 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 63 | $thumbnail-theme: --static-#{string.slice($theme, 3)}; | 31 | $thumbnail-theme: --static-#{string.slice($theme, 3)}; |
| 64 | 32 | ||
| 65 | $static-themes: props.merge( | 33 | $static-themes: props.merge($static-themes, ( |
| 66 | $static-themes, | 34 | $thumbnail-theme: ( |
| 67 | ( | 35 | --border: props.get(core.$transparent-colors, $theme, --400), |
| 68 | $thumbnail-theme: ( | ||
| 69 | --border: props.get(core.$transparent-colors, $theme, --400), | ||
| 70 | --hover: ( | ||
| 71 | --border: props.get(core.$transparent-colors, $theme, --500), | ||
| 72 | ), | ||
| 73 | 36 | ||
| 74 | --selected: ( | 37 | --hover: ( |
| 75 | --border: props.get(core.$transparent-colors, $theme, --900), | 38 | --border: props.get(core.$transparent-colors, $theme, --500), |
| 76 | ), | 39 | ), |
| 77 | 40 | ||
| 78 | --key-focus: ( | 41 | --selected: ( |
| 79 | --border: props.get(core.$transparent-colors, $theme, --900), | 42 | --border: props.get(core.$transparent-colors, $theme, --900), |
| 80 | --outline: props.get(core.$transparent-colors, $theme, --300), | 43 | ), |
| 81 | ), | 44 | |
| 82 | ), | 45 | --key-focus: ( |
| 46 | --border: props.get(core.$transparent-colors, $theme, --900), | ||
| 47 | --outline: props.get(core.$transparent-colors, $theme, --300), | ||
| 48 | ), | ||
| 83 | ) | 49 | ) |
| 84 | ); | 50 | )); |
| 85 | } | 51 | } |
