summaryrefslogtreecommitdiffstats
path: root/src/objects/_action-button.vars.scss
diff options
context:
space:
mode:
Diffstat (limited to 'src/objects/_action-button.vars.scss')
-rw-r--r--src/objects/_action-button.vars.scss176
1 files changed, 144 insertions, 32 deletions
diff --git a/src/objects/_action-button.vars.scss b/src/objects/_action-button.vars.scss
index 8c3d510..1a9be25 100644
--- a/src/objects/_action-button.vars.scss
+++ b/src/objects/_action-button.vars.scss
@@ -4,32 +4,38 @@
4@use '../core.vars' as core; 4@use '../core.vars' as core;
5 5
6$line-height: props.def(--o-action-button--line-height, 1.4) !default; 6$line-height: props.def(--o-action-button--line-height, 1.4) !default;
7$pad-i: props.def(--o-action-button--pad-i, props.get(core.$size--150)) !default;
8$pad-i-label: props.def(--o-action-button--pad-i-label, props.get(core.$size--50)) !default;
9$pad-i-pill: props.def(--o-action-button--pad-i-pill, props.get(core.$size--200)) !default;
10$pad-b: props.def(--o-action-button--pad-b, props.get(core.$size--85)) !default;
11$border-width: props.def(--o-action-button--border-width, props.get(core.$border-width--thin)) !default; 7$border-width: props.def(--o-action-button--border-width, props.get(core.$border-width--thin)) !default;
12$rounding: props.def(--o-action-button--rounding, props.get(core.$rounding)) !default; 8$rounding: props.def(--o-action-button--rounding, props.get(core.$rounding)) !default;
13$font-size: props.def(--o-action-button--font-size, props.get(core.$font-size--100)) !default;
14 9
15$pad-i--sm: props.def(--o-action-button--sm--pad-i, props.get(core.$size--100)) !default; 10$pad-i--sm: props.def(--o-action-button--sm--pad-i, props.get(core.$size--75)) !default;
16$pad-i-label--sm: props.def(--o-action-button--sm--pad-i-label, props.get(core.$size--25)) !default; 11$pad-i-label--sm: props.def(--o-action-button--sm--pad-i-label, props.get(core.$size--25)) !default;
17$pad-i-pill--sm: props.def(--o-action-button--sm--pad-i-pill, props.get(core.$size--150)) !default; 12$pad-i-pill--sm: props.def(--o-action-button--sm--pad-i-pill, props.get(core.$size--100)) !default;
18$pad-b--sm: props.def(--o-action-button--sm--pad-b, props.get(core.$size--40)) !default; 13$pad-b--sm: props.def(--o-action-button--sm--pad-b, props.get(core.$size--40)) !default;
19$font-size--sm: props.def(--o-action-button--sm--font-size, props.get(core.$font-size--75)) !default; 14$font-size--sm: props.def(--o-action-button--sm--font-size, props.get(core.$font-size--75)) !default;
20 15
21$pad-i--lg: props.def(--o-action-button--lg--pad-i, props.get(core.$size--175)) !default; 16$pad-i: props.def(--o-action-button--pad-i, props.get(core.$size--100)) !default;
22$pad-i-label--lg: props.def(--o-action-button--lg--pad-i-label, props.get(core.$size--100)) !default; 17$pad-i-label: props.def(--o-action-button--pad-i-label, props.get(core.$size--50)) !default;
23$pad-i-pill--lg: props.def(--o-action-button--lg--pad-i-pill, props.get(core.$size--250)) !default; 18$pad-i-pill: props.def(--o-action-button--pad-i-pill, props.get(core.$size--150)) !default;
19$pad-b: props.def(--o-action-button--pad-b, props.get(core.$size--85)) !default;
20$font-size: props.def(--o-action-button--font-size, props.get(core.$font-size--100)) !default;
21
22$pad-i--lg: props.def(--o-action-button--lg--pad-i, props.get(core.$size--150)) !default;
23$pad-i-label--lg: props.def(--o-action-button--lg--pad-i-label, props.get(core.$size--75)) !default;
24$pad-i-pill--lg: props.def(--o-action-button--lg--pad-i-pill, props.get(core.$size--175)) !default;
24$pad-b--lg: props.def(--o-action-button--lg--pad-b, props.get(core.$size--115)) !default; 25$pad-b--lg: props.def(--o-action-button--lg--pad-b, props.get(core.$size--115)) !default;
25$font-size--lg: props.def(--o-action-button--lg--font-size, props.get(core.$font-size--150)) !default; 26$font-size--lg: props.def(--o-action-button--lg--font-size, props.get(core.$font-size--150)) !default;
26 27
27$pad-i--xl: props.def(--o-action-button--xl--pad-i, props.get(core.$size--225)) !default; 28$pad-i--xl: props.def(--o-action-button--xl--pad-i, props.get(core.$size--175)) !default;
28$pad-i-label--xl: props.def(--o-action-button--xl--pad-i-label, props.get(core.$size--150)) !default; 29$pad-i-label--xl: props.def(--o-action-button--xl--pad-i-label, props.get(core.$size--100)) !default;
29$pad-i-pill--xl: props.def(--o-action-button--xl--pad-i-pill, props.get(core.$size--300)) !default; 30$pad-i-pill--xl: props.def(--o-action-button--xl--pad-i-pill, props.get(core.$size--225)) !default;
30$pad-b--xl: props.def(--o-action-button--xl--pad-b, props.get(core.$size--150)) !default; 31$pad-b--xl: props.def(--o-action-button--xl--pad-b, props.get(core.$size--150)) !default;
31$font-size--xl: props.def(--o-action-button--xl--font-size, props.get(core.$font-size--200)) !default; 32$font-size--xl: props.def(--o-action-button--xl--font-size, props.get(core.$font-size--200)) !default;
32 33
34$shadow-x: props.def(--o-action-button--shadow-x, props.get(core.$shadow--l1--x)) !default;
35$shadow-y: props.def(--o-action-button--shadow-y, props.get(core.$shadow--l1--y)) !default;
36$shadow-blur: props.def(--o-action-button--shadow-blur, props.get(core.$shadow--l1--blur)) !default;
37$shadow-grow: props.def(--o-action-button--shadow-grow, props.get(core.$shadow--l1--grow)) !default;
38
33$key-focus--border-width: props.def(--o-action-button--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; 39$key-focus--border-width: props.def(--o-action-button--key-focus--border-width, props.get(core.$key-focus--border-width)) !default;
34$key-focus--border-offset: props.def(--o-action-button--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; 40$key-focus--border-offset: props.def(--o-action-button--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default;
35$key-focus--outline-width: props.def(--o-action-button--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; 41$key-focus--outline-width: props.def(--o-action-button--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default;
@@ -44,24 +50,25 @@ $themes: props.def(--o-action-button, (), 'color');
44 50
45$default-theme-override: () !default; 51$default-theme-override: () !default;
46$default-theme: map.deep-merge(( 52$default-theme: map.deep-merge((
47 --bg-color: props.get(core.$theme, --base, --75), 53 --bg-color: props.get(core.$theme, --bg-l2),
48 --label-color: props.get(core.$theme, --text), 54 --label-color: props.get(core.$theme, --text),
49 --border-color: props.get(core.$theme, --border-strong), 55 --border-color: props.get(core.$theme, --border-mute) props.get(core.$theme, --border-mute) props.get(core.$theme, --border),
56 --shadow-color: props.get(core.$theme, --shadow),
50 57
51 --hover: ( 58 --hover: (
52 --bg-color: props.get(core.$theme, --border-mute), 59 --bg-color: props.get(core.$theme, --border-mute),
53 --label-color: props.get(core.$theme, --heading), 60 --label-color: props.get(core.$theme, --heading),
54 --border-color: props.get(core.$theme, --text-mute-more), 61 --border-color: props.get(core.$theme, --border-strong),
55 ), 62 ),
56 63
57 --active: ( 64 --active: (
58 --bg-color: props.get(core.$theme, --border), 65 --bg-color: props.get(core.$theme, --border),
59 --label-color: props.get(core.$theme, --heading), 66 --label-color: props.get(core.$theme, --heading),
60 --border-color: props.get(core.$theme, --text-mute), 67 --border-color: props.get(core.$theme, --text-mute-more),
61 ), 68 ),
62 69
63 --disabled: ( 70 --disabled: (
64 --bg-color: props.get(core.$theme, --bg-l1), 71 --bg-color: transparent,
65 --label-color: props.get(core.$theme, --border-strong), 72 --label-color: props.get(core.$theme, --border-strong),
66 --border-color: props.get(core.$theme, --border), 73 --border-color: props.get(core.$theme, --border),
67 ), 74 ),
@@ -72,20 +79,20 @@ $default-theme: map.deep-merge((
72 ), 79 ),
73 80
74 --selected: ( 81 --selected: (
75 --bg-color: props.get(core.$theme, --heading), 82 --bg-color: props.get(core.$theme, --text),
76 --label-color: props.get(core.$theme, --base, --50), 83 --label-color: props.get(core.$theme, --base, --50),
77 --border-color: props.get(core.$theme, --heading), 84 --border-color: props.get(core.$theme, --text) props.get(core.$theme, --text) props.get(core.$theme, --heading),
78 85
79 --hover: ( 86 --hover: (
80 --bg-color: props.get(core.$theme, --text), 87 --bg-color: props.get(core.$theme, --heading),
81 --label-color: props.get(core.$theme, --base, --50), 88 --label-color: props.get(core.$theme, --base, --50),
82 --border-color: props.get(core.$theme, --text), 89 --border-color: props.get(core.$theme, --heading),
83 ), 90 ),
84 91
85 --active: ( 92 --active: (
86 --bg-color: props.get(core.$theme, --text-mute), 93 --bg-color: props.get(core.$theme, --heading),
87 --label-color: props.get(core.$theme, --base, --50), 94 --label-color: props.get(core.$theme, --base, --50),
88 --border-color: props.get(core.$theme, --text-mute), 95 --border-color: props.get(core.$theme, --heading),
89 ), 96 ),
90 97
91 --disabled: ( 98 --disabled: (
@@ -115,25 +122,47 @@ $default-theme: map.deep-merge((
115), $default-theme-override) !default; 122), $default-theme-override) !default;
116$default-theme: props.def(--o-action-button, $default-theme, 'color'); 123$default-theme: props.def(--o-action-button, $default-theme, 'color');
117 124
125$default-theme-dark-override: () !default;
126$default-theme-dark: map.deep-merge((
127 --bg-color: props.get(core.$theme, --border-mute),
128 --border-color: props.get(core.$theme, --border-mute),
129
130 --hover: (
131 --bg-color: props.get(core.$theme, --border),
132 --border-color: props.get(core.$theme, --border),
133 ),
134
135 --active: (
136 --bg-color: props.get(core.$theme, --border-strong),
137 --border-color: props.get(core.$theme, --border-strong),
138 ),
139
140 --selected: (
141 --border-color: props.get(core.$theme, --text),
142 ),
143), $default-theme-override) !default;
144$default-theme-dark: props.def(--o-action-button, $default-theme-dark, 'dark');
145
118@each $theme in map.keys(props.get(core.$transparent-colors)) { 146@each $theme in map.keys(props.get(core.$transparent-colors)) {
119 $button-theme: --static-#{string.slice($theme, 3)}; 147 $button-theme: --static-#{string.slice($theme, 3)};
120 148
121 $themes: props.merge($themes, ( 149 $themes: props.merge($themes, (
122 $button-theme: ( 150 $button-theme: (
123 --bg-color: props.get(core.$transparent-colors, $theme, --100), 151 --bg-color: props.get(core.$transparent-colors, $theme, --200),
124 --label-color: props.get(core.$transparent-colors, $theme, --900), 152 --label-color: props.get(core.$transparent-colors, $theme, --900),
125 --border-color: props.get(core.$transparent-colors, $theme, --400), 153 --border-color: props.get(core.$transparent-colors, $theme, --300) props.get(core.$transparent-colors, $theme, --300) props.get(core.$transparent-colors, $theme, --400),
154 --shadow-color: props.get(core.$transparent-colors, --black, --200),
126 155
127 --hover: ( 156 --hover: (
128 --bg-color: props.get(core.$transparent-colors, $theme, --300), 157 --bg-color: props.get(core.$transparent-colors, $theme, --300),
129 --label-color: props.get(core.$transparent-colors, $theme, --900), 158 --label-color: props.get(core.$transparent-colors, $theme, --900),
130 --border-color: props.get(core.$transparent-colors, $theme, --500), 159 --border-color: props.get(core.$transparent-colors, $theme, --400),
131 ), 160 ),
132 161
133 --active: ( 162 --active: (
134 --bg-color: props.get(core.$transparent-colors, $theme, --400), 163 --bg-color: props.get(core.$transparent-colors, $theme, --400),
135 --label-color: props.get(core.$transparent-colors, $theme, --900), 164 --label-color: props.get(core.$transparent-colors, $theme, --900),
136 --border-color: props.get(core.$transparent-colors, $theme, --600), 165 --border-color: props.get(core.$transparent-colors, $theme, --500),
137 ), 166 ),
138 167
139 --disabled: ( 168 --disabled: (
@@ -150,7 +179,7 @@ $default-theme: props.def(--o-action-button, $default-theme, 'color');
150 --selected: ( 179 --selected: (
151 --bg-color: props.get(core.$transparent-colors, $theme, --800), 180 --bg-color: props.get(core.$transparent-colors, $theme, --800),
152 --label-color: props.get(core.$transparent-colors, $theme, --text), 181 --label-color: props.get(core.$transparent-colors, $theme, --text),
153 --border-color: props.get(core.$transparent-colors, $theme, --100), 182 --border-color: props.get(core.$transparent-colors, $theme, --100) props.get(core.$transparent-colors, $theme, --100) props.get(core.$transparent-colors, $theme, --200),
154 183
155 --hover: ( 184 --hover: (
156 --bg-color: props.get(core.$transparent-colors, $theme, --900), 185 --bg-color: props.get(core.$transparent-colors, $theme, --900),
@@ -175,12 +204,12 @@ $default-theme: props.def(--o-action-button, $default-theme, 'color');
175 --label-color: props.get(core.$transparent-colors, $theme, --900), 204 --label-color: props.get(core.$transparent-colors, $theme, --900),
176 205
177 --hover: ( 206 --hover: (
178 --bg-color: props.get(core.$transparent-colors, $theme, --300), 207 --bg-color: props.get(core.$transparent-colors, $theme, --200),
179 --label-color: props.get(core.$transparent-colors, $theme, --900), 208 --label-color: props.get(core.$transparent-colors, $theme, --900),
180 ), 209 ),
181 210
182 --active: ( 211 --active: (
183 --bg-color: props.get(core.$transparent-colors, $theme, --400), 212 --bg-color: props.get(core.$transparent-colors, $theme, --300),
184 --label-color: props.get(core.$transparent-colors, $theme, --900), 213 --label-color: props.get(core.$transparent-colors, $theme, --900),
185 ), 214 ),
186 215
@@ -191,3 +220,86 @@ $default-theme: props.def(--o-action-button, $default-theme, 'color');
191 ) 220 )
192 )); 221 ));
193} 222}
223
224$themes-config: (
225 accent: --accent,
226 positive: --positive,
227 negative: --negative,
228 warning: --warning,
229) !default;
230
231@each $theme, $key in $themes-config {
232 $themes: props.merge($themes, (
233 --#{$theme}: (
234 --bg-color: props.get(core.$theme, $key, --200),
235 --label-color: props.get(core.$theme, $key, --1100),
236 --border-color: props.get(core.$theme, $key, --500) props.get(core.$theme, $key, --500) props.get(core.$theme, $key, --600),
237 --shadow-color: props.get(core.$theme, $key, --200),
238
239 --hover: (
240 --bg-color: props.get(core.$theme, $key, --300),
241 --label-color: props.get(core.$theme, $key, --1200),
242 --border-color: props.get(core.$theme, $key, --600),
243 ),
244
245 --active: (
246 --bg-color: props.get(core.$theme, $key, --400),
247 --label-color: props.get(core.$theme, $key, --1300),
248 --border-color: props.get(core.$theme, $key, --800),
249 ),
250
251 --disabled: (
252 --bg-color: props.get(core.$theme, --bg-l1),
253 --label-color: props.get(core.$theme, --border-strong),
254 --border-color: props.get(core.$theme, --border),
255 ),
256
257 --key-focus: (
258 --border-color: props.get(core.$theme, --focus, --border),
259 --outline-color: props.get(core.$theme, --focus, --outline),
260 ),
261
262 --selected: (
263 --bg-color: props.get(core.$theme, #{$key}-static, --900),
264 --label-color: props.get(core.$theme, #{$key}-static, --900-text),
265 --border-color: props.get(core.$theme, #{$key}-static, --900) props.get(core.$theme, #{$key}-static, --900) props.get(core.$theme, #{$key}-static, --1000),
266
267 --hover: (
268 --bg-color: props.get(core.$theme, #{$key}-static, --1000),
269 --label-color: props.get(core.$theme, #{$key}-static, --1000-text),
270 --border-color: props.get(core.$theme, #{$key}-static, --1000),
271 ),
272
273 --active: (
274 --bg-color: props.get(core.$theme, #{$key}-static, --1100),
275 --label-color: props.get(core.$theme, #{$key}-static, --1100-text),
276 --border-color: props.get(core.$theme, #{$key}-static, --1100),
277 ),
278
279 --disabled: (
280 --bg-color: props.get(core.$theme, --border-mute),
281 --label-color: props.get(core.$theme, --border-strong),
282 --border-color: props.get(core.$theme, --border-mute),
283 ),
284 ),
285
286 --quiet: (
287 --label-color: props.get(core.$theme, $key, --1100),
288
289 --hover: (
290 --bg-color: props.get(core.$theme, $key, --200),
291 --label-color: props.get(core.$theme, $key, --1200),
292 ),
293
294 --active: (
295 --bg-color: props.get(core.$theme, $key, --300),
296 --label-color: props.get(core.$theme, $key, --1300),
297 ),
298
299 --disabled: (
300 --label-color: props.get(core.$theme, --border-strong),
301 ),
302 ),
303 )
304 ));
305}