@pantoia/ui 0.2.0 → 0.3.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.
Files changed (46) hide show
  1. package/accordion/AGENTS.md +1 -1
  2. package/accordion/index.tsx +10 -8
  3. package/alert-dialog/index.tsx +3 -3
  4. package/badge/index.tsx +2 -2
  5. package/button/index.tsx +4 -4
  6. package/callout/AGENTS.md +0 -4
  7. package/callout/index.tsx +29 -8
  8. package/checkbox/AGENTS.md +1 -1
  9. package/checkbox/index.tsx +4 -3
  10. package/combobox/AGENTS.md +1 -1
  11. package/combobox/index.tsx +24 -20
  12. package/command-palette/AGENTS.md +0 -4
  13. package/command-palette/index.tsx +4 -2
  14. package/dialog/index.tsx +3 -3
  15. package/dist/index.js +153 -25
  16. package/drawer/index.tsx +3 -3
  17. package/dropdown-menu/AGENTS.md +1 -1
  18. package/dropdown-menu/index.tsx +10 -7
  19. package/field/AGENTS.md +0 -4
  20. package/field/index.tsx +16 -8
  21. package/input/index.tsx +6 -6
  22. package/kbd/index.tsx +1 -1
  23. package/label/index.tsx +1 -1
  24. package/number-field/AGENTS.md +0 -4
  25. package/number-field/index.tsx +14 -10
  26. package/package.json +11 -10
  27. package/palette.css +114 -0
  28. package/popover/index.tsx +2 -2
  29. package/radio-group/index.tsx +1 -1
  30. package/registry.json +6 -20
  31. package/select/AGENTS.md +1 -1
  32. package/select/index.tsx +26 -19
  33. package/switch/index.tsx +1 -1
  34. package/table/index.tsx +4 -4
  35. package/tabs/AGENTS.md +1 -0
  36. package/tabs/index.module.css +3 -1
  37. package/tabs/index.tsx +9 -6
  38. package/tailwind.css +3 -0
  39. package/textarea/index.tsx +6 -6
  40. package/toast/index.tsx +5 -5
  41. package/toggle/index.tsx +4 -4
  42. package/{styles.css → tokens.css} +76 -303
  43. package/tooltip/index.tsx +2 -2
  44. package/tv.ts +0 -1
  45. package/utilities.css +119 -0
  46. package/press.css +0 -37
