@ecopages/radiant-themes 0.3.1 → 0.3.3

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.
Files changed (50) hide show
  1. package/README.md +17 -1
  2. package/dist/compiled/themes/cloudflare/compact.css +19 -0
  3. package/dist/compiled/themes/cloudflare.css +19 -0
  4. package/dist/compiled/themes/github/compact.css +23 -2
  5. package/dist/compiled/themes/github.css +23 -2
  6. package/dist/compiled/themes/high-contrast/compact.css +28 -4
  7. package/dist/compiled/themes/high-contrast.css +28 -4
  8. package/dist/compiled/themes/macos/compact.css +28 -4
  9. package/dist/compiled/themes/macos-classic/compact.css +39 -4
  10. package/dist/compiled/themes/macos-classic.css +39 -4
  11. package/dist/compiled/themes/macos.css +28 -4
  12. package/dist/compiled/themes/material/compact.css +27 -4
  13. package/dist/compiled/themes/material.css +27 -4
  14. package/dist/compiled/themes/vercel/compact.css +44 -11
  15. package/dist/compiled/themes/vercel.css +44 -11
  16. package/dist/compiled/themes/vscode/compact.css +28 -4
  17. package/dist/compiled/themes/vscode.css +28 -4
  18. package/dist/compiled/themes/windows95/compact.css +42 -5
  19. package/dist/compiled/themes/windows95.css +42 -5
  20. package/dist/compiled/themes/zed/compact.css +1204 -0
  21. package/dist/compiled/themes/zed.css +1187 -0
  22. package/dist/foundation.css +2 -2
  23. package/dist/themes/zed/compact.css +2 -0
  24. package/dist/themes/zed.css +4 -0
  25. package/dist/tokens/colors/github.css +4 -2
  26. package/dist/tokens/colors/high-contrast.css +4 -2
  27. package/dist/tokens/colors/macos-classic.css +4 -2
  28. package/dist/tokens/colors/macos.css +6 -3
  29. package/dist/tokens/colors/material.css +4 -2
  30. package/dist/tokens/colors/vercel.css +4 -2
  31. package/dist/tokens/colors/vscode.css +4 -2
  32. package/dist/tokens/colors/windows95.css +4 -2
  33. package/dist/tokens/colors/zed.css +54 -0
  34. package/dist/tokens/components/high-contrast.css +1 -0
  35. package/dist/tokens/components/macos-classic.css +14 -1
  36. package/dist/tokens/components/macos.css +1 -0
  37. package/dist/tokens/components/material.css +0 -1
  38. package/dist/tokens/components/vercel.css +24 -7
  39. package/dist/tokens/components/vscode.css +5 -2
  40. package/dist/tokens/components/windows95.css +16 -1
  41. package/dist/tokens/components/zed.css +440 -0
  42. package/dist/tokens/roles/high-contrast.css +4 -2
  43. package/dist/tokens/roles/macos-classic.css +4 -2
  44. package/dist/tokens/roles/macos.css +4 -2
  45. package/dist/tokens/roles/material.css +4 -2
  46. package/dist/tokens/roles/vercel.css +4 -2
  47. package/dist/tokens/roles/vscode.css +4 -2
  48. package/dist/tokens/roles/windows95.css +4 -2
  49. package/dist/tokens/roles/zed.css +153 -0
  50. package/package.json +15 -3
package/README.md CHANGED
@@ -19,13 +19,26 @@ Import a complete theme and the component stylesheet:
19
19
  @import '@ecopages/radiant-ui/styles.css';
