@formant/aesthetics 0.0.4 → 0.0.7

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 (2) hide show
  1. package/dist/components.css +676 -0
  2. package/package.json +20 -4
@@ -0,0 +1,676 @@
1
+ /**
2
+ * @formant/aesthetics - Complete Component Styles
3
+ * This file contains all utility classes used by @formant/aesthetics components.
4
+ * Import this file to get styled components without Tailwind CSS in your project.
5
+ */
6
+
7
+ /* Base Theme */
8
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@300;400;500&display=swap');
9
+
10
+ :root {
11
+ --background: #202428;
12
+ --foreground: #F2F3F4;
13
+ --card: #0A0F11;
14
+ --card-foreground: #F2F3F4;
15
+ --popover: #202428;
16
+ --popover-foreground: #F2F3F4;
17
+ --primary: #ACC3B3;
18
+ --primary-foreground: #0A0F11;
19
+ --secondary: #202428;
20
+ --secondary-foreground: #F2F3F4;
21
+ --muted: #202428;
22
+ --muted-foreground: #A3ABA9;
23
+ --accent: #2C4142;
24
+ --accent-foreground: #F2F3F4;
25
+ --destructive: #E8AB7F;
26
+ --destructive-foreground: #0A0F11;
27
+ --border: rgba(163, 171, 169, 0.1);
28
+ --input: rgba(163, 171, 169, 0.2);
29
+ --ring: #ACC3B3;
30
+ --radius: 0.25rem;
31
+ --font-heading: 'Space Grotesk', sans-serif;
32
+ --font-sans: 'Inter', sans-serif;
33
+ --font-mono: 'JetBrains Mono', monospace;
34
+ }
35
+
36
+ * {
37
+ box-sizing: border-box;
38
+ border-color: var(--border);
39
+ }
40
+
41
+ body {
42
+ background-color: var(--background);
43
+ color: var(--foreground);
44
+ font-family: var(--font-sans);
45
+ margin: 0;
46
+ min-height: 100vh;
47
+ }
48
+
49
+ html {
50
+ font-family: var(--font-sans);
51
+ }
52
+
53
+ h1, h2, h3, h4, h5, h6 {
54
+ font-family: var(--font-heading);
55
+ letter-spacing: -0.02em;
56
+ margin: 0;
57
+ }
58
+
59
+ p { margin: 0; }
60
+
61
+ a {
62
+ color: inherit;
63
+ text-decoration: none;
64
+ }
65
+
66
+ button {
67
+ font-family: inherit;
68
+ }
69
+
70
+ /* Flex & Layout */
71
+ .flex { display: flex; }
72
+ .inline-flex { display: inline-flex; }
73
+ .grid { display: grid; }
74
+ .block { display: block; }
75
+ .inline { display: inline; }
76
+ .hidden { display: none; }
77
+ .contents { display: contents; }
78
+
79
+ /* Grid */
80
+ .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
81
+ .grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
82
+ .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
83
+ .grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
84
+
85
+ /* Flex direction */
86
+ .flex-row { flex-direction: row; }
87
+ .flex-col { flex-direction: column; }
88
+ .flex-row-reverse { flex-direction: row-reverse; }
89
+ .flex-col-reverse { flex-direction: column-reverse; }
90
+
91
+ /* Flex wrap */
92
+ .flex-wrap { flex-wrap: wrap; }
93
+ .flex-nowrap { flex-wrap: nowrap; }
94
+
95
+ /* Alignment */
96
+ .items-start { align-items: flex-start; }
97
+ .items-end { align-items: flex-end; }
98
+ .items-center { align-items: center; }
99
+ .items-baseline { align-items: baseline; }
100
+ .items-stretch { align-items: stretch; }
101
+
102
+ .justify-start { justify-content: flex-start; }
103
+ .justify-end { justify-content: flex-end; }
104
+ .justify-center { justify-content: center; }
105
+ .justify-between { justify-content: space-between; }
106
+ .justify-around { justify-content: space-around; }
107
+ .justify-evenly { justify-content: space-evenly; }
108
+
109
+ /* Flex properties */
110
+ .flex-1 { flex: 1 1 0%; }
111
+ .flex-auto { flex: 1 1 auto; }
112
+ .flex-initial { flex: 0 1 auto; }
113
+ .flex-none { flex: none; }
114
+ .shrink-0 { flex-shrink: 0; }
115
+ .shrink { flex-shrink: 1; }
116
+ .grow { flex-grow: 1; }
117
+ .grow-0 { flex-grow: 0; }
118
+
119
+ /* Spacing - Padding */
120
+ .p-0 { padding: 0; }
121
+ .p-1 { padding: 0.25rem; }
122
+ .p-2 { padding: 0.5rem; }
123
+ .p-3 { padding: 0.75rem; }
124
+ .p-4 { padding: 1rem; }
125
+ .p-5 { padding: 1.25rem; }
126
+ .p-6 { padding: 1.5rem; }
127
+ .p-8 { padding: 2rem; }
128
+
129
+ .px-0 { padding-left: 0; padding-right: 0; }
130
+ .px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
131
+ .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
132
+ .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
133
+ .px-4 { padding-left: 1rem; padding-right: 1rem; }
134
+ .px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
135
+ .px-8 { padding-left: 2rem; padding-right: 2rem; }
136
+
137
+ .py-0 { padding-top: 0; padding-bottom: 0; }
138
+ .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
139
+ .py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
140
+ .py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
141
+ .py-4 { padding-top: 1rem; padding-bottom: 1rem; }
142
+ .py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
143
+ .py-8 { padding-top: 2rem; padding-bottom: 2rem; }
144
+
145
+ .pb-0 { padding-bottom: 0; }
146
+ .pb-2 { padding-bottom: 0.5rem; }
147
+ .pb-4 { padding-bottom: 1rem; }
148
+ .pb-6 { padding-bottom: 1.5rem; }
149
+
150
+ .pt-0 { padding-top: 0; }
151
+ .pt-4 { padding-top: 1rem; }
152
+ .pt-6 { padding-top: 1.5rem; }
153
+
154
+ .pl-4 { padding-left: 1rem; }
155
+ .pl-8 { padding-left: 2rem; }
156
+
157
+ .pr-2 { padding-right: 0.5rem; }
158
+ .pr-4 { padding-right: 1rem; }
159
+
160
+ /* Spacing - Margin */
161
+ .m-0 { margin: 0; }
162
+ .m-1 { margin: 0.25rem; }
163
+ .m-2 { margin: 0.5rem; }
164
+ .m-4 { margin: 1rem; }
165
+ .m-auto { margin: auto; }
166
+
167
+ .mx-auto { margin-left: auto; margin-right: auto; }
168
+ .mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
169
+ .mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
170
+ .mx-4 { margin-left: 1rem; margin-right: 1rem; }
171
+
172
+ .my-0 { margin-top: 0; margin-bottom: 0; }
173
+ .my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
174
+ .my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; }
175
+ .my-4 { margin-top: 1rem; margin-bottom: 1rem; }
176
+
177
+ .mb-0 { margin-bottom: 0; }
178
+ .mb-1 { margin-bottom: 0.25rem; }
179
+ .mb-2 { margin-bottom: 0.5rem; }
180
+ .mb-4 { margin-bottom: 1rem; }
181
+ .mb-6 { margin-bottom: 1.5rem; }
182
+ .mb-8 { margin-bottom: 2rem; }
183
+
184
+ .mt-0 { margin-top: 0; }
185
+ .mt-1 { margin-top: 0.25rem; }
186
+ .mt-2 { margin-top: 0.5rem; }
187
+ .mt-4 { margin-top: 1rem; }
188
+ .mt-6 { margin-top: 1.5rem; }
189
+ .mt-8 { margin-top: 2rem; }
190
+
191
+ .ml-1 { margin-left: 0.25rem; }
192
+ .ml-2 { margin-left: 0.5rem; }
193
+ .ml-4 { margin-left: 1rem; }
194
+ .ml-auto { margin-left: auto; }
195
+
196
+ .mr-1 { margin-right: 0.25rem; }
197
+ .mr-2 { margin-right: 0.5rem; }
198
+ .mr-4 { margin-right: 1rem; }
199
+
200
+ .-mx-1 { margin-left: -0.25rem; margin-right: -0.25rem; }
201
+ .-mx-4 { margin-left: -1rem; margin-right: -1rem; }
202
+
203
+ .-my-1 { margin-top: -0.25rem; margin-bottom: -0.25rem; }
204
+ .-mb-4 { margin-bottom: -1rem; }
205
+
206
+ /* Gap */
207
+ .gap-0 { gap: 0; }
208
+ .gap-1 { gap: 0.25rem; }
209
+ .gap-2 { gap: 0.5rem; }
210
+ .gap-3 { gap: 0.75rem; }
211
+ .gap-4 { gap: 1rem; }
212
+ .gap-6 { gap: 1.5rem; }
213
+ .gap-8 { gap: 2rem; }
214
+
215
+ /* Space between */
216
+ .space-y-0 > * + * { margin-top: 0; }
217
+ .space-y-1 > * + * { margin-top: 0.25rem; }
218
+ .space-y-2 > * + * { margin-top: 0.5rem; }
219
+ .space-y-4 > * + * { margin-top: 1rem; }
220
+ .space-y-6 > * + * { margin-top: 1.5rem; }
221
+ .space-y-8 > * + * { margin-top: 2rem; }
222
+
223
+ .space-x-0 > * + * { margin-left: 0; }
224
+ .space-x-1 > * + * { margin-left: 0.25rem; }
225
+ .space-x-2 > * + * { margin-left: 0.5rem; }
226
+ .space-x-4 > * + * { margin-left: 1rem; }
227
+ .space-x-8 > * + * { margin-left: 2rem; }
228
+
229
+ /* Width */
230
+ .w-full { width: 100%; }
231
+ .w-auto { width: auto; }
232
+ .w-fit { width: fit-content; }
233
+ .w-min { width: min-content; }
234
+ .w-max { width: max-content; }
235
+
236
+ /* Height */
237
+ .h-full { height: 100%; }
238
+ .h-auto { height: auto; }
239
+ .h-fit { height: fit-content; }
240
+ .h-min { height: min-content; }
241
+ .h-max { height: max-content; }
242
+
243
+ /* Size */
244
+ .size-4 { width: 1rem; height: 1rem; }
245
+ .size-8 { width: 2rem; height: 2rem; }
246
+ .size-9 { width: 2.25rem; height: 2.25rem; }
247
+ .size-10 { width: 2.5rem; height: 2.5rem; }
248
+
249
+ /* Min/Max width */
250
+ .min-w-0 { min-width: 0px; }
251
+ .min-w-full { min-width: 100%; }
252
+ .min-w-fit { min-width: fit-content; }
253
+ .min-w-max { min-width: max-content; }
254
+ .min-w-min { min-width: min-content; }
255
+
256
+ .max-w-full { max-width: 100%; }
257
+ .max-w-sm { max-width: 24rem; }
258
+ .max-w-md { max-width: 28rem; }
259
+ .max-w-lg { max-width: 32rem; }
260
+ .max-w-xl { max-width: 36rem; }
261
+ .max-w-2xl { max-width: 42rem; }
262
+ .max-w-3xl { max-width: 48rem; }
263
+ .max-w-4xl { max-width: 56rem; }
264
+ .max-w-5xl { max-width: 64rem; }
265
+ .max-w-96 { max-width: 24rem; }
266
+ .max-w-fit { max-width: fit-content; }
267
+
268
+ /* Min/Max height */
269
+ .min-h-full { min-height: 100%; }
270
+ .min-h-screen { min-height: 100vh; }
271
+ .min-h-svh { min-height: 100svh; }
272
+
273
+ .max-h-full { max-height: 100%; }
274
+ .max-h-screen { max-height: 100vh; }
275
+
276
+ /* Position */
277
+ .relative { position: relative; }
278
+ .absolute { position: absolute; }
279
+ .fixed { position: fixed; }
280
+ .sticky { position: sticky; }
281
+ .static { position: static; }
282
+
283
+ .inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
284
+ .inset-x-0 { left: 0; right: 0; }
285
+ .inset-y-0 { top: 0; bottom: 0; }
286
+
287
+ .top-0 { top: 0; }
288
+ .top-1 { top: 0.25rem; }
289
+ .top-2 { top: 0.5rem; }
290
+ .top-4 { top: 1rem; }
291
+ .top-full { top: 100%; }
292
+
293
+ .bottom-0 { bottom: 0; }
294
+ .bottom-2 { bottom: 0.5rem; }
295
+ .bottom-4 { bottom: 1rem; }
296
+ .bottom-full { bottom: 100%; }
297
+
298
+ .left-0 { left: 0; }
299
+ .left-1 { left: 0.25rem; }
300
+ .left-2 { left: 0.5rem; }
301
+ .left-full { left: 100%; }
302
+
303
+ .right-0 { right: 0; }
304
+ .right-1 { right: 0.25rem; }
305
+ .right-2 { right: 0.5rem; }
306
+ .right-full { right: 100%; }
307
+
308
+ /* Z-index */
309
+ .z-0 { z-index: 0; }
310
+ .z-10 { z-index: 10; }
311
+ .z-20 { z-index: 20; }
312
+ .z-30 { z-index: 30; }
313
+ .z-40 { z-index: 40; }
314
+ .z-50 { z-index: 50; }
315
+
316
+ /* Overflow */
317
+ .overflow-auto { overflow: auto; }
318
+ .overflow-hidden { overflow: hidden; }
319
+ .overflow-visible { overflow: visible; }
320
+ .overflow-scroll { overflow: scroll; }
321
+ .overflow-x-auto { overflow-x: auto; }
322
+ .overflow-y-auto { overflow-y: auto; }
323
+ .overflow-x-hidden { overflow-x: hidden; }
324
+ .overflow-y-hidden { overflow-y: hidden; }
325
+
326
+ /* Text overflow */
327
+ .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
328
+ .text-ellipsis { text-overflow: ellipsis; }
329
+ .text-clip { text-overflow: clip; }
330
+ .whitespace-nowrap { white-space: nowrap; }
331
+ .whitespace-pre { white-space: pre; }
332
+ .whitespace-pre-wrap { white-space: pre-wrap; }
333
+ .whitespace-pre-line { white-space: pre-line; }
334
+ .whitespace-normal { white-space: normal; }
335
+
336
+ /* Border Radius */
337
+ .rounded-none { border-radius: 0; }
338
+ .rounded-sm { border-radius: calc(var(--radius) * 0.6); }
339
+ .rounded { border-radius: var(--radius); }
340
+ .rounded-md { border-radius: calc(var(--radius) * 0.8); }
341
+ .rounded-lg { border-radius: var(--radius); }
342
+ .rounded-xl { border-radius: calc(var(--radius) * 1.4); }
343
+ .rounded-2xl { border-radius: calc(var(--radius) * 1.8); }
344
+ .rounded-3xl { border-radius: calc(var(--radius) * 2.2); }
345
+ .rounded-full { border-radius: 9999px; }
346
+
347
+ .rounded-t-none { border-top-left-radius: 0; border-top-right-radius: 0; }
348
+ .rounded-t { border-top-left-radius: var(--radius); border-top-right-radius: var(--radius); }
349
+ .rounded-b { border-bottom-left-radius: var(--radius); border-bottom-right-radius: var(--radius); }
350
+ .rounded-b-xl { border-bottom-left-radius: calc(var(--radius) * 1.4); border-bottom-right-radius: calc(var(--radius) * 1.4); }
351
+ .rounded-l { border-top-left-radius: var(--radius); border-bottom-left-radius: var(--radius); }
352
+ .rounded-r { border-top-right-radius: var(--radius); border-bottom-right-radius: var(--radius); }
353
+ .rounded-tl { border-top-left-radius: var(--radius); }
354
+ .rounded-tr { border-top-right-radius: var(--radius); }
355
+ .rounded-bl { border-bottom-left-radius: var(--radius); }
356
+ .rounded-br { border-bottom-right-radius: var(--radius); }
357
+
358
+ /* Border width */
359
+ .border-0 { border-width: 0px; }
360
+ .border { border-width: 1px; }
361
+ .border-2 { border-width: 2px; }
362
+ .border-4 { border-width: 4px; }
363
+ .border-8 { border-width: 8px; }
364
+
365
+ .border-t { border-top-width: 1px; }
366
+ .border-t-2 { border-top-width: 2px; }
367
+ .border-b { border-bottom-width: 1px; }
368
+ .border-l { border-left-width: 1px; }
369
+ .border-r { border-right-width: 1px; }
370
+
371
+ /* Border style */
372
+ .border-solid { border-style: solid; }
373
+ .border-dashed { border-style: dashed; }
374
+ .border-dotted { border-style: dotted; }
375
+ .border-double { border-style: double; }
376
+ .border-hidden { border-style: hidden; }
377
+ .border-none { border-style: none; }
378
+
379
+ /* Border color */
380
+ .border-transparent { border-color: transparent; }
381
+ .border-inherit { border-color: inherit; }
382
+ .border-current { border-color: currentColor; }
383
+
384
+ /* Background color using theme */
385
+ .bg-background { background-color: var(--background); }
386
+ .bg-foreground { background-color: var(--foreground); }
387
+ .bg-card { background-color: var(--card); }
388
+ .bg-card-foreground { background-color: var(--card-foreground); }
389
+ .bg-popover { background-color: var(--popover); }
390
+ .bg-popover-foreground { background-color: var(--popover-foreground); }
391
+ .bg-primary { background-color: var(--primary); }
392
+ .bg-primary-foreground { background-color: var(--primary-foreground); }
393
+ .bg-secondary { background-color: var(--secondary); }
394
+ .bg-secondary-foreground { background-color: var(--secondary-foreground); }
395
+ .bg-muted { background-color: var(--muted); }
396
+ .bg-muted-foreground { background-color: var(--muted-foreground); }
397
+ .bg-accent { background-color: var(--accent); }
398
+ .bg-accent-foreground { background-color: var(--accent-foreground); }
399
+ .bg-destructive { background-color: var(--destructive); }
400
+ .bg-destructive-foreground { background-color: var(--destructive-foreground); }
401
+ .bg-border { background-color: var(--border); }
402
+ .bg-input { background-color: var(--input); }
403
+ .bg-ring { background-color: var(--ring); }
404
+ .bg-transparent { background-color: transparent; }
405
+ .bg-black { background-color: #000; }
406
+ .bg-white { background-color: #fff; }
407
+
408
+ /* Text color using theme */
409
+ .text-background { color: var(--background); }
410
+ .text-foreground { color: var(--foreground); }
411
+ .text-card { color: var(--card); }
412
+ .text-card-foreground { color: var(--card-foreground); }
413
+ .text-popover { color: var(--popover); }
414
+ .text-popover-foreground { color: var(--popover-foreground); }
415
+ .text-primary { color: var(--primary); }
416
+ .text-primary-foreground { color: var(--primary-foreground); }
417
+ .text-secondary { color: var(--secondary); }
418
+ .text-secondary-foreground { color: var(--secondary-foreground); }
419
+ .text-muted { color: var(--muted); }
420
+ .text-muted-foreground { color: var(--muted-foreground); }
421
+ .text-accent { color: var(--accent); }
422
+ .text-accent-foreground { color: var(--accent-foreground); }
423
+ .text-destructive { color: var(--destructive); }
424
+ .text-destructive-foreground { color: var(--destructive-foreground); }
425
+ .text-transparent { color: transparent; }
426
+ .text-black { color: #000; }
427
+ .text-white { color: #fff; }
428
+
429
+ /* Font size */
430
+ .text-xs { font-size: 0.75rem; line-height: 1rem; }
431
+ .text-sm { font-size: 0.875rem; line-height: 1.25rem; }
432
+ .text-base { font-size: 1rem; line-height: 1.5rem; }
433
+ .text-lg { font-size: 1.125rem; line-height: 1.75rem; }
434
+ .text-xl { font-size: 1.25rem; line-height: 1.75rem; }
435
+ .text-2xl { font-size: 1.5rem; line-height: 2rem; }
436
+ .text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
437
+
438
+ /* Font weight */
439
+ .font-light { font-weight: 300; }
440
+ .font-normal { font-weight: 400; }
441
+ .font-medium { font-weight: 500; }
442
+ .font-semibold { font-weight: 600; }
443
+ .font-bold { font-weight: 700; }
444
+
445
+ /* Line height */
446
+ .leading-3 { line-height: .75rem; }
447
+ .leading-4 { line-height: 1rem; }
448
+ .leading-5 { line-height: 1.25rem; }
449
+ .leading-6 { line-height: 1.5rem; }
450
+ .leading-7 { line-height: 1.75rem; }
451
+ .leading-8 { line-height: 2rem; }
452
+ .leading-none { line-height: 1; }
453
+ .leading-tight { line-height: 1.25; }
454
+ .leading-snug { line-height: 1.375; }
455
+ .leading-normal { line-height: 1.5; }
456
+ .leading-relaxed { line-height: 1.625; }
457
+
458
+ /* Letter spacing */
459
+ .tracking-tight { letter-spacing: -0.025em; }
460
+ .tracking-normal { letter-spacing: 0em; }
461
+ .tracking-wide { letter-spacing: 0.025em; }
462
+ .tracking-wider { letter-spacing: 0.05em; }
463
+ .tracking-widest { letter-spacing: 0.1em; }
464
+
465
+ /* Text alignment */
466
+ .text-left { text-align: left; }
467
+ .text-center { text-align: center; }
468
+ .text-right { text-align: right; }
469
+ .text-justify { text-align: justify; }
470
+ .text-start { text-align: start; }
471
+ .text-end { text-align: end; }
472
+
473
+ /* Text transform */
474
+ .uppercase { text-transform: uppercase; }
475
+ .lowercase { text-transform: lowercase; }
476
+ .capitalize { text-transform: capitalize; }
477
+ .normal-case { text-transform: none; }
478
+
479
+ /* Text decoration */
480
+ .underline { text-decoration-line: underline; }
481
+ .overline { text-decoration-line: overline; }
482
+ .line-through { text-decoration-line: line-through; }
483
+ .no-underline { text-decoration-line: none; }
484
+
485
+ /* Cursor */
486
+ .cursor-auto { cursor: auto; }
487
+ .cursor-default { cursor: default; }
488
+ .cursor-pointer { cursor: pointer; }
489
+ .cursor-wait { cursor: wait; }
490
+ .cursor-text { cursor: text; }
491
+ .cursor-move { cursor: move; }
492
+ .cursor-help { cursor: help; }
493
+ .cursor-not-allowed { cursor: not-allowed; }
494
+
495
+ /* Pointer events */
496
+ .pointer-events-auto { pointer-events: auto; }
497
+ .pointer-events-none { pointer-events: none; }
498
+
499
+ /* Select */
500
+ .select-none { user-select: none; }
501
+ .select-text { user-select: text; }
502
+ .select-all { user-select: all; }
503
+ .select-auto { user-select: auto; }
504
+
505
+ /* Resize */
506
+ .resize-none { resize: none; }
507
+ .resize-y { resize: vertical; }
508
+ .resize-x { resize: horizontal; }
509
+ .resize { resize: both; }
510
+
511
+ /* Appearance */
512
+ .appearance-none { appearance: none; }
513
+
514
+ /* Scroll behavior */
515
+ .scroll-auto { scroll-behavior: auto; }
516
+ .scroll-smooth { scroll-behavior: smooth; }
517
+
518
+ /* List style */
519
+ .list-none { list-style-type: none; }
520
+ .list-disc { list-style-type: disc; }
521
+ .list-decimal { list-style-type: decimal; }
522
+
523
+ /* Outline */
524
+ .outline-none { outline: 2px solid transparent; outline-offset: 2px; }
525
+
526
+ /* Ring */
527
+ .ring-0 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
528
+ .ring-1 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
529
+ .ring-2 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
530
+
531
+ /* Focus ring */
532
+ .focus-visible\:ring-2:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
533
+ .focus-visible\:outline-none:focus-visible { outline: 2px solid transparent; outline-offset: 2px; }
534
+
535
+ /* Shadow */
536
+ .shadow-sm { box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }
537
+ .shadow { box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); }
538
+ .shadow-md { box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); }
539
+ .shadow-lg { box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); }
540
+ .shadow-xl { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); }
541
+
542
+ /* Opacity */
543
+ .opacity-0 { opacity: 0; }
544
+ .opacity-25 { opacity: 0.25; }
545
+ .opacity-50 { opacity: 0.5; }
546
+ .opacity-75 { opacity: 0.75; }
547
+ .opacity-100 { opacity: 1; }
548
+
549
+ /* Screen readers */
550
+ .sr-only {
551
+ position: absolute;
552
+ width: 1px;
553
+ height: 1px;
554
+ padding: 0;
555
+ margin: -1px;
556
+ overflow: hidden;
557
+ clip: rect(0, 0, 0, 0);
558
+ white-space: nowrap;
559
+ border-width: 0;
560
+ }
561
+
562
+ .not-sr-only {
563
+ position: static;
564
+ width: auto;
565
+ height: auto;
566
+ padding: 0;
567
+ margin: 0;
568
+ overflow: visible;
569
+ clip: auto;
570
+ white-space: normal;
571
+ }
572
+
573
+ /* Print */
574
+ .print\:hidden { display: none; }
575
+
576
+ /* Line clamp */
577
+ .line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
578
+ .line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
579
+ .line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
580
+
581
+ /* Placeholder */
582
+ .placeholder\:text-muted-foreground::placeholder { color: var(--muted-foreground); }
583
+
584
+ /* File */
585
+ .file\:border-0::file-selector-button { border-width: 0px; }
586
+ .file\:bg-transparent::file-selector-button { background-color: transparent; }
587
+ .file\:text-sm::file-selector-button { font-size: 0.875rem; line-height: 1.25rem; }
588
+ .file\:font-medium::file-selector-button { font-weight: 500; }
589
+
590
+ /* Marker */
591
+ .marker\:text-foreground *::marker { color: var(--foreground); }
592
+
593
+ /* Selection */
594
+ .selection\:bg-primary *::selection { background-color: var(--primary); }
595
+ .selection\:text-primary-foreground *::selection { color: var(--primary-foreground); }
596
+
597
+ /* Animations */
598
+ @keyframes fadeUp {
599
+ from { opacity: 0; transform: translateY(24px); }
600
+ to { opacity: 1; transform: translateY(0); }
601
+ }
602
+
603
+ .animate-fade-up { animation: fadeUp 0.7s ease forwards; }
604
+
605
+ /* Section label */
606
+ .section-label {
607
+ font-family: 'JetBrains Mono', monospace;
608
+ font-size: 10px;
609
+ letter-spacing: 0.3em;
610
+ color: #E8AB7F;
611
+ text-transform: uppercase;
612
+ display: flex;
613
+ align-items: center;
614
+ gap: 12px;
615
+ }
616
+
617
+ .section-label::before {
618
+ content: '';
619
+ display: block;
620
+ width: 24px;
621
+ height: 1px;
622
+ background: #E8AB7F;
623
+ }
624
+
625
+ /* Brand colors */
626
+ .bg-deep-command { background-color: #0A0F11; }
627
+ .bg-slate-mist { background-color: #202428; }
628
+ .bg-formant-white { background-color: #F2F3F4; }
629
+ .bg-horizon-glow { background-color: #ACC3B3; }
630
+ .bg-terminal-amber { background-color: #E8AB7F; }
631
+
632
+ .text-horizon-glow { color: #ACC3B3; }
633
+ .text-terminal-amber { color: #E8AB7F; }
634
+ .text-muted-foreground { color: var(--muted-foreground); }
635
+
636
+ /* Border utilities */
637
+ .border-border { border-color: var(--border); }
638
+ .border-input { border-color: var(--input); }
639
+ .border-ring { border-color: var(--ring); }
640
+
641
+ /* Focus utilities */
642
+ .focus-visible\:ring-1:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
643
+ .focus-visible\:ring-ring\/50:focus-visible { --tw-ring-color: rgb(var(--ring) / 0.5); }
644
+ .focus-visible\:ring-offset-2:focus-visible { --tw-ring-offset-width: 2px; }
645
+ .focus-visible\:ring-offset-background:focus-visible { --tw-ring-offset-color: var(--background); }
646
+
647
+ /* Disabled */
648
+ .disabled\:pointer-events-none:disabled { pointer-events: none; }
649
+ .disabled\:opacity-50:disabled { opacity: 0.5; }
650
+ .disabled\:cursor-not-allowed:disabled { cursor: not-allowed; }
651
+
652
+ /* Active */
653
+ .active\:translate-y-px:active { --tw-translate-y: 1px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
654
+
655
+ /* ARIA states */
656
+ .aria-invalid\:border-destructive[aria-invalid="true"] { border-color: var(--destructive); }
657
+ .aria-invalid\:ring-2[aria-invalid="true"] { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
658
+ .aria-invalid\:ring-destructive\/20[aria-invalid="true"] { --tw-ring-color: rgb(var(--destructive) / 0.2); }
659
+
660
+ /* Data states */
661
+ .data\[state\=checked\]\:bg-primary[data-state="checked"] { background-color: var(--primary); }
662
+ .data\[state\=checked\]\:text-primary-foreground[data-state="checked"] { color: var(--primary-foreground); }
663
+ .data\[state\=open\]\:bg-accent[data-state="open"] { background-color: var(--accent); }
664
+ .data\[state\=open\]\:text-accent-foreground[data-state="open"] { color: var(--accent-foreground); }
665
+
666
+ /* Group hover */
667
+ .group:hover .group-hover\:text-accent-foreground { color: var(--accent-foreground); }
668
+
669
+ /* Group data */
670
+ .group[data-state="open"] .group-data\[state\=open\]\:text-accent-foreground { color: var(--accent-foreground); }
671
+
672
+ /* Custom scrollbar */
673
+ ::-webkit-scrollbar { width: 8px; height: 8px; }
674
+ ::-webkit-scrollbar-track { background: #0A0F11; }
675
+ ::-webkit-scrollbar-thumb { background: #4B5E53; border-radius: 4px; }
676
+ ::-webkit-scrollbar-thumb:hover { background: #ACC3B3; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formant/aesthetics",
3
- "version": "0.0.4",
3
+ "version": "0.0.7",
4
4
  "type": "module",
5
5
  "description": "Formant design system — themed React components built on shadcn/ui and Radix UI",
6
6
  "license": "MIT",
@@ -18,7 +18,9 @@
18
18
  "shadcn",
19
19
  "radix-ui"
20
20
  ],
21
- "sideEffects": false,
21
+ "sideEffects": [
22
+ "*.css"
23
+ ],
22
24
  "main": "./dist/index.js",
23
25
  "module": "./dist/index.js",
24
26
  "types": "./dist/index.d.ts",
@@ -27,14 +29,28 @@
27
29
  "import": "./dist/index.js",
28
30
  "types": "./dist/index.d.ts"
29
31
  },
30
- "./styles": "./styles/globals.css"
32
+ "./components.css": {
33
+ "import": "./dist/components.css",
34
+ "require": "./dist/components.css",
35
+ "default": "./dist/components.css"
36
+ },
37
+ "./styles": {
38
+ "import": "./styles/globals.css",
39
+ "require": "./styles/globals.css",
40
+ "default": "./styles/globals.css"
41
+ },
42
+ "./styles/globals.css": {
43
+ "import": "./styles/globals.css",
44
+ "require": "./styles/globals.css",
45
+ "default": "./styles/globals.css"
46
+ }
31
47
  },
32
48
  "files": [
33
49
  "dist",
34
50
  "styles"
35
51
  ],
36
52
  "scripts": {
37
- "build": "tsup",
53
+ "build": "tsup && node scripts/generate-css.mjs",
38
54
  "dev": "tsup --watch",
39
55
  "typecheck": "tsc --noEmit",
40
56
  "prepublishOnly": "npm run build"