@@ -1,226 +1,8 @@
1
- @import "pretendard/dist/web/variable/pretendardvariable-dynamic-subset.css";
2
- @import "./press.css";
3
-
4
- @custom-variant dark (&:where(.dark, .dark *):not(:where(.light, .light *)));
5
-
6
- @custom-variant current (&[aria-current="page"]);
7
-
8
- @custom-variant invalid (&[aria-invalid="true"]);
9
-
10
- @custom-variant invalid-within (&:has([aria-invalid="true"]));
11
-
12
- @custom-variant in-invalid (&:where([aria-invalid="true"] *));
13
-
14
- @custom-variant described (&:has([data-description]));
15
-
16
- @custom-variant checked (&:where([data-state="checked"], [data-state="indeterminate"]));
17
- @custom-variant open (&[data-state="open"]);
18
- @custom-variant closed (&[data-state="closed"]);
19
- @custom-variant on (&[data-state="on"]);
20
- @custom-variant selected (&[data-selected]:not([data-selected="false"]));
21
- @custom-variant unset (&[data-placeholder]);
22
-
23
- @custom-variant menu-gutter (.menu:has(.menu-lead) &:not(:has(.menu-lead)));
24
-
25
- :root, .light {
26
- --pds-gray-50:#f9fafb; --pds-gray-100:#f2f4f6; --pds-gray-200:#e5e8eb; --pds-gray-300:#d1d6db;
27
- --pds-gray-400:#b0b8c1; --pds-gray-500:#8b95a1; --pds-gray-600:#6b7684; --pds-gray-700:#4e5968;
28
- --pds-gray-800:#333d4b; --pds-gray-900:#191f28;
29
-
30
- --pds-brand-50:#f5f1fd; --pds-brand-100:#e4d6ff; --pds-brand-200:#ceb0ff; --pds-brand-300:#bb8ffa;
31
- --pds-brand-400:#aa74f2; --pds-brand-500:#9c63e4; --pds-brand-600:#8750c9; --pds-brand-700:#7543b0;
32
- --pds-brand-800:#633997; --pds-brand-900:#54317f;
33
-
34
- --pds-blue-50:#e8f3ff; --pds-blue-100:#c9e2ff; --pds-blue-200:#90c2ff; --pds-blue-300:#64a8ff;
35
- --pds-blue-400:#4593fc; --pds-blue-500:#3182f6; --pds-blue-600:#2272eb; --pds-blue-700:#1b64da;
36
- --pds-blue-800:#1957c2; --pds-blue-900:#194aa6;
37
-
38
- --pds-green-50:#f0faf6; --pds-green-100:#aeefd5; --pds-green-200:#76e4b8; --pds-green-300:#3fd599;
39
- --pds-green-400:#15c47e; --pds-green-500:#03b26c; --pds-green-600:#02a262; --pds-green-700:#029359;
40
- --pds-green-800:#028450; --pds-green-900:#027648;
41
-
42
- --pds-orange-50:#fff3e0; --pds-orange-100:#ffe0b0; --pds-orange-200:#ffcd80; --pds-orange-300:#ffbd51;
43
- --pds-orange-400:#ffa927; --pds-orange-500:#fe9800; --pds-orange-600:#fb8800; --pds-orange-700:#f57800;
44
- --pds-orange-800:#ed6700; --pds-orange-900:#e45600;
45
-
46
- --pds-red-50:#ffeeee; --pds-red-100:#ffd4d6; --pds-red-200:#feafb4; --pds-red-300:#fb8890;
47
- --pds-red-400:#f66570; --pds-red-500:#f04452; --pds-red-600:#e42939; --pds-red-700:#d22030;
48
- --pds-red-800:#bc1b2a; --pds-red-900:#a51926;
49
- }
50
-
51
- .dark {
52
- --pds-gray-50:#202027; --pds-gray-100:#2c2c35; --pds-gray-200:#3c3c47; --pds-gray-300:#4d4d59;
53
- --pds-gray-400:#62626d; --pds-gray-500:#7e7e87; --pds-gray-600:#9e9ea4; --pds-gray-700:#c3c3c6;
54
- --pds-gray-800:#e4e4e5; --pds-gray-900:#ffffff;
55
-
56
- --pds-brand-50:#362949; --pds-brand-100:#462e66; --pds-brand-200:#583682; --pds-brand-300:#6b3fa0;
57
- --pds-brand-400:#8451c4; --pds-brand-500:#9c63e4; --pds-brand-600:#ad75f7; --pds-brand-700:#c094ff;
58
- --pds-brand-800:#d6baff; --pds-brand-900:#eadeff;
59
-
60
- --pds-blue-50:#202c4d; --pds-blue-100:#23386a; --pds-blue-200:#25478c; --pds-blue-300:#265ab3;
61
- --pds-blue-400:#2970d9; --pds-blue-500:#3485fa; --pds-blue-600:#449bff; --pds-blue-700:#61b0ff;
62
- --pds-blue-800:#8fcdff; --pds-blue-900:#c8e7ff;
63
-
64
- --pds-green-50:#153729; --pds-green-100:#135338; --pds-green-200:#136d47; --pds-green-300:#138a59;
65
- --pds-green-400:#13a065; --pds-green-500:#16bb76; --pds-green-600:#26cf88; --pds-green-700:#4ee4a6;
66
- --pds-green-800:#82f6c5; --pds-green-900:#ccffea;
67
-
68
- --pds-orange-50:#3d2500; --pds-orange-100:#563200; --pds-orange-200:#804600; --pds-orange-300:#a85f00;
69
- --pds-orange-400:#cf7200; --pds-orange-500:#f18600; --pds-orange-600:#fd9528; --pds-orange-700:#ffa861;
70
- --pds-orange-800:#ffc39e; --pds-orange-900:#ffe4d6;
71
-
72
- --pds-red-50:#3c2020; --pds-red-100:#562025; --pds-red-200:#7a242d; --pds-red-300:#9e2733;
73
- --pds-red-400:#ca2f3d; --pds-red-500:#f04251; --pds-red-600:#fa616d; --pds-red-700:#fe818b;
74
- --pds-red-800:#ffa8ad; --pds-red-900:#ffd1d3;
75
- }
76
-
77
- @theme inline {
78
- --color-pds-gray-50: var(--pds-gray-50);
79
- --color-pds-gray-100: var(--pds-gray-100);
80
- --color-pds-gray-200: var(--pds-gray-200);
81
- --color-pds-gray-300: var(--pds-gray-300);
82
- --color-pds-gray-400: var(--pds-gray-400);
83
- --color-pds-gray-500: var(--pds-gray-500);
84
- --color-pds-gray-600: var(--pds-gray-600);
85
- --color-pds-gray-700: var(--pds-gray-700);
86
- --color-pds-gray-800: var(--pds-gray-800);
87
- --color-pds-gray-900: var(--pds-gray-900);
88
- --color-pds-brand-50: var(--pds-brand-50);
89
- --color-pds-brand-100: var(--pds-brand-100);
90
- --color-pds-brand-200: var(--pds-brand-200);
91
- --color-pds-brand-300: var(--pds-brand-300);
92
- --color-pds-brand-400: var(--pds-brand-400);
93
- --color-pds-brand-500: var(--pds-brand-500);
94
- --color-pds-brand-600: var(--pds-brand-600);
95
- --color-pds-brand-700: var(--pds-brand-700);
96
- --color-pds-brand-800: var(--pds-brand-800);
97
- --color-pds-brand-900: var(--pds-brand-900);
98
- --color-pds-blue-50: var(--pds-blue-50);
99
- --color-pds-blue-100: var(--pds-blue-100);
100
- --color-pds-blue-200: var(--pds-blue-200);
101
- --color-pds-blue-300: var(--pds-blue-300);
102
- --color-pds-blue-400: var(--pds-blue-400);
103
- --color-pds-blue-500: var(--pds-blue-500);
104
- --color-pds-blue-600: var(--pds-blue-600);
105
- --color-pds-blue-700: var(--pds-blue-700);
106
- --color-pds-blue-800: var(--pds-blue-800);
107
- --color-pds-blue-900: var(--pds-blue-900);
108
- --color-pds-green-50: var(--pds-green-50);
109
- --color-pds-green-100: var(--pds-green-100);
110
- --color-pds-green-200: var(--pds-green-200);
111
- --color-pds-green-300: var(--pds-green-300);
112
- --color-pds-green-400: var(--pds-green-400);
113
- --color-pds-green-500: var(--pds-green-500);
114
- --color-pds-green-600: var(--pds-green-600);
115
- --color-pds-green-700: var(--pds-green-700);
116
- --color-pds-green-800: var(--pds-green-800);
117
- --color-pds-green-900: var(--pds-green-900);
118
- --color-pds-orange-50: var(--pds-orange-50);
119
- --color-pds-orange-100: var(--pds-orange-100);
120
- --color-pds-orange-200: var(--pds-orange-200);
121
- --color-pds-orange-300: var(--pds-orange-300);
122
- --color-pds-orange-400: var(--pds-orange-400);
123
- --color-pds-orange-500: var(--pds-orange-500);
124
- --color-pds-orange-600: var(--pds-orange-600);
125
- --color-pds-orange-700: var(--pds-orange-700);
126
- --color-pds-orange-800: var(--pds-orange-800);
127
- --color-pds-orange-900: var(--pds-orange-900);
128
- --color-pds-red-50: var(--pds-red-50);
129
- --color-pds-red-100: var(--pds-red-100);
130
- --color-pds-red-200: var(--pds-red-200);
131
- --color-pds-red-300: var(--pds-red-300);
132
- --color-pds-red-400: var(--pds-red-400);
133
- --color-pds-red-500: var(--pds-red-500);
134
- --color-pds-red-600: var(--pds-red-600);
135
- --color-pds-red-700: var(--pds-red-700);
136
- --color-pds-red-800: var(--pds-red-800);
137
- --color-pds-red-900: var(--pds-red-900);
138
- }
139
-
140
- @theme {
141
- --color-*: initial;
142
- --text-*: initial;
143
- --leading-*: initial;
144
- --font-weight-*: initial;
145
- }
146
-
147
- @theme {
148
- --font-weight-normal: 400;
149
- --font-weight-medium: 500;
150
- --font-weight-bold: 700;
151
-
152
- --font-sans: "Pretendard Variable", "Pretendard", -apple-system, system-ui, sans-serif;
153
- --font-mono: "JetBrains Mono", "Pretendard Variable", "Pretendard", ui-monospace, monospace;
154
-
155
- --text-display: 28px; --text-display--line-height: 38px; --text-display--font-weight: 700;
156
- --text-title: 24px; --text-title--line-height: 32px; --text-title--font-weight: 700;
157
- --text-section: 20px; --text-section--line-height: 27px; --text-section--font-weight: 700;
158
- --text-subsection: 16px; --text-subsection--line-height: 22px; --text-subsection--font-weight: 700;
159
- --text-label: 14px; --text-label--line-height: 19px; --text-label--font-weight: 500;
160
- --text-caption: 13px; --text-caption--line-height: 18px; --text-caption--font-weight: 400;
161
- --text-micro: 11px; --text-micro--line-height: 15px; --text-micro--font-weight: 500;
162
-
163
- --text-t10: 10px; --text-t10--line-height: 14px; --text-t10--font-weight: 400;
164
- --text-t11: 11px; --text-t11--line-height: 15px; --text-t11--font-weight: 400;
165
- --text-t12: 12px; --text-t12--line-height: 16px; --text-t12--font-weight: 400;
166
- --text-t13: 13px; --text-t13--line-height: 18px; --text-t13--font-weight: 400;
167
- --text-t14: 14px; --text-t14--line-height: 19px; --text-t14--font-weight: 400;
168
- --text-t16: 16px; --text-t16--line-height: 22px; --text-t16--font-weight: 400;
169
- --text-t18: 18px; --text-t18--line-height: 24px; --text-t18--font-weight: 400;
170
- --text-t20: 20px; --text-t20--line-height: 27px; --text-t20--font-weight: 400;
171
- --text-t24: 24px; --text-t24--line-height: 32px; --text-t24--font-weight: 400;
172
- --text-t28: 28px; --text-t28--line-height: 38px; --text-t28--font-weight: 400;
173
- --text-t32: 32px; --text-t32--line-height: 43px; --text-t32--font-weight: 400;
174
- --text-t40: 40px; --text-t40--line-height: 54px; --text-t40--font-weight: 400;
175
- --text-t48: 48px; --text-t48--line-height: 65px; --text-t48--font-weight: 400;
176
- --text-t56: 56px; --text-t56--line-height: 76px; --text-t56--font-weight: 400;
177
- --text-t64: 64px; --text-t64--line-height: 86px; --text-t64--font-weight: 400;
178
- }
179
-
180
- @theme inline {
181
- --text-prose: var(--ui-prose);
182
- --text-prose--line-height: var(--ui-prose-lh);
183
- --text-prose--font-weight: 400;
184
-
185
- --text-value: var(--ui-value);
186
- --text-value--line-height: var(--ui-value-lh);
187
- --text-value--font-weight: 400;
188
- }
189
-
190
- :root {
191
- --ui-prose: 16px; --ui-prose-lh: 24px;
192
- --ui-value: 16px; --ui-value-lh: 22px;
193
-
194
- @variant sm { --ui-prose: 14px; --ui-prose-lh: 22px; }
195
- @variant sm { --ui-value: 14px; --ui-value-lh: 19px; }
196
- }
197
-
198
- @font-face {
199
- font-family: "JetBrains Mono";
200
- src: url("@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-normal.woff2") format("woff2");
201
- font-weight: 400;
202
- font-display: swap;
203
- unicode-range: U+0000-00FF, U+2000-206F;
204
- }
205
-
206
- @layer base {
207
- :root { color-scheme: light; }
208
- .dark { color-scheme: dark; }
209
-
210
- body {
211
- background-color: var(--color-background);
212
- color: var(--color-foreground);
213
- font-family: var(--font-sans);
214
- }
215
-
216
- code, pre, kbd, samp { font-family: var(--font-mono); }
217
- }
218
-
219
1
  :root, .light {
220
- --pds-background: #ffffff;
221
- --pds-background-overlay: rgba(0,0,0,0.2);
222
- --pds-background-panel: #ffffff;
223
- --pds-background-well: #f2f4f6;
2
+ --pds-bg: #ffffff;
3
+ --pds-bg-overlay: rgba(0,0,0,0.2);
4
+ --pds-bg-panel: #ffffff;
5
+ --pds-bg-well: #f2f4f6;
224
6
 
225
7
  --pds-bg-brand-solid: var(--pds-brand-500);
226
8
  --pds-bg-brand-solid-hover: var(--pds-brand-600);
@@ -269,20 +51,20 @@
269
51
  --pds-line-warning-weak: var(--pds-orange-200);
270
52
 
271
53
  --pds-black: #000000;
272
- --pds-foreground: var(--pds-gray-900);
273
- --pds-foreground-disabled: var(--pds-gray-600);
274
- --pds-foreground-muted: var(--pds-gray-700);
275
- --pds-foreground-placeholder: var(--pds-gray-400);
276
- --pds-foreground-subtle: var(--pds-gray-500);
54
+ --pds-fg: var(--pds-gray-900);
55
+ --pds-fg-disabled: var(--pds-gray-600);
56
+ --pds-fg-muted: var(--pds-gray-700);
57
+ --pds-fg-placeholder: var(--pds-gray-400);
58
+ --pds-fg-subtle: var(--pds-gray-500);
277
59
  --pds-line: var(--pds-gray-200);
278
60
  --pds-white: #ffffff;
279
61
  }
