@kushagradhawan/kookie-ui 0.1.37 → 0.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.css +130 -74
- package/dist/cjs/components/_internal/base-button.props.d.ts +1 -1
- package/dist/cjs/components/_internal/base-button.props.js +1 -1
- package/dist/cjs/components/_internal/base-button.props.js.map +2 -2
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +2 -2
- package/dist/cjs/components/avatar.props.d.ts +1 -1
- package/dist/cjs/components/avatar.props.js +1 -1
- package/dist/cjs/components/avatar.props.js.map +2 -2
- package/dist/cjs/components/button.d.ts +40 -2
- package/dist/cjs/components/button.d.ts.map +1 -1
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +3 -3
- package/dist/cjs/components/chatbar.d.ts.map +1 -1
- package/dist/cjs/components/chatbar.js +1 -1
- package/dist/cjs/components/chatbar.js.map +2 -2
- package/dist/cjs/components/checkbox-cards.props.d.ts +2 -2
- package/dist/cjs/components/checkbox-cards.props.js +1 -1
- package/dist/cjs/components/checkbox-cards.props.js.map +2 -2
- package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +3 -3
- package/dist/cjs/components/checkbox-group.props.d.ts +1 -1
- package/dist/cjs/components/dialog.d.ts.map +1 -1
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +3 -3
- package/dist/cjs/components/flex.props.d.ts +3 -3
- package/dist/cjs/components/grid.props.d.ts +3 -3
- package/dist/cjs/components/radio-cards.props.d.ts +2 -2
- package/dist/cjs/components/radio-cards.props.js +1 -1
- package/dist/cjs/components/radio-cards.props.js.map +2 -2
- package/dist/cjs/components/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +3 -3
- package/dist/cjs/components/shell.d.ts.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +3 -3
- package/dist/cjs/components/sidebar.d.ts +7 -1
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +3 -3
- package/dist/cjs/components/sidebar.props.d.ts +6 -0
- package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.props.js +1 -1
- package/dist/cjs/components/sidebar.props.js.map +3 -3
- package/dist/cjs/components/table.props.d.ts +7 -7
- package/dist/cjs/components/text-field.props.d.ts +4 -4
- package/dist/cjs/helpers/extract-margin-props.d.ts +7 -7
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +1 -1
- package/dist/cjs/hooks/index.js.map +3 -3
- package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts +9 -0
- package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -0
- package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +2 -0
- package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +7 -0
- package/dist/cjs/props/gap.props.d.ts +3 -3
- package/dist/cjs/props/gap.props.js +1 -1
- package/dist/cjs/props/gap.props.js.map +2 -2
- package/dist/cjs/props/layout.props.d.ts +7 -7
- package/dist/cjs/props/margin.props.d.ts +7 -7
- package/dist/cjs/props/margin.props.js +1 -1
- package/dist/cjs/props/margin.props.js.map +2 -2
- package/dist/cjs/props/padding.props.d.ts +7 -7
- package/dist/cjs/props/padding.props.js +1 -1
- package/dist/cjs/props/padding.props.js.map +2 -2
- package/dist/esm/components/_internal/base-button.props.d.ts +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -1
- package/dist/esm/components/_internal/base-button.props.js.map +2 -2
- package/dist/esm/components/_internal/base-checkbox.props.d.ts +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js.map +2 -2
- package/dist/esm/components/avatar.props.d.ts +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/avatar.props.js.map +2 -2
- package/dist/esm/components/button.d.ts +40 -2
- package/dist/esm/components/button.d.ts.map +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.js.map +3 -3
- package/dist/esm/components/chatbar.d.ts.map +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/chatbar.js.map +2 -2
- package/dist/esm/components/checkbox-cards.props.d.ts +2 -2
- package/dist/esm/components/checkbox-cards.props.js +1 -1
- package/dist/esm/components/checkbox-cards.props.js.map +2 -2
- package/dist/esm/components/checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.js.map +3 -3
- package/dist/esm/components/checkbox-group.props.d.ts +1 -1
- package/dist/esm/components/dialog.d.ts.map +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.js.map +3 -3
- package/dist/esm/components/flex.props.d.ts +3 -3
- package/dist/esm/components/grid.props.d.ts +3 -3
- package/dist/esm/components/radio-cards.props.d.ts +2 -2
- package/dist/esm/components/radio-cards.props.js +1 -1
- package/dist/esm/components/radio-cards.props.js.map +2 -2
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.js.map +3 -3
- package/dist/esm/components/shell.d.ts.map +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/shell.js.map +3 -3
- package/dist/esm/components/sidebar.d.ts +7 -1
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/sidebar.js.map +3 -3
- package/dist/esm/components/sidebar.props.d.ts +6 -0
- package/dist/esm/components/sidebar.props.d.ts.map +1 -1
- package/dist/esm/components/sidebar.props.js +1 -1
- package/dist/esm/components/sidebar.props.js.map +3 -3
- package/dist/esm/components/table.props.d.ts +7 -7
- package/dist/esm/components/text-field.props.d.ts +4 -4
- package/dist/esm/helpers/extract-margin-props.d.ts +7 -7
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/index.js.map +3 -3
- package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts +9 -0
- package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -0
- package/dist/esm/hooks/use-body-pointer-events-cleanup.js +2 -0
- package/dist/esm/hooks/use-body-pointer-events-cleanup.js.map +7 -0
- package/dist/esm/props/gap.props.d.ts +3 -3
- package/dist/esm/props/gap.props.js +1 -1
- package/dist/esm/props/gap.props.js.map +2 -2
- package/dist/esm/props/layout.props.d.ts +7 -7
- package/dist/esm/props/margin.props.d.ts +7 -7
- package/dist/esm/props/margin.props.js +1 -1
- package/dist/esm/props/margin.props.js.map +2 -2
- package/dist/esm/props/padding.props.d.ts +7 -7
- package/dist/esm/props/padding.props.js +1 -1
- package/dist/esm/props/padding.props.js.map +2 -2
- package/layout/tokens.css +3 -0
- package/layout/utilities.css +1806 -42
- package/layout.css +1809 -42
- package/package.json +1 -1
- package/src/components/_internal/base-button.css +179 -73
- package/src/components/_internal/base-button.props.ts +1 -1
- package/src/components/_internal/base-checkbox.props.ts +1 -1
- package/src/components/avatar.props.tsx +1 -1
- package/src/components/button.css +13 -21
- package/src/components/button.tsx +79 -2
- package/src/components/chatbar.tsx +5 -2
- package/src/components/checkbox-cards.props.tsx +1 -1
- package/src/components/checkbox-group.tsx +14 -6
- package/src/components/dialog.tsx +4 -0
- package/src/components/radio-cards.props.tsx +1 -1
- package/src/components/select.css +9 -0
- package/src/components/select.tsx +11 -1
- package/src/components/shell.tsx +34 -3
- package/src/components/sidebar.css +15 -3
- package/src/components/sidebar.props.tsx +3 -0
- package/src/components/sidebar.tsx +27 -0
- package/src/hooks/index.ts +2 -1
- package/src/hooks/use-body-pointer-events-cleanup.ts +81 -0
- package/src/props/gap.props.ts +1 -1
- package/src/props/margin.props.ts +1 -1
- package/src/props/padding.props.ts +1 -1
- package/src/styles/tokens/blur.css +3 -0
- package/src/styles/tokens/constants.css +38 -35
- package/src/styles/tokens/radius.css +3 -0
- package/src/styles/tokens/shadow.css +64 -89
- package/src/styles/tokens/space.css +3 -0
- package/src/styles/tokens/transition.css +25 -12
- package/src/styles/utilities/gap.css +27 -0
- package/src/styles/utilities/margin.css +205 -7
- package/src/styles/utilities/padding.css +69 -0
- package/styles.css +1973 -144
- package/tokens/base.css +34 -25
- package/tokens.css +37 -28
- package/utilities.css +1806 -42
package/package.json
CHANGED
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
/* Reset all inherited styles to ensure consistent base */
|
|
28
28
|
all: unset;
|
|
29
29
|
box-sizing: border-box;
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
/* Flexbox layout for content alignment */
|
|
32
32
|
display: inline-flex;
|
|
33
33
|
align-items: center;
|
|
34
34
|
justify-content: center;
|
|
35
35
|
flex-shrink: 0;
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
/* Interaction and accessibility */
|
|
38
38
|
user-select: none;
|
|
39
39
|
position: relative;
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
text-align: center;
|
|
49
49
|
|
|
50
50
|
/* RTL support for right-to-left languages */
|
|
51
|
-
:where([dir=
|
|
51
|
+
:where([dir='rtl']) & {
|
|
52
52
|
flex-direction: row-reverse;
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
backdrop-filter: none;
|
|
73
73
|
--backdrop-filter-components: none;
|
|
74
74
|
}
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
&:where([data-panel-background='translucent'], [data-material='translucent']) {
|
|
77
77
|
backdrop-filter: var(--backdrop-filter-components);
|
|
78
78
|
--backdrop-filter-components: blur(var(--backdrop-blur-components));
|
|
@@ -112,8 +112,6 @@
|
|
|
112
112
|
cursor: wait;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
/* Removed scale animation on press - keeping transition for other effects */
|
|
116
|
-
|
|
117
115
|
/*
|
|
118
116
|
* Reduced motion support
|
|
119
117
|
* Respects user's motion preferences for accessibility
|
|
@@ -153,29 +151,25 @@
|
|
|
153
151
|
* Designed for toolbars and dense interfaces
|
|
154
152
|
*/
|
|
155
153
|
&:where(.rt-r-size-1) {
|
|
156
|
-
--base-button-classic-active-padding-top: 1px;
|
|
157
154
|
--base-button-height: var(--space-5);
|
|
158
155
|
border-radius: max(var(--radius-1), var(--radius-full));
|
|
159
156
|
}
|
|
160
|
-
|
|
157
|
+
|
|
161
158
|
/*
|
|
162
159
|
* Size 2: Standard (32px height)
|
|
163
160
|
* Default size for most interface contexts
|
|
164
161
|
*/
|
|
165
162
|
&:where(.rt-r-size-2) {
|
|
166
|
-
--base-button-classic-active-padding-top: 2px;
|
|
167
163
|
--base-button-height: var(--space-6);
|
|
168
164
|
border-radius: max(var(--radius-2), var(--radius-full));
|
|
169
165
|
}
|
|
170
166
|
|
|
171
167
|
&:where(.rt-r-size-3) {
|
|
172
|
-
--base-button-classic-active-padding-top: 2px;
|
|
173
168
|
--base-button-height: var(--space-7);
|
|
174
169
|
border-radius: max(var(--radius-3), var(--radius-full));
|
|
175
170
|
}
|
|
176
|
-
|
|
171
|
+
|
|
177
172
|
&:where(.rt-r-size-4) {
|
|
178
|
-
--base-button-classic-active-padding-top: 2px;
|
|
179
173
|
--base-button-height: var(--space-8);
|
|
180
174
|
border-radius: max(var(--radius-4), var(--radius-full));
|
|
181
175
|
}
|
|
@@ -192,7 +186,6 @@
|
|
|
192
186
|
|
|
193
187
|
.rt-BaseButton:where(.rt-variant-classic) {
|
|
194
188
|
position: relative;
|
|
195
|
-
top: var(--classic-elevation-offset);
|
|
196
189
|
color: var(--accent-a11);
|
|
197
190
|
background-color: var(--color-surface-solid);
|
|
198
191
|
box-shadow: var(--shadow-2);
|
|
@@ -282,7 +275,10 @@
|
|
|
282
275
|
/* Dark mode uses same styling as light mode for simplicity */
|
|
283
276
|
}
|
|
284
277
|
|
|
285
|
-
&:where(
|
|
278
|
+
&:where(
|
|
279
|
+
:active:not([data-state='open'], [data-disabled]),
|
|
280
|
+
[data-state='on']:not([data-disabled])
|
|
281
|
+
) {
|
|
286
282
|
background-color: var(--gray-3);
|
|
287
283
|
box-shadow: var(--shadow-1);
|
|
288
284
|
|
|
@@ -319,14 +315,128 @@
|
|
|
319
315
|
}
|
|
320
316
|
}
|
|
321
317
|
|
|
318
|
+
/* override */
|
|
319
|
+
|
|
320
|
+
.rt-BaseButton:where(.rt-variant-override) {
|
|
321
|
+
/* Base styles driven entirely by CSS variables, set via props */
|
|
322
|
+
color: var(--button-override-color, inherit);
|
|
323
|
+
background: var(--button-override-background, transparent);
|
|
324
|
+
background-color: var(--button-override-background-color, initial);
|
|
325
|
+
box-shadow: var(--button-override-box-shadow, none);
|
|
326
|
+
filter: var(--button-override-filter, none);
|
|
327
|
+
outline: var(--button-override-outline, none);
|
|
328
|
+
|
|
329
|
+
@media (hover: hover) {
|
|
330
|
+
&:where(:hover) {
|
|
331
|
+
color: var(--button-override-hover-color, var(--button-override-color, inherit));
|
|
332
|
+
background: var(
|
|
333
|
+
--button-override-hover-background,
|
|
334
|
+
var(--button-override-background, transparent)
|
|
335
|
+
);
|
|
336
|
+
background-color: var(
|
|
337
|
+
--button-override-hover-background-color,
|
|
338
|
+
var(--button-override-background-color, initial)
|
|
339
|
+
);
|
|
340
|
+
box-shadow: var(--button-override-hover-box-shadow, var(--button-override-box-shadow, none));
|
|
341
|
+
filter: var(--button-override-hover-filter, var(--button-override-filter, none));
|
|
342
|
+
outline: var(--button-override-hover-outline, var(--button-override-outline, none));
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
&:where([data-state='open']) {
|
|
347
|
+
color: var(--button-override-open-color, var(--button-override-color, inherit));
|
|
348
|
+
background: var(
|
|
349
|
+
--button-override-open-background,
|
|
350
|
+
var(--button-override-background, transparent)
|
|
351
|
+
);
|
|
352
|
+
background-color: var(
|
|
353
|
+
--button-override-open-background-color,
|
|
354
|
+
var(--button-override-background-color, initial)
|
|
355
|
+
);
|
|
356
|
+
box-shadow: var(--button-override-open-box-shadow, var(--button-override-box-shadow, none));
|
|
357
|
+
filter: var(--button-override-open-filter, var(--button-override-filter, none));
|
|
358
|
+
outline: var(--button-override-open-outline, var(--button-override-outline, none));
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
&:where(:active:not([data-state='open'])) {
|
|
362
|
+
color: var(--button-override-active-color, var(--button-override-color, inherit));
|
|
363
|
+
background: var(
|
|
364
|
+
--button-override-active-background,
|
|
365
|
+
var(--button-override-background, transparent)
|
|
366
|
+
);
|
|
367
|
+
background-color: var(
|
|
368
|
+
--button-override-active-background-color,
|
|
369
|
+
var(--button-override-background-color, initial)
|
|
370
|
+
);
|
|
371
|
+
box-shadow: var(--button-override-active-box-shadow, var(--button-override-box-shadow, none));
|
|
372
|
+
filter: var(--button-override-active-filter, var(--button-override-filter, none));
|
|
373
|
+
outline: var(--button-override-active-outline, var(--button-override-outline, none));
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
&:where(:focus-visible) {
|
|
377
|
+
outline: var(--button-override-focus-outline, var(--focus-ring, 2px solid var(--focus-8)));
|
|
378
|
+
outline-offset: var(--button-override-focus-outline-offset, 2px);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
/* Toggle pressed */
|
|
382
|
+
&:where([data-state='on']) {
|
|
383
|
+
color: var(
|
|
384
|
+
--button-override-pressed-color,
|
|
385
|
+
var(--button-override-active-color, var(--button-override-color, inherit))
|
|
386
|
+
);
|
|
387
|
+
background: var(
|
|
388
|
+
--button-override-pressed-background,
|
|
389
|
+
var(--button-override-active-background, var(--button-override-background, transparent))
|
|
390
|
+
);
|
|
391
|
+
background-color: var(
|
|
392
|
+
--button-override-pressed-background-color,
|
|
393
|
+
var(
|
|
394
|
+
--button-override-active-background-color,
|
|
395
|
+
var(--button-override-background-color, initial)
|
|
396
|
+
)
|
|
397
|
+
);
|
|
398
|
+
box-shadow: var(
|
|
399
|
+
--button-override-pressed-box-shadow,
|
|
400
|
+
var(--button-override-active-box-shadow, var(--button-override-box-shadow, none))
|
|
401
|
+
);
|
|
402
|
+
filter: var(
|
|
403
|
+
--button-override-pressed-filter,
|
|
404
|
+
var(--button-override-active-filter, var(--button-override-filter, none))
|
|
405
|
+
);
|
|
406
|
+
outline: var(
|
|
407
|
+
--button-override-pressed-outline,
|
|
408
|
+
var(--button-override-active-outline, var(--button-override-outline, none))
|
|
409
|
+
);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
&:where([data-disabled]) {
|
|
413
|
+
color: var(--button-override-disabled-color, var(--gray-a8));
|
|
414
|
+
background: var(--button-override-disabled-background, var(--gray-a3));
|
|
415
|
+
background-color: var(--button-override-disabled-background-color, var(--gray-a3));
|
|
416
|
+
box-shadow: var(--button-override-disabled-box-shadow, none);
|
|
417
|
+
filter: var(--button-override-disabled-filter, none);
|
|
418
|
+
outline: var(--button-override-disabled-outline, none);
|
|
419
|
+
cursor: not-allowed;
|
|
420
|
+
pointer-events: none;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
|
|
322
424
|
/* solid */
|
|
323
425
|
|
|
324
426
|
:where(.radix-themes) {
|
|
325
427
|
--base-button-solid-high-contrast-hover-filter: contrast(0.88) saturate(1.1) brightness(1.1);
|
|
428
|
+
--base-button-solid-active-filter: brightness(0.9) contrast(1.03);
|
|
429
|
+
--base-button-solid-open-filter: brightness(0.96) contrast(1.02);
|
|
430
|
+
--base-button-solid-high-contrast-active-filter: brightness(0.92);
|
|
431
|
+
--base-button-solid-high-contrast-open-filter: brightness(0.96);
|
|
326
432
|
}
|
|
327
433
|
:is(.dark, .dark-theme),
|
|
328
434
|
:is(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) {
|
|
329
435
|
--base-button-solid-high-contrast-hover-filter: contrast(0.88) saturate(1.3) brightness(1.18);
|
|
436
|
+
--base-button-solid-active-filter: brightness(0.88) contrast(1.03);
|
|
437
|
+
--base-button-solid-open-filter: brightness(0.95) contrast(1.02);
|
|
438
|
+
--base-button-solid-high-contrast-active-filter: brightness(0.9);
|
|
439
|
+
--base-button-solid-high-contrast-open-filter: brightness(0.95);
|
|
330
440
|
}
|
|
331
441
|
|
|
332
442
|
.rt-BaseButton:where(.rt-variant-solid) {
|
|
@@ -351,7 +461,8 @@
|
|
|
351
461
|
@media (hover: hover) {
|
|
352
462
|
&:where(:hover) {
|
|
353
463
|
background-color: var(--accent-10);
|
|
354
|
-
|
|
464
|
+
box-shadow: var(--shadow-2);
|
|
465
|
+
|
|
355
466
|
/* Theme-level translucent override for hover */
|
|
356
467
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
357
468
|
background-color: color-mix(in srgb, var(--accent-a10), var(--accent-10) 10%);
|
|
@@ -369,7 +480,9 @@
|
|
|
369
480
|
}
|
|
370
481
|
&:where([data-state='open']) {
|
|
371
482
|
background-color: var(--accent-10);
|
|
372
|
-
|
|
483
|
+
filter: var(--base-button-solid-open-filter);
|
|
484
|
+
box-shadow: var(--shadow-1);
|
|
485
|
+
|
|
373
486
|
/* Theme-level translucent override for open */
|
|
374
487
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
375
488
|
background-color: color-mix(in srgb, var(--accent-a10), var(--accent-10) 10%);
|
|
@@ -385,21 +498,8 @@
|
|
|
385
498
|
}
|
|
386
499
|
}
|
|
387
500
|
&:where(:active:not([data-state='open'])) {
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
/* Theme-level translucent override for active */
|
|
391
|
-
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
392
|
-
background-color: color-mix(in srgb, var(--accent-a11), var(--accent-11) 10%);
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
/* Component-level overrides for active */
|
|
396
|
-
&:where([data-panel-background='solid'], [data-material='solid']) {
|
|
397
|
-
background-color: var(--accent-11);
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
&:where([data-panel-background='translucent'], [data-material='translucent']) {
|
|
401
|
-
background-color: color-mix(in srgb, var(--accent-a11), var(--accent-11) 10%);
|
|
402
|
-
}
|
|
501
|
+
filter: var(--base-button-solid-active-filter);
|
|
502
|
+
box-shadow: var(--shadow-1);
|
|
403
503
|
}
|
|
404
504
|
/* Better -webkit-tap-highlight-color */
|
|
405
505
|
@media (pointer: coarse) {
|
|
@@ -434,6 +534,7 @@
|
|
|
434
534
|
&:where(:hover) {
|
|
435
535
|
background-color: var(--accent-12);
|
|
436
536
|
filter: var(--base-button-solid-high-contrast-hover-filter);
|
|
537
|
+
box-shadow: var(--shadow-2);
|
|
437
538
|
|
|
438
539
|
/* Theme-level translucent override for high contrast hover */
|
|
439
540
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
@@ -452,7 +553,8 @@
|
|
|
452
553
|
}
|
|
453
554
|
&:where([data-state='open']) {
|
|
454
555
|
background-color: var(--accent-12);
|
|
455
|
-
filter: var(--base-button-solid-high-contrast-
|
|
556
|
+
filter: var(--base-button-solid-high-contrast-open-filter);
|
|
557
|
+
box-shadow: var(--shadow-1);
|
|
456
558
|
|
|
457
559
|
/* Theme-level translucent override for high contrast open */
|
|
458
560
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
@@ -469,22 +571,8 @@
|
|
|
469
571
|
}
|
|
470
572
|
}
|
|
471
573
|
&:where(:active:not([data-state='open'])) {
|
|
472
|
-
background-color: var(--accent-11);
|
|
473
574
|
filter: var(--base-button-solid-high-contrast-active-filter);
|
|
474
|
-
|
|
475
|
-
/* Theme-level translucent override for high contrast active */
|
|
476
|
-
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
477
|
-
background-color: color-mix(in srgb, var(--accent-a11), var(--accent-11) 10%);
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
/* Component-level overrides for high contrast active */
|
|
481
|
-
&:where([data-panel-background='solid'], [data-material='solid']) {
|
|
482
|
-
background-color: var(--accent-11);
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
&:where([data-panel-background='translucent'], [data-material='translucent']) {
|
|
486
|
-
background-color: color-mix(in srgb, var(--accent-a11), var(--accent-11) 10%);
|
|
487
|
-
}
|
|
575
|
+
box-shadow: var(--shadow-1);
|
|
488
576
|
}
|
|
489
577
|
}
|
|
490
578
|
&:where([data-disabled]) {
|
|
@@ -538,7 +626,8 @@
|
|
|
538
626
|
@media (hover: hover) {
|
|
539
627
|
&:where(:hover) {
|
|
540
628
|
background-color: var(--accent-4);
|
|
541
|
-
|
|
629
|
+
box-shadow: var(--shadow-2);
|
|
630
|
+
|
|
542
631
|
/* Theme-level translucent override for hover */
|
|
543
632
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
544
633
|
background-color: color-mix(in srgb, var(--accent-a4), var(--accent-4) 60%);
|
|
@@ -556,7 +645,8 @@
|
|
|
556
645
|
}
|
|
557
646
|
&:where([data-state='open']) {
|
|
558
647
|
background-color: var(--accent-4);
|
|
559
|
-
|
|
648
|
+
box-shadow: var(--shadow-1);
|
|
649
|
+
|
|
560
650
|
/* Theme-level translucent override for open */
|
|
561
651
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
562
652
|
background-color: color-mix(in srgb, var(--accent-a4), var(--accent-4) 60%);
|
|
@@ -573,7 +663,8 @@
|
|
|
573
663
|
}
|
|
574
664
|
&:where(:active:not([data-state='open'])) {
|
|
575
665
|
background-color: var(--accent-5);
|
|
576
|
-
|
|
666
|
+
box-shadow: var(--shadow-1);
|
|
667
|
+
|
|
577
668
|
/* Theme-level translucent override for active */
|
|
578
669
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
579
670
|
background-color: color-mix(in srgb, var(--accent-a5), var(--accent-5) 60%);
|
|
@@ -633,7 +724,7 @@
|
|
|
633
724
|
&:where(:hover) {
|
|
634
725
|
/* Base state: solid accent for solid panels */
|
|
635
726
|
background-color: var(--accent-3);
|
|
636
|
-
|
|
727
|
+
|
|
637
728
|
/* Theme-level translucent override for hover */
|
|
638
729
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
639
730
|
background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
|
|
@@ -661,7 +752,8 @@
|
|
|
661
752
|
&:where([data-state='open']) {
|
|
662
753
|
/* Base state: solid accent for solid panels */
|
|
663
754
|
background-color: var(--accent-3);
|
|
664
|
-
|
|
755
|
+
box-shadow: var(--shadow-1);
|
|
756
|
+
|
|
665
757
|
/* Theme-level translucent override for open */
|
|
666
758
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
667
759
|
background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
|
|
@@ -685,7 +777,8 @@
|
|
|
685
777
|
&:where(:active:not([data-state='open'])) {
|
|
686
778
|
/* Base state: solid accent for solid panels */
|
|
687
779
|
background-color: var(--accent-4);
|
|
688
|
-
|
|
780
|
+
box-shadow: var(--shadow-1);
|
|
781
|
+
|
|
689
782
|
/* Theme-level translucent override for active */
|
|
690
783
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
691
784
|
background-color: color-mix(in srgb, var(--accent-a4), var(--accent-4) 60%);
|
|
@@ -742,7 +835,7 @@
|
|
|
742
835
|
&:where(:hover) {
|
|
743
836
|
background-color: var(--accent-2);
|
|
744
837
|
box-shadow: inset 0 0 0 1px var(--accent-7);
|
|
745
|
-
|
|
838
|
+
|
|
746
839
|
/* Theme-level translucent override for hover */
|
|
747
840
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
748
841
|
background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
|
|
@@ -763,8 +856,10 @@
|
|
|
763
856
|
}
|
|
764
857
|
&:where([data-state='open']) {
|
|
765
858
|
background-color: var(--accent-2);
|
|
766
|
-
box-shadow:
|
|
767
|
-
|
|
859
|
+
box-shadow:
|
|
860
|
+
inset 0 0 0 1px var(--accent-7),
|
|
861
|
+
var(--shadow-1);
|
|
862
|
+
|
|
768
863
|
/* Theme-level translucent override for open */
|
|
769
864
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
770
865
|
background-color: color-mix(in srgb, var(--accent-a2), var(--accent-2) 60%);
|
|
@@ -784,8 +879,10 @@
|
|
|
784
879
|
}
|
|
785
880
|
&:where(:active:not([data-state='open'])) {
|
|
786
881
|
background-color: var(--accent-3);
|
|
787
|
-
box-shadow:
|
|
788
|
-
|
|
882
|
+
box-shadow:
|
|
883
|
+
inset 0 0 0 1px var(--accent-8),
|
|
884
|
+
var(--shadow-1);
|
|
885
|
+
|
|
789
886
|
/* Theme-level translucent override for active */
|
|
790
887
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
791
888
|
background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
|
|
@@ -849,7 +946,7 @@
|
|
|
849
946
|
&:where(:hover) {
|
|
850
947
|
background-color: var(--accent-3);
|
|
851
948
|
box-shadow: inset 0 0 0 1px var(--accent-7);
|
|
852
|
-
|
|
949
|
+
|
|
853
950
|
/* Theme-level translucent override for hover */
|
|
854
951
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
855
952
|
background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
|
|
@@ -870,8 +967,10 @@
|
|
|
870
967
|
}
|
|
871
968
|
&:where([data-state='open']) {
|
|
872
969
|
background-color: var(--accent-3);
|
|
873
|
-
box-shadow:
|
|
874
|
-
|
|
970
|
+
box-shadow:
|
|
971
|
+
inset 0 0 0 1px var(--accent-8),
|
|
972
|
+
var(--shadow-1);
|
|
973
|
+
|
|
875
974
|
/* Theme-level translucent override for open */
|
|
876
975
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
877
976
|
background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
|
|
@@ -891,8 +990,10 @@
|
|
|
891
990
|
}
|
|
892
991
|
&:where(:active:not([data-state='open'])) {
|
|
893
992
|
background-color: var(--accent-4);
|
|
894
|
-
box-shadow:
|
|
895
|
-
|
|
993
|
+
box-shadow:
|
|
994
|
+
inset 0 0 0 1px var(--accent-8),
|
|
995
|
+
var(--shadow-1);
|
|
996
|
+
|
|
896
997
|
/* Theme-level translucent override for active */
|
|
897
998
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
898
999
|
background-color: color-mix(in srgb, var(--accent-a4), var(--accent-4) 60%);
|
|
@@ -940,7 +1041,7 @@
|
|
|
940
1041
|
&:where(.rt-variant-classic) {
|
|
941
1042
|
background-color: var(--gray-3);
|
|
942
1043
|
box-shadow: var(--shadow-1);
|
|
943
|
-
|
|
1044
|
+
|
|
944
1045
|
/* Theme-level translucent override for pressed */
|
|
945
1046
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
946
1047
|
background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
|
|
@@ -960,8 +1061,8 @@
|
|
|
960
1061
|
&:where(.rt-variant-solid) {
|
|
961
1062
|
background-color: var(--accent-10);
|
|
962
1063
|
opacity: 0.9;
|
|
963
|
-
|
|
964
|
-
|
|
1064
|
+
box-shadow: var(--shadow-1);
|
|
1065
|
+
|
|
965
1066
|
/* Theme-level translucent override for pressed */
|
|
966
1067
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
967
1068
|
background-color: color-mix(in srgb, var(--accent-a10), var(--accent-10) 10%);
|
|
@@ -979,14 +1080,14 @@
|
|
|
979
1080
|
&:where(.rt-high-contrast) {
|
|
980
1081
|
background-color: var(--accent-12);
|
|
981
1082
|
opacity: 0.85;
|
|
982
|
-
transform: translateY(1px);
|
|
983
1083
|
}
|
|
984
1084
|
}
|
|
985
1085
|
|
|
986
1086
|
/* Soft variant pressed */
|
|
987
1087
|
&:where(.rt-variant-soft) {
|
|
988
1088
|
background-color: var(--accent-5);
|
|
989
|
-
|
|
1089
|
+
box-shadow: var(--shadow-1);
|
|
1090
|
+
|
|
990
1091
|
/* Theme-level translucent override for pressed */
|
|
991
1092
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
992
1093
|
background-color: color-mix(in srgb, var(--accent-a5), var(--accent-5) 60%);
|
|
@@ -1005,7 +1106,8 @@
|
|
|
1005
1106
|
/* Ghost variant pressed */
|
|
1006
1107
|
&:where(.rt-variant-ghost) {
|
|
1007
1108
|
background-color: var(--accent-4);
|
|
1008
|
-
|
|
1109
|
+
box-shadow: var(--shadow-1);
|
|
1110
|
+
|
|
1009
1111
|
/* Theme-level translucent override for pressed */
|
|
1010
1112
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
1011
1113
|
background-color: var(--accent-a4);
|
|
@@ -1024,8 +1126,10 @@
|
|
|
1024
1126
|
/* Outline variant pressed */
|
|
1025
1127
|
&:where(.rt-variant-outline) {
|
|
1026
1128
|
background-color: var(--accent-3);
|
|
1027
|
-
box-shadow:
|
|
1028
|
-
|
|
1129
|
+
box-shadow:
|
|
1130
|
+
inset 0 0 0 1px var(--accent-8),
|
|
1131
|
+
var(--shadow-1);
|
|
1132
|
+
|
|
1029
1133
|
/* Theme-level translucent override for pressed */
|
|
1030
1134
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
1031
1135
|
background-color: color-mix(in srgb, var(--accent-a3), var(--accent-3) 60%);
|
|
@@ -1047,8 +1151,10 @@
|
|
|
1047
1151
|
/* Surface variant pressed */
|
|
1048
1152
|
&:where(.rt-variant-surface) {
|
|
1049
1153
|
background-color: var(--accent-4);
|
|
1050
|
-
box-shadow:
|
|
1051
|
-
|
|
1154
|
+
box-shadow:
|
|
1155
|
+
inset 0 0 0 1px var(--accent-8),
|
|
1156
|
+
var(--shadow-1);
|
|
1157
|
+
|
|
1052
1158
|
/* Theme-level translucent override for pressed */
|
|
1053
1159
|
:where([data-panel-background='translucent'], [data-material='translucent']) & {
|
|
1054
1160
|
background-color: color-mix(in srgb, var(--accent-a4), var(--accent-4) 60%);
|
|
@@ -23,7 +23,7 @@ const sizes = ['1', '2', '3', '4'] as const;
|
|
|
23
23
|
* - outline: Secondary actions that support primary actions
|
|
24
24
|
* - ghost: Utility functions that don't compete for attention
|
|
25
25
|
*/
|
|
26
|
-
const variants = ['classic', 'solid', 'soft', 'surface', 'outline', 'ghost'] as const;
|
|
26
|
+
const variants = ['classic', 'solid', 'soft', 'surface', 'outline', 'ghost', 'override'] as const;
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Available panel background options (deprecated)
|
|
@@ -3,7 +3,7 @@ import { highContrastPropDef } from '../../props/high-contrast.prop.js';
|
|
|
3
3
|
|
|
4
4
|
import type { PropDef } from '../../props/prop-def.js';
|
|
5
5
|
|
|
6
|
-
const sizes = ['1', '2', '3'] as const;
|
|
6
|
+
const sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;
|
|
7
7
|
const variants = ['classic', 'solid', 'soft', 'outline', 'surface'] as const;
|
|
8
8
|
const materials = ['solid', 'translucent'] as const;
|
|
9
9
|
|
|
@@ -5,7 +5,7 @@ import { radiusPropDef } from '../props/radius.prop.js';
|
|
|
5
5
|
|
|
6
6
|
import type { PropDef } from '../props/prop-def.js';
|
|
7
7
|
|
|
8
|
-
const sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] as const;
|
|
8
|
+
const sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;
|
|
9
9
|
const variants = ['classic', 'solid', 'soft', 'surface', 'outline'] as const;
|
|
10
10
|
const panelBackgrounds = ['solid', 'translucent'] as const;
|
|
11
11
|
const materials = ['solid', 'translucent'] as const;
|
|
@@ -18,18 +18,6 @@
|
|
|
18
18
|
* Button-specific styles that extend the base button
|
|
19
19
|
* These styles handle icon opacity and specialized behaviors
|
|
20
20
|
*/
|
|
21
|
-
.rt-Button {
|
|
22
|
-
&:where(:not(.rt-variant-ghost)) {
|
|
23
|
-
/*
|
|
24
|
-
* Reduce icon opacity slightly for better visual hierarchy
|
|
25
|
-
* This creates a subtle distinction between icons and text
|
|
26
|
-
*/
|
|
27
|
-
/* stylelint-disable-next-line selector-max-type */
|
|
28
|
-
& :where(svg) {
|
|
29
|
-
opacity: 0.9;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
21
|
|
|
34
22
|
/***************************************************************************************************
|
|
35
23
|
* *
|
|
@@ -83,7 +71,7 @@
|
|
|
83
71
|
padding-left: var(--space-2);
|
|
84
72
|
padding-right: var(--space-2);
|
|
85
73
|
}
|
|
86
|
-
|
|
74
|
+
|
|
87
75
|
/*
|
|
88
76
|
* Ghost variant padding for size 1
|
|
89
77
|
* Reduced padding creates seamless text integration
|
|
@@ -94,7 +82,7 @@
|
|
|
94
82
|
--button-ghost-padding-y: var(--space-1);
|
|
95
83
|
}
|
|
96
84
|
}
|
|
97
|
-
|
|
85
|
+
|
|
98
86
|
/*
|
|
99
87
|
* Size 2: Standard (32px height)
|
|
100
88
|
* Default size for most interface contexts and general use
|
|
@@ -117,7 +105,7 @@
|
|
|
117
105
|
padding-left: var(--space-3);
|
|
118
106
|
padding-right: var(--space-3);
|
|
119
107
|
}
|
|
120
|
-
|
|
108
|
+
|
|
121
109
|
/* Ghost variant padding for size 2 */
|
|
122
110
|
&:where(.rt-variant-ghost) {
|
|
123
111
|
gap: var(--component-gap-ghost-2);
|
|
@@ -125,7 +113,7 @@
|
|
|
125
113
|
--button-ghost-padding-y: var(--space-1);
|
|
126
114
|
}
|
|
127
115
|
}
|
|
128
|
-
|
|
116
|
+
|
|
129
117
|
/*
|
|
130
118
|
* Size 3: Large (40px height)
|
|
131
119
|
* Recommended for important actions and mobile touch targets
|
|
@@ -148,7 +136,7 @@
|
|
|
148
136
|
padding-left: var(--space-4);
|
|
149
137
|
padding-right: var(--space-4);
|
|
150
138
|
}
|
|
151
|
-
|
|
139
|
+
|
|
152
140
|
/* Ghost variant padding for size 3 */
|
|
153
141
|
&:where(.rt-variant-ghost) {
|
|
154
142
|
gap: var(--component-gap-ghost-3);
|
|
@@ -156,7 +144,7 @@
|
|
|
156
144
|
--button-ghost-padding-y: calc(var(--space-1) * 1.5);
|
|
157
145
|
}
|
|
158
146
|
}
|
|
159
|
-
|
|
147
|
+
|
|
160
148
|
/*
|
|
161
149
|
* Size 4: Extra Large (48px height)
|
|
162
150
|
* Designed for hero sections and maximum visual impact
|
|
@@ -176,10 +164,14 @@
|
|
|
176
164
|
|
|
177
165
|
/* Standard padding for non-ghost variants */
|
|
178
166
|
&:where(:not(.rt-variant-ghost)) {
|
|
179
|
-
|
|
180
|
-
|
|
167
|
+
/**
|
|
168
|
+
* HACK: This padding calculation adds 4px to the space-4 token for better visual balance at size 4.
|
|
169
|
+
* This is a temporary workaround and should be replaced with a proper tokenized solution.
|
|
170
|
+
*/
|
|
171
|
+
padding-left: calc(var(--space-4) + (4px * var(--scaling)));
|
|
172
|
+
padding-right: calc(var(--space-4) + (4px * var(--scaling)));
|
|
181
173
|
}
|
|
182
|
-
|
|
174
|
+
|
|
183
175
|
/* Ghost variant padding for size 4 */
|
|
184
176
|
&:where(.rt-variant-ghost) {
|
|
185
177
|
gap: var(--component-gap-ghost-4);
|