@ropav/styles 0.4.0 → 0.5.0
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/README.md +10 -5
- package/dist/components/accordion.css +5 -5
- package/dist/components/alert-dialog.css +1 -1
- package/dist/components/alert.css +1 -1
- package/dist/components/autocomplete/autocomplete.styles.d.ts +33 -0
- package/dist/components/autocomplete/autocomplete.styles.d.ts.map +1 -1
- package/dist/components/autocomplete/autocomplete.styles.js +12 -0
- package/dist/components/autocomplete.css +31 -3
- package/dist/components/button-group.css +6 -6
- package/dist/components/button.css +7 -11
- package/dist/components/calendar-year-picker.css +1 -1
- package/dist/components/card.css +1 -1
- package/dist/components/color-input-group/color-input-group.styles.d.ts +27 -0
- package/dist/components/color-input-group/color-input-group.styles.d.ts.map +1 -1
- package/dist/components/color-input-group/color-input-group.styles.js +6 -0
- package/dist/components/color-input-group.css +21 -1
- package/dist/components/combo-box/combo-box.styles.d.ts +27 -0
- package/dist/components/combo-box/combo-box.styles.d.ts.map +1 -1
- package/dist/components/combo-box/combo-box.styles.js +17 -7
- package/dist/components/combo-box.css +21 -1
- package/dist/components/date-input-group/date-input-group.styles.d.ts +27 -0
- package/dist/components/date-input-group/date-input-group.styles.d.ts.map +1 -1
- package/dist/components/date-input-group/date-input-group.styles.js +6 -0
- package/dist/components/date-input-group.css +21 -1
- package/dist/components/dropdown.css +1 -1
- package/dist/components/index.css +4 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/input/input.styles.d.ts +15 -0
- package/dist/components/input/input.styles.d.ts.map +1 -1
- package/dist/components/input/input.styles.js +6 -0
- package/dist/components/input-group/input-group.styles.d.ts +27 -0
- package/dist/components/input-group/input-group.styles.d.ts.map +1 -1
- package/dist/components/input-group/input-group.styles.js +6 -0
- package/dist/components/input-group.css +23 -1
- package/dist/components/input.css +13 -1
- package/dist/components/list-box/list-box.styles.d.ts +15 -0
- package/dist/components/list-box/list-box.styles.d.ts.map +1 -1
- package/dist/components/list-box/list-box.styles.js +15 -5
- package/dist/components/list-box-item.css +4 -2
- package/dist/components/list-box.css +19 -0
- package/dist/components/menu/menu.styles.d.ts +19 -1
- package/dist/components/menu/menu.styles.d.ts.map +1 -1
- package/dist/components/menu/menu.styles.js +9 -1
- package/dist/components/menu.css +19 -0
- package/dist/components/modal.css +1 -1
- package/dist/components/number-field/number-field.styles.d.ts +27 -0
- package/dist/components/number-field/number-field.styles.d.ts.map +1 -1
- package/dist/components/number-field/number-field.styles.js +6 -0
- package/dist/components/number-field.css +60 -1
- package/dist/components/pagination.css +6 -6
- package/dist/components/popover.css +15 -1
- package/dist/components/search-field/search-field.styles.d.ts +27 -0
- package/dist/components/search-field/search-field.styles.d.ts.map +1 -1
- package/dist/components/search-field/search-field.styles.js +6 -0
- package/dist/components/search-field.css +25 -1
- package/dist/components/segmented-control/index.d.ts +2 -0
- package/dist/components/segmented-control/index.d.ts.map +1 -0
- package/dist/components/segmented-control/index.js +2 -0
- package/dist/components/segmented-control/segmented-control.styles.d.ts +73 -0
- package/dist/components/segmented-control/segmented-control.styles.d.ts.map +1 -0
- package/dist/components/segmented-control/segmented-control.styles.js +27 -0
- package/dist/components/segmented-control.css +193 -0
- package/dist/components/select/select.styles.d.ts +33 -0
- package/dist/components/select/select.styles.d.ts.map +1 -1
- package/dist/components/select/select.styles.js +12 -0
- package/dist/components/select.css +31 -3
- package/dist/components/sidebar/index.d.ts +2 -0
- package/dist/components/sidebar/index.d.ts.map +1 -0
- package/dist/components/sidebar/index.js +2 -0
- package/dist/components/sidebar/sidebar.styles.d.ts +190 -0
- package/dist/components/sidebar/sidebar.styles.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar.styles.js +52 -0
- package/dist/components/sidebar.css +510 -0
- package/dist/components/splitter/index.d.ts +2 -0
- package/dist/components/splitter/index.d.ts.map +1 -0
- package/dist/components/splitter/index.js +2 -0
- package/dist/components/splitter/splitter.styles.d.ts +61 -0
- package/dist/components/splitter/splitter.styles.d.ts.map +1 -0
- package/dist/components/splitter/splitter.styles.js +26 -0
- package/dist/components/splitter.css +241 -0
- package/dist/components/table.css +3 -3
- package/dist/components/tabs.css +2 -2
- package/dist/components/textarea/textarea.styles.d.ts +15 -0
- package/dist/components/textarea/textarea.styles.d.ts.map +1 -1
- package/dist/components/textarea/textarea.styles.js +6 -0
- package/dist/components/textarea.css +13 -1
- package/dist/components/toast.css +1 -1
- package/dist/components/toggle-button-group.css +7 -7
- package/dist/components/toggle-button.css +7 -11
- package/dist/components/toolbar.css +1 -1
- package/dist/components/tooltip.css +15 -2
- package/dist/components/virtualizer/index.d.ts +2 -0
- package/dist/components/virtualizer/index.d.ts.map +1 -0
- package/dist/components/virtualizer/index.js +2 -0
- package/dist/components/virtualizer/virtualizer.styles.d.ts +44 -0
- package/dist/components/virtualizer/virtualizer.styles.d.ts.map +1 -0
- package/dist/components/virtualizer/virtualizer.styles.js +15 -0
- package/dist/components/virtualizer.css +64 -0
- package/dist/index.js +5 -1
- package/dist/ropav.min.css +2 -2
- package/dist/themes/airbnb.css +5 -0
- package/dist/themes/all.css +1 -0
- package/dist/themes/coinbase.css +5 -0
- package/dist/themes/default.css +16 -4
- package/dist/themes/discord.css +5 -0
- package/dist/themes/hero.css +262 -0
- package/dist/themes/lavender.css +5 -0
- package/dist/themes/mint.css +5 -0
- package/dist/themes/netflix.css +5 -0
- package/dist/themes/rabbit.css +5 -0
- package/dist/themes/shared/theme.css +19 -2
- package/dist/themes/sky.css +5 -0
- package/dist/themes/spotify.css +5 -0
- package/dist/themes/uber.css +5 -0
- package/dist/utilities/index.css +27 -0
- package/package.json +1 -1
- package/src/components/autocomplete/autocomplete.styles.ts +12 -0
- package/src/components/color-input-group/color-input-group.styles.ts +10 -0
- package/src/components/combo-box/combo-box.styles.ts +12 -0
- package/src/components/date-input-group/date-input-group.styles.ts +10 -0
- package/src/components/index.ts +4 -0
- package/src/components/input/input.styles.ts +6 -0
- package/src/components/input-group/input-group.styles.ts +10 -0
- package/src/components/list-box/list-box.styles.ts +6 -0
- package/src/components/menu/menu.styles.ts +10 -0
- package/src/components/number-field/number-field.styles.ts +10 -0
- package/src/components/search-field/search-field.styles.ts +10 -0
- package/src/components/segmented-control/index.ts +1 -0
- package/src/components/segmented-control/segmented-control.styles.ts +37 -0
- package/src/components/select/select.styles.ts +12 -0
- package/src/components/sidebar/index.ts +1 -0
- package/src/components/sidebar/sidebar.styles.ts +94 -0
- package/src/components/splitter/index.ts +1 -0
- package/src/components/splitter/splitter.styles.ts +44 -0
- package/src/components/textarea/textarea.styles.ts +6 -0
- package/src/components/virtualizer/index.ts +1 -0
- package/src/components/virtualizer/virtualizer.styles.ts +15 -0
package/dist/themes/airbnb.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="airbnb"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.75rem;
|
|
23
24
|
--radius: 0.5rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0 17.07);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(0.5392 0.1816 33.72);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0 17.07);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(0.5392 0.1816 33.72);
|
package/dist/themes/all.css
CHANGED
package/dist/themes/coinbase.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="coinbase"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.125rem;
|
|
23
24
|
--radius: 0.5rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0.004 262.87);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(0.5507 0.2062 24);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0.004 262.87);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(0.6545 0.2145 22.31);
|
package/dist/themes/default.css
CHANGED
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
|
|
40
40
|
/* Radius */
|
|
41
41
|
--radius: 0.5rem;
|
|
42
|
-
--field-radius: calc(var(--radius) *
|
|
42
|
+
--field-radius: calc(var(--radius) * 0.75);
|
|
43
|
+
--component-radius: var(--field-radius);
|
|
43
44
|
|
|
44
45
|
/* == Light Theme Variables == */
|
|
45
46
|
|
|
@@ -73,7 +74,7 @@
|
|
|
73
74
|
--default: oklch(94% 0.001 286.375);
|
|
74
75
|
--default-foreground: var(--eclipse);
|
|
75
76
|
|
|
76
|
-
--accent: oklch(0.
|
|
77
|
+
--accent: oklch(0.62 0.2 260);
|
|
77
78
|
--accent-foreground: var(--snow);
|
|
78
79
|
|
|
79
80
|
/* Form Fields */
|
|
@@ -170,9 +171,16 @@
|
|
|
170
171
|
--overlay-shadow:
|
|
171
172
|
0 2px 8px 0 rgba(0, 0, 0, 0.06), 0 -6px 12px 0 rgba(0, 0, 0, 0.03),
|
|
172
173
|
0 14px 28px 0 rgba(0, 0, 0, 0.08);
|
|
174
|
+
/* The edge of an overlay that has an arrow, as a filter over the combined silhouette:
|
|
175
|
+
* `--overlay-shadow` restated as drop-shadows, so the shadow wraps the arrow too. A theme
|
|
176
|
+
* whose overlays wear a hairline instead points this at `url(#ropav-overlay-edge)` — the
|
|
177
|
+
* filter every arrow carries — and colours the line with `--overlay-edge-line`. */
|
|
178
|
+
--overlay-edge: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.06))
|
|
179
|
+
drop-shadow(0 -6px 12px rgba(0, 0, 0, 0.03)) drop-shadow(0 14px 28px rgba(0, 0, 0, 0.08));
|
|
180
|
+
--overlay-edge-line: transparent;
|
|
173
181
|
--field-shadow:
|
|
174
|
-
0 2px 4px 0 rgba(0, 0, 0, 0.
|
|
175
|
-
0 0 1px 0 rgba(0, 0, 0, 0.
|
|
182
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.02), 0 1px 2px 0 rgba(0, 0, 0, 0.03),
|
|
183
|
+
0 0 1px 0 rgba(0, 0, 0, 0.03);
|
|
176
184
|
/* Skeleton Default Global Animation */
|
|
177
185
|
--skeleton-animation: shimmer; /* shimmer, pulse, none */
|
|
178
186
|
|
|
@@ -240,6 +248,10 @@
|
|
|
240
248
|
/* Shadows */
|
|
241
249
|
--surface-shadow: 0 0 0 0 transparent inset; /* No shadow on dark mode */
|
|
242
250
|
--overlay-shadow: 0 0 1px 0 rgba(255, 255, 255, 0.3) inset;
|
|
251
|
+
/* The arrowed overlays' edge: the same hairline, drawn by the filter the arrow carries so it
|
|
252
|
+
* follows the arrow's silhouette as well as the body's. */
|
|
253
|
+
--overlay-edge: url(#ropav-overlay-edge);
|
|
254
|
+
--overlay-edge-line: rgba(255, 255, 255, 0.3);
|
|
243
255
|
--field-shadow: 0 0 0 0 transparent inset; /* Transparent shadow to allow ring utilities to work */
|
|
244
256
|
|
|
245
257
|
/* Calculated Colors */
|
package/dist/themes/discord.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="discord"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.75rem;
|
|
23
24
|
--radius: 0.25rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0.02 273.85);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(0.5884 0.1993 24.39);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0.02 273.85);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(0.6318 0.2075 24.57);
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hero theme — hand-written.
|
|
3
|
+
*
|
|
4
|
+
* HeroUI v3's own palette — the one Ropav's style layer was vendored from, offered under its own
|
|
5
|
+
* `data-theme` alongside the other brand themes.
|
|
6
|
+
*
|
|
7
|
+
* Not generated. The generator derives every grey from one hue and one chroma, and this palette
|
|
8
|
+
* does neither: its greys sit around hue 286 while its accent is at 253.83, its grey chroma runs
|
|
9
|
+
* from 0 (`--background`) to 0.0138 (`--muted`), and `--surface-tertiary` strays to 247.91 on
|
|
10
|
+
* dark. Its `scripts/themes/presets.ts` entry records the accent seeds and the radius pair, which
|
|
11
|
+
* is what the theme list and the Storybook toolbar read; `pnpm generate:themes` skips it.
|
|
12
|
+
*
|
|
13
|
+
* Colours, radii and the field shadow, like every other theme — `--spacing`, `--cursor-*`, the
|
|
14
|
+
* primitives, the surface and overlay shadows and `--backdrop` stay on `:root` / `.dark` in
|
|
15
|
+
* `themes/default.css`, which keeps matching an element that carries a `data-theme`. The primitive *values* are spelled out rather than
|
|
16
|
+
* aliased through `var(--eclipse)`, so this palette holds whatever the default theme is tuned to.
|
|
17
|
+
*
|
|
18
|
+
* The `theme` layer is declared inside this file, so it can be imported with or without a
|
|
19
|
+
* `layer()` wrapper:
|
|
20
|
+
*
|
|
21
|
+
* @import "@ropav/styles";
|
|
22
|
+
* @import "@ropav/styles/themes/hero.css";
|
|
23
|
+
*
|
|
24
|
+
* Light is the default; dark needs the `dark` class alongside the attribute:
|
|
25
|
+
* <html data-theme="hero"> light
|
|
26
|
+
* <html data-theme="hero" class="dark"> dark
|
|
27
|
+
*/
|
|
28
|
+
@layer theme {
|
|
29
|
+
[data-theme="hero"] {
|
|
30
|
+
color-scheme: light;
|
|
31
|
+
|
|
32
|
+
/* Radius */
|
|
33
|
+
--radius: 0.5rem;
|
|
34
|
+
--field-radius: calc(var(--radius) * 1.5);
|
|
35
|
+
--component-radius: calc(var(--radius) * 3);
|
|
36
|
+
|
|
37
|
+
/* == Light Theme Variables == */
|
|
38
|
+
|
|
39
|
+
/* Base Colors */
|
|
40
|
+
--background: oklch(0.9702 0 0);
|
|
41
|
+
--foreground: oklch(0.2103 0.0059 285.89);
|
|
42
|
+
|
|
43
|
+
/* Surface: Used for non-overlay components (cards, accordions, disclosure groups) */
|
|
44
|
+
--surface: oklch(100% 0 0);
|
|
45
|
+
--surface-foreground: var(--foreground);
|
|
46
|
+
|
|
47
|
+
--surface-secondary: oklch(0.9524 0.0013 286.37);
|
|
48
|
+
--surface-secondary-foreground: var(--foreground);
|
|
49
|
+
|
|
50
|
+
--surface-tertiary: oklch(0.9373 0.0013 286.37);
|
|
51
|
+
--surface-tertiary-foreground: var(--foreground);
|
|
52
|
+
|
|
53
|
+
/* Overlay: Used for floating/overlay components (tooltips, popovers, modals, menus) */
|
|
54
|
+
--overlay: oklch(100% 0 0);
|
|
55
|
+
--overlay-foreground: var(--foreground);
|
|
56
|
+
|
|
57
|
+
--muted: oklch(0.516 0.0138 285.94);
|
|
58
|
+
|
|
59
|
+
--scrollbar: var(--scrollbar-thumb);
|
|
60
|
+
--scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
|
|
61
|
+
--scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
|
|
62
|
+
|
|
63
|
+
--default: oklch(94% 0.001 286.375);
|
|
64
|
+
--default-foreground: oklch(0.2103 0.0059 285.89);
|
|
65
|
+
|
|
66
|
+
--accent: oklch(0.6204 0.195 253.83);
|
|
67
|
+
--accent-foreground: oklch(0.9911 0 0);
|
|
68
|
+
|
|
69
|
+
/* Form Fields */
|
|
70
|
+
--field-background: oklch(100% 0 0);
|
|
71
|
+
--field-foreground: oklch(0.2103 0.0059 285.89);
|
|
72
|
+
--field-placeholder: var(--muted);
|
|
73
|
+
--field-border: transparent; /* no border by default on form fields */
|
|
74
|
+
--field-shadow:
|
|
75
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
76
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
77
|
+
|
|
78
|
+
/* Status Colors */
|
|
79
|
+
--success: oklch(0.7329 0.1935 150.81);
|
|
80
|
+
--success-foreground: oklch(0.2103 0.0059 285.89);
|
|
81
|
+
|
|
82
|
+
--warning: oklch(0.7819 0.1585 72.33);
|
|
83
|
+
--warning-foreground: oklch(0.2103 0.0059 285.89);
|
|
84
|
+
|
|
85
|
+
--danger: oklch(0.6532 0.2328 25.74);
|
|
86
|
+
--danger-foreground: oklch(0.9911 0 0);
|
|
87
|
+
|
|
88
|
+
/* Component Colors */
|
|
89
|
+
--segment: oklch(100% 0 0);
|
|
90
|
+
--segment-foreground: oklch(0.2103 0.0059 285.89);
|
|
91
|
+
|
|
92
|
+
/* Misc Colors */
|
|
93
|
+
--border: oklch(90% 0.004 286.32);
|
|
94
|
+
--separator: oklch(92% 0.004 286.32);
|
|
95
|
+
--focus: var(--accent);
|
|
96
|
+
--link: var(--foreground);
|
|
97
|
+
|
|
98
|
+
/* Calculated Colors */
|
|
99
|
+
--surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
|
|
100
|
+
|
|
101
|
+
--background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
|
|
102
|
+
--background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
|
|
103
|
+
--background-inverse: var(--foreground);
|
|
104
|
+
|
|
105
|
+
--default-hover: color-mix(in oklab, var(--default) 96%, var(--default-foreground) 4%);
|
|
106
|
+
--accent-hover: color-mix(in oklab, var(--accent) 90%, var(--accent-foreground) 10%);
|
|
107
|
+
--success-hover: color-mix(in oklab, var(--success) 90%, var(--success-foreground) 10%);
|
|
108
|
+
--warning-hover: color-mix(in oklab, var(--warning) 90%, var(--warning-foreground) 10%);
|
|
109
|
+
--danger-hover: color-mix(in oklab, var(--danger) 90%, var(--danger-foreground) 10%);
|
|
110
|
+
|
|
111
|
+
--field-hover: color-mix(
|
|
112
|
+
in oklab,
|
|
113
|
+
var(--field-background, var(--default)) 90%,
|
|
114
|
+
var(--field-foreground, var(--foreground)) 2%
|
|
115
|
+
);
|
|
116
|
+
--field-focus: var(--field-background, var(--default));
|
|
117
|
+
--field-border-hover: color-mix(
|
|
118
|
+
in oklab,
|
|
119
|
+
var(--field-border, var(--border)) 88%,
|
|
120
|
+
var(--field-foreground, var(--foreground)) 10%
|
|
121
|
+
);
|
|
122
|
+
--field-border-focus: color-mix(
|
|
123
|
+
in oklab,
|
|
124
|
+
var(--field-border, var(--border)) 74%,
|
|
125
|
+
var(--field-foreground, var(--foreground)) 22%
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
--default-soft: color-mix(in oklab, var(--default) 50%, transparent);
|
|
129
|
+
--default-soft-foreground: var(--default-foreground);
|
|
130
|
+
--default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
|
|
131
|
+
|
|
132
|
+
--accent-soft: color-mix(in oklab, var(--accent) 15%, transparent);
|
|
133
|
+
--accent-soft-foreground: color-mix(in oklab, var(--accent) 70%, var(--foreground) 45%);
|
|
134
|
+
--accent-soft-hover: color-mix(in oklab, var(--accent) 20%, transparent);
|
|
135
|
+
|
|
136
|
+
--danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
|
|
137
|
+
--danger-soft-foreground: color-mix(in oklab, var(--danger) 70%, var(--foreground) 40%);
|
|
138
|
+
--danger-soft-hover: color-mix(in oklab, var(--danger) 20%, transparent);
|
|
139
|
+
|
|
140
|
+
--warning-soft: color-mix(in oklab, var(--warning) 15%, transparent);
|
|
141
|
+
--warning-soft-foreground: color-mix(in oklab, var(--warning) 80%, var(--foreground) 70%);
|
|
142
|
+
--warning-soft-hover: color-mix(in oklab, var(--warning) 20%, transparent);
|
|
143
|
+
|
|
144
|
+
--success-soft: color-mix(in oklab, var(--success) 15%, transparent);
|
|
145
|
+
--success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 75%);
|
|
146
|
+
--success-soft-hover: color-mix(in oklab, var(--success) 20%, transparent);
|
|
147
|
+
|
|
148
|
+
--separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
|
|
149
|
+
--separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
|
|
150
|
+
|
|
151
|
+
--border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
|
|
152
|
+
--border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
[data-theme="hero"].dark,
|
|
156
|
+
.dark [data-theme="hero"] {
|
|
157
|
+
color-scheme: dark;
|
|
158
|
+
/* == Dark Theme Variables == */
|
|
159
|
+
|
|
160
|
+
/* Base Colors */
|
|
161
|
+
--background: oklch(12% 0.005 285.823);
|
|
162
|
+
--foreground: oklch(0.9911 0 0);
|
|
163
|
+
|
|
164
|
+
/* Surface: Used for non-overlay components (cards, accordions, disclosure groups) */
|
|
165
|
+
--surface: oklch(0.2103 0.0059 285.89);
|
|
166
|
+
--surface-foreground: var(--foreground);
|
|
167
|
+
|
|
168
|
+
--surface-secondary: oklch(0.257 0.0037 286.14);
|
|
169
|
+
--surface-tertiary: oklch(0.2721 0.0024 247.91);
|
|
170
|
+
|
|
171
|
+
/* Overlay: Used for floating/overlay components (tooltips, popovers, modals, menus) - lighter for contrast */
|
|
172
|
+
--overlay: oklch(0.2103 0.0059 285.89);
|
|
173
|
+
--overlay-foreground: var(--foreground);
|
|
174
|
+
|
|
175
|
+
--muted: oklch(70.5% 0.015 286.067);
|
|
176
|
+
|
|
177
|
+
--scrollbar: var(--scrollbar-thumb);
|
|
178
|
+
--scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
|
|
179
|
+
--scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
|
|
180
|
+
|
|
181
|
+
--default: oklch(27.4% 0.006 286.033);
|
|
182
|
+
--default-foreground: oklch(0.9911 0 0);
|
|
183
|
+
|
|
184
|
+
/* Form Fields */
|
|
185
|
+
--field-background: oklch(0.2103 0.0059 285.89);
|
|
186
|
+
--field-foreground: var(--foreground);
|
|
187
|
+
--field-shadow: 0 0 0 0 transparent inset; /* placeholder, so ring utilities still compose */
|
|
188
|
+
|
|
189
|
+
/* Status Colors */
|
|
190
|
+
--warning: oklch(0.8203 0.1388 76.34);
|
|
191
|
+
--warning-foreground: oklch(0.2103 0.0059 285.89);
|
|
192
|
+
|
|
193
|
+
--danger: oklch(0.594 0.1967 24.63);
|
|
194
|
+
--danger-foreground: oklch(0.9911 0 0);
|
|
195
|
+
|
|
196
|
+
/* Component Colors */
|
|
197
|
+
--segment: oklch(0.3964 0.01 285.93);
|
|
198
|
+
--segment-foreground: var(--foreground);
|
|
199
|
+
|
|
200
|
+
/* Misc Colors */
|
|
201
|
+
--border: oklch(28% 0.006 286.033);
|
|
202
|
+
--separator: oklch(25% 0.006 286.033);
|
|
203
|
+
--focus: var(--accent);
|
|
204
|
+
--link: var(--foreground);
|
|
205
|
+
|
|
206
|
+
/* Calculated Colors */
|
|
207
|
+
--surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
|
|
208
|
+
|
|
209
|
+
--background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
|
|
210
|
+
--background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
|
|
211
|
+
--background-inverse: var(--foreground);
|
|
212
|
+
|
|
213
|
+
--default-hover: color-mix(in oklab, var(--default) 96%, var(--default-foreground) 4%);
|
|
214
|
+
--accent-hover: color-mix(in oklab, var(--accent) 90%, var(--accent-foreground) 10%);
|
|
215
|
+
--success-hover: color-mix(in oklab, var(--success) 90%, var(--success-foreground) 10%);
|
|
216
|
+
--warning-hover: color-mix(in oklab, var(--warning) 90%, var(--warning-foreground) 10%);
|
|
217
|
+
--danger-hover: color-mix(in oklab, var(--danger) 90%, var(--danger-foreground) 10%);
|
|
218
|
+
|
|
219
|
+
--field-hover: color-mix(
|
|
220
|
+
in oklab,
|
|
221
|
+
var(--field-background, var(--default)) 90%,
|
|
222
|
+
var(--field-foreground, var(--foreground)) 2%
|
|
223
|
+
);
|
|
224
|
+
--field-focus: var(--field-background, var(--default));
|
|
225
|
+
--field-border-hover: color-mix(
|
|
226
|
+
in oklab,
|
|
227
|
+
var(--field-border, var(--border)) 88%,
|
|
228
|
+
var(--field-foreground, var(--foreground)) 10%
|
|
229
|
+
);
|
|
230
|
+
--field-border-focus: color-mix(
|
|
231
|
+
in oklab,
|
|
232
|
+
var(--field-border, var(--border)) 74%,
|
|
233
|
+
var(--field-foreground, var(--foreground)) 22%
|
|
234
|
+
);
|
|
235
|
+
|
|
236
|
+
--default-soft: color-mix(in oklab, var(--default) 50%, transparent);
|
|
237
|
+
--default-soft-foreground: var(--default-foreground);
|
|
238
|
+
--default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
|
|
239
|
+
|
|
240
|
+
--accent-soft: color-mix(in oklab, var(--accent) 12%, transparent);
|
|
241
|
+
--accent-soft-foreground: color-mix(in oklab, var(--accent) 80%, var(--foreground) 30%);
|
|
242
|
+
--accent-soft-hover: color-mix(in oklab, var(--accent) 16%, transparent);
|
|
243
|
+
|
|
244
|
+
--danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
|
|
245
|
+
--danger-soft-foreground: color-mix(in oklab, var(--danger) 80%, var(--foreground) 30%);
|
|
246
|
+
--danger-soft-hover: color-mix(in oklab, var(--danger) 20%, transparent);
|
|
247
|
+
|
|
248
|
+
--warning-soft: color-mix(in oklab, var(--warning) 12%, transparent);
|
|
249
|
+
--warning-soft-foreground: color-mix(in oklab, var(--warning) 80%, var(--foreground) 30%);
|
|
250
|
+
--warning-soft-hover: color-mix(in oklab, var(--warning) 16%, transparent);
|
|
251
|
+
|
|
252
|
+
--success-soft: color-mix(in oklab, var(--success) 12%, transparent);
|
|
253
|
+
--success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 30%);
|
|
254
|
+
--success-soft-hover: color-mix(in oklab, var(--success) 16%, transparent);
|
|
255
|
+
|
|
256
|
+
--separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
|
|
257
|
+
--separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
|
|
258
|
+
|
|
259
|
+
--border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
|
|
260
|
+
--border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
|
|
261
|
+
}
|
|
262
|
+
}
|
package/dist/themes/lavender.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="lavender"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.75rem;
|
|
23
24
|
--radius: 0.5rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0.003 305);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(65.32% 0.2335 31.88);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0.003 305);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(59.4% 0.1973 30.77);
|
package/dist/themes/mint.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="mint"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.75rem;
|
|
23
24
|
--radius: 0.5rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0.003 155);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(65.32% 0.2335 13.88);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0.003 155);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(59.4% 0.1973 12.77);
|
package/dist/themes/netflix.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="netflix"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.125rem;
|
|
23
24
|
--radius: 0.125rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0 27.99);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(0.4823 0.1938 27.64);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0 27.99);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(0.4964 0.1994 28.56);
|
package/dist/themes/rabbit.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="rabbit"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 1rem;
|
|
23
24
|
--radius: 0.5rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0.02 36.66);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(0.6291 0.2565 29.09);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0.02 36.66);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(0.6291 0.2565 29.09);
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
--color-field-foreground: var(--field-foreground, var(--foreground));
|
|
53
53
|
--color-field-placeholder: var(--field-placeholder, var(--muted));
|
|
54
54
|
--color-field-border: var(--field-border, var(--border));
|
|
55
|
-
--radius-field: var(--field-radius, calc(var(--radius) *
|
|
55
|
+
--radius-field: var(--field-radius, calc(var(--radius) * 0.75));
|
|
56
56
|
--border-width-field: var(--field-border-width, var(--border-width));
|
|
57
57
|
|
|
58
58
|
/* Color Tokens */
|
|
@@ -100,7 +100,13 @@
|
|
|
100
100
|
--color-border-secondary: var(--border-secondary);
|
|
101
101
|
--color-border-tertiary: var(--border-tertiary);
|
|
102
102
|
|
|
103
|
-
/* Radius and default sizes - defaults can change by just changing the --radius
|
|
103
|
+
/* Radius and default sizes - defaults can change by just changing the --radius.
|
|
104
|
+
*
|
|
105
|
+
* `inline` is what makes that work in a subtree: the value is substituted into the utility, so
|
|
106
|
+
* `rounded-3xl` compiles to `calc(var(--radius) * 3)` and resolves against the element wearing
|
|
107
|
+
* the class. A `data-theme` that sets its own `--radius` gets the whole scale for free, with
|
|
108
|
+
* nothing to re-declare - unlike the colour tokens, which are real properties on `:root` and do
|
|
109
|
+
* have to be re-emitted per theme. */
|
|
104
110
|
--radius-xs: calc(var(--radius) * 0.25); /* 0.125rem (2px) */
|
|
105
111
|
--radius-sm: calc(var(--radius) * 0.5); /* 0.25rem (4px) */
|
|
106
112
|
--radius-md: calc(var(--radius) * 0.75); /* 0.375rem (6px) */
|
|
@@ -110,6 +116,17 @@
|
|
|
110
116
|
--radius-3xl: calc(var(--radius) * 3); /* 1.5rem (24px) */
|
|
111
117
|
--radius-4xl: calc(var(--radius) * 4); /* 2rem (32px) */
|
|
112
118
|
|
|
119
|
+
/* The one radius every control and surface reads, so a theme can pair them with its fields
|
|
120
|
+
* instead. Unset falls through to the pill-ish 3x that every theme but `default` still wants.
|
|
121
|
+
* Kept off the `--radius-*` scale on purpose: overriding a scale step would leave `2xl`
|
|
122
|
+
* larger than `3xl`.
|
|
123
|
+
*
|
|
124
|
+
* This alias is for the utilities only - `inline` substitutes it into `rounded-component`, so
|
|
125
|
+
* the var() resolves at the element wearing the class. Raw CSS must say
|
|
126
|
+
* `var(--component-radius)` instead: read through this alias, the var() resolves here on
|
|
127
|
+
* `:root` and then inherits the root theme's value into every `data-theme` subtree. */
|
|
128
|
+
--radius-component: var(--component-radius, calc(var(--radius) * 3));
|
|
129
|
+
|
|
113
130
|
/* Transition Timing Functions */
|
|
114
131
|
--ease-smooth: ease; /* same as transition: ease; */
|
|
115
132
|
/* These custom curves are made by https://twitter.com/bdc */
|
package/dist/themes/sky.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="sky"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.75rem;
|
|
23
24
|
--radius: 0.5rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0.003 225);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(65.32% 0.2335 22.28);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0.003 225);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(59.4% 0.1973 21.17);
|
package/dist/themes/spotify.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="spotify"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.125rem;
|
|
23
24
|
--radius: 0.5rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0.004 148.67);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(0.5509 0.2166 25.29);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0.004 148.67);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(0.5931 0.2338 25.42);
|
package/dist/themes/uber.css
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
[data-theme="uber"] {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
--component-radius: calc(var(--radius) * 3);
|
|
22
23
|
--field-radius: 0.25rem;
|
|
23
24
|
--radius: 0.25rem;
|
|
24
25
|
|
|
@@ -81,6 +82,9 @@
|
|
|
81
82
|
var(--field-foreground, var(--foreground)) 2%
|
|
82
83
|
);
|
|
83
84
|
--field-placeholder: oklch(51.6% 0 0);
|
|
85
|
+
--field-shadow:
|
|
86
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
|
|
87
|
+
0 0 1px 0 rgba(0, 0, 0, 0.06);
|
|
84
88
|
|
|
85
89
|
/* Status Colors */
|
|
86
90
|
--danger: oklch(0.573 0.2249 21.97);
|
|
@@ -184,6 +188,7 @@
|
|
|
184
188
|
var(--field-foreground, var(--foreground)) 2%
|
|
185
189
|
);
|
|
186
190
|
--field-placeholder: oklch(70.5% 0 0);
|
|
191
|
+
--field-shadow: 0 0 0 0 transparent inset;
|
|
187
192
|
|
|
188
193
|
/* Status Colors */
|
|
189
194
|
--danger: oklch(0.7044 0.1872 23.19);
|
package/dist/utilities/index.css
CHANGED
|
@@ -151,3 +151,30 @@
|
|
|
151
151
|
scrollbar-gutter: auto;
|
|
152
152
|
-ms-overflow-style: none;
|
|
153
153
|
}
|
|
154
|
+
|
|
155
|
+
/* === Field metrics === */
|
|
156
|
+
/*
|
|
157
|
+
* One line of a field, at each size. The size scale is the control scale: 32px, 36px, 40px, the
|
|
158
|
+
* same three heights a button stands at, so a field and a button of the same size line up.
|
|
159
|
+
*
|
|
160
|
+
* The padding is what carries it rather than a height, because a field is content-driven - some
|
|
161
|
+
* shells grow (a group around a textarea, a multi-select trigger wrapping its chips) and a height
|
|
162
|
+
* would fight them. The shell states its own floor: `min-h-8` / `min-h-9` / `min-h-10` where it may
|
|
163
|
+
* grow, `h-8` / `h-9` / `h-10` where it may not.
|
|
164
|
+
*
|
|
165
|
+
* The padding also changes at `sm` where the type does. 16px type below that breakpoint is what
|
|
166
|
+
* stops mobile Safari zooming the page on focus, and 16px sets a 24px line where 14px sets a 20px
|
|
167
|
+
* one - so the padding gives back the 4px difference and the height comes out the same either way.
|
|
168
|
+
* `lg` keeps 16px throughout, as the large button does.
|
|
169
|
+
*/
|
|
170
|
+
@utility field-line-sm {
|
|
171
|
+
@apply py-1 text-base sm:py-1.5 sm:text-sm;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
@utility field-line-md {
|
|
175
|
+
@apply py-1.5 text-base sm:py-2 sm:text-sm;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@utility field-line-lg {
|
|
179
|
+
@apply py-2 text-base;
|
|
180
|
+
}
|