280
62
 
281
63
  .dark {
282
- --pds-background: #17171c;
283
- --pds-background-overlay: rgba(0,0,0,0.56);
284
- --pds-background-panel: #202027;
285
- --pds-background-well: #101013;
64
+ --pds-bg: #17171c;
65
+ --pds-bg-overlay: rgba(0,0,0,0.56);
66
+ --pds-bg-panel: #202027;
67
+ --pds-bg-well: #101013;
286
68
 
287
69
  --pds-bg-brand-solid: var(--pds-brand-500);
288
70
  --pds-bg-brand-solid-hover: var(--pds-brand-600);
@@ -331,20 +113,20 @@
331
113
  --pds-line-warning-weak: var(--pds-orange-200);
332
114
 
333
115
  --pds-black: #000000;
334
- --pds-foreground: var(--pds-gray-900);
335
- --pds-foreground-disabled: var(--pds-gray-600);
336
- --pds-foreground-muted: var(--pds-gray-700);
337
- --pds-foreground-placeholder: var(--pds-gray-400);
338
- --pds-foreground-subtle: var(--pds-gray-500);
116
+ --pds-fg: var(--pds-gray-900);
117
+ --pds-fg-disabled: var(--pds-gray-600);
118
+ --pds-fg-muted: var(--pds-gray-700);
119
+ --pds-fg-placeholder: var(--pds-gray-400);
120
+ --pds-fg-subtle: var(--pds-gray-500);
339
121
  --pds-line: var(--pds-gray-200);
340
122
  --pds-white: #ffffff;
341
123
  }