20
20
  ```
21
21
 
22
- Themes include GitHub, Cloudflare, VS Code, Vercel, Material Design, High Contrast, Windows 95, Mac OS Classic, and macOS. Each
22
+ Themes include GitHub, Cloudflare, VS Code, Vercel, Material Design, High Contrast, Windows 95, Mac OS Classic, macOS, and Zed. Each
23
23
  owns its shape, typography, spacing, semantic colors, and any component-specific styling. Theme source remains
24
24
  composable internally, while the public API stays at one import per complete theme.
25
25
 
26
26
  Theme entries define font-family stacks but do not bundle font files. An app can load properly licensed font files
27
27
  separately and override `--font-sans`, `--font-heading`, or `--font-mono` after the theme import.
28
28
 
29
+ ### Fonts
30
+
31
+ Themes that name a web font expect the app to load it; without it the stack falls back to the system font.
32
+
33
+ | Theme | Font | Install |
34
+ | -------- | ---------------------------- | -------------------------------------------------------------- |
35
+ | Zed | IBM Plex Sans, IBM Plex Mono | `pnpm add @fontsource/ibm-plex-sans @fontsource/ibm-plex-mono` |
36
+ | Zed | Lilex (optional, code) | `pnpm add @fontsource/lilex` |
37
+ | Vercel | Geist | `pnpm add @fontsource-variable/geist` |
38
+ | Material | Roboto | `pnpm add @fontsource/roboto` |
39
+
40
+ Import the Fontsource CSS once in the app, for example `import '@fontsource/ibm-plex-sans/400.css';`.
41
+
29
42
  Compact variants have their own export, for example:
30
43
 
31
44
  ```css
@@ -82,6 +95,9 @@ GitHub maps Primer's functional roles: green is limited to the primary button, t
82
95
  selected, checked, or current states, the selected tab uses Primer's coral underline, and secondary actions use
83
96
  Primer's grey default button.
84
97
 
98
+ The Zed theme follows One Light and One Dark: flat panels, hairline borders, 4px controls, 6px popovers, 13px control
99
+ text, and translucent accent fills for hover and selection.
100
+
85
101
  The Vercel theme uses Background 2 for the light canvas and Background 1 for primary surfaces. Its component colors
86
102
  drive hover and active fills, Colors 4–6 drive default, hover, and active borders, and blue stays focused on links and
87
103
  keyboard focus. Control boundaries are strengthened for visibility. VS Code follows Light Modern and Dark Modern: 26px
@@ -64,6 +64,18 @@
64
64
  --duration-slow: 300ms;
65
65
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
66
66
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
67
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
68
+ --popup-scale-from: 0.96;
69
+ --popup-shift: 4px;
70
+ --popup-enter-duration: var(--duration-fast);
71
+ --popup-exit-duration: 100ms;
72
+ --tooltip-duration: 120ms;
73
+ --hover-card-enter-duration: 180ms;
74
+ --dialog-enter-duration: var(--duration-normal);
75
+ --dialog-exit-duration: 120ms;
76
+ --backdrop-duration: var(--duration-fast);
77
+ --check-duration: min(120ms, var(--duration-fast));
78
+ --press-shift: 1px;
67
79
  --color-black: oklch(0% 0 0);
68
80
  --color-white: oklch(100% 0 0);
69
81
  --border-width-hairline: 1px;
@@ -198,6 +210,13 @@
198
210
  --duration-fast: 0ms;
199
211
  --duration-normal: 0ms;
200
212
  --duration-slow: 0ms;
213
+ --press-shift: 0px;
214
+ --popup-scale-from: 1;
215
+ --popup-shift: 0px;
216
+ --popup-exit-duration: 0ms;
217
+ --tooltip-duration: 0ms;
218
+ --hover-card-enter-duration: 0ms;
219
+ --dialog-exit-duration: 0ms;
201
220
  }
202
221
  *,
203
222
  *::before,
@@ -64,6 +64,18 @@
64
64
  --duration-slow: 300ms;
65
65
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
66
66
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
67
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
68
+ --popup-scale-from: 0.96;
69
+ --popup-shift: 4px;
70
+ --popup-enter-duration: var(--duration-fast);
71
+ --popup-exit-duration: 100ms;
72
+ --tooltip-duration: 120ms;
73
+ --hover-card-enter-duration: 180ms;
74
+ --dialog-enter-duration: var(--duration-normal);
75
+ --dialog-exit-duration: 120ms;
76
+ --backdrop-duration: var(--duration-fast);
77
+ --check-duration: min(120ms, var(--duration-fast));
78
+ --press-shift: 1px;
67
79
  --color-black: oklch(0% 0 0);
68
80
  --color-white: oklch(100% 0 0);
69
81
  --border-width-hairline: 1px;
@@ -198,6 +210,13 @@
198
210
  --duration-fast: 0ms;
199
211
  --duration-normal: 0ms;
