@formant/aesthetics 0.0.10 → 0.1.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.
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Formant Layout Utilities
3
+ * Version: 2026.1
4
+ *
5
+ * Optional layout helpers using data-variant attributes.
6
+ * These are NOT part of the core classless CSS - import separately when needed.
7
+ *
8
+ * Usage:
9
+ * <link rel="stylesheet" href="formant-aesthetics.css">
10
+ * <link rel="stylesheet" href="formant-layout-utilities.css">
11
+ */
12
+
13
+ /* ==========================================================================
14
+ Grid - Responsive auto-fit grid
15
+ ========================================================================== */
16
+ [data-variant="grid"] {
17
+ display: grid;
18
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
19
+ gap: var(--formant-space-8);
20
+ margin: var(--formant-space-8) 0;
21
+ }
22
+
23
+ /* ==========================================================================
24
+ Stack - Vertical flex layout
25
+ ========================================================================== */
26
+ [data-variant="stack"] {
27
+ display: flex;
28
+ flex-direction: column;
29
+ gap: var(--formant-space-2);
30
+ }
31
+
32
+ /* ==========================================================================
33
+ Row - Horizontal flex layout with center alignment
34
+ ========================================================================== */
35
+ [data-variant="row"] {
36
+ display: flex;
37
+ align-items: center;
38
+ gap: 0.75rem;
39
+ }
40
+
41
+ /* ==========================================================================
42
+ Center - Centered flex container (full height)
43
+ ========================================================================== */
44
+ [data-variant="center"] {
45
+ display: flex;
46
+ flex-direction: column;
47
+ align-items: center;
48
+ justify-content: center;
49
+ height: 100%;
50
+ text-align: center;
51
+ gap: 1rem;
52
+ }
53
+
54
+ /* ==========================================================================
55
+ Suggestions - Wrapped horizontal button row
56
+ ========================================================================== */
57
+ [data-variant="suggestions"] {
58
+ display: flex;
59
+ gap: 0.5rem;
60
+ flex-wrap: wrap;
61
+ justify-content: center;
62
+ }
63
+
64
+ /* ==========================================================================
65
+ Responsive Adjustments
66
+ ========================================================================== */
67
+ @media (max-width: 900px) {
68
+ [data-variant="grid"] {
69
+ grid-template-columns: 1fr 1fr;
70
+ }
71
+ }
72
+
73
+ @media (max-width: 600px) {
74
+ [data-variant="grid"] {
75
+ grid-template-columns: 1fr;
76
+ }
77
+
78
+ [data-variant="row"] {
79
+ flex-wrap: wrap;
80
+ }
81
+ }
@@ -0,0 +1,474 @@
1
+ /**
2
+ * Formant Properties - CSS Custom Properties (Themed Naming)
3
+ * Version: 2026.1-theme
4
+ *
5
+ * Systematic CSS custom properties using theme-based naming with indexed arrays.
6
+ *
7
+ * Usage:
8
+ * @import url('formant-properties.css');
9
+ *
10
+ * .my-component {
11
+ * background-color: var(--theme-neutrals-0);
12
+ * color: var(--theme-atmospheric-accents-2);
13
+ * font-family: var(--font-display);
14
+ * }
15
+ */
16
+
17
+ /* ==========================================================================
18
+ THEME COLORS - Neutrals (0-3)
19
+ ========================================================================== */
20
+ :root {
21
+ /**
22
+ * --theme-neutrals-0: Deep Command
23
+ * Darkest neutral - primary backgrounds, the void
24
+ */
25
+ --theme-neutrals-0: #0A0F11;
26
+ --theme-neutrals-0-rgb: 10, 15, 17;
27
+
28
+ /**
29
+ * --theme-neutrals-1: Slate Mist
30
+ * Second darkest - card backgrounds, secondary surfaces
31
+ */
32
+ --theme-neutrals-1: #202428;
33
+ --theme-neutrals-1-rgb: 32, 36, 40;
34
+
35
+ /**
36
+ * --theme-neutrals-2: System Neutral
37
+ * Mid-tone - body text, captions, secondary content
38
+ * Base for opacity-based border system
39
+ */
40
+ --theme-neutrals-2: #A3ABA9;
41
+ --theme-neutrals-2-rgb: 163, 171, 169;
42
+
43
+ /**
44
+ * --theme-neutrals-3: Formant White
45
+ * Lightest neutral - primary text, headlines
46
+ */
47
+ --theme-neutrals-3: #F2F3F4;
48
+ --theme-neutrals-3-rgb: 242, 243, 244;
49
+
50
+ /* ==========================================================================
51
+ THEME COLORS - Atmospheric Accents (0-2)
52
+ ========================================================================== */
53
+
54
+ /**
55
+ * --theme-atmospheric-accents-0: Ethereal Teal
56
+ * Active states, hover backgrounds, subtle elevation
57
+ * "Something is happening here" indicator
58
+ */
59
+ --theme-atmospheric-accents-0: #2C4142;
60
+ --theme-atmospheric-accents-0-rgb: 44, 65, 66;
61
+
62
+ /**
63
+ * --theme-atmospheric-accents-1: Fog Green
64
+ * Borders, dividers, muted accents, field names
65
+ * The structural color - present everywhere, visible nowhere
66
+ */
67
+ --theme-atmospheric-accents-1: #4B5E53;
68
+ --theme-atmospheric-accents-1-rgb: 75, 94, 83;
69
+
70
+ /**
71
+ * --theme-atmospheric-accents-2: Horizon Glow
72
+ * Primary CTAs, interactive elements, success states, links
73
+ * Muted green accent - guides without demanding
74
+ */
75
+ --theme-atmospheric-accents-2: #ACC3B3;
76
+ --theme-atmospheric-accents-2-rgb: 172, 195, 179;
77
+
78
+ /* ==========================================================================
79
+ THEME COLORS - Functional Accents (0-1)
80
+ ========================================================================== */
81
+
82
+ /**
83
+ * --theme-functional-accents-0: Terminal Amber
84
+ * Warnings, eyebrow text, alarm labels
85
+ * The amber glow of a critical instrument reading
86
+ */
87
+ --theme-functional-accents-0: #E8AB7F;
88
+ --theme-functional-accents-0-rgb: 232, 171, 127;
89
+
90
+ /**
91
+ * --theme-functional-accents-1: Interface Iris
92
+ * AI states, system intelligence indicators
93
+ * Reserved for moments where the system acts autonomously
94
+ */
95
+ --theme-functional-accents-1: #8B8CF4;
96
+ --theme-functional-accents-1-rgb: 139, 140, 244;
97
+
98
+ /* ==========================================================================
99
+ SEMANTIC MAPPINGS - Backgrounds
100
+ ========================================================================== */
101
+ --formant-bg-primary: var(--theme-neutrals-0);
102
+ --formant-bg-secondary: var(--theme-neutrals-1);
103
+ --formant-bg-elevated: var(--theme-neutrals-1);
104
+ --formant-bg-interactive: rgba(44, 65, 66, 0.2);
105
+
106
+ /* ==========================================================================
107
+ SEMANTIC MAPPINGS - Text
108
+ ========================================================================== */
109
+ --formant-text-primary: var(--theme-neutrals-3);
110
+ --formant-text-secondary: var(--theme-neutrals-2);
111
+ --formant-text-muted: rgba(163, 171, 169, 0.6);
112
+
113
+ /* ==========================================================================
114
+ SEMANTIC MAPPINGS - Interactive/Accent
115
+ ========================================================================== */
116
+ --formant-accent-primary: var(--theme-atmospheric-accents-2);
117
+ --formant-accent-secondary: var(--theme-atmospheric-accents-0);
118
+ --formant-accent-warning: var(--theme-functional-accents-0);
119
+ --formant-accent-ai: var(--theme-functional-accents-1);
120
+
121
+ /* ==========================================================================
122
+ SEMANTIC MAPPINGS - Status
123
+ ========================================================================== */
124
+ --formant-status-success: var(--theme-atmospheric-accents-2);
125
+ --formant-status-warning: var(--theme-functional-accents-0);
126
+ --formant-status-error: var(--theme-functional-accents-0);
127
+ --formant-status-info: var(--theme-functional-accents-1);
128
+ --formant-status-ai-active: var(--theme-functional-accents-1);
129
+
130
+ /* ==========================================================================
131
+ BORDER SYSTEM - Opacity-based (never solid on dark backgrounds)
132
+ ========================================================================== */
133
+ --formant-border-subtle: rgba(163, 171, 169, 0.1);
134
+ --formant-border-default: rgba(163, 171, 169, 0.2);
135
+ --formant-border-strong: rgba(163, 171, 169, 0.4);
136
+ --formant-border-focus: var(--theme-atmospheric-accents-2);
137
+
138
+ /* ==========================================================================
139
+ TYPOGRAPHY - Font Families (Theme Tokens)
140
+ ========================================================================== */
141
+
142
+ /**
143
+ * --font-display: Space Grotesk
144
+ * The architectural voice - headlines, display text, H1-H6
145
+ */
146
+ --font-display: 'Space Grotesk', sans-serif;
147
+
148
+ /**
149
+ * --font-body: Inter
150
+ * The human voice - body text, paragraphs, UI elements
151
+ */
152
+ --font-body: 'Inter', sans-serif;
153
+
154
+ /**
155
+ * --font-monospace: JetBrains Mono
156
+ * The machine voice - code, data, labels, system status
157
+ */
158
+ --font-monospace: 'JetBrains Mono', monospace;
159
+
160
+ /* ==========================================================================
161
+ TYPOGRAPHY - Legacy Font Tokens (for backwards compatibility)
162
+ ========================================================================== */
163
+ --formant-font-heading: var(--font-display);
164
+ --formant-font-body: var(--font-body);
165
+ --formant-font-mono: var(--font-monospace);
166
+
167
+ /* ==========================================================================
168
+ TYPOGRAPHY - Font Weights
169
+ ========================================================================== */
170
+ --formant-weight-light: 300;
171
+ --formant-weight-regular: 400;
172
+ --formant-weight-medium: 500;
173
+ --formant-weight-semibold: 600;
174
+ --formant-weight-bold: 700;
175
+
176
+ /* ==========================================================================
177
+ TYPOGRAPHY - Letter Spacing (Tracking)
178
+ ========================================================================== */
179
+ --formant-tracking-tight: -0.02em;
180
+ --formant-tracking-normal: 0;
181
+ --formant-tracking-wide: 0.02em;
182
+ --formant-tracking-wider: 0.08em;
183
+ --formant-tracking-mono: 0.1em;
184
+ --formant-tracking-eyebrow: 0.2em;
185
+
186
+ /* ==========================================================================
187
+ TYPOGRAPHY - Line Heights (Leading)
188
+ ========================================================================== */
189
+ --formant-leading-tight: 1.2;
190
+ --formant-leading-normal: 1.6;
191
+ --formant-leading-relaxed: 1.75;
192
+ --formant-leading-data: 2.2;
193
+
194
+ /* ==========================================================================
195
+ TYPOGRAPHY - Sizes
196
+ ========================================================================== */
197
+ --formant-text-xs: 0.625rem;
198
+ --formant-text-sm: 0.75rem;
199
+ --formant-text-base: 0.875rem;
200
+ --formant-text-md: 1rem;
201
+ --formant-text-lg: 1.0625rem;
202
+ --formant-text-xl: 1.25rem;
203
+ --formant-text-2xl: 1.5rem;
204
+ --formant-text-3xl: 2rem;
205
+ --formant-text-4xl: 3.25rem;
206
+ --formant-text-5xl: 6rem;
207
+
208
+ /* ==========================================================================
209
+ SPACING SCALE
210
+ ========================================================================== */
211
+ --formant-space-0: 0;
212
+ --formant-space-1: 0.25rem;
213
+ --formant-space-2: 0.5rem;
214
+ --formant-space-3: 0.75rem;
215
+ --formant-space-4: 1rem;
216
+ --formant-space-5: 1.25rem;
217
+ --formant-space-6: 1.5rem;
218
+ --formant-space-8: 2rem;
219
+ --formant-space-10: 2.5rem;
220
+ --formant-space-12: 3rem;
221
+ --formant-space-16: 4rem;
222
+ --formant-space-20: 5rem;
223
+ --formant-space-24: 6rem;
224
+ --formant-space-32: 8rem;
225
+
226
+ /* ==========================================================================
227
+ BORDER RADIUS
228
+ ========================================================================== */
229
+ --formant-radius-none: 0;
230
+ --formant-radius-sm: 2px;
231
+ --formant-radius-md: 4px;
232
+ --formant-radius-lg: 6px;
233
+ --formant-radius-xl: 8px;
234
+ --formant-radius-full: 9999px;
235
+
236
+ /* ==========================================================================
237
+ SHADOWS & ELEVATION
238
+ ========================================================================== */
239
+ --formant-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
240
+ --formant-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
241
+ 0 2px 4px -1px rgba(0, 0, 0, 0.06);
242
+ --formant-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
243
+ 0 4px 6px -2px rgba(0, 0, 0, 0.05);
244
+ --formant-shadow-glow: 0 0 20px rgba(172, 195, 179, 0.15);
245
+ --formant-shadow-glow-strong: 0 0 30px rgba(172, 195, 179, 0.25);
246
+
247
+ /* ==========================================================================
248
+ FOCUS & ACCESSIBILITY
249
+ ========================================================================== */
250
+ --formant-focus-ring: 0 0 0 2px var(--theme-neutrals-0),
251
+ 0 0 0 4px var(--theme-atmospheric-accents-2);
252
+ --formant-focus-ring-offset: 2px;
253
+
254
+ /* ==========================================================================
255
+ TRANSITIONS & ANIMATION
256
+ ========================================================================== */
257
+ --formant-transition-fast: 150ms ease;
258
+ --formant-transition-base: 200ms ease;
259
+ --formant-transition-slow: 300ms ease;
260
+ --formant-transition-fade-up: 0.7s ease;
261
+
262
+ --formant-animation-fade-up-distance: 24px;
263
+ --formant-animation-stagger-delay: 80ms;
264
+
265
+ /* ==========================================================================
266
+ Z-INDEX SCALE
267
+ ========================================================================== */
268
+ --formant-z-base: 0;
269
+ --formant-z-dropdown: 100;
270
+ --formant-z-sticky: 200;
271
+ --formant-z-fixed: 300;
272
+ --formant-z-modal-backdrop: 400;
273
+ --formant-z-modal: 500;
274
+ --formant-z-popover: 600;
275
+ --formant-z-tooltip: 700;
276
+
277
+ /* ==========================================================================
278
+ LAYOUT - Container & Grid
279
+ ========================================================================== */
280
+ --formant-container-max: 1200px;
281
+ --formant-container-padding: 2.5rem;
282
+ --formant-container-padding-mobile: 1.25rem;
283
+
284
+ /* ==========================================================================
285
+ COMPONENT TOKENS - Buttons
286
+ ========================================================================== */
287
+ --formant-button-padding: 0.75rem 1.5rem;
288
+ --formant-button-font-size: 0.8125rem;
289
+ --formant-button-font-weight: 500;
290
+ --formant-button-letter-spacing: 0.04em;
291
+ --formant-button-radius: var(--formant-radius-md);
292
+
293
+ --formant-button-primary-bg: var(--theme-atmospheric-accents-2);
294
+ --formant-button-primary-text: var(--theme-neutrals-0);
295
+ --formant-button-primary-hover: #ffffff;
296
+
297
+ --formant-button-secondary-bg: transparent;
298
+ --formant-button-secondary-text: var(--theme-atmospheric-accents-2);
299
+ --formant-button-secondary-border: var(--theme-atmospheric-accents-2);
300
+ --formant-button-secondary-hover-bg: rgba(172, 195, 179, 0.1);
301
+
302
+ --formant-button-ghost-bg: transparent;
303
+ --formant-button-ghost-text: var(--theme-neutrals-2);
304
+ --formant-button-ghost-border: var(--theme-neutrals-2);
305
+
306
+ --formant-button-warning-bg: var(--theme-functional-accents-0);
307
+ --formant-button-warning-text: var(--theme-neutrals-0);
308
+ --formant-button-warning-hover: #F5C6A0;
309
+
310
+ /* ==========================================================================
311
+ COMPONENT TOKENS - Inputs
312
+ ========================================================================== */
313
+ --formant-input-padding: 0.75rem 1rem;
314
+ --formant-input-font-size: 0.875rem;
315
+ --formant-input-bg: var(--theme-neutrals-0);
316
+ --formant-input-border: var(--formant-border-default);
317
+ --formant-input-radius: var(--formant-radius-md);
318
+ --formant-input-focus-border: var(--theme-atmospheric-accents-2);
319
+ --formant-input-placeholder: rgba(163, 171, 169, 0.5);
320
+
321
+ --formant-label-font-size: 0.625rem;
322
+ --formant-label-letter-spacing: 0.15em;
323
+ --formant-label-color: var(--theme-neutrals-2);
324
+ --formant-label-transform: uppercase;
325
+
326
+ /* ==========================================================================
327
+ COMPONENT TOKENS - Tags & Badges
328
+ ========================================================================== */
329
+ --formant-tag-padding: 0.25rem 0.75rem;
330
+ --formant-tag-font-size: 0.6875rem;
331
+ --formant-tag-letter-spacing: var(--formant-tracking-mono);
332
+ --formant-tag-radius: var(--formant-radius-sm);
333
+
334
+ --formant-tag-mist-bg: rgba(75, 94, 83, 0.3);
335
+ --formant-tag-mist-text: var(--theme-atmospheric-accents-2);
336
+ --formant-tag-mist-border: rgba(75, 94, 83, 0.4);
337
+
338
+ --formant-tag-teal-bg: rgba(44, 65, 66, 0.4);
339
+ --formant-tag-teal-text: var(--theme-atmospheric-accents-2);
340
+
341
+ --formant-tag-amber-bg: rgba(232, 171, 127, 0.1);
342
+ --formant-tag-amber-text: var(--theme-functional-accents-0);
343
+
344
+ --formant-tag-iris-bg: rgba(139, 140, 244, 0.1);
345
+ --formant-tag-iris-text: var(--theme-functional-accents-1);
346
+
347
+ /* ==========================================================================
348
+ COMPONENT TOKENS - Alerts
349
+ ========================================================================== */
350
+ --formant-alert-padding: 1rem;
351
+ --formant-alert-radius: var(--formant-radius-md);
352
+ --formant-alert-font-size: 0.9375rem;
353
+
354
+ --formant-alert-info-bg: rgba(44, 65, 66, 0.3);
355
+ --formant-alert-info-text: var(--theme-atmospheric-accents-2);
356
+ --formant-alert-info-indicator: var(--theme-atmospheric-accents-2);
357
+
358
+ --formant-alert-warning-bg: rgba(232, 171, 127, 0.08);
359
+ --formant-alert-warning-text: var(--theme-functional-accents-0);
360
+ --formant-alert-warning-indicator: var(--theme-functional-accents-0);
361
+
362
+ --formant-alert-ai-bg: rgba(139, 140, 244, 0.08);
363
+ --formant-alert-ai-text: var(--theme-functional-accents-1);
364
+ --formant-alert-ai-indicator: var(--theme-functional-accents-1);
365
+
366
+ /* ==========================================================================
367
+ COMPONENT TOKENS - Cards
368
+ ========================================================================== */
369
+ --formant-card-bg: var(--theme-neutrals-1);
370
+ --formant-card-border: var(--formant-border-subtle);
371
+ --formant-card-radius: var(--formant-radius-md);
372
+ --formant-card-padding: 1.5rem;
373
+ --formant-card-hover-border: rgba(172, 195, 179, 0.3);
374
+ --formant-card-hover-bg: rgba(44, 65, 66, 0.2);
375
+
376
+ /* ==========================================================================
377
+ COMPONENT TOKENS - Navigation
378
+ ========================================================================== */
379
+ --formant-nav-height: 64px;
380
+ --formant-nav-bg: rgba(10, 15, 17, 0.85);
381
+ --formant-nav-backdrop: blur(16px);
382
+ --formant-nav-link-color: var(--theme-neutrals-2);
383
+ --formant-nav-link-hover: var(--theme-neutrals-3);
384
+ --formant-nav-link-size: 0.875rem;
385
+ --formant-nav-link-weight: 500;
386
+
387
+ /* ==========================================================================
388
+ COMPONENT TOKENS - Tables
389
+ ========================================================================== */
390
+ --formant-table-header-font: var(--font-monospace);
391
+ --formant-table-header-size: 0.625rem;
392
+ --formant-table-header-tracking: var(--formant-tracking-mono);
393
+ --formant-table-header-color: var(--theme-neutrals-2);
394
+ --formant-table-cell-padding: 0.75rem 1rem;
395
+ --formant-table-border: var(--formant-border-subtle);
396
+ --formant-table-hover: rgba(44, 65, 66, 0.2);
397
+
398
+ /* ==========================================================================
399
+ SCROLLBAR
400
+ ========================================================================== */
401
+ --formant-scrollbar-width: 8px;
402
+ --formant-scrollbar-track: var(--theme-neutrals-0);
403
+ --formant-scrollbar-thumb: var(--theme-atmospheric-accents-1);
404
+ --formant-scrollbar-thumb-hover: var(--theme-atmospheric-accents-2);
405
+
406
+ /* ==========================================================================
407
+ SELECTION
408
+ ========================================================================== */
409
+ --formant-selection-bg: rgba(172, 195, 179, 0.3);
410
+ --formant-selection-text: var(--theme-neutrals-3);
411
+ }
412
+
413
+ /* ==========================================================================
414
+ LIGHT THEME - Override color variables only
415
+ Apply with <html data-theme="light"> or <body data-theme="light">
416
+ ========================================================================== */
417
+ [data-theme="light"] {
418
+ /* Neutrals - inverted luminance */
419
+ --theme-neutrals-0: #FFFFFF;
420
+ --theme-neutrals-0-rgb: 255, 255, 255;
421
+
422
+ --theme-neutrals-1: #F2F3F4;
423
+ --theme-neutrals-1-rgb: 242, 243, 244;
424
+
425
+ --theme-neutrals-2: #6B7370;
426
+ --theme-neutrals-2-rgb: 107, 115, 112;
427
+
428
+ --theme-neutrals-3: #0A0F11;
429
+ --theme-neutrals-3-rgb: 10, 15, 17;
430
+
431
+ /* Atmospheric Accents - darker for light backgrounds */
432
+ --theme-atmospheric-accents-0: #D6E5DC;
433
+ --theme-atmospheric-accents-0-rgb: 214, 229, 220;
434
+
435
+ --theme-atmospheric-accents-1: #8FA69A;
436
+ --theme-atmospheric-accents-1-rgb: 143, 166, 154;
437
+
438
+ --theme-atmospheric-accents-2: #3B6B52;
439
+ --theme-atmospheric-accents-2-rgb: 59, 107, 82;
440
+
441
+ /* Functional Accents - deeper for contrast on light */
442
+ --theme-functional-accents-0: #C07840;
443
+ --theme-functional-accents-0-rgb: 192, 120, 64;
444
+
445
+ --theme-functional-accents-1: #5B5CD4;
446
+ --theme-functional-accents-1-rgb: 91, 92, 212;
447
+
448
+ /* Borders - darker base for light backgrounds */
449
+ --formant-border-subtle: rgba(10, 15, 17, 0.08);
450
+ --formant-border-default: rgba(10, 15, 17, 0.15);
451
+ --formant-border-strong: rgba(10, 15, 17, 0.3);
452
+ --formant-border-focus: var(--theme-atmospheric-accents-2);
453
+
454
+ /* Text */
455
+ --formant-text-muted: rgba(10, 15, 17, 0.5);
456
+
457
+ /* Selection */
458
+ --formant-selection-bg: rgba(59, 107, 82, 0.2);
459
+ --formant-selection-text: var(--theme-neutrals-3);
460
+
461
+ /* Shadows - visible on light */
462
+ --formant-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
463
+ --formant-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
464
+ --formant-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
465
+ --formant-shadow-glow: 0 0 20px rgba(59, 107, 82, 0.12);
466
+
467
+ /* Focus ring */
468
+ --formant-focus-ring: 0 0 0 2px var(--theme-neutrals-0), 0 0 0 4px var(--theme-atmospheric-accents-2);
469
+ }
470
+
471
+ /* ==========================================================================
472
+ FONT IMPORTS
473
+ ========================================================================== */
474
+ @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');
package/package.json CHANGED
@@ -1,87 +1,36 @@
1
1
  {
2
2
  "name": "@formant/aesthetics",
3
- "version": "0.0.10",
4
- "type": "module",
5
- "description": "Formant design system — themed React components built on shadcn/ui and Radix UI",
6
- "license": "MIT",
7
- "private": false,
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/FormantIO/aesthetics.git"
3
+ "version": "0.1.0",
4
+ "description": "Classless CSS framework based on the Formant Design System. Styles standard HTML elements without requiring any classes.",
5
+ "main": "formant-aesthetics.css",
6
+ "files": [
7
+ "formant-aesthetics.css",
8
+ "formant-properties.css",
9
+ "formant-layout-utilities.css",
10
+ "README.md"
11
+ ],
12
+ "scripts": {
13
+ "serve": "npx serve .",
14
+ "preview": "open http://localhost:3000/aesthetics-classless-css/ || echo 'Server not running at localhost:3000'"
11
15
  },
12
- "homepage": "https://github.com/FormantIO/aesthetics#readme",
13
16
  "keywords": [
14
17
  "formant",
18
+ "css",
19
+ "classless",
15
20
  "design-system",
16
- "react",
17
- "components",
18
- "shadcn",
19
- "radix-ui"
20
- ],
21
- "sideEffects": [
22
- "*.css"
23
- ],
24
- "main": "./dist/index.js",
25
- "module": "./dist/index.js",
26
- "types": "./dist/index.d.ts",
27
- "exports": {
28
- ".": {
29
- "import": "./dist/index.js",
30
- "types": "./dist/index.d.ts"
31
- },
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
- }
47
- },
48
- "files": [
49
- "dist",
50
- "styles"
21
+ "dark-theme",
22
+ "aesthetics",
23
+ "mission-control"
51
24
  ],