342
124
 
343
125
  @theme inline {
344
- --color-background: var(--pds-background);
345
- --color-background-overlay: var(--pds-background-overlay);
346
- --color-background-panel: var(--pds-background-panel);
347
- --color-background-well: var(--pds-background-well);
126
+ --color-bg: var(--pds-bg);
127
+ --color-bg-overlay: var(--pds-bg-overlay);
128
+ --color-bg-panel: var(--pds-bg-panel);
129
+ --color-bg-well: var(--pds-bg-well);
348
130
  --color-bg-brand-solid: var(--pds-bg-brand-solid);
349
131
  --color-bg-brand-solid-hover: var(--pds-bg-brand-solid-hover);
350
132
  --color-bg-brand-weak: var(--pds-bg-brand-weak);
@@ -389,33 +171,69 @@
389
171
  --color-line-warning: var(--pds-line-warning);
390
172
  --color-line-warning-weak: var(--pds-line-warning-weak);
391
173
  --color-black: var(--pds-black);
392
- --color-foreground: var(--pds-foreground);
393
- --color-foreground-disabled: var(--pds-foreground-disabled);
394
- --color-foreground-muted: var(--pds-foreground-muted);
395
- --color-foreground-placeholder: var(--pds-foreground-placeholder);
396
- --color-foreground-subtle: var(--pds-foreground-subtle);
174
+ --color-fg: var(--pds-fg);
175
+ --color-fg-disabled: var(--pds-fg-disabled);
176
+ --color-fg-muted: var(--pds-fg-muted);
177
+ --color-fg-placeholder: var(--pds-fg-placeholder);
178
+ --color-fg-subtle: var(--pds-fg-subtle);
397
179
  --color-line: var(--pds-line);
398
180
  --color-white: var(--pds-white);
399
181
  }