200
212
  --duration-slow: 0ms;
213
+ --press-shift: 0px;
214
+ --popup-scale-from: 1;
215
+ --popup-shift: 0px;
216
+ --popup-exit-duration: 0ms;
217
+ --tooltip-duration: 0ms;
218
+ --hover-card-enter-duration: 0ms;
219
+ --dialog-exit-duration: 0ms;
201
220
  }
202
221
  *,
203
222
  *::before,
@@ -70,6 +70,18 @@
70
70
  --duration-slow: 300ms;
71
71
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
72
72
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
73
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
74
+ --popup-scale-from: 0.96;
75
+ --popup-shift: 4px;
76
+ --popup-enter-duration: var(--duration-fast);
77
+ --popup-exit-duration: 100ms;
78
+ --tooltip-duration: 120ms;
79
+ --hover-card-enter-duration: 180ms;
80
+ --dialog-enter-duration: var(--duration-normal);
81
+ --dialog-exit-duration: 120ms;
82
+ --backdrop-duration: var(--duration-fast);
83
+ --check-duration: min(120ms, var(--duration-fast));
84
+ --press-shift: 1px;
73
85
  --color-black: oklch(0% 0 0);
74
86
  --color-white: oklch(100% 0 0);
75
87
  --border-width-hairline: 1px;
@@ -204,6 +216,13 @@
204
216
  --duration-fast: 0ms;
205
217
  --duration-normal: 0ms;
206
218
  --duration-slow: 0ms;
219
+ --press-shift: 0px;
220
+ --popup-scale-from: 1;
221
+ --popup-shift: 0px;
222
+ --popup-exit-duration: 0ms;
223
+ --tooltip-duration: 0ms;
224
+ --hover-card-enter-duration: 0ms;
225
+ --dialog-exit-duration: 0ms;
207
226
  }
208
227
  *,
209
228
  *::before,
@@ -340,7 +359,8 @@
340
359
  :where(.dark) {
341
360
  color-scheme: dark;
342
361
  }
