@pinfold/css 0.0.0-stage → 0.2.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/dist/core.css ADDED
@@ -0,0 +1,373 @@
1
+
2
+ @layer pinfold.reset {
3
+ .pinfold,
4
+ .pinfold *,
5
+ .pinfold *::before,
6
+ .pinfold *::after {
7
+ box-sizing: border-box;
8
+ }
9
+ .pinfold {
10
+ font-family: var(--pinfold-font-sans);
11
+ font-size: var(--pinfold-text-md);
12
+ line-height: var(--pinfold-leading-normal);
13
+ color: var(--pinfold-color-text);
14
+ -webkit-font-smoothing: antialiased;
15
+ -moz-osx-font-smoothing: grayscale;
16
+ text-rendering: optimizeLegibility;
17
+ font-variant-numeric: tabular-nums;
18
+ }
19
+ .pinfold :where(button, input, select, textarea) {
20
+ font: inherit;
21
+ color: inherit;
22
+ letter-spacing: inherit;
23
+ margin: 0;
24
+ }
25
+ .pinfold :where(button) {
26
+ background: none;
27
+ border: 0;
28
+ cursor: pointer;
29
+ touch-action: manipulation;
30
+ -webkit-tap-highlight-color: transparent;
31
+ }
32
+ .pinfold :where(h1, h2, h3, h4, h5, h6, p, figure, dl, dd) {
33
+ margin: 0;
34
+ font-size: inherit;
35
+ font-weight: inherit;
36
+ }
37
+ .pinfold :where(img, svg, video, canvas) {
38
+ display: block;
39
+ max-width: 100%;
40
+ }
41
+ .pinfold :where(svg) {
42
+ flex: none;
43
+ }
44
+ .pinfold ::selection {
45
+ background: var(--pinfold-color-selection);
46
+ }
47
+ .pinfold :where(:focus-visible) {
48
+ outline: var(--pinfold-focus-width) solid transparent;
49
+ outline-offset: var(--pinfold-focus-offset);
50
+ box-shadow: var(--pinfold-focus-ring);
51
+ border-radius: var(--pinfold-radius-xs);
52
+ }
53
+ .pinfold :where(*) {
54
+ scrollbar-width: thin;
55
+ scrollbar-color: var(--pinfold-color-border-strong) transparent;
56
+ }
57
+ .pinfold :where(*)::-webkit-scrollbar {
58
+ width: 10px;
59
+ height: 10px;
60
+ }
61
+ .pinfold :where(*)::-webkit-scrollbar-thumb {
62
+ background: var(--pinfold-color-border-strong);
63
+ border: 3px solid transparent;
64
+ border-radius: var(--pinfold-radius-full);
65
+ background-clip: content-box;
66
+ }
67
+ .pinfold :where(*)::-webkit-scrollbar-track {
68
+ background: transparent;
69
+ }
70
+ @media (prefers-reduced-motion: reduce) {
71
+ .pinfold,
72
+ .pinfold * {
73
+ animation-duration: 0.01ms !important;
74
+ animation-iteration-count: 1 !important;
75
+ transition-duration: 0.01ms !important;
76
+ scroll-behavior: auto !important;
77
+ }
78
+ }
79
+ @media (forced-colors: active) {
80
+ .pinfold :where(:focus-visible) {
81
+ outline-color: Highlight;
82
+ box-shadow: none;
83
+ }
84
+ .pinfold :where([data-state="open"], [data-state="selected"]) {
85
+ forced-color-adjust: none;
86
+ }
87
+ }
88
+ }
89
+
90
+
91
+ @layer pinfold.tokens {
92
+ :root {
93
+ color-scheme: light dark;
94
+ --pinfold-primary-50: oklch(0.977 0.014 274);
95
+ --pinfold-primary-100: oklch(0.946 0.033 274);
96
+ --pinfold-primary-200: oklch(0.902 0.063 274);
97
+ --pinfold-primary-300: oklch(0.828 0.111 274);
98
+ --pinfold-primary-400: oklch(0.714 0.163 274);
99
+ --pinfold-primary-500: oklch(0.606 0.201 274);
100
+ --pinfold-primary-600: oklch(0.541 0.223 274);
101
+ --pinfold-primary-700: oklch(0.491 0.216 274);
102
+ --pinfold-primary-800: oklch(0.432 0.181 274);
103
+ --pinfold-primary-900: oklch(0.380 0.146 274);
104
+ --pinfold-primary-950: oklch(0.283 0.101 274);
105
+ --pinfold-accent-300: var(--pinfold-primary-300);
106
+ --pinfold-accent-400: var(--pinfold-primary-400);
107
+ --pinfold-accent-500: var(--pinfold-primary-500);
108
+ --pinfold-accent-600: var(--pinfold-primary-600);
109
+ --pinfold-accent-700: var(--pinfold-primary-700);
110
+ --pinfold-neutral-50: oklch(0.985 0.002 274);
111
+ --pinfold-neutral-100: oklch(0.967 0.003 274);
112
+ --pinfold-neutral-200: oklch(0.928 0.006 274);
113
+ --pinfold-neutral-300: oklch(0.872 0.010 274);
114
+ --pinfold-neutral-400: oklch(0.707 0.015 274);
115
+ --pinfold-neutral-500: oklch(0.551 0.019 274);
116
+ --pinfold-neutral-600: oklch(0.446 0.021 274);
117
+ --pinfold-neutral-700: oklch(0.373 0.023 274);
118
+ --pinfold-neutral-800: oklch(0.279 0.023 274);
119
+ --pinfold-neutral-900: oklch(0.210 0.021 274);
120
+ --pinfold-neutral-950: oklch(0.145 0.017 274);
121
+ --pinfold-success-100: oklch(0.946 0.033 158);
122
+ --pinfold-success-300: oklch(0.828 0.111 158);
123
+ --pinfold-success-500: oklch(0.606 0.201 158);
124
+ --pinfold-success-700: oklch(0.491 0.216 158);
125
+ --pinfold-success-900: oklch(0.380 0.146 158);
126
+ --pinfold-warning-100: oklch(0.946 0.033 78);
127
+ --pinfold-warning-300: oklch(0.828 0.111 78);
128
+ --pinfold-warning-500: oklch(0.606 0.201 78);
129
+ --pinfold-warning-700: oklch(0.491 0.216 78);
130
+ --pinfold-warning-900: oklch(0.380 0.146 78);
131
+ --pinfold-danger-100: oklch(0.946 0.033 27);
132
+ --pinfold-danger-300: oklch(0.828 0.111 27);
133
+ --pinfold-danger-500: oklch(0.606 0.201 27);
134
+ --pinfold-danger-700: oklch(0.491 0.216 27);
135
+ --pinfold-danger-900: oklch(0.380 0.146 27);
136
+ --pinfold-info-100: oklch(0.946 0.033 245);
137
+ --pinfold-info-300: oklch(0.828 0.111 245);
138
+ --pinfold-info-500: oklch(0.606 0.201 245);
139
+ --pinfold-info-700: oklch(0.491 0.216 245);
140
+ --pinfold-info-900: oklch(0.380 0.146 245);
141
+ --pinfold-color-bg: var(--pinfold-neutral-50);
142
+ --pinfold-color-bg-subtle: var(--pinfold-neutral-100);
143
+ --pinfold-color-surface: oklch(1 0 0);
144
+ --pinfold-color-surface-raised: oklch(1 0 0);
145
+ --pinfold-color-surface-sunken: var(--pinfold-neutral-100);
146
+ --pinfold-color-surface-hover: color-mix(in oklch, var(--pinfold-color-accent) 6%, var(--pinfold-color-surface));
147
+ --pinfold-color-surface-active: color-mix(in oklch, var(--pinfold-color-accent) 11%, var(--pinfold-color-surface));
148
+ --pinfold-color-surface-selected: color-mix(in oklch, var(--pinfold-color-accent) 14%, var(--pinfold-color-surface));
149
+ --pinfold-color-border: var(--pinfold-neutral-200);
150
+ --pinfold-color-border-strong: var(--pinfold-neutral-300);
151
+ --pinfold-color-border-accent: color-mix(in oklch, var(--pinfold-color-accent) 45%, var(--pinfold-color-border));
152
+ --pinfold-color-text: var(--pinfold-neutral-900);
153
+ --pinfold-color-text-muted: var(--pinfold-neutral-600);
154
+ --pinfold-color-text-subtle: var(--pinfold-neutral-500);
155
+ --pinfold-color-text-disabled: var(--pinfold-neutral-400);
156
+ --pinfold-color-accent: var(--pinfold-primary-600);
157
+ --pinfold-color-accent-hover: var(--pinfold-primary-700);
158
+ --pinfold-color-accent-subtle: color-mix(in oklch, var(--pinfold-color-accent) 10%, transparent);
159
+ --pinfold-color-accent-contrast: oklch(1 0 0);
160
+ --pinfold-color-ring: var(--pinfold-primary-500);
161
+ --pinfold-color-overlay: color-mix(in oklch, var(--pinfold-neutral-950) 45%, transparent);
162
+ --pinfold-color-selection: color-mix(in oklch, var(--pinfold-color-accent) 22%, transparent);
163
+ --pinfold-shadow-color: var(--pinfold-neutral-900);
164
+ --pinfold-shadow-xs: 0 1px 1px color-mix(in oklch, var(--pinfold-shadow-color) 5%, transparent);
165
+ --pinfold-shadow-sm:
166
+ 0 1px 2px color-mix(in oklch, var(--pinfold-shadow-color) 6%, transparent),
167
+ 0 1px 3px -1px color-mix(in oklch, var(--pinfold-shadow-color) 6%, transparent);
168
+ --pinfold-shadow-md:
169
+ 0 2px 4px -1px color-mix(in oklch, var(--pinfold-shadow-color) 7%, transparent),
170
+ 0 8px 20px -6px color-mix(in oklch, var(--pinfold-shadow-color) 10%, transparent);
171
+ --pinfold-shadow-lg:
172
+ 0 4px 8px -2px color-mix(in oklch, var(--pinfold-shadow-color) 8%, transparent),
173
+ 0 16px 40px -12px color-mix(in oklch, var(--pinfold-shadow-color) 14%, transparent);
174
+ --pinfold-shadow-xl:
175
+ 0 8px 16px -4px color-mix(in oklch, var(--pinfold-shadow-color) 10%, transparent),
176
+ 0 32px 72px -20px color-mix(in oklch, var(--pinfold-shadow-color) 18%, transparent);
177
+ --pinfold-highlight: inset 0 1px 0 color-mix(in oklch, oklch(1 0 0) 60%, transparent);
178
+ --pinfold-border-width: 1px;
179
+ --pinfold-backdrop: none;
180
+ --pinfold-texture: none;
181
+ --pinfold-focus-width: 2px;
182
+ --pinfold-focus-offset: 2px;
183
+ --pinfold-focus-ring:
184
+ 0 0 0 var(--pinfold-focus-offset) var(--pinfold-color-bg),
185
+ 0 0 0 calc(var(--pinfold-focus-offset) + var(--pinfold-focus-width)) var(--pinfold-color-ring);
186
+ --pinfold-radius-scale: 1;
187
+ --pinfold-radius-full: 9999px;
188
+ --pinfold-space-1: 0.25rem;
189
+ --pinfold-space-2: 0.5rem;
190
+ --pinfold-space-3: 0.75rem;
191
+ --pinfold-space-4: 1rem;
192
+ --pinfold-space-5: 1.25rem;
193
+ --pinfold-space-6: 1.5rem;
194
+ --pinfold-space-8: 2rem;
195
+ --pinfold-space-10: 2.5rem;
196
+ --pinfold-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
197
+ "Helvetica Neue", Arial, sans-serif;
198
+ --pinfold-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
199
+ --pinfold-text-xs: 0.75rem;
200
+ --pinfold-text-sm: clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem);
201
+ --pinfold-text-md: clamp(0.9375rem, 0.91rem + 0.12vw, 1rem);
202
+ --pinfold-text-lg: clamp(1.0625rem, 1.02rem + 0.2vw, 1.125rem);
203
+ --pinfold-text-xl: clamp(1.25rem, 1.15rem + 0.45vw, 1.375rem);
204
+ --pinfold-leading-tight: 1.3;
205
+ --pinfold-leading-normal: 1.55;
206
+ --pinfold-weight-normal: 400;
207
+ --pinfold-weight-medium: 500;
208
+ --pinfold-weight-semibold: 600;
209
+ --pinfold-tracking-tight: -0.011em;
210
+ --pinfold-tracking-normal: 0em;
211
+ --pinfold-tracking-wide: 0.02em;
212
+ --pinfold-duration-fast: 120ms;
213
+ --pinfold-duration-md: 200ms;
214
+ --pinfold-duration-slow: 320ms;
215
+ --pinfold-ease: cubic-bezier(0.32, 0.72, 0, 1);
216
+ --pinfold-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
217
+ --pinfold-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
218
+ --pinfold-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
219
+ --pinfold-z-dropdown: 1000;
220
+ --pinfold-z-sticky: 1100;
221
+ --pinfold-z-overlay: 1200;
222
+ --pinfold-z-modal: 1300;
223
+ --pinfold-z-toast: 1400;
224
+ --pinfold-z-tooltip: 1500;
225
+ }
226
+ @media (prefers-color-scheme: dark) {
227
+ :root:not([data-pinfold-theme="light"]) {
228
+ --pinfold-color-bg: var(--pinfold-neutral-950);
229
+ --pinfold-color-bg-subtle: oklch(0.178 0.019 274);
230
+ --pinfold-color-surface: oklch(0.196 0.020 274);
231
+ --pinfold-color-surface-raised: oklch(0.232 0.021 274);
232
+ --pinfold-color-surface-sunken: oklch(0.165 0.018 274);
233
+ --pinfold-color-border: oklch(0.286 0.023 274);
234
+ --pinfold-color-border-strong: oklch(0.352 0.024 274);
235
+ --pinfold-color-text: var(--pinfold-neutral-100);
236
+ --pinfold-color-text-muted: var(--pinfold-neutral-400);
237
+ --pinfold-color-text-subtle: var(--pinfold-neutral-500);
238
+ --pinfold-color-text-disabled: var(--pinfold-neutral-600);
239
+ --pinfold-color-accent: var(--pinfold-primary-400);
240
+ --pinfold-color-accent-hover: var(--pinfold-primary-300);
241
+ --pinfold-color-accent-contrast: var(--pinfold-neutral-950);
242
+ --pinfold-color-ring: var(--pinfold-primary-400);
243
+ --pinfold-shadow-color: oklch(0 0 0);
244
+ --pinfold-shadow-xs: 0 1px 1px color-mix(in oklch, var(--pinfold-shadow-color) 30%, transparent);
245
+ --pinfold-shadow-sm:
246
+ 0 1px 2px color-mix(in oklch, var(--pinfold-shadow-color) 40%, transparent),
247
+ 0 1px 3px -1px color-mix(in oklch, var(--pinfold-shadow-color) 40%, transparent);
248
+ --pinfold-shadow-md:
249
+ 0 2px 4px -1px color-mix(in oklch, var(--pinfold-shadow-color) 45%, transparent),
250
+ 0 8px 20px -6px color-mix(in oklch, var(--pinfold-shadow-color) 50%, transparent);
251
+ --pinfold-shadow-lg:
252
+ 0 4px 8px -2px color-mix(in oklch, var(--pinfold-shadow-color) 50%, transparent),
253
+ 0 16px 40px -12px color-mix(in oklch, var(--pinfold-shadow-color) 55%, transparent);
254
+ --pinfold-shadow-xl:
255
+ 0 8px 16px -4px color-mix(in oklch, var(--pinfold-shadow-color) 55%, transparent),
256
+ 0 32px 72px -20px color-mix(in oklch, var(--pinfold-shadow-color) 60%, transparent);
257
+ --pinfold-highlight: inset 0 1px 0 color-mix(in oklch, oklch(1 0 0) 8%, transparent);
258
+ }
259
+ }
260
+ [data-pinfold-theme="dark"] {
261
+ color-scheme: dark;
262
+ --pinfold-color-bg: var(--pinfold-neutral-950);
263
+ --pinfold-color-bg-subtle: oklch(0.178 0.019 274);
264
+ --pinfold-color-surface: oklch(0.196 0.020 274);
265
+ --pinfold-color-surface-raised: oklch(0.232 0.021 274);
266
+ --pinfold-color-surface-sunken: oklch(0.165 0.018 274);
267
+ --pinfold-color-border: oklch(0.286 0.023 274);
268
+ --pinfold-color-border-strong: oklch(0.352 0.024 274);
269
+ --pinfold-color-text: var(--pinfold-neutral-100);
270
+ --pinfold-color-text-muted: var(--pinfold-neutral-400);
271
+ --pinfold-color-text-subtle: var(--pinfold-neutral-500);
272
+ --pinfold-color-text-disabled: var(--pinfold-neutral-600);
273
+ --pinfold-color-accent: var(--pinfold-primary-400);
274
+ --pinfold-color-accent-hover: var(--pinfold-primary-300);
275
+ --pinfold-color-accent-contrast: var(--pinfold-neutral-950);
276
+ --pinfold-color-ring: var(--pinfold-primary-400);
277
+ --pinfold-shadow-color: oklch(0 0 0);
278
+ --pinfold-shadow-xs: 0 1px 1px color-mix(in oklch, var(--pinfold-shadow-color) 30%, transparent);
279
+ --pinfold-shadow-sm:
280
+ 0 1px 2px color-mix(in oklch, var(--pinfold-shadow-color) 40%, transparent),
281
+ 0 1px 3px -1px color-mix(in oklch, var(--pinfold-shadow-color) 40%, transparent);
282
+ --pinfold-shadow-md:
283
+ 0 2px 4px -1px color-mix(in oklch, var(--pinfold-shadow-color) 45%, transparent),
284
+ 0 8px 20px -6px color-mix(in oklch, var(--pinfold-shadow-color) 50%, transparent);
285
+ --pinfold-shadow-lg:
286
+ 0 4px 8px -2px color-mix(in oklch, var(--pinfold-shadow-color) 50%, transparent),
287
+ 0 16px 40px -12px color-mix(in oklch, var(--pinfold-shadow-color) 55%, transparent);
288
+ --pinfold-shadow-xl:
289
+ 0 8px 16px -4px color-mix(in oklch, var(--pinfold-shadow-color) 55%, transparent),
290
+ 0 32px 72px -20px color-mix(in oklch, var(--pinfold-shadow-color) 60%, transparent);
291
+ --pinfold-highlight: inset 0 1px 0 color-mix(in oklch, oklch(1 0 0) 8%, transparent);
292
+ --pinfold-color-surface-hover: color-mix(in oklch, var(--pinfold-color-accent) 6%, var(--pinfold-color-surface));
293
+ --pinfold-color-surface-active: color-mix(in oklch, var(--pinfold-color-accent) 11%, var(--pinfold-color-surface));
294
+ --pinfold-color-surface-selected: color-mix(in oklch, var(--pinfold-color-accent) 14%, var(--pinfold-color-surface));
295
+ --pinfold-color-border-accent: color-mix(in oklch, var(--pinfold-color-accent) 45%, var(--pinfold-color-border));
296
+ --pinfold-color-accent-subtle: color-mix(in oklch, var(--pinfold-color-accent) 10%, transparent);
297
+ --pinfold-color-selection: color-mix(in oklch, var(--pinfold-color-accent) 22%, transparent);
298
+ --pinfold-color-overlay: color-mix(in oklch, var(--pinfold-neutral-950) 45%, transparent);
299
+ --pinfold-focus-ring: 0 0 0 var(--pinfold-focus-offset) var(--pinfold-color-bg),
300
+ 0 0 0 calc(var(--pinfold-focus-offset) + var(--pinfold-focus-width)) var(--pinfold-color-ring);
301
+ }
302
+ [data-pinfold-theme="light"] {
303
+ color-scheme: light;
304
+ --pinfold-color-bg: var(--pinfold-neutral-50);
305
+ --pinfold-color-bg-subtle: var(--pinfold-neutral-100);
306
+ --pinfold-color-surface: oklch(1 0 0);
307
+ --pinfold-color-surface-raised: oklch(1 0 0);
308
+ --pinfold-color-surface-sunken: var(--pinfold-neutral-100);
309
+ --pinfold-color-border: var(--pinfold-neutral-200);
310
+ --pinfold-color-border-strong: var(--pinfold-neutral-300);
311
+ --pinfold-color-text: var(--pinfold-neutral-900);
312
+ --pinfold-color-text-muted: var(--pinfold-neutral-600);
313
+ --pinfold-color-text-subtle: var(--pinfold-neutral-500);
314
+ --pinfold-color-text-disabled: var(--pinfold-neutral-400);
315
+ --pinfold-color-accent: var(--pinfold-primary-600);
316
+ --pinfold-color-accent-hover: var(--pinfold-primary-700);
317
+ --pinfold-color-accent-contrast: oklch(1 0 0);
318
+ --pinfold-color-ring: var(--pinfold-primary-500);
319
+ --pinfold-shadow-color: var(--pinfold-neutral-900);
320
+ --pinfold-shadow-xs: 0 1px 1px color-mix(in oklch, var(--pinfold-shadow-color) 5%, transparent);
321
+ --pinfold-shadow-sm: 0 1px 2px color-mix(in oklch, var(--pinfold-shadow-color) 6%, transparent),
322
+ 0 1px 3px -1px color-mix(in oklch, var(--pinfold-shadow-color) 6%, transparent);
323
+ --pinfold-shadow-md: 0 2px 4px -1px color-mix(in oklch, var(--pinfold-shadow-color) 7%, transparent),
324
+ 0 8px 20px -6px color-mix(in oklch, var(--pinfold-shadow-color) 10%, transparent);
325
+ --pinfold-shadow-lg: 0 4px 8px -2px color-mix(in oklch, var(--pinfold-shadow-color) 8%, transparent),
326
+ 0 16px 40px -12px color-mix(in oklch, var(--pinfold-shadow-color) 14%, transparent);
327
+ --pinfold-shadow-xl: 0 8px 16px -4px color-mix(in oklch, var(--pinfold-shadow-color) 10%, transparent),
328
+ 0 32px 72px -20px color-mix(in oklch, var(--pinfold-shadow-color) 18%, transparent);
329
+ --pinfold-highlight: inset 0 1px 0 color-mix(in oklch, oklch(1 0 0) 60%, transparent);
330
+ --pinfold-color-surface-hover: color-mix(in oklch, var(--pinfold-color-accent) 6%, var(--pinfold-color-surface));
331
+ --pinfold-color-surface-active: color-mix(in oklch, var(--pinfold-color-accent) 11%, var(--pinfold-color-surface));
332
+ --pinfold-color-surface-selected: color-mix(in oklch, var(--pinfold-color-accent) 14%, var(--pinfold-color-surface));
333
+ --pinfold-color-border-accent: color-mix(in oklch, var(--pinfold-color-accent) 45%, var(--pinfold-color-border));
334
+ --pinfold-color-accent-subtle: color-mix(in oklch, var(--pinfold-color-accent) 10%, transparent);
335
+ --pinfold-color-selection: color-mix(in oklch, var(--pinfold-color-accent) 22%, transparent);
336
+ --pinfold-color-overlay: color-mix(in oklch, var(--pinfold-neutral-950) 45%, transparent);
337
+ --pinfold-focus-ring: 0 0 0 var(--pinfold-focus-offset) var(--pinfold-color-bg),
338
+ 0 0 0 calc(var(--pinfold-focus-offset) + var(--pinfold-focus-width)) var(--pinfold-color-ring);
339
+ }
340
+ :root,
341
+ [data-pinfold-radius],
342
+ [data-pinfold-style] {
343
+ --pinfold-radius-xs: calc(0.25rem * var(--pinfold-radius-scale));
344
+ --pinfold-radius-sm: calc(0.375rem * var(--pinfold-radius-scale));
345
+ --pinfold-radius-md: calc(0.5rem * var(--pinfold-radius-scale));
346
+ --pinfold-radius-lg: calc(0.75rem * var(--pinfold-radius-scale));
347
+ --pinfold-radius-xl: calc(1rem * var(--pinfold-radius-scale));
348
+ --pinfold-radius-2xl: calc(1.5rem * var(--pinfold-radius-scale));
349
+ }
350
+ [data-pinfold-radius="none"] { --pinfold-radius-scale: 0; }
351
+ [data-pinfold-radius="sm"] { --pinfold-radius-scale: 0.6; }
352
+ [data-pinfold-radius="md"] { --pinfold-radius-scale: 1; }
353
+ [data-pinfold-radius="lg"] { --pinfold-radius-scale: 1.5; }
354
+ [data-pinfold-radius="full"] { --pinfold-radius-scale: 2.4; }
355
+ [data-pinfold-density="compact"] { --pinfold-density: 0.8; }
356
+ [data-pinfold-density="comfortable"] { --pinfold-density: 1; }
357
+ [data-pinfold-density="spacious"] { --pinfold-density: 1.25; }
358
+ @supports not (color: color-mix(in oklch, red, blue)) {
359
+ :root {
360
+ --pinfold-color-surface-hover: var(--pinfold-neutral-100);
361
+ --pinfold-color-surface-active: var(--pinfold-neutral-200);
362
+ --pinfold-color-surface-selected: var(--pinfold-neutral-200);
363
+ --pinfold-color-border-accent: var(--pinfold-color-accent);
364
+ --pinfold-color-accent-subtle: var(--pinfold-primary-50);
365
+ --pinfold-color-overlay: var(--pinfold-neutral-900);
366
+ --pinfold-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
367
+ --pinfold-shadow-md: 0 6px 18px rgba(0, 0, 0, 0.1);
368
+ --pinfold-shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.14);
369
+ --pinfold-shadow-xl: 0 32px 72px rgba(0, 0, 0, 0.18);
370
+ --pinfold-highlight: none;
371
+ }
372
+ }
373
+ }
package/dist/packs.css ADDED
@@ -0,0 +1,63 @@
1
+
2
+ @layer pinfold.tokens, pinfold.reset, pinfold.components, pinfold.packs;
3
+ @layer pinfold.packs {
4
+ [data-pinfold-style='glass'] {
5
+ --pinfold-color-surface: color-mix(in oklch, color-mix(in oklch, var(--pinfold-color-accent) 6%, var(--pinfold-color-bg)) 66%, transparent);
6
+ --pinfold-color-bg-subtle: color-mix(in oklch, color-mix(in oklch, var(--pinfold-color-accent) 10%, var(--pinfold-color-bg)) 62%, transparent);
7
+ --pinfold-color-border: color-mix(in oklch, var(--pinfold-color-text) 12%, transparent);
8
+ --pinfold-backdrop: blur(20px) saturate(1.8);
9
+ --pinfold-highlight: inset 0 1px 0 color-mix(in oklch, oklch(1 0 0) 35%, transparent),
10
+ inset 0 0 0 1px color-mix(in oklch, oklch(1 0 0) 6%, transparent);
11
+ --pinfold-shadow-sm: 0 8px 24px -12px color-mix(in oklch, var(--pinfold-color-accent) 30%, transparent);
12
+ --pinfold-shadow-md: 0 16px 40px -16px color-mix(in oklch, var(--pinfold-color-accent) 38%, transparent);
13
+ --pinfold-radius-scale: 1.5;
14
+ }
15
+ [data-pinfold-style='material'] {
16
+ --pinfold-color-surface: color-mix(in oklch, var(--pinfold-color-accent) 5%, var(--pinfold-color-bg));
17
+ --pinfold-color-bg-subtle: color-mix(in oklch, var(--pinfold-color-accent) 10%, var(--pinfold-color-bg));
18
+ --pinfold-color-border: color-mix(in oklch, var(--pinfold-color-text) 8%, transparent);
19
+ --pinfold-shadow-sm:
20
+ 0 1px 2px color-mix(in oklch, var(--pinfold-shadow-color) 18%, transparent),
21
+ 0 1px 3px 1px color-mix(in oklch, var(--pinfold-shadow-color) 8%, transparent);
22
+ --pinfold-shadow-md:
23
+ 0 1px 2px color-mix(in oklch, var(--pinfold-shadow-color) 18%, transparent),
24
+ 0 2px 6px 2px color-mix(in oklch, var(--pinfold-shadow-color) 9%, transparent);
25
+ --pinfold-highlight: 0 0 0 0 transparent;
26
+ --pinfold-radius-scale: 1.4;
27
+ }
28
+ [data-pinfold-style='noise'] {
29
+ --pinfold-texture: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0.16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
30
+ --pinfold-color-bg-subtle: color-mix(in oklch, var(--pinfold-color-accent) 6%, var(--pinfold-color-surface));
31
+ }
32
+ [data-pinfold-style='brutalist'] {
33
+ --pinfold-radius-scale: 0.5;
34
+ --pinfold-border-width: 2px;
35
+ --pinfold-color-border: var(--pinfold-color-text);
36
+ --pinfold-color-border-accent: var(--pinfold-color-text);
37
+ --pinfold-color-bg-subtle: color-mix(in oklch, var(--pinfold-color-accent) 14%, var(--pinfold-color-surface));
38
+ --pinfold-shadow-sm: 3px 3px 0 var(--pinfold-color-accent);
39
+ --pinfold-shadow-md: 5px 5px 0 var(--pinfold-color-accent);
40
+ --pinfold-highlight: 0 0 0 0 transparent;
41
+ }
42
+ @media (prefers-reduced-transparency: reduce) {
43
+ [data-pinfold-style='glass'] {
44
+ --pinfold-color-surface: color-mix(in oklch, var(--pinfold-color-accent) 6%, var(--pinfold-color-bg));
45
+ --pinfold-color-bg-subtle: color-mix(in oklch, var(--pinfold-color-accent) 10%, var(--pinfold-color-bg));
46
+ --pinfold-backdrop: none;
47
+ }
48
+ }
49
+ @media (prefers-contrast: more) {
50
+ [data-pinfold-style] {
51
+ --pinfold-color-surface: var(--pinfold-color-bg);
52
+ --pinfold-color-border: var(--pinfold-color-text);
53
+ --pinfold-backdrop: none;
54
+ --pinfold-texture: none;
55
+ }
56
+ }
57
+ @media (forced-colors: active) {
58
+ [data-pinfold-style] {
59
+ --pinfold-backdrop: none;
60
+ --pinfold-texture: none;
61
+ }
62
+ }
63
+ }
package/dist/reset.css ADDED
@@ -0,0 +1,88 @@
1
+
2
+ @layer pinfold.reset {
3
+ .pinfold,
4
+ .pinfold *,
5
+ .pinfold *::before,
6
+ .pinfold *::after {
7
+ box-sizing: border-box;
8
+ }
9
+ .pinfold {
10
+ font-family: var(--pinfold-font-sans);
11
+ font-size: var(--pinfold-text-md);
12
+ line-height: var(--pinfold-leading-normal);
13
+ color: var(--pinfold-color-text);
14
+ -webkit-font-smoothing: antialiased;
15
+ -moz-osx-font-smoothing: grayscale;
16
+ text-rendering: optimizeLegibility;
17
+ font-variant-numeric: tabular-nums;
18
+ }
19
+ .pinfold :where(button, input, select, textarea) {
20
+ font: inherit;
21
+ color: inherit;
22
+ letter-spacing: inherit;
23
+ margin: 0;
24
+ }
25
+ .pinfold :where(button) {
26
+ background: none;
27
+ border: 0;
28
+ cursor: pointer;
29
+ touch-action: manipulation;
30
+ -webkit-tap-highlight-color: transparent;
31
+ }
32
+ .pinfold :where(h1, h2, h3, h4, h5, h6, p, figure, dl, dd) {
33
+ margin: 0;
34
+ font-size: inherit;
35
+ font-weight: inherit;
36
+ }
37
+ .pinfold :where(img, svg, video, canvas) {
38
+ display: block;
39
+ max-width: 100%;
40
+ }
41
+ .pinfold :where(svg) {
42
+ flex: none;
43
+ }
44
+ .pinfold ::selection {
45
+ background: var(--pinfold-color-selection);
46
+ }
47
+ .pinfold :where(:focus-visible) {
48
+ outline: var(--pinfold-focus-width) solid transparent;
49
+ outline-offset: var(--pinfold-focus-offset);
50
+ box-shadow: var(--pinfold-focus-ring);
51
+ border-radius: var(--pinfold-radius-xs);
52
+ }
53
+ .pinfold :where(*) {
54
+ scrollbar-width: thin;
55
+ scrollbar-color: var(--pinfold-color-border-strong) transparent;
56
+ }
57
+ .pinfold :where(*)::-webkit-scrollbar {
58
+ width: 10px;
59
+ height: 10px;
60
+ }
61
+ .pinfold :where(*)::-webkit-scrollbar-thumb {
62
+ background: var(--pinfold-color-border-strong);
63
+ border: 3px solid transparent;
64
+ border-radius: var(--pinfold-radius-full);
65
+ background-clip: content-box;
66
+ }
67
+ .pinfold :where(*)::-webkit-scrollbar-track {
68
+ background: transparent;
69
+ }
70
+ @media (prefers-reduced-motion: reduce) {
71
+ .pinfold,
72
+ .pinfold * {
73
+ animation-duration: 0.01ms !important;
74
+ animation-iteration-count: 1 !important;
75
+ transition-duration: 0.01ms !important;
76
+ scroll-behavior: auto !important;
77
+ }
78
+ }
79
+ @media (forced-colors: active) {
80
+ .pinfold :where(:focus-visible) {
81
+ outline-color: Highlight;
82
+ box-shadow: none;
83
+ }
84
+ .pinfold :where([data-state="open"], [data-state="selected"]) {
85
+ forced-color-adjust: none;
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,36 @@
1
+
2
+ :root,
3
+ .dark {
4
+ --background: var(--pinfold-color-bg);
5
+ --foreground: var(--pinfold-color-text);
6
+ --card: var(--pinfold-color-surface);
7
+ --card-foreground: var(--pinfold-color-text);
8
+ --popover: var(--pinfold-color-surface-raised);
9
+ --popover-foreground: var(--pinfold-color-text);
10
+ --primary: var(--pinfold-color-accent);
11
+ --primary-foreground: var(--pinfold-color-accent-contrast);
12
+ --secondary: var(--pinfold-color-bg-subtle);
13
+ --secondary-foreground: var(--pinfold-color-text);
14
+ --muted: var(--pinfold-color-bg-subtle);
15
+ --muted-foreground: var(--pinfold-color-text-muted);
16
+ --accent: var(--pinfold-color-surface-hover);
17
+ --accent-foreground: var(--pinfold-color-text);
18
+ --destructive: var(--pinfold-danger-500);
19
+ --border: var(--pinfold-color-border);
20
+ --input: var(--pinfold-color-border-strong);
21
+ --ring: var(--pinfold-color-ring);
22
+ --radius: var(--pinfold-radius-lg);
23
+ --chart-1: var(--pinfold-primary-500);
24
+ --chart-2: var(--pinfold-info-500);
25
+ --chart-3: var(--pinfold-success-500);
26
+ --chart-4: var(--pinfold-warning-500);
27
+ --chart-5: var(--pinfold-danger-500);
28
+ --sidebar: var(--pinfold-color-bg-subtle);
29
+ --sidebar-foreground: var(--pinfold-color-text);
30
+ --sidebar-primary: var(--pinfold-color-accent);
31
+ --sidebar-primary-foreground: var(--pinfold-color-accent-contrast);
32
+ --sidebar-accent: var(--pinfold-color-surface-hover);
33
+ --sidebar-accent-foreground: var(--pinfold-color-text);
34
+ --sidebar-border: var(--pinfold-color-border);
35
+ --sidebar-ring: var(--pinfold-color-ring);
36
+ }
@@ -0,0 +1,87 @@
1
+ /* Pinfold — Tailwind CSS v4 theme.
2
+ *
3
+ * @import "tailwindcss";
4
+ * @import "@pinfold/css/core.css";
5
+ * @import "@pinfold/css/tailwind.css";
6
+ *
7
+ * Maps Pinfold tokens onto Tailwind's `--color-*` / `--radius-*` namespaces, so
8
+ * `bg-primary-600` and `rounded-lg` follow `npx pinfold theme`, dark mode and any
9
+ * runtime override. For Tailwind v3, use the preset instead.
10
+ */
11
+
12
+ @theme inline {
13
+ --color-primary-50: var(--pinfold-primary-50);
14
+ --color-primary-100: var(--pinfold-primary-100);
15
+ --color-primary-200: var(--pinfold-primary-200);
16
+ --color-primary-300: var(--pinfold-primary-300);
17
+ --color-primary-400: var(--pinfold-primary-400);
18
+ --color-primary-500: var(--pinfold-primary-500);
19
+ --color-primary-600: var(--pinfold-primary-600);
20
+ --color-primary-700: var(--pinfold-primary-700);
21
+ --color-primary-800: var(--pinfold-primary-800);
22
+ --color-primary-900: var(--pinfold-primary-900);
23
+ --color-primary-950: var(--pinfold-primary-950);
24
+
25
+ --color-neutral-50: var(--pinfold-neutral-50);
26
+ --color-neutral-100: var(--pinfold-neutral-100);
27
+ --color-neutral-200: var(--pinfold-neutral-200);
28
+ --color-neutral-300: var(--pinfold-neutral-300);
29
+ --color-neutral-400: var(--pinfold-neutral-400);
30
+ --color-neutral-500: var(--pinfold-neutral-500);
31
+ --color-neutral-600: var(--pinfold-neutral-600);
32
+ --color-neutral-700: var(--pinfold-neutral-700);
33
+ --color-neutral-800: var(--pinfold-neutral-800);
34
+ --color-neutral-900: var(--pinfold-neutral-900);
35
+ --color-neutral-950: var(--pinfold-neutral-950);
36
+
37
+ --color-accent: var(--pinfold-color-accent);
38
+ --color-accent-300: var(--pinfold-accent-300);
39
+ --color-accent-400: var(--pinfold-accent-400);
40
+ --color-accent-500: var(--pinfold-accent-500);
41
+ --color-accent-600: var(--pinfold-accent-600);
42
+ --color-accent-700: var(--pinfold-accent-700);
43
+
44
+ --color-success-500: var(--pinfold-success-500);
45
+ --color-warning-500: var(--pinfold-warning-500);
46
+ --color-danger-500: var(--pinfold-danger-500);
47
+ --color-info-500: var(--pinfold-info-500);
48
+
49
+ --color-bg: var(--pinfold-color-bg);
50
+ --color-bg-subtle: var(--pinfold-color-bg-subtle);
51
+ --color-surface: var(--pinfold-color-surface);
52
+ --color-surface-raised: var(--pinfold-color-surface-raised);
53
+ --color-surface-hover: var(--pinfold-color-surface-hover);
54
+ --color-surface-selected: var(--pinfold-color-surface-selected);
55
+ --color-content: var(--pinfold-color-text);
56
+ --color-content-muted: var(--pinfold-color-text-muted);
57
+ --color-content-subtle: var(--pinfold-color-text-subtle);
58
+ --color-line: var(--pinfold-color-border);
59
+ --color-line-strong: var(--pinfold-color-border-strong);
60
+
61
+ --radius-xs: var(--pinfold-radius-xs);
62
+ --radius-sm: var(--pinfold-radius-sm);
63
+ --radius-md: var(--pinfold-radius-md);
64
+ --radius-lg: var(--pinfold-radius-lg);
65
+ --radius-xl: var(--pinfold-radius-xl);
66
+ --radius-2xl: var(--pinfold-radius-2xl);
67
+
68
+ --font-sans: var(--pinfold-font-sans);
69
+ --font-mono: var(--pinfold-font-mono);
70
+
71
+ --shadow-xs: var(--pinfold-shadow-xs);
72
+ --shadow-sm: var(--pinfold-shadow-sm);
73
+ --shadow-md: var(--pinfold-shadow-md);
74
+ --shadow-lg: var(--pinfold-shadow-lg);
75
+ --shadow-xl: var(--pinfold-shadow-xl);
76
+
77
+ --ease-pinfold: var(--pinfold-ease);
78
+ --ease-pinfold-out: var(--pinfold-ease-out);
79
+ --ease-pinfold-spring: var(--pinfold-ease-spring);
80
+ }
81
+
82
+ /* Variants matching the `data-*` state Pinfold components expose. */
83
+ @custom-variant open (&[data-state="open"]);
84
+ @custom-variant closed (&[data-state="closed"]);
85
+ @custom-variant selected (&[data-state="selected"]);
86
+ @custom-variant disabled-row (&[data-disabled]);
87
+ @custom-variant pinfold-dark (&:is([data-pinfold-theme="dark"] *));