400
182
 
183
+ @theme {
184
+ --font-weight-normal: 400;
185
+ --font-weight-medium: 500;
186
+ --font-weight-bold: 700;
187
+
188
+ --font-sans: "Pretendard Variable", "Pretendard", -apple-system, system-ui, sans-serif;
189
+ --font-mono: "JetBrains Mono", "Pretendard Variable", "Pretendard", ui-monospace, monospace;
190
+
191
+ --text-display: 28px; --text-display--line-height: 38px; --text-display--font-weight: 700;
192
+ --text-title: 24px; --text-title--line-height: 32px; --text-title--font-weight: 700;
193
+ --text-section: 20px; --text-section--line-height: 27px; --text-section--font-weight: 700;
194
+ --text-subsection: 16px; --text-subsection--line-height: 22px; --text-subsection--font-weight: 700;
195
+ --text-label: 14px; --text-label--line-height: 19px; --text-label--font-weight: 500;
196
+ --text-caption: 13px; --text-caption--line-height: 18px; --text-caption--font-weight: 400;
197
+ --text-micro: 11px; --text-micro--line-height: 15px; --text-micro--font-weight: 500;
198
+
199
+ --text-t10: 10px; --text-t10--line-height: 14px; --text-t10--font-weight: 400;
200
+ --text-t11: 11px; --text-t11--line-height: 15px; --text-t11--font-weight: 400;
201
+ --text-t12: 12px; --text-t12--line-height: 16px; --text-t12--font-weight: 400;
202
+ --text-t13: 13px; --text-t13--line-height: 18px; --text-t13--font-weight: 400;
203
+ --text-t14: 14px; --text-t14--line-height: 19px; --text-t14--font-weight: 400;
204
+ --text-t16: 16px; --text-t16--line-height: 22px; --text-t16--font-weight: 400;
205
+ --text-t18: 18px; --text-t18--line-height: 24px; --text-t18--font-weight: 400;
206
+ --text-t20: 20px; --text-t20--line-height: 27px; --text-t20--font-weight: 400;
207
+ --text-t24: 24px; --text-t24--line-height: 32px; --text-t24--font-weight: 400;
208
+ --text-t28: 28px; --text-t28--line-height: 38px; --text-t28--font-weight: 400;
209
+ --text-t32: 32px; --text-t32--line-height: 43px; --text-t32--font-weight: 400;
210
+ --text-t40: 40px; --text-t40--line-height: 54px; --text-t40--font-weight: 400;
211
+ --text-t48: 48px; --text-t48--line-height: 65px; --text-t48--font-weight: 400;
212
+ --text-t56: 56px; --text-t56--line-height: 76px; --text-t56--font-weight: 400;
213
+ --text-t64: 64px; --text-t64--line-height: 86px; --text-t64--font-weight: 400;
214
+ }
215
+
216
+ :root {
217
+ --pds-prose: 16px; --pds-prose-lh: 24px;
218
+ --pds-value: 16px; --pds-value-lh: 22px;
219
+
220
+ @variant sm { --pds-prose: 14px; --pds-prose-lh: 22px; }
221
+ @variant sm { --pds-value: 14px; --pds-value-lh: 19px; }
222
+ }
223
+
224
+ @theme {
225
+ --breakpoint-xs: 30rem;
226
+ }
227
+
401
228
  @theme {
402
229
  --spacing-tight: 4px;
403
230
  --spacing-stack: 16px;
404
231
  --spacing-block: 32px;
405
232
  --spacing-section: 48px;
406
233
  --spacing-gutter: 16px;
407
-
408
- --container-app: 1280px;
409
234
  }
