minora 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.
package/src/tokens.css ADDED
@@ -0,0 +1,542 @@
1
+ /* ============================================================
2
+ ELEGANT MINIMALIST UI KIT — Design Tokens
3
+ tokens.css
4
+ ============================================================ */
5
+
6
+ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap');
7
+
8
+ :root {
9
+
10
+ /* ──────────────────────────────────────────────────────────
11
+ COLOR: NEUTRAL SCALE
12
+ Base: cool gray dengan sentuhan warm — cocok untuk
13
+ background, text, dan border minimal.
14
+ ────────────────────────────────────────────────────────── */
15
+ --color-neutral-50: #fafaf9;
16
+ --color-neutral-100: #f5f5f4;
17
+ --color-neutral-200: #e7e5e4;
18
+ --color-neutral-300: #d6d3d1;
19
+ --color-neutral-400: #a8a29e;
20
+ --color-neutral-500: #78716c;
21
+ --color-neutral-600: #57534e;
22
+ --color-neutral-700: #44403c;
23
+ --color-neutral-800: #292524;
24
+ --color-neutral-900: #1c1917;
25
+ --color-neutral-950: #0c0a09;
26
+
27
+ /* ──────────────────────────────────────────────────────────
28
+ COLOR: ACCENT — Warm Gold (Champagne)
29
+ Dipilih karena: timeless, sophisticated, dan menonjol
30
+ secara subtle di atas neutral. Cocok untuk CTA, highlight,
31
+ dan elemen dekoratif minimalis.
32
+ ────────────────────────────────────────────────────────── */
33
+ --color-accent-50: #fdf8ef;
34
+ --color-accent-100: #faefd9;
35
+ --color-accent-200: #f4dbb0;
36
+ --color-accent-300: #eac07c;
37
+ --color-accent-400: #dfa04a;
38
+ --color-accent-500: #d4872e; /* — primary accent — */
39
+ --color-accent-600: #bb6b21;
40
+ --color-accent-700: #9a531e;
41
+ --color-accent-800: #7c421f;
42
+ --color-accent-900: #65371c;
43
+ --color-accent-950: #381b0c;
44
+
45
+ /* ──────────────────────────────────────────────────────────
46
+ COLOR: SEMANTIC
47
+ Minimal — hanya 3 shade per semantic (light/default/dark)
48
+ agar tidak berlebihan.
49
+ ────────────────────────────────────────────────────────── */
50
+
51
+ /* Success */
52
+ --color-success-light: #f0fdf4;
53
+ --color-success: #16a34a;
54
+ --color-success-dark: #14532d;
55
+ --color-success-border: #bbf7d0;
56
+
57
+ /* Warning */
58
+ --color-warning-light: #fffbeb;
59
+ --color-warning: #b45309;
60
+ --color-warning-dark: #78350f;
61
+ --color-warning-border: #fde68a;
62
+
63
+ /* Error */
64
+ --color-error-light: #fef2f2;
65
+ --color-error: #dc2626;
66
+ --color-error-dark: #7f1d1d;
67
+ --color-error-border: #fecaca;
68
+
69
+ /* Info */
70
+ --color-info-light: #f0f9ff;
71
+ --color-info: #0284c7;
72
+ --color-info-dark: #0c4a6e;
73
+ --color-info-border: #bae6fd;
74
+
75
+ /* ──────────────────────────────────────────────────────────
76
+ TYPOGRAPHY
77
+ Pairing: Playfair Display (serif) + Inter (sans-serif)
78
+ — Klasik bertemu modern. Playfair memberi kesan mewah
79
+ pada heading; Inter memastikan keterbacaan di body.
80
+ ────────────────────────────────────────────────────────── */
81
+ --font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
82
+ --font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
83
+ --font-mono: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
84
+
85
+ /* Font Scale */
86
+ --text-xs: 0.75rem; /* 12px */
87
+ --text-sm: 0.875rem; /* 14px */
88
+ --text-base: 1rem; /* 16px */
89
+ --text-lg: 1.125rem; /* 18px */
90
+ --text-xl: 1.25rem; /* 20px */
91
+ --text-2xl: 1.5rem; /* 24px */
92
+ --text-3xl: 1.875rem; /* 30px */
93
+ --text-4xl: 2.25rem; /* 36px */
94
+ --text-5xl: 3rem; /* 48px */
95
+
96
+ /* Line Height */
97
+ --leading-none: 1;
98
+ --leading-tight: 1.25;
99
+ --leading-snug: 1.375;
100
+ --leading-normal: 1.5;
101
+ --leading-relaxed: 1.625;
102
+ --leading-loose: 2;
103
+
104
+ /* Letter Spacing */
105
+ --tracking-tighter: -0.05em;
106
+ --tracking-tight: -0.025em;
107
+ --tracking-normal: 0em;
108
+ --tracking-wide: 0.025em;
109
+ --tracking-wider: 0.05em;
110
+ --tracking-widest: 0.1em;
111
+
112
+ /* Font Weight */
113
+ --font-light: 300;
114
+ --font-regular: 400;
115
+ --font-medium: 500;
116
+ --font-semibold: 600;
117
+ --font-bold: 700;
118
+
119
+ /* ──────────────────────────────────────────────────────────
120
+ SPACING — Base 4px
121
+ Setiap unit = 4px. Scale mengikuti pola Tailwind default
122
+ sehingga class seperti p-4 = 16px (4 × 4px).
123
+ ────────────────────────────────────────────────────────── */
124
+ --space-px: 1px;
125
+ --space-0: 0px;
126
+ --space-0-5: 2px; /* 0.5 × 4 */
127
+ --space-0-25: 1px; /* 0.25 × 4 — hairline */
128
+ --space-0-75: 3px; /* 0.75 × 4 — fine detail */
129
+ --space-1: 4px;
130
+ --space-1-5: 6px;
131
+ --space-2: 8px;
132
+ --space-2-5: 10px;
133
+ --space-3: 12px;
134
+ --space-3-5: 14px;
135
+ --space-4: 16px;
136
+ --space-5: 20px;
137
+ --space-6: 24px;
138
+ --space-7: 28px;
139
+ --space-8: 32px;
140
+ --space-9: 36px;
141
+ --space-10: 40px;
142
+ --space-11: 44px;
143
+ --space-12: 48px;
144
+ --space-14: 56px;
145
+ --space-16: 64px;
146
+ --space-20: 80px;
147
+ --space-24: 96px;
148
+ --space-28: 112px;
149
+ --space-32: 128px;
150
+
151
+ /* ──────────────────────────────────────────────────────────
152
+ BORDER RADIUS — Minimal
153
+ Hanya dua level: sm (4px) dan md (8px).
154
+ Filosofi: sudut tajam memberi kesan tegas dan refined.
155
+ ────────────────────────────────────────────────────────── */
156
+ --radius-none: 0px;
157
+ --radius-sm: 4px;
158
+ --radius-md: 8px;
159
+
160
+ /* ──────────────────────────────────────────────────────────
161
+ SHADOW — 2 Level, Subtle
162
+ Tidak dramatis. Hanya memberi kedalaman yang halus.
163
+ sm: untuk card dan input hover.
164
+ md: untuk dropdown dan modal.
165
+ ────────────────────────────────────────────────────────── */
166
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.04),
167
+ 0 1px 3px 0 rgb(0 0 0 / 0.03);
168
+
169
+ --shadow-md: 0 2px 8px -1px rgb(0 0 0 / 0.07),
170
+ 0 4px 6px -2px rgb(0 0 0 / 0.04);
171
+
172
+ /* ──────────────────────────────────────────────────────────
173
+ TRANSITION — Smooth & Fast
174
+ Fast: interaksi micro (hover, focus).
175
+ Normal: perpindahan state (expand, collapse).
176
+ ────────────────────────────────────────────────────────── */
177
+ --duration-fast: 150ms;
178
+ --duration-normal: 200ms;
179
+ --duration-slow: 300ms;
180
+
181
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
182
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
183
+
184
+ --transition-colors: color var(--duration-fast) var(--ease-in-out),
185
+ background-color var(--duration-fast) var(--ease-in-out),
186
+ border-color var(--duration-fast) var(--ease-in-out);
187
+
188
+ --transition-shadow: box-shadow var(--duration-normal) var(--ease-out);
189
+
190
+ --transition-all: all var(--duration-normal) var(--ease-in-out);
191
+
192
+ /* ──────────────────────────────────────────────────────────
193
+ BORDER
194
+ ────────────────────────────────────────────────────────── */
195
+ --border-width: 1px;
196
+ --border-width-2: 2px;
197
+ --border-color: var(--color-neutral-200);
198
+ --border-color-strong: var(--color-neutral-300);
199
+
200
+ /* ──────────────────────────────────────────────────────────
201
+ FOCUS RING
202
+ ────────────────────────────────────────────────────────── */
203
+ --focus-ring-width: 2px;
204
+ --focus-ring-offset: 2px;
205
+ --focus-ring-color: var(--color-accent-500);
206
+
207
+ /* ──────────────────────────────────────────────────────────
208
+ PILL RADIUS (for fully rounded elements: badges, avatars)
209
+ ────────────────────────────────────────────────────────── */
210
+ --radius-pill: 9999px;
211
+
212
+ /* ──────────────────────────────────────────────────────────
213
+ TRANSFORM — Active/pressed states
214
+ ────────────────────────────────────────────────────────── */
215
+ --scale-active: 0.97;
216
+
217
+ /* ──────────────────────────────────────────────────────────
218
+ AVATAR — Status indicator sizes
219
+ ────────────────────────────────────────────────────────── */
220
+ --avatar-status-xs-size: 8px;
221
+ --avatar-status-xs-dot: 4px;
222
+ --avatar-status-xs-border: var(--border-width);
223
+
224
+ --avatar-status-sm-size: 10px;
225
+ --avatar-status-sm-dot: 5px;
226
+ --avatar-status-sm-border: 1.5px;
227
+
228
+ --avatar-status-md-size: 12px;
229
+ --avatar-status-md-dot: 6px;
230
+ --avatar-status-md-border: var(--border-width-2);
231
+
232
+ --avatar-status-lg-size: 16px;
233
+ --avatar-status-lg-dot: 8px;
234
+ --avatar-status-lg-border: var(--border-width-2);
235
+
236
+ --avatar-status-xl-size: 20px;
237
+ --avatar-status-xl-dot: 10px;
238
+ --avatar-status-xl-border: 2.5px;
239
+
240
+ /* ──────────────────────────────────────────────────────────
241
+ AVATAR GROUP — Overlap spacing
242
+ ────────────────────────────────────────────────────────── */
243
+ --avatar-group-sm-overlap: -6px;
244
+ --avatar-group-md-overlap: -8px;
245
+ --avatar-group-lg-overlap: -12px;
246
+
247
+ /* ──────────────────────────────────────────────────────────
248
+ AVATAR — Group border and hover
249
+ ────────────────────────────────────────────────────────── */
250
+ --avatar-group-border: var(--color-neutral-50);
251
+ --avatar-group-hover-lift: -2px;
252
+
253
+ /* ──────────────────────────────────────────────────────────
254
+ AVATAR — Tooltip
255
+ ────────────────────────────────────────────────────────── */
256
+ --avatar-tooltip-offset-y: 4px;
257
+
258
+ /* ──────────────────────────────────────────────────────────
259
+ COMPONENT SIZES — Button
260
+ ────────────────────────────────────────────────────────── */
261
+ --btn-sm-height: var(--space-8); /* 32px */
262
+ --btn-md-height: var(--space-10); /* 40px */
263
+ --btn-lg-height: var(--space-12); /* 48px */
264
+
265
+ /* ──────────────────────────────────────────────────────────
266
+ COMPONENT SIZES — Badge & Tag
267
+ ────────────────────────────────────────────────────────── */
268
+ --badge-sm-height: 20px;
269
+ --badge-md-height: 24px;
270
+ --tag-sm-height: 24px;
271
+ --tag-md-height: 28px;
272
+
273
+ /* ──────────────────────────────────────────────────────────
274
+ COMPONENT SIZES — Input & Textarea
275
+ ────────────────────────────────────────────────────────── */
276
+ --input-sm-height: var(--space-8); /* 32px */
277
+ --input-md-height: var(--space-10); /* 40px */
278
+ --input-lg-height: var(--space-12); /* 48px */
279
+
280
+ --textarea-min-rows: 3;
281
+ --textarea-max-rows: 10;
282
+
283
+ /* ──────────────────────────────────────────────────────────
284
+ INPUT — Focus ring variant (overrides default accent)
285
+ ────────────────────────────────────────────────────────── */
286
+ --input-focus-color: var(--color-accent-500);
287
+ --input-focus-error: var(--color-error);
288
+ --input-focus-success: var(--color-success);
289
+ --input-focus-warning: var(--color-warning);
290
+
291
+ /* ──────────────────────────────────────────────────────────
292
+ INPUT — Placeholder & icon color
293
+ ────────────────────────────────────────────────────────── */
294
+ --input-placeholder-color: var(--color-neutral-400);
295
+ --input-icon-color: var(--color-neutral-400);
296
+ --input-addon-text-color: var(--color-neutral-500);
297
+ --input-addon-bg: var(--color-neutral-100);
298
+ --input-helper-color: var(--color-neutral-500);
299
+ --input-label-color: var(--color-neutral-700);
300
+ --input-text-color: var(--color-neutral-800);
301
+ --input-bg: #ffffff;
302
+ --input-filled-bg: var(--color-neutral-50);
303
+ --input-disabled-opacity: 0.5;
304
+ --input-disabled-cursor: not-allowed;
305
+ --input-clear-size: var(--space-4);
306
+
307
+ /* ──────────────────────────────────────────────────────────
308
+ COMPONENT SIZES — Select
309
+ ────────────────────────────────────────────────────────── */
310
+ --select-sm-height: var(--space-8); /* 32px */
311
+ --select-md-height: var(--space-10); /* 40px */
312
+ --select-lg-height: var(--space-12); /* 48px */
313
+ --select-dropdown-max-height: 240px;
314
+ --select-option-height: 36px;
315
+
316
+ /* ──────────────────────────────────────────────────────────
317
+ SELECT — Colors & shadows
318
+ ────────────────────────────────────────────────────────── */
319
+ --select-bg: #ffffff;
320
+ --select-dropdown-shadow: var(--shadow-md);
321
+ --select-option-hover-bg: var(--color-neutral-50);
322
+ --select-option-active-bg: var(--color-neutral-100);
323
+ --select-group-label-color: var(--color-neutral-500);
324
+ --select-search-border: var(--color-neutral-200);
325
+ --select-counter-bg: var(--color-neutral-200);
326
+ --select-counter-min-width: var(--space-6);
327
+ --select-counter-height: var(--badge-sm-height);
328
+ --select-search-min-width: var(--space-20);
329
+
330
+ /* ──────────────────────────────────────────────────────────
331
+ COMPONENT SIZES — Checkbox & Radio
332
+ ────────────────────────────────────────────────────────── */
333
+ --checkbox-sm: var(--space-3); /* 12px */
334
+ --checkbox-md: var(--space-4); /* 16px */
335
+ --checkbox-lg: var(--space-5); /* 20px */
336
+
337
+ /* ──────────────────────────────────────────────────────────
338
+ CHECKBOX & RADIO — Colors
339
+ ────────────────────────────────────────────────────────── */
340
+ --control-bg: var(--color-neutral-100);
341
+ --control-border: var(--color-neutral-300);
342
+ --control-checked-bg: var(--color-accent-500);
343
+ --control-checked-border: var(--color-accent-500);
344
+ --control-disabled-opacity: 0.4;
345
+ --control-gap: var(--space-2);
346
+
347
+ /* ──────────────────────────────────────────────────────────
348
+ COMPONENT SIZES — Toggle / Switch
349
+ ────────────────────────────────────────────────────────── */
350
+ --switch-sm-track-w: 32px;
351
+ --switch-sm-track-h: 18px;
352
+ --switch-sm-thumb: 14px;
353
+ --switch-sm-translate: 14px;
354
+
355
+ --switch-md-track-w: 40px;
356
+ --switch-md-track-h: 22px;
357
+ --switch-md-thumb: 18px;
358
+ --switch-md-translate: 18px;
359
+
360
+ --switch-lg-track-w: 48px;
361
+ --switch-lg-track-h: 26px;
362
+ --switch-lg-thumb: 22px;
363
+ --switch-lg-translate: 22px;
364
+
365
+ /* ──────────────────────────────────────────────────────────
366
+ TOGGLE / SWITCH — Colors
367
+ ────────────────────────────────────────────────────────── */
368
+ --switch-track-off: var(--color-neutral-300);
369
+ --switch-track-on: var(--color-accent-500);
370
+ --switch-thumb: #ffffff;
371
+ --switch-disabled-opacity: 0.5;
372
+ --switch-thumb-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.15);
373
+ --switch-label-font-size: 9px;
374
+ --switch-spinner-inset: 2px;
375
+
376
+ /* ──────────────────────────────────────────────────────────
377
+ TOAST / NOTIFICATION
378
+ ────────────────────────────────────────────────────────── */
379
+ --toast-max-width: 384px;
380
+ --toast-min-width: 280px;
381
+ --toast-font-size: var(--text-sm);
382
+ --toast-icon-size: var(--space-5);
383
+ --toast-shadow: 0 4px 12px -2px rgb(0 0 0 / 0.08),
384
+ 0 2px 6px -1px rgb(0 0 0 / 0.06);
385
+ --toast-border-radius: var(--radius-md);
386
+ --toast-bg: #ffffff;
387
+ --toast-progress-height: 3px;
388
+ --toast-default-duration: 4000ms;
389
+ --toast-slide-duration: 300ms;
390
+ --toast-stack-gap: var(--space-3);
391
+ --toast-icon-margin: var(--space-0-25);
392
+ --toast-close-margin: -2px;
393
+ --toast-action-underline-offset: 2px;
394
+
395
+ /* ──────────────────────────────────────────────────────────
396
+ NOTIFICATION PANEL
397
+ ────────────────────────────────────────────────────────── */
398
+ --notif-panel-width: 384px;
399
+ --notif-panel-max-height: 480px;
400
+ --notif-avatar-size: var(--space-10);
401
+
402
+ /* ──────────────────────────────────────────────────────────
403
+ MODAL / DIALOG
404
+ ────────────────────────────────────────────────────────── */
405
+ --modal-overlay-bg: rgb(0 0 0 / 0.3);
406
+ --modal-overlay-blur: 4px;
407
+ --modal-bg: #ffffff;
408
+ --modal-shadow: 0 8px 24px -4px rgb(0 0 0 / 0.08),
409
+ 0 20px 48px -8px rgb(0 0 0 / 0.06);
410
+ --modal-radius: var(--radius-md);
411
+ --modal-sm: 400px;
412
+ --modal-md: 560px;
413
+ --modal-lg: 720px;
414
+ --modal-xl: 900px;
415
+ --modal-max-w: calc(100vw - var(--space-8));
416
+ --modal-max-h: calc(100vh - var(--space-12));
417
+ --modal-padding: var(--space-6);
418
+ --modal-header-padding: var(--space-4) var(--space-6);
419
+ --modal-footer-padding: var(--space-4) var(--space-6);
420
+ --modal-body-padding: var(--space-6);
421
+ --modal-open-duration: 250ms;
422
+ --modal-open-ease: cubic-bezier(0.16, 1, 0.3, 1);
423
+
424
+ /* ──────────────────────────────────────────────────────────
425
+ TOOLTIP / POPOVER
426
+ ────────────────────────────────────────────────────────── */
427
+ --tooltip-bg: var(--color-neutral-900);
428
+ --tooltip-color: var(--color-neutral-50);
429
+ --tooltip-font-size: var(--text-xs);
430
+ --tooltip-padding: var(--space-1-5) var(--space-2-5);
431
+ --tooltip-border-radius: var(--radius-sm);
432
+ --tooltip-arrow-size: 6px;
433
+ --tooltip-shadow: 0 2px 4px 0 rgb(0 0 0 / 0.1);
434
+ --tooltip-light-bg: var(--color-neutral-50);
435
+ --tooltip-light-color: var(--color-neutral-800);
436
+ --tooltip-light-border: var(--color-neutral-200);
437
+ --tooltip-in-duration: 150ms;
438
+ --tooltip-out-duration: 80ms;
439
+ --tooltip-show-delay: 300ms;
440
+ --tooltip-hide-delay: 100ms;
441
+ --tooltip-max-width: 240px;
442
+ --tooltip-rich-max-width: 280px;
443
+
444
+ --popover-bg: #ffffff;
445
+ --popover-color: var(--color-neutral-800);
446
+ --popover-min-width: 280px;
447
+ --popover-max-width: 384px;
448
+ --popover-border-radius: var(--radius-md);
449
+ --popover-shadow: var(--shadow-md);
450
+ --popover-border: var(--color-neutral-200);
451
+
452
+ /* ──────────────────────────────────────────────────────────
453
+ ALERT / INLINE MESSAGE / PAGE BANNER
454
+ ────────────────────────────────────────────────────────── */
455
+ --alert-padding: var(--space-4);
456
+ --alert-padding-compact: var(--space-2-5) var(--space-3);
457
+ --alert-radius: var(--radius-sm);
458
+ --alert-border-accent: 3px;
459
+ --alert-icon-size: var(--space-5);
460
+ --alert-font-size: var(--text-sm);
461
+ --alert-max-width: 720px;
462
+ --alert-slide-duration: var(--duration-normal);
463
+
464
+ --alert-subtle-success-bg: var(--color-success-light);
465
+ --alert-subtle-success-accent: var(--color-success);
466
+ --alert-subtle-error-bg: var(--color-error-light);
467
+ --alert-subtle-error-accent: var(--color-error);
468
+ --alert-subtle-warning-bg: var(--color-warning-light);
469
+ --alert-subtle-warning-accent: var(--color-warning);
470
+ --alert-subtle-info-bg: var(--color-info-light);
471
+ --alert-subtle-info-accent: var(--color-info);
472
+ --alert-subtle-neutral-bg: var(--color-neutral-100);
473
+ --alert-subtle-neutral-accent: var(--color-neutral-400);
474
+
475
+ --alert-filled-success-bg: var(--color-success);
476
+ --alert-filled-error-bg: var(--color-error);
477
+ --alert-filled-warning-bg: var(--color-warning);
478
+ --alert-filled-info-bg: var(--color-info);
479
+ --alert-filled-neutral-bg: var(--color-neutral-700);
480
+
481
+ --inline-msg-font-size: var(--text-xs);
482
+ --inline-msg-icon-size: var(--space-3-5);
483
+
484
+ --page-banner-padding: var(--space-2-5) var(--space-4);
485
+ --page-banner-font-size: var(--text-sm);
486
+ --page-banner-bg: var(--color-accent-500);
487
+ --page-banner-color: var(--color-neutral-50);
488
+ --page-banner-text-max: 640px;
489
+ --page-banner-max-h: 200px;
490
+ --alert-max-h: 2000px;
491
+ --alert-hover-underline: 2px;
492
+
493
+ /* ──────────────────────────────────────────────────────────
494
+ Z-INDEX SCALE
495
+ ────────────────────────────────────────────────────────── */
496
+ --z-base: 0;
497
+ --z-raised: 10;
498
+ --z-dropdown: 100;
499
+ --z-overlay: 200;
500
+ --z-tooltip: 250;
501
+ --z-modal: 300;
502
+ --z-toast: 400;
503
+
504
+ /* ──────────────────────────────────────────────────────────
505
+ ANIMATION — Spinner / loading
506
+ ────────────────────────────────────────────────────────── */
507
+ --anim-spin-duration: 0.8s;
508
+ --anim-spinner-fast: 0.6s;
509
+ --anim-check-draw-delay: 200ms;
510
+ }
511
+
512
+ /* ──────────────────────────────────────────────────────────────
513
+ BASE RESET — Terapkan token sebagai default
514
+ ────────────────────────────────────────────────────────────── */
515
+ *, *::before, *::after {
516
+ box-sizing: border-box;
517
+ margin: 0;
518
+ padding: 0;
519
+ }
520
+
521
+ html {
522
+ font-size: 16px;
523
+ -webkit-font-smoothing: antialiased;
524
+ -moz-osx-font-smoothing: grayscale;
525
+ }
526
+
527
+ body {
528
+ font-family: var(--font-sans);
529
+ font-size: var(--text-base);
530
+ font-weight: var(--font-regular);
531
+ line-height: var(--leading-normal);
532
+ color: var(--color-neutral-800);
533
+ background-color: var(--color-neutral-50);
534
+ }
535
+
536
+ h1, h2, h3, h4, h5, h6 {
537
+ font-family: var(--font-serif);
538
+ font-weight: var(--font-semibold);
539
+ line-height: var(--leading-tight);
540
+ letter-spacing: var(--tracking-tight);
541
+ color: var(--color-neutral-900);
542
+ }