diff options
Diffstat (limited to 'src')
28 files changed, 344 insertions, 78 deletions
diff --git a/src/_functions.scss b/src/_functions.scss index 62caf8c..b41609e 100644 --- a/src/_functions.scss +++ b/src/_functions.scss | |||
@@ -23,10 +23,14 @@ | |||
23 | $color: list.nth($level, 1); | 23 | $color: list.nth($level, 1); |
24 | $y: 0; | 24 | $y: 0; |
25 | $c: 1; | 25 | $c: 1; |
26 | $h: 0deg; | ||
26 | 27 | ||
27 | @if list.length($level) > 1 { | 28 | @if list.length($level) > 1 { |
28 | $c: list.nth($level, 2); | 29 | $c: list.nth($level, 2); |
29 | } | 30 | } |
31 | @if list.length($level) > 2 { | ||
32 | $h: list.nth($level, 3); | ||
33 | } | ||
30 | 34 | ||
31 | @if meta.type-of($color) != 'color' { | 35 | @if meta.type-of($color) != 'color' { |
32 | $y: apca.reverse($color, $ref-y); | 36 | $y: apca.reverse($color, $ref-y); |
@@ -38,7 +42,7 @@ | |||
38 | $y: $ref-y; | 42 | $y: $ref-y; |
39 | } | 43 | } |
40 | 44 | ||
41 | $color: oklch($l ($c * color.channel($base-lch, 'chroma')) color.channel($base-lch, 'hue')); | 45 | $color: oklch($l ($c * color.channel($base-lch, 'chroma')) ($h + color.channel($base-lch, 'hue'))); |
42 | } @else { | 46 | } @else { |
43 | $y: apca.sRGB_to_Y($color); | 47 | $y: apca.sRGB_to_Y($color); |
44 | } | 48 | } |
diff --git a/src/_iro-design.scss b/src/_iro-design.scss index 2010a2d..bad29c5 100644 --- a/src/_iro-design.scss +++ b/src/_iro-design.scss | |||
@@ -23,6 +23,7 @@ $breakpoints: ( | |||
23 | @forward 'config' as config--*; | 23 | @forward 'config' as config--*; |
24 | @forward 'props' as props--*; | 24 | @forward 'props' as props--*; |
25 | @forward 'core' as core--*; | 25 | @forward 'core' as core--*; |
26 | @forward 'layers' as layers--*; | ||
26 | 27 | ||
27 | @forward 'layouts/button-group' as l-button-group--*; | 28 | @forward 'layouts/button-group' as l-button-group--*; |
28 | @forward 'layouts/card-list' as l-card-list--*; | 29 | @forward 'layouts/card-list' as l-card-list--*; |
@@ -53,6 +54,7 @@ $breakpoints: ( | |||
53 | @forward 'objects/checkbox' as o-checkbox--*; | 54 | @forward 'objects/checkbox' as o-checkbox--*; |
54 | @forward 'objects/divider' as o-divider--*; | 55 | @forward 'objects/divider' as o-divider--*; |
55 | @forward 'objects/emoji' as o-emoji--*; | 56 | @forward 'objects/emoji' as o-emoji--*; |
57 | @forward 'objects/figure' as o-figure--*; | ||
56 | @forward 'objects/field-label' as o-field-label--*; | 58 | @forward 'objects/field-label' as o-field-label--*; |
57 | @forward 'objects/heading' as o-heading--*; | 59 | @forward 'objects/heading' as o-heading--*; |
58 | @forward 'objects/icon' as o-icon--*; | 60 | @forward 'objects/icon' as o-icon--*; |
@@ -60,6 +62,7 @@ $breakpoints: ( | |||
60 | @forward 'objects/menu' as o-menu--*; | 62 | @forward 'objects/menu' as o-menu--*; |
61 | @forward 'objects/navbar' as o-navbar--*; | 63 | @forward 'objects/navbar' as o-navbar--*; |
62 | @forward 'objects/palette' as o-palette--*; | 64 | @forward 'objects/palette' as o-palette--*; |
65 | @forward 'objects/placeholders' as o-placeholders--*; | ||
63 | @forward 'objects/popover' as o-popover--*; | 66 | @forward 'objects/popover' as o-popover--*; |
64 | @forward 'objects/radio' as o-radio--*; | 67 | @forward 'objects/radio' as o-radio--*; |
65 | @forward 'objects/side-nav' as o-side-nav--*; | 68 | @forward 'objects/side-nav' as o-side-nav--*; |
diff --git a/src/_layers.scss b/src/_layers.scss new file mode 100644 index 0000000..cc3bb50 --- /dev/null +++ b/src/_layers.scss | |||
@@ -0,0 +1,3 @@ | |||
1 | @mixin styles { | ||
2 | @layer scope, theme, object, layout, component, utility; | ||
3 | } | ||
diff --git a/src/_themes.scss b/src/_themes.scss index 32b617b..caf1e80 100644 --- a/src/_themes.scss +++ b/src/_themes.scss | |||
@@ -1,4 +1,5 @@ | |||
1 | @use 'sass:map'; | 1 | @use 'sass:map'; |
2 | @use 'sass:string'; | ||
2 | @use 'iro-sass/src/bem'; | 3 | @use 'iro-sass/src/bem'; |
3 | @use 'iro-sass/src/props'; | 4 | @use 'iro-sass/src/props'; |
4 | @use 'include-media/dist/include-media' as media; | 5 | @use 'include-media/dist/include-media' as media; |
diff --git a/src/_utils.scss b/src/_utils.scss index e90aa57..445e5c6 100644 --- a/src/_utils.scss +++ b/src/_utils.scss | |||
@@ -1,4 +1,5 @@ | |||
1 | @use 'sass:map'; | 1 | @use 'sass:map'; |
2 | @use 'sass:string'; | ||
2 | @use 'iro-sass/src/bem'; | 3 | @use 'iro-sass/src/bem'; |
3 | @use 'iro-sass/src/props'; | 4 | @use 'iro-sass/src/props'; |
4 | @use 'include-media/dist/include-media' as media; | 5 | @use 'include-media/dist/include-media' as media; |
@@ -9,12 +10,12 @@ | |||
9 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ | 10 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ |
10 | $-dirs: ( | 11 | $-dirs: ( |
11 | '': '', | 12 | '': '', |
13 | 'b': '-block', | ||
12 | 'bs': '-block-start', | 14 | 'bs': '-block-start', |
13 | 'be': '-block-end', | 15 | 'be': '-block-end', |
14 | 'b': '-block', | 16 | 'i': '-inline', |
15 | 'is': '-inline-start', | 17 | 'is': '-inline-start', |
16 | 'ie': '-inline-end', | 18 | 'ie': '-inline-end', |
17 | 'i': '-inline', | ||
18 | ) !default; | 19 | ) !default; |
19 | 20 | ||
20 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ | 21 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ |
@@ -132,6 +133,10 @@ $-sizes: ( | |||
132 | align-items: flex-end; | 133 | align-items: flex-end; |
133 | } | 134 | } |
134 | 135 | ||
136 | @include bem.utility('ac-center') { | ||
137 | align-content: center; | ||
138 | } | ||
139 | |||
135 | @include bem.utility('jc-center') { | 140 | @include bem.utility('jc-center') { |
136 | justify-content: center; | 141 | justify-content: center; |
137 | } | 142 | } |
@@ -154,18 +159,50 @@ $-sizes: ( | |||
154 | 159 | ||
155 | @include bem.utility('c-heading') { | 160 | @include bem.utility('c-heading') { |
156 | color: props.get(vars.$theme, --heading); | 161 | color: props.get(vars.$theme, --heading); |
162 | |||
163 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { | ||
164 | $theme-name: static-#{string.slice($theme, 3)}; | ||
165 | |||
166 | @include bem.at-theme($theme-name) { | ||
167 | color: props.get(vars.$transparent-colors, $theme, --900); | ||
168 | } | ||
169 | } | ||
157 | } | 170 | } |
158 | 171 | ||
159 | @include bem.utility('c-text') { | 172 | @include bem.utility('c-text') { |
160 | color: props.get(vars.$theme, --text); | 173 | color: props.get(vars.$theme, --text); |
174 | |||
175 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { | ||
176 | $theme-name: static-#{string.slice($theme, 3)}; | ||
177 | |||
178 | @include bem.at-theme($theme-name) { | ||
179 | color: props.get(vars.$transparent-colors, $theme, --800); | ||
180 | } | ||
181 | } | ||
161 | } | 182 | } |
162 | 183 | ||
163 | @include bem.utility('c-mute') { | 184 | @include bem.utility('c-mute') { |
164 | color: props.get(vars.$theme, --text-mute); | 185 | color: props.get(vars.$theme, --text-mute); |
186 | |||
187 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { | ||
188 | $theme-name: static-#{string.slice($theme, 3)}; | ||
189 | |||
190 | @include bem.at-theme($theme-name) { | ||
191 | color: props.get(vars.$transparent-colors, $theme, --700); | ||
192 | } | ||
193 | } | ||
165 | } | 194 | } |
166 | 195 | ||
167 | @include bem.utility('c-mute-more') { | 196 | @include bem.utility('c-mute-more') { |
168 | color: props.get(vars.$theme, --text-mute-more); | 197 | color: props.get(vars.$theme, --text-mute-more); |
198 | |||
199 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { | ||
200 | $theme-name: static-#{string.slice($theme, 3)}; | ||
201 | |||
202 | @include bem.at-theme($theme-name) { | ||
203 | color: props.get(vars.$transparent-colors, $theme, --600); | ||
204 | } | ||
205 | } | ||
169 | } | 206 | } |
170 | 207 | ||
171 | @each $dir, $prop in (is: inline-size, bs: block-size) { | 208 | @each $dir, $prop in (is: inline-size, bs: block-size) { |
diff --git a/src/layouts/_button-group.scss b/src/layouts/_button-group.scss index c51ae7e..b0a3c8e 100644 --- a/src/layouts/_button-group.scss +++ b/src/layouts/_button-group.scss | |||
@@ -5,13 +5,46 @@ | |||
5 | 5 | ||
6 | @forward 'button-group.vars'; | 6 | @forward 'button-group.vars'; |
7 | @use 'button-group.vars' as vars; | 7 | @use 'button-group.vars' as vars; |
8 | @use '../objects/action-button.vars' as action-button; | ||
8 | 9 | ||
9 | @mixin styles { | 10 | @mixin styles { |
10 | @include materialize-at-root(meta.module-variables('vars')); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
11 | 12 | ||
12 | @include bem.layout('button-group') { | 13 | @include bem.layout('button-group') { |
13 | display: flex; | 14 | display: inline-flex; |
14 | flex-wrap: wrap; | 15 | flex-wrap: wrap; |
15 | gap: props.get(vars.$spacing); | 16 | gap: props.get(vars.$gap); |
17 | |||
18 | @each $mod, $size in vars.$sizes { | ||
19 | @include bem.modifier($mod) { | ||
20 | gap: props.get($size); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | @include bem.modifier('align-block') { | ||
25 | margin-inline: calc(-1 * props.get(action-button.$pad-i) - props.get(action-button.$border-width)); | ||
26 | |||
27 | @include bem.modifier('pill') { | ||
28 | margin-inline: calc(-1 * props.get(action-button.$pad-i-pill) - props.get(action-button.$border-width)); | ||
29 | } | ||
30 | |||
31 | @include bem.modifier('icon') { | ||
32 | margin-inline: calc(-1 * props.get(action-button.$pad-b) - props.get(action-button.$border-width) - .5em * (props.get(action-button.$line-height) - 1)); | ||
33 | } | ||
34 | |||
35 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in action-button.$fixed-sizes { | ||
36 | @include bem.modifier('action-#{$mod}') { | ||
37 | margin-inline: calc(-1 * props.get($pad-i) - props.get(action-button.$border-width)); | ||
38 | |||
39 | @include bem.modifier('pill') { | ||
40 | margin-inline: calc(-1 * props.get($pad-i-pill) - props.get(action-button.$border-width)); | ||
41 | } | ||
42 | |||
43 | @include bem.modifier('icon') { | ||
44 | margin-inline: calc(-1 * props.get($pad-b) - props.get(action-button.$border-width) - .5em * (props.get(action-button.$line-height) - 1)); | ||
45 | } | ||
46 | } | ||
47 | } | ||
48 | } | ||
16 | } | 49 | } |
17 | } | 50 | } |
diff --git a/src/layouts/_button-group.vars.scss b/src/layouts/_button-group.vars.scss index 95ac8f8..50c1b53 100644 --- a/src/layouts/_button-group.vars.scss +++ b/src/layouts/_button-group.vars.scss | |||
@@ -1,4 +1,16 @@ | |||
1 | @use 'iro-sass/src/props'; | 1 | @use 'iro-sass/src/props'; |
2 | @use '../core.vars' as core; | 2 | @use '../core.vars' as core; |
3 | 3 | ||
4 | $spacing: props.def(--l-button-group--spacing, props.get(core.$size--150)) !default; | 4 | $gap: props.def(--l-button-group--gap, props.get(core.$size--150)) !default; |
5 | |||
6 | $gapless: props.def(--l-button-group--gapless, 0) !default; | ||
7 | $sm: props.def(--l-button-group--sm, props.get(core.$size--100)) !default; | ||
8 | $lg: props.def(--l-button-group--lg, props.get(core.$size--300)) !default; | ||
9 | $xl: props.def(--l-button-group--xl, props.get(core.$size--450)) !default; | ||
10 | |||
11 | $sizes: ( | ||
12 | 'gapless': $gapless, | ||
13 | 'sm': $sm, | ||
14 | 'lg': $lg, | ||
15 | 'xl': $xl, | ||
16 | ) !default; | ||
diff --git a/src/layouts/_container.vars.scss b/src/layouts/_container.vars.scss index cba7574..56b6c89 100644 --- a/src/layouts/_container.vars.scss +++ b/src/layouts/_container.vars.scss | |||
@@ -2,14 +2,14 @@ | |||
2 | @use 'iro-sass/src/props'; | 2 | @use 'iro-sass/src/props'; |
3 | @use '../core.vars' as core; | 3 | @use '../core.vars' as core; |
4 | 4 | ||
5 | $fixed-125: props.def(--l-container--fixed-125, fn.px-to-rem(720px)) !default; | 5 | $fixed-200: props.def(--l-container--fixed-200, fn.px-to-rem(1300px)) !default; |
6 | $fixed: props.def(--l-container--fixed, fn.px-to-rem(610px)) !default; | 6 | $fixed-150: props.def(--l-container--fixed-150, fn.px-to-rem(860px)) !default; |
7 | $fixed-75: props.def(--l-container--fixed-75, fn.px-to-rem(500px)) !default; | 7 | $fixed: props.def(--l-container--fixed, fn.px-to-rem(680px)) !default; |
8 | 8 | ||
9 | $fixed-sizes: ( | 9 | $fixed-sizes: ( |
10 | 'fixed-125': $fixed-125, | 10 | 'fixed-200': $fixed-200, |
11 | 'fixed': $fixed, | 11 | 'fixed-150': $fixed-150, |
12 | 'fixed-75': $fixed-75 | 12 | 'fixed': $fixed |
13 | ) !default; | 13 | ) !default; |
14 | 14 | ||
15 | $pad-i: props.def(--l-container--pad-i, props.get(core.$size--400)) !default; | 15 | $pad-i: props.def(--l-container--pad-i, props.get(core.$size--400)) !default; |
diff --git a/src/layouts/_split-view.scss b/src/layouts/_split-view.scss index 2744510..f522254 100644 --- a/src/layouts/_split-view.scss +++ b/src/layouts/_split-view.scss | |||
@@ -15,10 +15,6 @@ | |||
15 | gap: props.get(vars.$col-gap); | 15 | gap: props.get(vars.$col-gap); |
16 | align-items: start; | 16 | align-items: start; |
17 | 17 | ||
18 | @include bem.modifier('gapless') { | ||
19 | gap: props.get(vars.$gapless); | ||
20 | } | ||
21 | |||
22 | @include bem.elem('panel') { | 18 | @include bem.elem('panel') { |
23 | flex: 1 1 auto; | 19 | flex: 1 1 auto; |
24 | inline-size: 100%; | 20 | inline-size: 100%; |
@@ -44,6 +40,21 @@ | |||
44 | position: sticky; | 40 | position: sticky; |
45 | inset-block-start: calc(props.get(vars.$panel--sticky-400--inset) + props.get(vars.$panel--sticky-offset)); | 41 | inset-block-start: calc(props.get(vars.$panel--sticky-400--inset) + props.get(vars.$panel--sticky-offset)); |
46 | } | 42 | } |
43 | |||
44 | @include bem.modifier('sticky-1200') { | ||
45 | position: sticky; | ||
46 | inset-block-start: calc(props.get(vars.$panel--sticky-1200--inset) + props.get(vars.$panel--sticky-offset)); | ||
47 | } | ||
48 | } | ||
49 | |||
50 | @include bem.modifier('gapless') { | ||
51 | gap: props.get(vars.$gapless); | ||
52 | |||
53 | @include bem.elem('panel') { | ||
54 | @include bem.modifier('side-25') { | ||
55 | min-inline-size: calc(props.get(vars.$panel--side-25--min) + props.get(vars.$col-gap) - props.get(vars.$gapless)); | ||
56 | } | ||
57 | } | ||
47 | } | 58 | } |
48 | 59 | ||
49 | @include bem.elem('content') { | 60 | @include bem.elem('content') { |
@@ -55,19 +66,23 @@ | |||
55 | gap: props.get(vars.$row-gap); | 66 | gap: props.get(vars.$row-gap); |
56 | align-items: stretch; | 67 | align-items: stretch; |
57 | 68 | ||
69 | @include bem.modifier('gapless') { | ||
70 | gap: props.get(vars.$gapless); | ||
71 | } | ||
72 | |||
58 | @include bem.modifier('wrap-reverse') { | 73 | @include bem.modifier('wrap-reverse') { |
59 | flex-direction: column-reverse; | 74 | flex-direction: column-reverse; |
60 | } | 75 | } |
61 | 76 | ||
62 | @include bem.elem('panel') { | 77 | @include bem.elem('panel') { |
63 | flex: 1 1 auto; | 78 | inline-size: auto; |
64 | 79 | ||
65 | @include bem.modifier('side-25') { | 80 | @include bem.modifier('side-25') { |
66 | inline-size: auto; | 81 | inline-size: auto; |
67 | min-inline-size: 0; | 82 | min-inline-size: 0; |
68 | } | 83 | } |
69 | 84 | ||
70 | @include bem.modifier('sticky', 'sticky-400') { | 85 | @include bem.modifier('sticky', 'sticky-400', 'sticky-1200') { |
71 | position: static; | 86 | position: static; |
72 | } | 87 | } |
73 | } | 88 | } |
diff --git a/src/layouts/_split-view.vars.scss b/src/layouts/_split-view.vars.scss index 01562e1..d519939 100644 --- a/src/layouts/_split-view.vars.scss +++ b/src/layouts/_split-view.vars.scss | |||
@@ -4,9 +4,10 @@ | |||
4 | $col-gap: props.def(--l-split-view--col-gap, props.get(core.$size--800)) !default; | 4 | $col-gap: props.def(--l-split-view--col-gap, props.get(core.$size--800)) !default; |
5 | $row-gap: props.def(--l-split-view--row-gap, props.get(core.$size--600)) !default; | 5 | $row-gap: props.def(--l-split-view--row-gap, props.get(core.$size--600)) !default; |
6 | 6 | ||
7 | $gapless: props.def(--l-split-view--gapless, 0) !default; | 7 | $gapless: props.def(--l-split-view--gapless, 0rem) !default; |
8 | 8 | ||
9 | $panel--side-25--min: props.def(--l-split-view--panel--side-25--min, props.get(core.$size--3200)) !default; | 9 | $panel--side-25--min: props.def(--l-split-view--panel--side-25--min, props.get(core.$size--3200)) !default; |
10 | $panel--sticky-400--inset: props.def(--l-split-view--panel--sticky-400--inset, props.get(core.$size--400)) !default; | 10 | $panel--sticky-400--inset: props.def(--l-split-view--panel--sticky-400--inset, props.get(core.$size--400)) !default; |
11 | $panel--sticky-1200--inset: props.def(--l-split-view--panel--sticky-1200--inset, props.get(core.$size--1200)) !default; | ||
11 | 12 | ||
12 | $panel--sticky-offset: props.def(--l-split-view--panel--sticky-offset, props.get(core.$sticky-top-offset)) !default; | 13 | $panel--sticky-offset: props.def(--l-split-view--panel--sticky-offset, props.get(core.$sticky-top-offset)) !default; |
diff --git a/src/objects/_avatar.scss b/src/objects/_avatar.scss index fc4ffcd..81396e3 100644 --- a/src/objects/_avatar.scss +++ b/src/objects/_avatar.scss | |||
@@ -11,7 +11,7 @@ | |||
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.next-elem('content') { | 14 | @include bem.sibling-elem('content') { |
15 | mask-image: radial-gradient(circle calc(.5 * props.get($indicator-size) + props.get(vars.$indicator-spacing)) at | 15 | mask-image: radial-gradient(circle calc(.5 * props.get($indicator-size) + props.get(vars.$indicator-spacing)) at |
16 | calc(100% - .5 * props.get($indicator-size)) | 16 | calc(100% - .5 * props.get($indicator-size)) |
17 | calc(100% - .5 * props.get($indicator-size)), | 17 | calc(100% - .5 * props.get($indicator-size)), |
@@ -94,6 +94,15 @@ | |||
94 | } | 94 | } |
95 | } | 95 | } |
96 | 96 | ||
97 | @include bem.modifier('colored-gradient') { | ||
98 | @include bem.elem('content') { | ||
99 | color: #fff; | ||
100 | background: linear-gradient(props.get(vars.$bg-angle), | ||
101 | hsl(props.get(vars.$bg-color--h), props.get(vars.$bg-color--s), props.get(vars.$bg-color--l)), | ||
102 | hsl(props.get(vars.$bg-color-2--h), props.get(vars.$bg-color-2--s), props.get(vars.$bg-color-2--l))); | ||
103 | } | ||
104 | } | ||
105 | |||
97 | @each $mod, $size, $font-size, $indicator-size in vars.$sizes { | 106 | @each $mod, $size, $font-size, $indicator-size in vars.$sizes { |
98 | @include bem.modifier($mod) { | 107 | @include bem.modifier($mod) { |
99 | font-size: props.get($font-size); | 108 | font-size: props.get($font-size); |
diff --git a/src/objects/_avatar.vars.scss b/src/objects/_avatar.vars.scss index 72fb397..9986de5 100644 --- a/src/objects/_avatar.vars.scss +++ b/src/objects/_avatar.vars.scss | |||
@@ -39,6 +39,12 @@ $bg-color--h: props.def(--o-avatar--bg-color--h, 354, 'color') !default; | |||
39 | $bg-color--s: props.def(--o-avatar--bg-color--s, 44%, 'color') !default; | 39 | $bg-color--s: props.def(--o-avatar--bg-color--s, 44%, 'color') !default; |
40 | $bg-color--l: props.def(--o-avatar--bg-color--l, 45%, 'color') !default; | 40 | $bg-color--l: props.def(--o-avatar--bg-color--l, 45%, 'color') !default; |
41 | 41 | ||
42 | $bg-color-2--h: props.def(--o-avatar--bg-color-2--h, 354, 'color') !default; | ||
43 | $bg-color-2--s: props.def(--o-avatar--bg-color-2--s, 44%, 'color') !default; | ||
44 | $bg-color-2--l: props.def(--o-avatar--bg-color-2--l, 45%, 'color') !default; | ||
45 | |||
46 | $bg-angle: props.def(--o-avatar--bg-angle, 180deg) !default; | ||
47 | |||
42 | $key-focus--border-color: props.def(--o-avatar--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; | 48 | $key-focus--border-color: props.def(--o-avatar--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
43 | $key-focus--outline-color: props.def(--o-avatar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; | 49 | $key-focus--outline-color: props.def(--o-avatar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
44 | 50 | ||
diff --git a/src/objects/_card.scss b/src/objects/_card.scss index 6628eab..c87e676 100644 --- a/src/objects/_card.scss +++ b/src/objects/_card.scss | |||
@@ -14,7 +14,7 @@ | |||
14 | position: relative; | 14 | position: relative; |
15 | display: flex; | 15 | display: flex; |
16 | flex-direction: column; | 16 | flex-direction: column; |
17 | margin-inline: calc(-1 * props.get(vars.$key-focus--border-width)); | 17 | margin: calc(-1 * props.get(vars.$key-focus--border-width)); |
18 | background-color: props.get(vars.$bg-color); | 18 | background-color: props.get(vars.$bg-color); |
19 | background-clip: content-box; | 19 | background-clip: content-box; |
20 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 20 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
@@ -61,7 +61,7 @@ | |||
61 | inline-size: 100%; | 61 | inline-size: 100%; |
62 | overflow: hidden; | 62 | overflow: hidden; |
63 | object-fit: cover; | 63 | object-fit: cover; |
64 | transition: transform .2s, opacity .2s; | 64 | transition: background-color .2s, transform .2s, opacity .2s; |
65 | 65 | ||
66 | &:first-child { | 66 | &:first-child { |
67 | border-start-start-radius: props.get(vars.$rounding); | 67 | border-start-start-radius: props.get(vars.$rounding); |
@@ -145,7 +145,6 @@ | |||
145 | } | 145 | } |
146 | 146 | ||
147 | @include bem.modifier('quiet') { | 147 | @include bem.modifier('quiet') { |
148 | position: relative; | ||
149 | margin-inline: 0; | 148 | margin-inline: 0; |
150 | background-color: transparent; | 149 | background-color: transparent; |
151 | border: 0; | 150 | border: 0; |
@@ -161,6 +160,12 @@ | |||
161 | opacity: .75; | 160 | opacity: .75; |
162 | transform: translateY(props.get(vars.$hover--offset-b)); | 161 | transform: translateY(props.get(vars.$hover--offset-b)); |
163 | } | 162 | } |
163 | |||
164 | @include bem.elem('body') { | ||
165 | @include bem.modifier('hidden') { | ||
166 | transform: translateY(props.get(vars.$hover--offset-b)); | ||
167 | } | ||
168 | } | ||
164 | } | 169 | } |
165 | 170 | ||
166 | &:focus-visible { | 171 | &:focus-visible { |
@@ -193,6 +198,11 @@ | |||
193 | @include bem.elem('body') { | 198 | @include bem.elem('body') { |
194 | padding: 0; | 199 | padding: 0; |
195 | padding-block-start: props.get(vars.$spacing); | 200 | padding-block-start: props.get(vars.$spacing); |
201 | |||
202 | @include bem.modifier('hidden') { | ||
203 | padding-block: props.get(vars.$pad-b); | ||
204 | padding-inline: props.get(vars.$pad-i); | ||
205 | } | ||
196 | } | 206 | } |
197 | 207 | ||
198 | @include bem.elem('footer') { | 208 | @include bem.elem('footer') { |
@@ -204,6 +214,21 @@ | |||
204 | flex-direction: row; | 214 | flex-direction: row; |
205 | align-items: center; | 215 | align-items: center; |
206 | 216 | ||
217 | @include bem.elem('image') { | ||
218 | align-self: stretch; | ||
219 | inline-size: auto; | ||
220 | |||
221 | &:first-child { | ||
222 | border-start-end-radius: 0; | ||
223 | border-end-start-radius: props.get(vars.$rounding); | ||
224 | } | ||
225 | |||
226 | &:last-child { | ||
227 | border-start-end-radius: props.get(vars.$rounding); | ||
228 | border-end-start-radius: 0; | ||
229 | } | ||
230 | } | ||
231 | |||
207 | @include bem.elem('body') { | 232 | @include bem.elem('body') { |
208 | flex: 0 0 auto; | 233 | flex: 0 0 auto; |
209 | 234 | ||
diff --git a/src/objects/_divider.scss b/src/objects/_divider.scss index 65f1718..4ed8092 100644 --- a/src/objects/_divider.scss +++ b/src/objects/_divider.scss | |||
@@ -46,10 +46,24 @@ | |||
46 | 46 | ||
47 | @include bem.modifier('vertical') { | 47 | @include bem.modifier('vertical') { |
48 | align-self: stretch; | 48 | align-self: stretch; |
49 | inline-size: 1px; | 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.$faint--bg-color); | 52 | background-color: props.get(vars.$strong--bg-color); |
53 | |||
54 | &::before, | ||
55 | &::after { | ||
56 | display: none; | ||
57 | } | ||
58 | } | ||
59 | |||
60 | @include bem.modifier('dot') { | ||
61 | align-self: center; | ||
62 | inline-size: props.get(vars.$dot--size); | ||
63 | block-size: props.get(vars.$dot--size); | ||
64 | margin-block: 0; | ||
65 | background-color: props.get(vars.$strong--bg-color); | ||
66 | border-radius: props.get(vars.$dot--size); | ||
53 | 67 | ||
54 | &::before, | 68 | &::before, |
55 | &::after { | 69 | &::after { |
@@ -67,6 +81,14 @@ | |||
67 | block-size: props.get(vars.$medium--border-width); | 81 | block-size: props.get(vars.$medium--border-width); |
68 | background-color: props.get(vars.$medium--bg-color); | 82 | background-color: props.get(vars.$medium--bg-color); |
69 | } | 83 | } |
84 | |||
85 | @include bem.modifier('vertical') { | ||
86 | background-color: props.get(vars.$medium--bg-color); | ||
87 | } | ||
88 | |||
89 | @include bem.modifier('dot') { | ||
90 | background-color: props.get(vars.$medium--bg-color); | ||
91 | } | ||
70 | } | 92 | } |
71 | 93 | ||
72 | @include bem.modifier('faint') { | 94 | @include bem.modifier('faint') { |
@@ -83,6 +105,10 @@ | |||
83 | @include bem.modifier('vertical') { | 105 | @include bem.modifier('vertical') { |
84 | background-color: props.get(vars.$vertical--faint--bg-color); | 106 | background-color: props.get(vars.$vertical--faint--bg-color); |
85 | } | 107 | } |
108 | |||
109 | @include bem.modifier('dot') { | ||
110 | background-color: props.get(vars.$dot--faint--bg-color); | ||
111 | } | ||
86 | } | 112 | } |
87 | 113 | ||
88 | @include bem.modifier('labelled') { | 114 | @include bem.modifier('labelled') { |
diff --git a/src/objects/_divider.vars.scss b/src/objects/_divider.vars.scss index 1117fd5..5cd68c1 100644 --- a/src/objects/_divider.vars.scss +++ b/src/objects/_divider.vars.scss | |||
@@ -3,7 +3,9 @@ | |||
3 | @use 'iro-sass/src/props'; | 3 | @use '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(--o-divider--vertical--width, props.get(core.$border-width--thin)) !default; | ||
8 | $dot--size: props.def(--o-divider--dot--size, props.get(core.$size--50)) !default; | ||
7 | 9 | ||
8 | $strong--border-width: props.def(--o-divider--strong--border-width, props.get(core.$border-width--thick)) !default; | 10 | $strong--border-width: props.def(--o-divider--strong--border-width, props.get(core.$border-width--thick)) !default; |
9 | $strong--label-font-size: props.def(--o-divider--strong--label-font-size, props.get(core.$font-size--100)) !default; | 11 | $strong--label-font-size: props.def(--o-divider--strong--label-font-size, props.get(core.$font-size--100)) !default; |
@@ -23,7 +25,9 @@ $medium--label-color: props.def(--o-divider--medium--label-color, props.get(core | |||
23 | $faint--bg-color: props.def(--o-divider--faint--bg-color, props.get(core.$theme, --border), 'color') !default; | 25 | $faint--bg-color: props.def(--o-divider--faint--bg-color, props.get(core.$theme, --border), 'color') !default; |
24 | $faint--label-color: props.def(--o-divider--faint--label-color, props.get(core.$theme, --text-mute-more), 'color') !default; | 26 | $faint--label-color: props.def(--o-divider--faint--label-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
25 | 27 | ||
26 | $vertical--faint--bg-color: props.def(--o-divider--faint--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | 28 | $vertical--faint--bg-color: props.def(--o-divider--vertical--faint--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
29 | |||
30 | $dot--faint--bg-color: props.def(--o-divider--dot--faint--bg-color, props.get(core.$theme, --border-mute), 'color') !default; | ||
27 | 31 | ||
28 | $static-themes: props.def(--o-divider, (), 'color'); | 32 | $static-themes: props.def(--o-divider, (), 'color'); |
29 | 33 | ||
diff --git a/src/objects/_figure.scss b/src/objects/_figure.scss new file mode 100644 index 0000000..38837be --- /dev/null +++ b/src/objects/_figure.scss | |||
@@ -0,0 +1,26 @@ | |||
1 | @use 'sass:meta'; | ||
2 | @use 'iro-sass/src/bem'; | ||
3 | @use 'iro-sass/src/props'; | ||
4 | @use '../props' as *; | ||
5 | |||
6 | @forward 'figure.vars'; | ||
7 | @use 'figure.vars' as vars; | ||
8 | |||
9 | @mixin styles { | ||
10 | @include materialize-at-root(meta.module-variables('vars')); | ||
11 | |||
12 | @include bem.object('figure') { | ||
13 | @include bem.elem('caption') { | ||
14 | padding-block: props.get(vars.$pad-b); | ||
15 | font-size: props.get(vars.$font-size); | ||
16 | color: props.get(vars.$text-color); | ||
17 | border-block-end: props.get(vars.$border-width) solid props.get(vars.$border-color); | ||
18 | |||
19 | &::before { | ||
20 | display: block; | ||
21 | margin-block: -100em 100em; | ||
22 | content: ''; | ||
23 | } | ||
24 | } | ||
25 | } | ||
26 | } | ||
diff --git a/src/objects/_figure.vars.scss b/src/objects/_figure.vars.scss new file mode 100644 index 0000000..78f5d15 --- /dev/null +++ b/src/objects/_figure.vars.scss | |||
@@ -0,0 +1,9 @@ | |||
1 | @use 'iro-sass/src/props'; | ||
2 | @use '../core.vars' as core; | ||
3 | |||
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; | ||
6 | $font-size: props.def(--o-figure--font-size, props.get(core.$font-size--100)) !default; | ||
7 | |||
8 | $text-color: props.def(--o-figure--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; | ||
9 | $border-color: props.def(--o-figure--border-color, props.get(core.$theme, --border), 'color') !default; | ||
diff --git a/src/objects/_heading.scss b/src/objects/_heading.scss index f5932f5..bdc7027 100644 --- a/src/objects/_heading.scss +++ b/src/objects/_heading.scss | |||
@@ -19,7 +19,6 @@ | |||
19 | color: props.get(vars.$text-color); | 19 | color: props.get(vars.$text-color); |
20 | text-transform: none; | 20 | text-transform: none; |
21 | letter-spacing: normal; | 21 | letter-spacing: normal; |
22 | transform: translateX(props.get(vars.$offset)); | ||
23 | 22 | ||
24 | & + & { | 23 | & + & { |
25 | margin-block-start: props.get(vars.$margin-bs-sibling); | 24 | margin-block-start: props.get(vars.$margin-bs-sibling); |
@@ -53,6 +52,7 @@ | |||
53 | font-feature-settings: props.get($feature-settings); | 52 | font-feature-settings: props.get($feature-settings); |
54 | line-height: props.get($line-height); | 53 | line-height: props.get($line-height); |
55 | letter-spacing: props.get($letter-spacing); | 54 | letter-spacing: props.get($letter-spacing); |
55 | transform: translateX(props.get(vars.$offset)); | ||
56 | } | 56 | } |
57 | } | 57 | } |
58 | } | 58 | } |
diff --git a/src/objects/_navbar.vars.scss b/src/objects/_navbar.vars.scss index da280fd..fcdac80 100644 --- a/src/objects/_navbar.vars.scss +++ b/src/objects/_navbar.vars.scss | |||
@@ -7,7 +7,7 @@ $block-size: props.def(--o-navbar--block-size, props.get(core.$size--800)) !defa | |||
7 | $spacing: props.def(--o-navbar--spacing, props.get(core.$size--200)) !default; | 7 | $spacing: props.def(--o-navbar--spacing, props.get(core.$size--200)) !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-action-button--pad-i-label, props.get(core.$size--25)) !default; | 10 | $item--pad-i-label: props.def(--o-navbar--item--pad-i-label, props.get(core.$size--25)) !default; |
11 | $item--pad-b: props.def(--o-navbar--item--pad-b, props.get(core.$size--40)) !default; | 11 | $item--pad-b: props.def(--o-navbar--item--pad-b, props.get(core.$size--40)) !default; |
12 | $item--font-size: props.def(--o-navbar--item--font-size, props.get(core.$font-size--75)) !default; | 12 | $item--font-size: props.def(--o-navbar--item--font-size, props.get(core.$font-size--75)) !default; |
13 | 13 | ||
diff --git a/src/objects/_placeholders.scss b/src/objects/_placeholders.scss new file mode 100644 index 0000000..e148f21 --- /dev/null +++ b/src/objects/_placeholders.scss | |||
@@ -0,0 +1,22 @@ | |||
1 | @use 'sass:meta'; | ||
2 | @use 'iro-sass/src/bem'; | ||
3 | @use 'iro-sass/src/props'; | ||
4 | @use '../props' as *; | ||
5 | |||
6 | @forward 'placeholders.vars'; | ||
7 | @use 'placeholders.vars' as vars; | ||
8 | |||
9 | @mixin styles { | ||
10 | @include materialize-at-root(meta.module-variables('vars')); | ||
11 | |||
12 | @include bem.object('placeholders') { | ||
13 | @include bem.elem('placeholder') { | ||
14 | display: inline-block; | ||
15 | min-block-size: props.get(vars.$min-block-size); | ||
16 | vertical-align: middle; | ||
17 | background-color: currentColor; | ||
18 | border-radius: props.get(vars.$rounding); | ||
19 | opacity: props.get(vars.$opacity); | ||
20 | } | ||
21 | } | ||
22 | } | ||
diff --git a/src/objects/_placeholders.vars.scss b/src/objects/_placeholders.vars.scss new file mode 100644 index 0000000..a2e41e2 --- /dev/null +++ b/src/objects/_placeholders.vars.scss | |||
@@ -0,0 +1,6 @@ | |||
1 | @use 'iro-sass/src/props'; | ||
2 | @use '../core.vars' as core; | ||
3 | |||
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; | ||
6 | $opacity: props.def(--o-placeholder--opacity, .5) !default; | ||
diff --git a/src/objects/_tabbar.scss b/src/objects/_tabbar.scss index 8518525..131c832 100644 --- a/src/objects/_tabbar.scss +++ b/src/objects/_tabbar.scss | |||
@@ -12,28 +12,27 @@ | |||
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 | position: relative; | ||
16 | display: flex; | ||
17 | gap: props.get(vars.$spacing); | ||
18 | min-inline-size: 0; | 15 | min-inline-size: 0; |
19 | block-size: props.get(vars.$block-size); | 16 | block-size: props.get(vars.$block-size); |
20 | margin-inline: calc(-.5 * props.get(vars.$spacing)); | 17 | overflow: hidden; |
21 | overflow-inline: auto; | ||
22 | 18 | ||
23 | &::after { | 19 | &::after { |
24 | display: block; | 20 | display: block; |
25 | flex: 1 1 auto; | ||
26 | block-size: props.get(vars.$indicator--width); | 21 | block-size: props.get(vars.$indicator--width); |
27 | margin-block-start: auto; | 22 | margin-block-start: calc(-1 * props.get(vars.$indicator--width)); |
28 | margin-inline-end: calc(.5 * props.get(vars.$spacing)); | ||
29 | content: ''; | 23 | content: ''; |
30 | background-color: props.get(vars.$railing--bg-color); | 24 | background-color: props.get(vars.$railing--bg-color); |
31 | } | 25 | } |
32 | 26 | ||
27 | @include bem.elem('tabs') { | ||
28 | display: flex; | ||
29 | block-size: 100%; | ||
30 | margin-inline: calc(-.5 * props.get(vars.$spacing)); | ||
31 | overflow-inline: auto; | ||
32 | } | ||
33 | |||
33 | @include bem.modifier('quiet') { | 34 | @include bem.modifier('quiet') { |
34 | &::after { | 35 | box-shadow: none; |
35 | display: none; | ||
36 | } | ||
37 | } | 36 | } |
38 | 37 | ||
39 | @include bem.modifier('adapt') { | 38 | @include bem.modifier('adapt') { |
@@ -41,14 +40,12 @@ | |||
41 | } | 40 | } |
42 | 41 | ||
43 | @include bem.elem('tab') { | 42 | @include bem.elem('tab') { |
44 | position: relative; | 43 | position: relative; |
45 | display: flex; | 44 | display: flex; |
46 | align-items: center; | 45 | align-items: center; |
47 | padding-inline: calc(.5 * props.get(vars.$spacing)); | 46 | padding-inline: calc(.5 * props.get(vars.$spacing)); |
48 | color: props.get(vars.$tab--text-color); | 47 | color: props.get(vars.$tab--text-color); |
49 | white-space: nowrap; | 48 | white-space: nowrap; |
50 | border-block: props.get(vars.$indicator--width) solid transparent; | ||
51 | border-block-end-color: props.get(vars.$railing--bg-color); | ||
52 | 49 | ||
53 | &::before { | 50 | &::before { |
54 | position: absolute; | 51 | position: absolute; |
@@ -61,6 +58,17 @@ | |||
61 | transform: translateY(-50%); | 58 | transform: translateY(-50%); |
62 | } | 59 | } |
63 | 60 | ||
61 | &::after { | ||
62 | position: absolute; | ||
63 | inset-block-end: 0; | ||
64 | inset-inline: calc(.5 * props.get(vars.$spacing)); | ||
65 | z-index: 10; | ||
66 | display: none; | ||
67 | block-size: props.get(vars.$indicator--width); | ||
68 | content: ''; | ||
69 | background-color: props.get(vars.$tab--selected--text-color); | ||
70 | } | ||
71 | |||
64 | &:link, | 72 | &:link, |
65 | &:visited { | 73 | &:visited { |
66 | &:hover, | 74 | &:hover, |
@@ -82,20 +90,22 @@ | |||
82 | } | 90 | } |
83 | 91 | ||
84 | @include bem.is('selected') { | 92 | @include bem.is('selected') { |
85 | color: props.get(vars.$tab--selected--text-color); | 93 | color: props.get(vars.$tab--selected--text-color); |
86 | border-block-end-color: props.get(vars.$tab--selected--text-color); | 94 | |
95 | &::after { | ||
96 | display: block; | ||
97 | } | ||
87 | } | 98 | } |
88 | } | 99 | } |
89 | 100 | ||
90 | @include bem.elem('caret') { | ||
91 | display: none; | ||
92 | } | ||
93 | |||
94 | @include bem.modifier('accent') { | 101 | @include bem.modifier('accent') { |
95 | @include bem.elem('tab') { | 102 | @include bem.elem('tab') { |
103 | &::after { | ||
104 | background-color: props.get(vars.$tab--accent--text-color); | ||
105 | } | ||
106 | |||
96 | @include bem.is('selected') { | 107 | @include bem.is('selected') { |
97 | color: props.get(vars.$tab--accent--text-color); | 108 | color: props.get(vars.$tab--accent--text-color); |
98 | border-block-end-color: props.get(vars.$tab--accent--text-color); | ||
99 | } | 109 | } |
100 | } | 110 | } |
101 | } | 111 | } |
diff --git a/src/scopes/_body.scss b/src/scopes/_body.scss index 65c6d2f..6d32212 100644 --- a/src/scopes/_body.scss +++ b/src/scopes/_body.scss | |||
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | @include bem.scope('body') { | 12 | @include bem.scope('body') { |
13 | font-size: props.get(vars.$font-size); | 13 | font-size: props.get(vars.$font-size); |
14 | line-height: props.get(vars.$line-height); | ||
14 | 15 | ||
15 | strong { | 16 | strong { |
16 | color: props.get(vars.$strong--text-color); | 17 | color: props.get(vars.$strong--text-color); |
diff --git a/src/scopes/_body.vars.scss b/src/scopes/_body.vars.scss index 8e77a17..1de2cfd 100644 --- a/src/scopes/_body.vars.scss +++ b/src/scopes/_body.vars.scss | |||
@@ -4,6 +4,7 @@ | |||
4 | @use '../layouts/container.vars' as container; | 4 | @use '../layouts/container.vars' as container; |
5 | 5 | ||
6 | $font-size: props.def(--s-body--font-size, props.get(core.$font-size--150)) !default; | 6 | $font-size: props.def(--s-body--font-size, props.get(core.$font-size--150)) !default; |
7 | $line-height: props.def(--s-body--line-height, calc(props.get(core.$font--standard--line-height) + .1)) !default; | ||
7 | $paragraph--margin-bs: props.def(--s-body--paragraph--margin-bs, props.get(core.$size--300)) !default; | 8 | $paragraph--margin-bs: props.def(--s-body--paragraph--margin-bs, props.get(core.$size--300)) !default; |
8 | $paragraph--max-inline-size: props.def(--s-body--paragraph--max-inline-size, props.get(container.$fixed)) !default; | 9 | $paragraph--max-inline-size: props.def(--s-body--paragraph--max-inline-size, props.get(container.$fixed)) !default; |
9 | $img--max-block-size: props.def(--s-body--img--max-block-size, none) !default; | 10 | $img--max-block-size: props.def(--s-body--img--max-block-size, none) !default; |
diff --git a/src/scopes/_figures.scss b/src/scopes/_figures.scss index f619506..981a8b6 100644 --- a/src/scopes/_figures.scss +++ b/src/scopes/_figures.scss | |||
@@ -1,20 +1,21 @@ | |||
1 | @use 'sass:meta'; | 1 | @use 'sass:meta'; |
2 | @use 'iro-sass/src/bem'; | 2 | @use 'iro-sass/src/bem'; |
3 | @use 'iro-sass/src/props'; | 3 | @use 'iro-sass/src/props'; |
4 | @use '../props' as *; | 4 | @use '../objects/figure.vars' as figure; |
5 | |||
6 | @forward 'figures.vars'; | ||
7 | @use 'figures.vars' as vars; | ||
8 | 5 | ||
9 | @mixin styles { | 6 | @mixin styles { |
10 | @include materialize-at-root(meta.module-variables('vars')); | ||
11 | |||
12 | @include bem.scope('figures') { | 7 | @include bem.scope('figures') { |
13 | figcaption { | 8 | figcaption { |
14 | padding-block: props.get(vars.$pad-b); | 9 | padding-block: props.get(figure.$pad-b); |
15 | font-size: props.get(vars.$font-size); | 10 | font-size: props.get(figure.$font-size); |
16 | color: props.get(vars.$text-color); | 11 | color: props.get(figure.$text-color); |
17 | border-block-end: props.get(vars.$border-width) solid props.get(vars.$border-color); | 12 | border-block-end: props.get(figure.$border-width) solid props.get(figure.$border-color); |
13 | |||
14 | &::before { | ||
15 | display: block; | ||
16 | margin-block: -100em 100em; | ||
17 | content: ''; | ||
18 | } | ||
18 | } | 19 | } |
19 | } | 20 | } |
20 | } | 21 | } |
diff --git a/src/scopes/_figures.vars.scss b/src/scopes/_figures.vars.scss deleted file mode 100644 index 1737078..0000000 --- a/src/scopes/_figures.vars.scss +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | @use 'iro-sass/src/props'; | ||
2 | @use '../core.vars' as core; | ||
3 | @use './implicit.vars' as implicit; | ||
4 | |||
5 | $pad-b: props.def(--s-figures--pad-b, props.get(core.$size--100)) !default; | ||
6 | $border-width: props.def(--s-figures--border-width, props.get(core.$border-width--thin)) !default; | ||
7 | $font-size: props.def(--s-figures--font-size, props.get(core.$font-size--100)) !default; | ||
8 | |||
9 | $text-color: props.def(--s-figures--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; | ||
10 | $border-color: props.def(--s-figures--border-color, props.get(core.$theme, --border-mute), 'color') !default; | ||
diff --git a/src/scopes/_implicit.scss b/src/scopes/_implicit.scss index 020e311..78f06be 100644 --- a/src/scopes/_implicit.scss +++ b/src/scopes/_implicit.scss | |||
@@ -1,5 +1,7 @@ | |||
1 | @use 'sass:map'; | ||
1 | @use 'sass:math'; | 2 | @use 'sass:math'; |
2 | @use 'sass:meta'; | 3 | @use 'sass:meta'; |
4 | @use 'sass:string'; | ||
3 | @use 'iro-sass/src/bem'; | 5 | @use 'iro-sass/src/bem'; |
4 | @use 'iro-sass/src/props'; | 6 | @use 'iro-sass/src/props'; |
5 | @use '../props' as *; | 7 | @use '../props' as *; |
@@ -155,5 +157,24 @@ | |||
155 | padding: 0; | 157 | padding: 0; |
156 | margin: 0; | 158 | margin: 0; |
157 | } | 159 | } |
160 | |||
161 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | ||
162 | .t-static-#{string.slice($theme, 3)} { | ||
163 | color: props.get(core.$transparent-colors, $theme, --800); | ||
164 | |||
165 | h1, | ||
166 | h2, | ||
167 | h3, | ||
168 | h4, | ||
169 | h5, | ||
170 | h6 { | ||
171 | color: props.get(core.$transparent-colors, $theme, --900); | ||
172 | } | ||
173 | |||
174 | hr { | ||
175 | color: props.get(core.$transparent-colors, $theme, --400); | ||
176 | } | ||
177 | } | ||
178 | } | ||
158 | } | 179 | } |
159 | } | 180 | } |
diff --git a/src/scopes/_links.vars.scss b/src/scopes/_links.vars.scss index 91a73ab..b9bf4d1 100644 --- a/src/scopes/_links.vars.scss +++ b/src/scopes/_links.vars.scss | |||
@@ -31,7 +31,7 @@ $static-themes: props.def(--s-links, (), 'color'); | |||
31 | 31 | ||
32 | $static-themes: props.merge($static-themes, ( | 32 | $static-themes: props.merge($static-themes, ( |
33 | $link-theme: ( | 33 | $link-theme: ( |
34 | --text-color: props.get(core.$transparent-colors, $theme, --800), | 34 | --text-color: currentColor, |
35 | --underline-color: props.get(core.$transparent-colors, $theme, --500), | 35 | --underline-color: props.get(core.$transparent-colors, $theme, --500), |
36 | 36 | ||
37 | --hover: ( | 37 | --hover: ( |