52
- "scripts": {
53
- "build": "tsup && unocss components/**/*.{ts,tsx} -o dist/components.css",
54
- "dev": "tsup --watch",
55
- "typecheck": "tsc --noEmit",
56
- "prepublishOnly": "npm run build"
57
- },
58
- "dependencies": {
59
- "class-variance-authority": "^0.7.1",
60
- "clsx": "^2.1.1",
61
- "cmdk": "^1.1.1",
62
- "date-fns": "^4.1.0",
63
- "embla-carousel-react": "^8.6.0",
64
- "input-otp": "^1.4.2",
65
- "lucide-react": "^0.487.0",
66
- "next-themes": "^0.4.6",
67
- "radix-ui": "^1.4.3",
68
- "react-day-picker": "^9.14.0",
69
- "react-resizable-panels": "^4.10.0",
70
- "recharts": "^3.8.0",
71
- "sonner": "^2.0.7",
72
- "vaul": "^1.1.2"
73
- },
74
- "devDependencies": {
75
- "@types/node": "^25.5.0",
76
- "@types/react": "^19.2.14",
77
- "@types/react-dom": "^19.2.3",
78
- "@unocss/cli": "^66.6.8",
79
- "tsup": "^8.5.1",
80
- "typescript": "^5.9.3",
81
- "unocss": "^66.6.8"
25
+ "author": "Formant Design Team",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/FormantIO/formant.git",
30
+ "directory": "aesthetics-classless-css"
82
31
  },
83
- "peerDependencies": {
84
- "react": "^19.0.0",
85
- "react-dom": "^19.0.0"
32
+ "homepage": "https://github.com/FormantIO/formant/tree/main/aesthetics-classless-css",
33
+ "bugs": {
34
+ "url": "https://github.com/FormantIO/formant/issues"
86
35
  }
87
36
  }