410
235
 
411
236
  @theme {
412
- --radius-*: initial;
413
-
414
- --radius-mark: 4px;
415
- --radius-well: 8px;
416
- --radius-panel: 12px;
417
- --radius-float: 16px;
418
-
419
237
  --radius-r2: 2px; --radius-r4: 4px; --radius-r6: 6px;
420
238
  --radius-r8: 8px; --radius-r10: 10px; --radius-r12: 12px;
421
239
  --radius-r14: 14px; --radius-r16: 16px; --radius-r20: 20px;
@@ -423,8 +241,6 @@
423
241
  }
424
242
 
425
243
  @theme {
426
- --ease-*: initial;
427
-
428
244
  --ease-state: cubic-bezier(.35, 0, .65, 1);
429
245
  --ease-enter: cubic-bezier(0, 0, .15, 1);
430
246
  --ease-exit: cubic-bezier(.35, 0, 1, 1);
@@ -436,40 +252,14 @@
436
252
  --dur-exit: 150ms;
437
253
  --enter-scale: 0.95;
438
254
  --draw-len: 24;
255
+ --scale-press: 0.97;
439
256
  }
440
257
 
441
- @utility transition-state {
442
- transition-property: color, background-color, box-shadow, scale;
443
- transition-duration: var(--dur-state);
444
- transition-timing-function: var(--ease-state);
445
- }
446
-
447
- @keyframes enter { from { opacity: 0; scale: var(--enter-scale); } }
448
- @keyframes exit { to { opacity: 0; scale: var(--enter-scale); } }
449
-
450
- @utility animate-enter { animation: enter var(--dur-enter) var(--ease-enter); }
451
- @utility animate-exit { animation: exit var(--dur-exit) var(--ease-exit); }
452
-
453
- @keyframes draw { from { stroke-dashoffset: var(--draw-len); } }
454
-
455
- @utility animate-draw {
456
- stroke-dasharray: var(--draw-len);
457
- animation: draw var(--dur-enter) var(--ease-enter);
458
- }
459
-
460
- @keyframes fade-in { from { opacity: 0; } }
461
- @keyframes fade-out { to { opacity: 0; } }
462
-
463
- @utility animate-fade-in { animation: fade-in var(--dur-enter) var(--ease-enter); }
464
- @utility animate-fade-out { animation: fade-out var(--dur-exit) var(--ease-exit); }
465
-
466
258
  @media (prefers-reduced-motion: reduce) {
467
- :root { --enter-scale: 1; }
259
+ :root:root { --enter-scale: 1; --scale-press: 1; }
468
260
  }