343
- :where(:root), :root[data-rui-theme='github'] {
362
+ :where(:root),
363
+ :root[data-rui-theme='github'] {
344
364
  --color-github-white: #ffffff;
345
365
  --color-github-canvas: #ffffff;
346
366
  --color-github-subtle: #f6f8fa;
@@ -370,7 +390,8 @@
370
390
  --color-github-track: #e6eaef;
371
391
  --color-github-knob-border: #818b98;
372
392
  }
373
- :where(.dark), :root.dark[data-rui-theme='github'] {
393
+ :where(.dark),
394
+ :root.dark[data-rui-theme='github'] {
374
395
  --color-github-white: #f0f6fc;
375
396
  --color-github-canvas: #0d1117;
376
397
  --color-github-subtle: #151b23;
@@ -70,6 +70,18 @@
70
70
  --duration-slow: 300ms;
71
71
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
72
72
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
73
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
74
+ --popup-scale-from: 0.96;
75
+ --popup-shift: 4px;
76
+ --popup-enter-duration: var(--duration-fast);
77
+ --popup-exit-duration: 100ms;
78
+ --tooltip-duration: 120ms;
79
+ --hover-card-enter-duration: 180ms;
80
+ --dialog-enter-duration: var(--duration-normal);
81
+ --dialog-exit-duration: 120ms;
82
+ --backdrop-duration: var(--duration-fast);
83
+ --check-duration: min(120ms, var(--duration-fast));
84
+ --press-shift: 1px;
73
85
  --color-black: oklch(0% 0 0);
74
86
  --color-white: oklch(100% 0 0);
75
87
  --border-width-hairline: 1px;
@@ -204,6 +216,13 @@
204
216
  --duration-fast: 0ms;
205
217
  --duration-normal: 0ms;
206
218
  --duration-slow: 0ms;
219
+ --press-shift: 0px;
220
+ --popup-scale-from: 1;
221
+ --popup-shift: 0px;
222
+ --popup-exit-duration: 0ms;
223
+ --tooltip-duration: 0ms;
224
+ --hover-card-enter-duration: 0ms;
225
+ --dialog-exit-duration: 0ms;
207
226
  }
208
227
  *,
209
228
  *::before,
@@ -340,7 +359,8 @@
340
359
  :where(.dark) {
341
360
  color-scheme: dark;
342
361
  }
343
- :where(:root), :root[data-rui-theme='github'] {
362
+ :where(:root),
363
+ :root[data-rui-theme='github'] {
344
364
  --color-github-white: #ffffff;
345
365
  --color-github-canvas: #ffffff;
346
366
  --color-github-subtle: #f6f8fa;
@@ -370,7 +390,8 @@
370
390
  --color-github-track: #e6eaef;
371
391
  --color-github-knob-border: #818b98;
372
392
  }
373
- :where(.dark), :root.dark[data-rui-theme='github'] {
393
+ :where(.dark),
394
+ :root.dark[data-rui-theme='github'] {
374
395
  --color-github-white: #f0f6fc;
375
396
  --color-github-canvas: #0d1117;
376
397
  --color-github-subtle: #151b23;
@@ -65,6 +65,18 @@
65
65
  --duration-slow: 300ms;
66
66
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
67
67
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
68
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
69
+ --popup-scale-from: 0.96;
70
+ --popup-shift: 4px;
71
+ --popup-enter-duration: var(--duration-fast);
72
+ --popup-exit-duration: 100ms;
73
+ --tooltip-duration: 120ms;
74
+ --hover-card-enter-duration: 180ms;
75
+ --dialog-enter-duration: var(--duration-normal);
76
+ --dialog-exit-duration: 120ms;
77
+ --backdrop-duration: var(--duration-fast);
78
+ --check-duration: min(120ms, var(--duration-fast));
79
+ --press-shift: 1px;
68
80
  --color-black: oklch(0% 0 0);
69
81
  --color-white: oklch(100% 0 0);
70
82
  --border-width-hairline: 1px;
@@ -199,6 +211,13 @@
199
211
  --duration-fast: 0ms;
200
212
  --duration-normal: 0ms;
201
213
  --duration-slow: 0ms;
214
+ --press-shift: 0px;
215
+ --popup-scale-from: 1;
216
+ --popup-shift: 0px;
217
+ --popup-exit-duration: 0ms;
218
+ --tooltip-duration: 0ms;
219
+ --hover-card-enter-duration: 0ms;
220
+ --dialog-exit-duration: 0ms;
202
221
  }
203
222
  *,
204
223
  *::before,
@@ -335,7 +354,8 @@
335
354
  :where(.dark) {
336
355
  color-scheme: dark;
337
356
  }
338
- :where(:root), :root[data-rui-theme='high-contrast'] {
357
+ :where(:root),
358
+ :root[data-rui-theme='high-contrast'] {
339
359
  --contrast-canvas: #ffffff;
340
360
  --contrast-surface: #ffffff;
341
361
  --contrast-container: #f2f2f2;
@@ -355,7 +375,8 @@
355
375
  --contrast-warning-container: #fff0b8;
356
376
  --contrast-focus: #0000a8;
357
377
  }
358
- :where(.dark), :root.dark[data-rui-theme='high-contrast'] {
378
+ :where(.dark),
379
+ :root.dark[data-rui-theme='high-contrast'] {
359
380
  --contrast-canvas: #000000;
360
381
  --contrast-surface: #000000;
361
382
  --contrast-container: #1a1a1a;
@@ -375,7 +396,8 @@
375
396
  --contrast-warning-container: #ffff00;
376
397
  --contrast-focus: #ffff00;
377
398
  }
378
- :where(:root), :root[data-rui-theme='high-contrast'] {
399
+ :where(:root),
400
+ :root[data-rui-theme='high-contrast'] {
379
401
  --gray-50: #ffffff;
380
402
  --gray-100: #ffffff;
381
403
  --gray-200: #f2f2f2;
@@ -455,7 +477,8 @@
455
477
  --background-code: #ffffff;
456
478
  --on-background-code: #000000;
457
479
  }
458
- :where(.dark), :root.dark[data-rui-theme='high-contrast'] {
480
+ :where(.dark),
481
+ :root.dark[data-rui-theme='high-contrast'] {
459
482
  --gray-50: #ffffff;
460
483
  --gray-100: #f2f2f2;
461
484
  --gray-200: #d9d9d9;
@@ -537,6 +560,7 @@
537
560
  }
538
561
  :root,
539
562
  :root[data-rui-theme='high-contrast'] {
563
+ --rui-knob-linecap: butt;
540
564
  --font-sans: ui-sans-serif, system-ui, sans-serif;
541
565
  --font-heading: var(--font-sans);
542
566
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
@@ -65,6 +65,18 @@
65
65
  --duration-slow: 300ms;
66
66
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
67
67
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
68
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
69
+ --popup-scale-from: 0.96;
70
+ --popup-shift: 4px;
71
+ --popup-enter-duration: var(--duration-fast);
72
+ --popup-exit-duration: 100ms;
73
+ --tooltip-duration: 120ms;
74
+ --hover-card-enter-duration: 180ms;
75
+ --dialog-enter-duration: var(--duration-normal);
76
+ --dialog-exit-duration: 120ms;
77
+ --backdrop-duration: var(--duration-fast);
78
+ --check-duration: min(120ms, var(--duration-fast));
79
+ --press-shift: 1px;
68
80
  --color-black: oklch(0% 0 0);
69
81
  --color-white: oklch(100% 0 0);
70
82
  --border-width-hairline: 1px;
@@ -199,6 +211,13 @@
199
211
  --duration-fast: 0ms;
200
212
  --duration-normal: 0ms;
201
213
  --duration-slow: 0ms;
214
+ --press-shift: 0px;
215
+ --popup-scale-from: 1;
216
+ --popup-shift: 0px;
217
+ --popup-exit-duration: 0ms;
218
+ --tooltip-duration: 0ms;
219
+ --hover-card-enter-duration: 0ms;
220
+ --dialog-exit-duration: 0ms;
202
221
  }
203
222
  *,
204
223
  *::before,
@@ -335,7 +354,8 @@
335
354
  :where(.dark) {
336
355
  color-scheme: dark;
337
356
  }
338
- :where(:root), :root[data-rui-theme='high-contrast'] {
357
+ :where(:root),
358
+ :root[data-rui-theme='high-contrast'] {
339
359
  --contrast-canvas: #ffffff;
340
360
  --contrast-surface: #ffffff;
341
361
  --contrast-container: #f2f2f2;
@@ -355,7 +375,8 @@
355
375
  --contrast-warning-container: #fff0b8;
356
376
  --contrast-focus: #0000a8;
357
377
  }
358
- :where(.dark), :root.dark[data-rui-theme='high-contrast'] {
378
+ :where(.dark),
379
+ :root.dark[data-rui-theme='high-contrast'] {
359
380
  --contrast-canvas: #000000;
360
381
  --contrast-surface: #000000;
361
382
  --contrast-container: #1a1a1a;
@@ -375,7 +396,8 @@
375
396
  --contrast-warning-container: #ffff00;
376
397
  --contrast-focus: #ffff00;
377
398
  }
378
- :where(:root), :root[data-rui-theme='high-contrast'] {
399
+ :where(:root),
400
+ :root[data-rui-theme='high-contrast'] {
379
401
  --gray-50: #ffffff;
380
402
  --gray-100: #ffffff;
381
403
  --gray-200: #f2f2f2;
@@ -455,7 +477,8 @@
455
477
  --background-code: #ffffff;
456
478
  --on-background-code: #000000;
457
479
  }
458
- :where(.dark), :root.dark[data-rui-theme='high-contrast'] {
480
+ :where(.dark),
481
+ :root.dark[data-rui-theme='high-contrast'] {
459
482
  --gray-50: #ffffff;
460
483
  --gray-100: #f2f2f2;
461
484
  --gray-200: #d9d9d9;
@@ -537,6 +560,7 @@
537
560
  }
538
561
  :root,
539
562
  :root[data-rui-theme='high-contrast'] {
563
+ --rui-knob-linecap: butt;
540
564
  --font-sans: ui-sans-serif, system-ui, sans-serif;
541
565
  --font-heading: var(--font-sans);
542
566
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
@@ -70,6 +70,18 @@
70
70
  --duration-slow: 300ms;
71
71
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
72
72
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
73
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
74
+ --popup-scale-from: 0.96;
75
+ --popup-shift: 4px;
76
+ --popup-enter-duration: var(--duration-fast);
77
+ --popup-exit-duration: 100ms;
78
+ --tooltip-duration: 120ms;
79
+ --hover-card-enter-duration: 180ms;
80
+ --dialog-enter-duration: var(--duration-normal);
81
+ --dialog-exit-duration: 120ms;
82
+ --backdrop-duration: var(--duration-fast);
83
+ --check-duration: min(120ms, var(--duration-fast));
84
+ --press-shift: 1px;
73
85
  --color-black: oklch(0% 0 0);
74
86
  --color-white: oklch(100% 0 0);
75
87
  --border-width-hairline: 1px;
@@ -204,6 +216,13 @@
204
216
  --duration-fast: 0ms;
205
217
  --duration-normal: 0ms;
206
218
  --duration-slow: 0ms;
219
+ --press-shift: 0px;
220
+ --popup-scale-from: 1;
221
+ --popup-shift: 0px;
222
+ --popup-exit-duration: 0ms;
223
+ --tooltip-duration: 0ms;
224
+ --hover-card-enter-duration: 0ms;
225
+ --dialog-exit-duration: 0ms;
207
226
  }
208
227
  *,
209
228
  *::before,
@@ -340,7 +359,8 @@
340
359
  :where(.dark) {
341
360
  color-scheme: dark;
342
361
  }
343
- :where(:root), :root[data-rui-theme='macos'] {
362
+ :where(:root),
363
+ :root[data-rui-theme='macos'] {
344
364
  --macos-canvas: #ececec;
345
365
  --macos-surface: #ffffff;
346
366
  --macos-subtle: #e3e3e3;
@@ -369,7 +389,8 @@
369
389
  --macos-control-shadow: 0 0 0 0.5px rgb(0 0 0 / 0.16), 0 0.5px 1px rgb(0 0 0 / 0.22), 0 1px 1.5px -0.5px rgb(0 0 0 / 0.1);
370
390
  --macos-menu-shadow: 0 0 0 0.5px var(--macos-elevated-edge), 0 10px 30px rgb(0 0 0 / 0.2), 0 2px 6px rgb(0 0 0 / 0.1);
371
391
  }
372
- :where(.dark), :root.dark[data-rui-theme='macos'] {
392
+ :where(.dark),
393
+ :root.dark[data-rui-theme='macos'] {
373
394
  --macos-canvas: #323232;
374
395
  --macos-surface: #1e1e1e;
375
396
  --macos-subtle: #3d3d3d;
@@ -399,7 +420,8 @@
399
420
  --macos-menu-shadow: inset 0 0 0 0.5px var(--macos-elevated-highlight), 0 0 0 0.5px var(--macos-elevated-edge),
400
421
  0 10px 30px rgb(0 0 0 / 0.45);
401
422
  }
402
- :where(:root), :root[data-rui-theme='macos'] {
423
+ :where(:root),
424
+ :root[data-rui-theme='macos'] {
403
425
  --gray-50: #ffffff;
404
426
  --gray-100: #f6f6f6;
405
427
  --gray-200: #ececec;
@@ -479,7 +501,8 @@
479
501
  --background-code: #ffffff;
480
502
  --on-background-code: var(--macos-text);
481
503
  }
482
- :where(.dark), :root.dark[data-rui-theme='macos'] {
504
+ :where(.dark),
505
+ :root.dark[data-rui-theme='macos'] {
483
506
  --gray-50: #ffffff;
484
507
  --gray-100: #dfdfdf;
485
508
  --gray-200: #b9b9be;
@@ -561,6 +584,7 @@
561
584
  }
562
585
  :root,
563
586
  :root[data-rui-theme='macos'] {
587
+ --press-shift: 0px;
564
588
  --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', Arial, sans-serif;
565
589
  --font-heading: system-ui, -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;
566
590
  --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, monospace;
@@ -67,6 +67,18 @@
67
67
  --duration-slow: 300ms;
68
68
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
69
69
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
70
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
71
+ --popup-scale-from: 0.96;
72
+ --popup-shift: 4px;
73
+ --popup-enter-duration: var(--duration-fast);
74
+ --popup-exit-duration: 100ms;
75
+ --tooltip-duration: 120ms;
76
+ --hover-card-enter-duration: 180ms;
77
+ --dialog-enter-duration: var(--duration-normal);
78
+ --dialog-exit-duration: 120ms;
79
+ --backdrop-duration: var(--duration-fast);
80
+ --check-duration: min(120ms, var(--duration-fast));
81
+ --press-shift: 1px;
70
82
  --color-black: oklch(0% 0 0);
71
83
  --color-white: oklch(100% 0 0);
72
84
  --border-width-hairline: 1px;
@@ -201,6 +213,13 @@
201
213
  --duration-fast: 0ms;
202
214
  --duration-normal: 0ms;
203
215
  --duration-slow: 0ms;
216
+ --press-shift: 0px;
217
+ --popup-scale-from: 1;
218
+ --popup-shift: 0px;
219
+ --popup-exit-duration: 0ms;
220
+ --tooltip-duration: 0ms;
221
+ --hover-card-enter-duration: 0ms;
222
+ --dialog-exit-duration: 0ms;
204
223
  }
205
224
  *,
206
225
  *::before,
@@ -337,7 +356,8 @@
337
356
  :where(.dark) {
338
357
  color-scheme: dark;
339
358
  }
340
- :where(:root), :root[data-rui-theme='macos-classic'] {
359
+ :where(:root),
360
+ :root[data-rui-theme='macos-classic'] {
341
361
  --macos-classic-canvas: #dddddd;
342
362
  --macos-classic-surface: #dddddd;
343
363
  --macos-classic-container: #cccccc;
@@ -361,7 +381,8 @@
361
381
  --macos-classic-red: #8c1c1c;
362
382
  --macos-classic-amber: #644100;
363
383
  }
364
- :where(.dark), :root.dark[data-rui-theme='macos-classic'] {
384
+ :where(.dark),
385
+ :root.dark[data-rui-theme='macos-classic'] {
365
386
  --macos-classic-canvas: #262626;
366
387
  --macos-classic-surface: #2e2e2e;
367
388
  --macos-classic-container: #3a3a3a;
@@ -385,7 +406,8 @@
385
406
  --macos-classic-red: #ffaaa0;
386
407
  --macos-classic-amber: #ffd27a;
387
408
  }
388
- :where(:root), :root[data-rui-theme='macos-classic'] {
409
+ :where(:root),
410
+ :root[data-rui-theme='macos-classic'] {
389
411
  --gray-50: #ffffff;
390
412
  --gray-100: #eeeeee;
391
413
  --gray-200: #dddddd;
@@ -477,7 +499,8 @@
477
499
  --background-code: #ffffff;
478
500
  --on-background-code: #000000;
479
501
  }
480
- :where(.dark), :root.dark[data-rui-theme='macos-classic'] {
502
+ :where(.dark),
503
+ :root.dark[data-rui-theme='macos-classic'] {
481
504
  --gray-50: #ffffff;
482
505
  --gray-100: #eeeeee;
483
506
  --gray-200: #d0d0d0;
@@ -546,6 +569,18 @@
546
569
  }
547
570
  :root,
548
571
  :root[data-rui-theme='macos-classic'] {
572
+ --rui-knob-linecap: butt;
573
+ --press-shift: 0px;
574
+ --popup-enter-duration: 0ms;
575
+ --popup-exit-duration: 0ms;
576
+ --popup-scale-from: 1;
577
+ --popup-shift: 0px;
578
+ --tooltip-duration: 0ms;
579
+ --hover-card-enter-duration: 0ms;
580
+ --dialog-enter-duration: 0ms;
581
+ --dialog-exit-duration: 0ms;
582
+ --backdrop-duration: 0ms;
583
+ --check-duration: 0ms;
549
584
  --font-sans: Charcoal, Geneva, 'Lucida Grande', 'Helvetica Neue', Arial, sans-serif;
550
585
  --font-heading: Charcoal, Geneva, 'Lucida Grande', 'Helvetica Neue', Arial, sans-serif;
551
586
  --font-mono: Monaco, Menlo, 'Courier New', monospace;
@@ -67,6 +67,18 @@
67
67
  --duration-slow: 300ms;
68
68
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
69
69
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
70
+ --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
71
+ --popup-scale-from: 0.96;
72
+ --popup-shift: 4px;
73
+ --popup-enter-duration: var(--duration-fast);
74
+ --popup-exit-duration: 100ms;
75
+ --tooltip-duration: 120ms;
76
+ --hover-card-enter-duration: 180ms;
77
+ --dialog-enter-duration: var(--duration-normal);
78
+ --dialog-exit-duration: 120ms;
79
+ --backdrop-duration: var(--duration-fast);
80
+ --check-duration: min(120ms, var(--duration-fast));
81
+ --press-shift: 1px;
70
82
  --color-black: oklch(0% 0 0);
71
83
  --color-white: oklch(100% 0 0);
72
84
  --border-width-hairline: 1px;
@@ -201,6 +213,13 @@
201
213
  --duration-fast: 0ms;
202
214
  --duration-normal: 0ms;
203
215
  --duration-slow: 0ms;
216
+ --press-shift: 0px;
217
+ --popup-scale-from: 1;
218
+ --popup-shift: 0px;
219
+ --popup-exit-duration: 0ms;
220
+ --tooltip-duration: 0ms;
221
+ --hover-card-enter-duration: 0ms;
222
+ --dialog-exit-duration: 0ms;
204
223
  }
205
224
  *,
206
225
  *::before,
@@ -337,7 +356,8 @@
337
356
  :where(.dark) {
338
357
  color-scheme: dark;
339
358
  }
340
- :where(:root), :root[data-rui-theme='macos-classic'] {
359
+ :where(:root),
360
+ :root[data-rui-theme='macos-classic'] {
341
361
  --macos-classic-canvas: #dddddd;
342
362
  --macos-classic-surface: #dddddd;
343
363
  --macos-classic-container: #cccccc;
@@ -361,7 +381,8 @@
361
381
  --macos-classic-red: #8c1c1c;
362
382
  --macos-classic-amber: #644100;
363
383
  }
364
- :where(.dark), :root.dark[data-rui-theme='macos-classic'] {
384
+ :where(.dark),
385
+ :root.dark[data-rui-theme='macos-classic'] {
365
386
  --macos-classic-canvas: #262626;
366
387
  --macos-classic-surface: #2e2e2e;
367
388
  --macos-classic-container: #3a3a3a;
@@ -385,7 +406,8 @@
385
406
  --macos-classic-red: #ffaaa0;
386
407
  --macos-classic-amber: #ffd27a;
387
408
  }
388
- :where(:root), :root[data-rui-theme='macos-classic'] {
409
+ :where(:root),
410
+ :root[data-rui-theme='macos-classic'] {
389
411
  --gray-50: #ffffff;
390
412
  --gray-100: #eeeeee;
391
413
  --gray-200: #dddddd;
@@ -477,7 +499,8 @@
477
499
  --background-code: #ffffff;
478
500
  --on-background-code: #000000;
479
501
  }
480
- :where(.dark), :root.dark[data-rui-theme='macos-classic'] {
502
+ :where(.dark),
503
+ :root.dark[data-rui-theme='macos-classic'] {
481
504
  --gray-50: #ffffff;
482
505
  --gray-100: #eeeeee;
483
506
  --gray-200: #d0d0d0;
@@ -546,6 +569,18 @@
546
569
  }
547
570
  :root,
548
571
  :root[data-rui-theme='macos-classic'] {
572
+ --rui-knob-linecap: butt;
573
+ --press-shift: 0px;
574
+ --popup-enter-duration: 0ms;
575
+ --popup-exit-duration: 0ms;
576
+ --popup-scale-from: 1;
577
+ --popup-shift: 0px;
578
+ --tooltip-duration: 0ms;
579
+ --hover-card-enter-duration: 0ms;
580
+ --dialog-enter-duration: 0ms;
581
+ --dialog-exit-duration: 0ms;
582
+ --backdrop-duration: 0ms;
583
+ --check-duration: 0ms;
549
584
  --font-sans: Charcoal, Geneva, 'Lucida Grande', 'Helvetica Neue', Arial, sans-serif;
550
585
  --font-heading: Charcoal, Geneva, 'Lucida Grande', 'Helvetica Neue', Arial, sans-serif;
551
586
  --font-mono: Monaco, Menlo, 'Courier New', monospace;