@judarn/ui 0.0.0-stage → 0.7.2

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,543 @@
1
+ /* =========================================================================
2
+ JUDARN DESIGN SYSTEM
3
+ colors_and_type.css – design tokens (color + type + grid)
4
+ Generated from tokens/judarn-tokens.json – do not edit directly.
5
+ Flat color only. No gradients, no shadows, no tints unless explicit.
6
+ ========================================================================= */
7
+
8
+ :root {
9
+ font-optical-sizing: auto;
10
+
11
+ /* ---------------------------------------------------------------------
12
+ GRID & SPACING – 8pt macro grid + 4pt micro subgrid.
13
+ --------------------------------------------------------------------- */
14
+ --jd-space-half: 4px; /* micro spacing / leading / hairline offset */
15
+ --jd-space-1: 8px;
16
+ --jd-space-2: 16px;
17
+ --jd-space-3: 24px;
18
+ --jd-space-4: 32px;
19
+ --jd-space-touch: 44px; /* Touch target floor (11 * 4px) */
20
+ --jd-space-6: 48px;
21
+ --jd-space-8: 64px;
22
+ --jd-space-12: 96px;
23
+ --jd-space-16: 128px;
24
+
25
+ --jd-pad-default: 16px; /* standard frame padding, H & V */
26
+ --jd-pad-large: 32px; /* larger frames: 24–32 */
27
+ --jd-gap-tight: 8px;
28
+ --jd-gap-normal: 16px;
29
+
30
+ --jd-rule: 1px; /* hairline rules – the only "decoration" allowed */
31
+ --jd-rule-bold: 2px;
32
+ --jd-rule-heavy: 4px;
33
+
34
+ --jd-measure-body: 65ch; /* max column measure for continuous body reading */
35
+ --jd-measure-compact: 45ch; /* max column measure for cards / sidebars */
36
+ --jd-measure-sidebar: 260px; /* compact desktop pane and sidebar measure */
37
+
38
+ --jd-radius-subtle: 6px;
39
+ --jd-radius-control: 10px;
40
+ --jd-radius-card: 16px;
41
+ --jd-radius-badge: 9999px;
42
+
43
+ /* Backward-compatible aliases */
44
+ --space-half: var(--jd-space-half);
45
+ --space-1: var(--jd-space-1);
46
+ --space-2: var(--jd-space-2);
47
+ --space-3: var(--jd-space-3);
48
+ --space-4: var(--jd-space-4);
49
+ --space-touch: var(--jd-space-touch);
50
+ --space-6: var(--jd-space-6);
51
+ --space-8: var(--jd-space-8);
52
+ --space-12: var(--jd-space-12);
53
+ --space-16: var(--jd-space-16);
54
+ --pad-default: var(--jd-pad-default);
55
+ --pad-large: var(--jd-pad-large);
56
+ --gap-tight: var(--jd-gap-tight);
57
+ --gap-normal: var(--jd-gap-normal);
58
+ --rule: var(--jd-rule);
59
+ --rule-bold: var(--jd-rule-bold);
60
+ --rule-heavy: var(--jd-rule-heavy);
61
+ --measure-body: var(--jd-measure-body);
62
+ --measure-compact: var(--jd-measure-compact);
63
+ --measure-sidebar: var(--jd-measure-sidebar);
64
+ --radius-subtle: var(--jd-radius-subtle);
65
+ --radius-control: var(--jd-radius-control);
66
+ --radius-card: var(--jd-radius-card);
67
+ --radius-badge: var(--jd-radius-badge);
68
+
69
+ /* ---------------------------------------------------------------------
70
+ 4-TIER SURFACE TAXONOMY & DYNAMIC OKLCH NEUTRALS
71
+ Authored strictly in OKLCH: oklch(L C H).
72
+ Light scheme defaults:
73
+ --------------------------------------------------------------------- */
74
+ --jd-substrate: oklch(1.000 0.000 0); /* #FFFFFF Pure White */
75
+ --jd-surface-elevated: oklch(0.980 0.000 0); /* #F8F8F8 Crisp Neutral Box */
76
+ --jd-surface-recessed: oklch(0.958 0.000 0); /* #F1F1F1 Sunken Well / Hover */
77
+
78
+ --jd-ink-100: oklch(0.080 0.000 0); /* #020202 Optical Black */
79
+ --jd-ink-60: oklch(0.520 0.005 92); /* #6A6966 Secondary Ink (>=4.8:1 AA) */
80
+ --jd-ink-30: oklch(0.780 0.005 92); /* #B8B7B4 Hairline / Disabled */
81
+ --jd-ink100: var(--jd-ink-100);
82
+ --jd-ink60: var(--jd-ink-60);
83
+ --jd-ink30: var(--jd-ink-30);
84
+ --jd-signal-error: oklch(0.530 0.214 25); /* #CA0221 Accessible Error */
85
+ --jd-signal-error-hc: oklch(0.415 0.168 25);
86
+
87
+ /* Aliases dynamically mapped to active scheme */
88
+ --jd-black: var(--jd-ink-100);
89
+ --jd-white: var(--jd-surface-elevated);
90
+ --jd-paper: var(--jd-substrate);
91
+ --jd-line: var(--jd-ink-100);
92
+
93
+ --black: var(--jd-black);
94
+ --white: var(--jd-white);
95
+ --paper: var(--jd-paper);
96
+ --ink-100: var(--jd-ink-100);
97
+ --ink-60: var(--jd-ink-60);
98
+ --ink-30: var(--jd-ink-30);
99
+ --signal-error: var(--jd-signal-error);
100
+ --line: var(--jd-line);
101
+
102
+ /* ---------------------------------------------------------------------
103
+ PROJECT ACCENT – single per-project hook. Authored in OKLCH.
104
+ --------------------------------------------------------------------- */
105
+ /* Project hooks, unset by default: --jd-accent, --jd-accent-fg, --jd-accent-ink, --jd-accent-2.
106
+ The resolved --accent, --accent-fg, --accent-ink and --accent-2 are declared in every theme
107
+ scope so a nested scope resolves its own default; a hook set on :root survives nesting.
108
+ --accent defaults to ink-100 and --accent-fg to --accent. --accent-ink is static ink on an
109
+ accent fill (ADR-0006); a project that sets --jd-accent sets --jd-accent-ink too. */
110
+ --accent: var(--jd-accent, var(--jd-ink-100));
111
+ --accent-fg: var(--jd-accent-fg, var(--accent));
112
+ --accent-ink: var(--jd-accent-ink, #ffffff);
113
+ --accent-2: var(--jd-accent-2, oklch(0.520 0.005 92));
114
+
115
+ /* ---------------------------------------------------------------------
116
+ THREE-COLOR PALETTE (optional) – primary / secondary / tertiary.
117
+ --------------------------------------------------------------------- */
118
+ --jd-primary: var(--accent);
119
+ --jd-secondary: var(--jd-ink-60);
120
+ --jd-tertiary: var(--jd-ink-30);
121
+ --primary: var(--jd-primary);
122
+ --secondary: var(--jd-secondary);
123
+ --tertiary: var(--jd-tertiary);
124
+
125
+ /* ---------------------------------------------------------------------
126
+ SEMANTIC ROLES – default (neutral) context
127
+ --------------------------------------------------------------------- */
128
+ --jd-fg1: var(--jd-ink-100); /* primary text */
129
+ --jd-fg2: var(--jd-ink-60); /* secondary text / labels */
130
+ --jd-fg3: var(--jd-ink-30); /* disabled / hairline ink */
131
+ --jd-bg1: var(--jd-substrate); /* primary surface / canvas */
132
+ --jd-bg2: var(--jd-surface-elevated); /* secondary field / elevated */
133
+
134
+ --fg1: var(--jd-fg1);
135
+ --fg2: var(--jd-fg2);
136
+ --fg3: var(--jd-fg3);
137
+ --bg1: var(--jd-bg1);
138
+ --bg2: var(--jd-bg2);
139
+
140
+ /* ---------------------------------------------------------------------
141
+ TYPE – System sans-serif by default (e.g. San Francisco, Segoe UI).
142
+ --------------------------------------------------------------------- */
143
+ --jd-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
144
+ --jd-font-bold: var(--jd-font-sans);
145
+ --font-sans: var(--jd-font-sans);
146
+ --font-bold: var(--jd-font-bold);
147
+
148
+ /* Pluggable Font Slots */
149
+ --jd-font-display: var(--jd-font-sans);
150
+ --jd-font-body: var(--jd-font-sans);
151
+ --jd-font-data: var(--jd-font-sans);
152
+ --jd-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
153
+ --font-display: var(--jd-font-display);
154
+ --font-body: var(--jd-font-body);
155
+ --font-data: var(--jd-font-data);
156
+ --font-mono: var(--jd-font-mono);
157
+
158
+ --jd-weight-regular: 400; /* Roman */
159
+ --jd-weight-medium: 500; /* Medium */
160
+ --jd-weight-bold: 800; /* Heavy – headings / display */
161
+ --jd-weight-black: 900; /* Black – large display only */
162
+
163
+ --weight-regular: var(--jd-weight-regular);
164
+ --weight-medium: var(--jd-weight-medium);
165
+ --weight-bold: var(--jd-weight-bold);
166
+ --weight-black: var(--jd-weight-black);
167
+
168
+ /* Tracking */
169
+ --jd-track-display: -0.02em;
170
+ --jd-track-head: -0.01em;
171
+ --jd-track-body: 0em;
172
+ --jd-track-label: 0.06em;
173
+ --jd-track-micro: 0.08em;
174
+
175
+ --track-display: var(--jd-track-display);
176
+ --track-head: var(--jd-track-head);
177
+ --track-body: var(--jd-track-body);
178
+ --track-label: var(--jd-track-label);
179
+ --track-micro: var(--jd-track-micro);
180
+
181
+ /* Type scale */
182
+ --jd-size-display: 96px;
183
+ --jd-size-h1: 64px;
184
+ --jd-size-h2: 44px;
185
+ --jd-size-h3: 32px;
186
+ --jd-size-h4: 24px;
187
+ --jd-size-body-lg: 20px;
188
+ --jd-size-body: 16px;
189
+ --jd-size-small: 14px;
190
+ --jd-size-label: 12px;
191
+ --jd-size-micro: 10px;
192
+ --jd-size-data: 14px;
193
+ --jd-size-mono: 12px;
194
+
195
+ --size-display: var(--jd-size-display);
196
+ --size-h1: var(--jd-size-h1);
197
+ --size-h2: var(--jd-size-h2);
198
+ --size-h3: var(--jd-size-h3);
199
+ --size-h4: var(--jd-size-h4);
200
+ --size-body-lg: var(--jd-size-body-lg);
201
+ --size-body: var(--jd-size-body);
202
+ --size-small: var(--jd-size-small);
203
+ --size-label: var(--jd-size-label);
204
+ --size-micro: var(--jd-size-micro);
205
+ --size-data: var(--jd-size-data);
206
+ --size-mono: var(--jd-size-mono);
207
+
208
+ --lh-tight: 1;
209
+ --lh-head: 1.0625;
210
+ --lh-body: 1.25;
211
+ }
212
+
213
+ /* =========================================================================
214
+ SEMANTIC TYPE CLASSES
215
+ ========================================================================= */
216
+ .t-display {
217
+ font-family: var(--jd-font-display);
218
+ font-weight: var(--jd-weight-black);
219
+ font-size: var(--jd-size-display);
220
+ line-height: 1;
221
+ letter-spacing: var(--jd-track-display);
222
+ text-wrap: balance;
223
+ color: var(--jd-ink-100);
224
+ }
225
+ .t-h1 {
226
+ font-family: var(--jd-font-display);
227
+ font-weight: var(--jd-weight-bold);
228
+ font-size: var(--jd-size-h1);
229
+ line-height: 1.0625;
230
+ letter-spacing: var(--jd-track-head);
231
+ text-wrap: balance;
232
+ color: var(--jd-ink-100);
233
+ }
234
+ .t-h2 {
235
+ font-family: var(--jd-font-display);
236
+ font-weight: var(--jd-weight-bold);
237
+ font-size: var(--jd-size-h2);
238
+ line-height: 1.0909090909090908;
239
+ letter-spacing: var(--jd-track-head);
240
+ text-wrap: balance;
241
+ color: var(--jd-ink-100);
242
+ }
243
+ .t-h3 {
244
+ font-family: var(--jd-font-display);
245
+ font-weight: var(--jd-weight-bold);
246
+ font-size: var(--jd-size-h3);
247
+ line-height: 1.125;
248
+ letter-spacing: var(--jd-track-head);
249
+ text-wrap: balance;
250
+ color: var(--jd-ink-100);
251
+ }
252
+ .t-h4 {
253
+ font-family: var(--jd-font-body);
254
+ font-weight: var(--jd-weight-bold);
255
+ font-size: var(--jd-size-h4);
256
+ line-height: 1.1666666666666667;
257
+ letter-spacing: var(--jd-track-head);
258
+ text-wrap: balance;
259
+ color: var(--jd-ink-100);
260
+ }
261
+ .t-body-lg {
262
+ font-family: var(--jd-font-body);
263
+ font-weight: var(--jd-weight-regular);
264
+ font-size: var(--jd-size-body-lg);
265
+ line-height: 1.2;
266
+ letter-spacing: var(--jd-track-body);
267
+ text-wrap: pretty;
268
+ color: var(--jd-ink-100);
269
+ }
270
+ .t-body {
271
+ font-family: var(--jd-font-body);
272
+ font-weight: var(--jd-weight-regular);
273
+ font-size: var(--jd-size-body);
274
+ line-height: 1.25;
275
+ letter-spacing: var(--jd-track-body);
276
+ text-wrap: pretty;
277
+ color: var(--jd-ink-100);
278
+ }
279
+ .t-small {
280
+ font-family: var(--jd-font-body);
281
+ font-weight: var(--jd-weight-regular);
282
+ font-size: var(--jd-size-small);
283
+ line-height: 1.1428571428571428;
284
+ letter-spacing: var(--jd-track-body);
285
+ color: var(--jd-ink-60);
286
+ }
287
+ .t-label {
288
+ font-family: var(--jd-font-body);
289
+ font-weight: var(--jd-weight-bold);
290
+ font-size: var(--jd-size-label);
291
+ line-height: 1.3333333333333333;
292
+ letter-spacing: var(--jd-track-label);
293
+ text-transform: uppercase;
294
+ font-feature-settings: "case" 1;
295
+ color: var(--jd-ink-60);
296
+ }
297
+ .t-micro {
298
+ font-family: var(--jd-font-body);
299
+ font-weight: var(--jd-weight-medium);
300
+ font-size: var(--jd-size-micro);
301
+ line-height: 1.2;
302
+ letter-spacing: var(--jd-track-micro);
303
+ text-transform: uppercase;
304
+ font-feature-settings: "case" 1;
305
+ color: var(--jd-ink-60);
306
+ }
307
+ .t-data {
308
+ font-family: var(--jd-font-data);
309
+ font-weight: var(--jd-weight-regular);
310
+ font-size: var(--jd-size-data);
311
+ line-height: 1.4285714285714286;
312
+ letter-spacing: var(--jd-track-body);
313
+ font-variant-numeric: tabular-nums lining-nums;
314
+ font-feature-settings: "tnum" 1, "lnum" 1;
315
+ color: var(--jd-ink-100);
316
+ }
317
+ .t-mono {
318
+ font-family: var(--jd-font-mono);
319
+ font-weight: var(--jd-weight-regular);
320
+ font-size: var(--jd-size-mono);
321
+ line-height: 1.3333333333333333;
322
+ letter-spacing: 0em;
323
+ font-variant-numeric: tabular-nums lining-nums;
324
+ font-feature-settings: "tnum" 1, "lnum" 1;
325
+ font-variant-ligatures: none;
326
+ color: var(--jd-ink-100);
327
+ }
328
+ /* As-written casing for the uppercase label styles: statuses, counts, values, units, messages, controls (ADR-0009). */
329
+ .t-label.t-as-written,
330
+ .t-micro.t-as-written {
331
+ text-transform: none;
332
+ letter-spacing: var(--jd-track-body);
333
+ font-feature-settings: normal;
334
+ }
335
+ .t-editorial-nums {
336
+ font-variant-numeric: oldstyle-nums proportional-nums;
337
+ font-feature-settings: "onum" 1, "pnum" 1;
338
+ }
339
+
340
+ /* =========================================================================
341
+ DYNAMIC SCHEME: DUAL-TIER CARBON (DARK MODE)
342
+ ========================================================================= */
343
+ @media (prefers-color-scheme: dark) {
344
+ :root:not([data-theme="light"]) {
345
+ --jd-substrate: oklch(0.205 0.000 0); /* #171717 Deep Carbon */
346
+ --jd-surface-elevated: oklch(0.252 0.000 0); /* #222222 Carbon Surface */
347
+ --jd-surface-recessed: oklch(0.173 0.000 0); /* #101010 Sunken Well / Hover */
348
+
349
+ --jd-ink-100: oklch(0.980 0.000 0); /* #F8F8F8 Optical White (>=15.0:1 AAA) */
350
+ --jd-ink-60: oklch(0.720 0.005 92); /* #A6A4A1 Secondary Ink (>6.4:1 AA) */
351
+ --jd-ink-30: oklch(0.350 0.004 92); /* #3B3A38 Hairline / Disabled */
352
+ --jd-signal-error: oklch(0.680 0.200 25); /* #FC5855 Accessible Error */
353
+ --jd-signal-error-hc: oklch(0.762 0.141 25);
354
+ --accent-ink: var(--jd-accent-ink, #000000);
355
+ }
356
+ }
357
+
358
+ /* Standalone so a bundle that drops the dark scope selector below (a downstream bundler may strip
359
+ the [data-theme="dark"] list entry and the prefers-color-scheme block) still gives a dark page its dark ink. */
360
+ :root[data-theme="dark"] {
361
+ --accent-ink: var(--jd-accent-ink, #000000);
362
+ }
363
+
364
+ [data-theme="dark"],
365
+ .palette-dark {
366
+ --jd-substrate: oklch(0.205 0.000 0);
367
+ --jd-surface-elevated: oklch(0.252 0.000 0);
368
+ --jd-surface-recessed: oklch(0.173 0.000 0);
369
+
370
+ --jd-ink-100: oklch(0.980 0.000 0);
371
+ --jd-ink-60: oklch(0.720 0.005 92);
372
+ --jd-ink-30: oklch(0.350 0.004 92);
373
+ --jd-signal-error: oklch(0.680 0.200 25);
374
+ --jd-signal-error-hc: oklch(0.762 0.141 25);
375
+ --jd-ink100: var(--jd-ink-100);
376
+ --jd-ink60: var(--jd-ink-60);
377
+ --jd-ink30: var(--jd-ink-30);
378
+ --jd-black: var(--jd-ink-100);
379
+ --jd-white: var(--jd-surface-elevated);
380
+ --jd-paper: var(--jd-substrate);
381
+ --jd-line: var(--jd-ink-100);
382
+ --black: var(--jd-black);
383
+ --white: var(--jd-white);
384
+ --paper: var(--jd-paper);
385
+ --ink-100: var(--jd-ink-100);
386
+ --ink-60: var(--jd-ink-60);
387
+ --ink-30: var(--jd-ink-30);
388
+ --signal-error: var(--jd-signal-error);
389
+ --line: var(--jd-line);
390
+ --rule: var(--jd-rule);
391
+ --accent: var(--jd-accent, var(--jd-ink-100));
392
+ --accent-fg: var(--jd-accent-fg, var(--accent));
393
+ --accent-2: var(--jd-accent-2, oklch(0.520 0.005 92));
394
+ --accent-ink: var(--jd-accent-ink, #000000);
395
+ --jd-primary: var(--accent);
396
+ --jd-secondary: var(--jd-ink-60);
397
+ --jd-tertiary: var(--jd-ink-30);
398
+ --primary: var(--jd-primary);
399
+ --secondary: var(--jd-secondary);
400
+ --tertiary: var(--jd-tertiary);
401
+ --jd-fg1: var(--jd-ink-100);
402
+ --jd-fg2: var(--jd-ink-60);
403
+ --jd-fg3: var(--jd-ink-30);
404
+ --jd-bg1: var(--jd-substrate);
405
+ --jd-bg2: var(--jd-surface-elevated);
406
+ --fg1: var(--jd-fg1);
407
+ --fg2: var(--jd-fg2);
408
+ --fg3: var(--jd-fg3);
409
+ --bg1: var(--jd-bg1);
410
+ --bg2: var(--jd-bg2);
411
+ }
412
+
413
+ /* Nested light subtree inside a dark page. */
414
+ [data-theme="light"] {
415
+ --jd-substrate: oklch(1.000 0.000 0);
416
+ --jd-surface-elevated: oklch(0.980 0.000 0);
417
+ --jd-surface-recessed: oklch(0.958 0.000 0);
418
+
419
+ --jd-ink-100: oklch(0.080 0.000 0);
420
+ --jd-ink-60: oklch(0.520 0.005 92);
421
+ --jd-ink-30: oklch(0.780 0.005 92);
422
+ --jd-signal-error: oklch(0.530 0.214 25);
423
+ --jd-signal-error-hc: oklch(0.415 0.168 25);
424
+ --jd-ink100: var(--jd-ink-100);
425
+ --jd-ink60: var(--jd-ink-60);
426
+ --jd-ink30: var(--jd-ink-30);
427
+ --jd-black: var(--jd-ink-100);
428
+ --jd-white: var(--jd-surface-elevated);
429
+ --jd-paper: var(--jd-substrate);
430
+ --jd-line: var(--jd-ink-100);
431
+ --black: var(--jd-black);
432
+ --white: var(--jd-white);
433
+ --paper: var(--jd-paper);
434
+ --ink-100: var(--jd-ink-100);
435
+ --ink-60: var(--jd-ink-60);
436
+ --ink-30: var(--jd-ink-30);
437
+ --signal-error: var(--jd-signal-error);
438
+ --line: var(--jd-line);
439
+ --rule: var(--jd-rule);
440
+ --accent: var(--jd-accent, var(--jd-ink-100));
441
+ --accent-fg: var(--jd-accent-fg, var(--accent));
442
+ --accent-2: var(--jd-accent-2, oklch(0.520 0.005 92));
443
+ --accent-ink: var(--jd-accent-ink, #ffffff);
444
+ --jd-primary: var(--accent);
445
+ --jd-secondary: var(--jd-ink-60);
446
+ --jd-tertiary: var(--jd-ink-30);
447
+ --primary: var(--jd-primary);
448
+ --secondary: var(--jd-secondary);
449
+ --tertiary: var(--jd-tertiary);
450
+ --jd-fg1: var(--jd-ink-100);
451
+ --jd-fg2: var(--jd-ink-60);
452
+ --jd-fg3: var(--jd-ink-30);
453
+ --jd-bg1: var(--jd-substrate);
454
+ --jd-bg2: var(--jd-surface-elevated);
455
+ --fg1: var(--jd-fg1);
456
+ --fg2: var(--jd-fg2);
457
+ --fg3: var(--jd-fg3);
458
+ --bg1: var(--jd-bg1);
459
+ --bg2: var(--jd-bg2);
460
+ }
461
+
462
+ /* =========================================================================
463
+ ACCESSIBILITY: HIGH CONTRAST (PREFERS-CONTRAST: MORE & DATA-CONTRAST="HIGH")
464
+ Promotes secondary ink to AAA (>=7.0:1) and calibrates signalError to AAA.
465
+ Scales hairline rules to 2px bold rules.
466
+ The scheme-specific AAA error colour lives in --jd-signal-error-hc, set by the scheme
467
+ rules above, so one high-contrast rule serves light and dark. Every selector below has
468
+ specificity equal to or above the matching scheme rule and appears after it.
469
+ ========================================================================= */
470
+ @media (prefers-contrast: more) {
471
+ :root:not([data-contrast="normal"]),
472
+ [data-theme]:not([data-contrast="normal"]),
473
+ .palette-dark:not([data-contrast="normal"]) {
474
+ --jd-rule: var(--jd-rule-bold);
475
+ --rule: var(--jd-rule-bold);
476
+ --jd-ink-60: var(--jd-ink-100);
477
+ --jd-ink-30: var(--jd-ink-100);
478
+ --jd-signal-error: var(--jd-signal-error-hc);
479
+ }
480
+ }
481
+
482
+ :root[data-contrast="high"],
483
+ [data-contrast="high"],
484
+ [data-contrast="high"] [data-theme],
485
+ [data-contrast="high"] .palette-dark,
486
+ [data-theme][data-contrast="high"],
487
+ .palette-dark[data-contrast="high"] {
488
+ --jd-rule: var(--jd-rule-bold);
489
+ --rule: var(--jd-rule-bold);
490
+ --jd-ink-60: var(--jd-ink-100);
491
+ --jd-ink-30: var(--jd-ink-100);
492
+ --jd-signal-error: var(--jd-signal-error-hc);
493
+ }
494
+
495
+ /* =========================================================================
496
+ EXAMPLE PALETTES
497
+ ========================================================================= */
498
+ .palette-pastel {
499
+ --jd-ink100: var(--jd-ink-100);
500
+ --jd-ink60: var(--jd-ink-60);
501
+ --jd-ink30: var(--jd-ink-30);
502
+ --jd-black: var(--jd-ink-100);
503
+ --jd-white: var(--jd-surface-elevated);
504
+ --jd-paper: var(--jd-substrate);
505
+ --jd-line: var(--jd-ink-100);
506
+ --black: var(--jd-black);
507
+ --white: var(--jd-white);
508
+ --paper: var(--jd-paper);
509
+ --ink-100: var(--jd-ink-100);
510
+ --ink-60: var(--jd-ink-60);
511
+ --ink-30: var(--jd-ink-30);
512
+ --signal-error: var(--jd-signal-error);
513
+ --line: var(--jd-line);
514
+ --rule: var(--jd-rule);
515
+ --accent: var(--jd-accent, var(--jd-ink-100));
516
+ --accent-fg: var(--jd-accent-fg, var(--accent));
517
+ --accent-2: var(--jd-accent-2, oklch(0.520 0.005 92));
518
+ --jd-primary: var(--accent);
519
+ --jd-secondary: var(--jd-ink-60);
520
+ --jd-tertiary: var(--jd-ink-30);
521
+ --primary: var(--jd-primary);
522
+ --secondary: var(--jd-secondary);
523
+ --tertiary: var(--jd-tertiary);
524
+ --jd-fg1: var(--jd-ink-100);
525
+ --jd-fg2: var(--jd-ink-60);
526
+ --jd-fg3: var(--jd-ink-30);
527
+ --jd-bg1: var(--jd-substrate);
528
+ --jd-bg2: var(--jd-surface-elevated);
529
+ --fg1: var(--jd-fg1);
530
+ --fg2: var(--jd-fg2);
531
+ --fg3: var(--jd-fg3);
532
+ --bg1: var(--jd-bg1);
533
+ --bg2: var(--jd-bg2);
534
+ --jd-bg1: var(--jd-paper);
535
+ --jd-bg2: oklch(0.93 0.012 92);
536
+ --jd-fg1: oklch(0.20 0 0);
537
+ --jd-fg2: var(--jd-ink-60);
538
+ --jd-line: oklch(0.20 0 0);
539
+ --jd-primary: oklch(0.88 0.05 250);
540
+ --jd-secondary: oklch(0.88 0.06 30);
541
+ --jd-tertiary: oklch(0.88 0.05 150);
542
+ --jd-accent: var(--jd-primary);
543
+ }