469
261
 
470
262
  @theme {
471
- --shadow-*: initial;
472
-
473
263
  --shadow-s1: 0 1px 4px 0 var(--pds-shadow-1);
474
264
  --shadow-s2: 0 2px 10px 0 var(--pds-shadow-2);
475
265
  --shadow-s3: 0 4px 16px 0 var(--pds-shadow-3);
@@ -478,22 +268,5 @@
478
268
  :root, .light { --pds-shadow-1:#00000014; --pds-shadow-2:#0000001a; --pds-shadow-3:#0000001f; }
479
269
  .dark { --pds-shadow-1:#00000080; --pds-shadow-2:#000000ad; --pds-shadow-3:#000000cc; }
480
270
 
481
- @utility z-sticky { z-index: 10; }
482
- @utility z-overlay { z-index: 50; }
483
- @utility z-toast { z-index: 60; }
484
-
485
- @utility frame {
486
- @apply bg-background-panel border border-line;
487
- }
488
-
489
- @utility card {
490
- @apply bg-background-panel shadow-s3;
491
- }
492
-
493
- @utility float {
494
- @apply bg-background-panel border border-line shadow-s3;
495
- }
496
-
497
- @utility sheet {
498
- @apply bg-background-panel;
499
- }
271
+ :root, .light { --pds-pressed-dim: rgba(0,23,51,0.12); }
272
+ .dark { --pds-pressed-dim: rgba(209,209,253,0.14); }
package/tooltip/index.tsx CHANGED
@@ -33,7 +33,7 @@ export interface TooltipContentProps extends Omit<ComponentProps<typeof TooltipP
33
33
  }
34
34
 
35
35
  const tooltipContent = tv({
36
- base: 'float text-foreground rounded-r12 z-overlay'
36
+ base: 'float text-fg rounded-r12 z-overlay'
37
37
  + ' text-caption max-w-64 px-3 py-1'
38
38
  + ' open:animate-enter closed:animate-exit',
39
39
  })
@@ -56,7 +56,7 @@ export function TooltipContent({
56
56
  {children}
57
57
  {arrow && (
58
58
  <TooltipPrimitive.Arrow asChild width={10} height={5}>
59
- <svg viewBox="0 0 12 6" preserveAspectRatio="none" className="fill-background-panel -translate-y-px">
59
+ <svg viewBox="0 0 12 6" preserveAspectRatio="none" className="fill-bg-panel -translate-y-px">
60
60
  <path d="M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0" className="stroke-line stroke-1" />
61
61
  </svg>
62
62
  </TooltipPrimitive.Arrow>
package/tv.ts CHANGED
@@ -7,7 +7,6 @@ export const tv = createTV({
7
7
  theme: {
8
8
  spacing: ['tight', 'stack', 'block', 'section', 'gutter'],
9
9
  radius: [
10
- 'mark', 'well', 'panel', 'float',
11
10
  'r2', 'r4', 'r6', 'r8', 'r10', 'r12', 'r14', 'r16', 'r20', 'r24',
12
11
  ],
13
12
  text: [
package/utilities.css ADDED
@@ -0,0 +1,119 @@
1
+ @custom-variant dark (&:where(.dark, .dark *):not(:where(.light, .light *)));
2
+
3
+ @custom-variant current (&[aria-current="page"]);
4
+
5
+ @custom-variant invalid (&[aria-invalid="true"]);
6
+
7
+ @custom-variant invalid-within (&:has([aria-invalid="true"]));
8
+
9
+ @custom-variant in-invalid (&:where([aria-invalid="true"] *));
10
+
11
+ @custom-variant described (&:has([data-description]));
12
+
13
+ @custom-variant checked (&:where([data-state="checked"], [data-state="indeterminate"]));
14
+ @custom-variant open (&[data-state="open"]);
15
+ @custom-variant closed (&[data-state="closed"]);
16
+ @custom-variant on (&[data-state="on"]);
17
+ @custom-variant selected (&[data-selected]:not([data-selected="false"]));
18
+ @custom-variant unset (&[data-placeholder]);
19
+
20
+ @custom-variant menu-gutter (.menu:has(.menu-lead) &:not(:has(.menu-lead)));
21
+
22
+ @layer base {
23
+ :root { color-scheme: light; }
24
+ .dark { color-scheme: dark; }
25
+
26
+ body {
27
+ background-color: var(--color-bg);
28
+ color: var(--color-fg);
29
+ font-family: var(--font-sans);
30
+ }
31
+
32
+ code, pre, kbd, samp { font-family: var(--font-mono); }
33
+ }
34
+
35
+ @utility text-prose {
36
+ font-size: var(--pds-prose);
37
+ line-height: var(--tw-leading, var(--pds-prose-lh));
38
+ font-weight: var(--tw-font-weight, 400);
39
+ }
40
+
41
+ @utility text-value {
42
+ font-size: var(--pds-value);
43
+ line-height: var(--tw-leading, var(--pds-value-lh));
44
+ font-weight: var(--tw-font-weight, 400);
45
+ }
46
+
47
+ @utility transition-state {
48
+ transition-property: color, background-color, box-shadow, scale;
49
+ transition-duration: var(--dur-state);
50
+ transition-timing-function: var(--ease-state);
51
+ }
52
+
53
+ @keyframes enter { from { opacity: 0; scale: var(--enter-scale); } }
54
+ @keyframes exit { to { opacity: 0; scale: var(--enter-scale); } }
55
+
56
+ @utility animate-enter { animation: enter var(--dur-enter) var(--ease-enter); }
57
+ @utility animate-exit { animation: exit var(--dur-exit) var(--ease-exit); }
58
+
59
+ @keyframes draw { from { stroke-dashoffset: var(--draw-len); } }
60
+
61
+ @utility animate-draw {
62
+ stroke-dasharray: var(--draw-len);
63
+ animation: draw var(--dur-enter) var(--ease-enter);
64
+ }
65
+
66
+ @keyframes fade-in { from { opacity: 0; } }
67
+ @keyframes fade-out { to { opacity: 0; } }
68
+
69
+ @utility animate-fade-in { animation: fade-in var(--dur-enter) var(--ease-enter); }
70
+ @utility animate-fade-out { animation: fade-out var(--dur-exit) var(--ease-exit); }
71
+
72
+ @utility z-sticky { z-index: 10; }
73
+ @utility z-overlay { z-index: 50; }
74
+ @utility z-toast { z-index: 60; }
75
+
76
+ @utility frame {
77
+ @apply bg-bg-panel border border-line;
78
+ }
79
+
80
+ @utility card {
81
+ @apply bg-bg-panel shadow-s3;
82
+ }
83
+
84
+ @utility float {
85
+ @apply bg-bg-panel border border-line shadow-s3;
86
+ }
87
+
88
+ @utility sheet {
89
+ @apply bg-bg-panel;
90
+ }
91
+
92
+ @utility press {
93
+ position: relative;
94
+
95
+ &::after {
96
+ content: "";
97
+ position: absolute;
98
+ inset: 0;
99
+ border-radius: inherit;
100
+ background: var(--pds-pressed-dim);
101
+ opacity: 0;
102
+ pointer-events: none;
103
+ transition: opacity var(--dur-state) var(--ease-state);
104
+ }
105
+
106
+ &:active:not(:disabled):not([aria-disabled="true"])::after,
107
+ &[data-pressed]:not(:disabled):not([aria-disabled="true"])::after {
108
+ opacity: 1;
109
+ transition-duration: 0s;
110
+ }
111
+ }
112
+
113
+ @utility press-shrink {
114
+ &:active:not(:disabled):not([aria-disabled="true"]),
115
+ &[data-pressed]:not(:disabled):not([aria-disabled="true"]) {
116
+ scale: var(--scale-press);
117
+ transition-duration: 0s;
118
+ }
119
+ }
package/press.css DELETED
@@ -1,37 +0,0 @@
1
- :root, .light { --pds-pressed-dim: rgba(0,23,51,0.12); }
2
- .dark { --pds-pressed-dim: rgba(209,209,253,0.14); }
3
-
4
- :root { --scale-press: 0.97; }
5
-
6
- @media (prefers-reduced-motion: reduce) {
7
- :root { --scale-press: 1; }
8
- }
9
-
10
- @utility press {
11
- position: relative;
12
-
13
- &::after {
14
- content: "";
15
- position: absolute;
16
- inset: 0;
17
- border-radius: inherit;
18
- background: var(--pds-pressed-dim);
19
- opacity: 0;
20
- pointer-events: none;
21
- transition: opacity var(--dur-state) var(--ease-state);
22
- }
23
-
24
- &:active:not(:disabled):not([aria-disabled="true"])::after,
25
- &[data-pressed]:not(:disabled):not([aria-disabled="true"])::after {
26
- opacity: 1;
27
- transition-duration: 0s;
28
- }
29
- }
30
-
31
- @utility press-shrink {
32
- &:active:not(:disabled):not([aria-disabled="true"]),
33
- &[data-pressed]:not(:disabled):not([aria-disabled="true"]) {
34
- scale: var(--scale-press);
35
- transition-duration: 0s;
36
- }
37
- }