@mdxui/named 8.1.0 → 8.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.js +28 -19
- package/dist/components/index.js.map +1 -1
- package/dist/index.js +28 -19
- package/dist/index.js.map +1 -1
- package/dist/styles.css +236 -350
- package/dist/view/index.js +35 -21
- package/dist/view/index.js.map +1 -1
- package/package.json +3 -3
package/dist/styles.css
CHANGED
|
@@ -141,49 +141,42 @@
|
|
|
141
141
|
copy of named-agents app/globals.css :root (LIGHT / cream).
|
|
142
142
|
────────────────────────────────────────────────────────────────── */
|
|
143
143
|
[data-dialect='named'] {
|
|
144
|
-
/*
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
--
|
|
158
|
-
--
|
|
159
|
-
--
|
|
160
|
-
|
|
161
|
-
--
|
|
162
|
-
--
|
|
163
|
-
--
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
--color-
|
|
169
|
-
--color-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
--color-
|
|
175
|
-
|
|
176
|
-
--color-
|
|
177
|
-
|
|
178
|
-
--color-
|
|
179
|
-
--color-
|
|
180
|
-
|
|
181
|
-
--color-btn-primary-from: oklch(0.315 0.008 250);
|
|
182
|
-
--color-btn-primary-to: oklch(0.06 0 0);
|
|
183
|
-
--color-btn-primary-fg: oklch(0.995 0.005 80);
|
|
184
|
-
|
|
185
|
-
--color-destructive: oklch(0.58 0.18 25);
|
|
186
|
-
--color-destructive-fg: oklch(0.995 0.005 80);
|
|
144
|
+
/* ════ THEME DERIVATION ══════════════════════════════════════════════
|
|
145
|
+
The neo shared names (--background, --primary, …) are NOT re-declared
|
|
146
|
+
here anymore: they inherit from the host theme preset that <Site>
|
|
147
|
+
(DialectShell) sets on its wrapper, so swapping the preset repaints the
|
|
148
|
+
named subtree. The semantic layer below derives from them, with the
|
|
149
|
+
cream-baseline literals as var() fallbacks — a host that mounts the
|
|
150
|
+
named arc with no theme CSS at all still renders the baseline.
|
|
151
|
+
|
|
152
|
+
PAIR RULE: whenever a derivation adjusts one half of a contrast pair
|
|
153
|
+
(clamping a field, lifting type), the partner must be re-derived with
|
|
154
|
+
it — never keep the preset's pairing against an adjusted value. */
|
|
155
|
+
|
|
156
|
+
/* ---- baseline semantic layer, derived from the preset --------------- */
|
|
157
|
+
--color-surface: var(--background, oklch(0.945 0.01 95));
|
|
158
|
+
--color-surface-raised: var(--card, oklch(0.975 0.005 95));
|
|
159
|
+
--color-surface-sunken: var(--muted, oklch(0.91 0.012 95));
|
|
160
|
+
|
|
161
|
+
--color-fg: var(--foreground, oklch(0.18 0.008 80));
|
|
162
|
+
--color-fg-soft: color-mix(in oklab, var(--color-fg) 60%, var(--color-fg-muted));
|
|
163
|
+
--color-fg-muted: var(--muted-foreground, oklch(0.46 0.012 80));
|
|
164
|
+
|
|
165
|
+
/* hairlines: always ink-at-alpha so the rules read on any palette */
|
|
166
|
+
--color-border: color-mix(in oklab, var(--color-fg) 10%, transparent);
|
|
167
|
+
--color-border-strong: color-mix(in oklab, var(--color-fg) 25%, transparent);
|
|
168
|
+
--color-ring: color-mix(in oklab, var(--color-fg) 35%, transparent);
|
|
169
|
+
--color-hover: color-mix(in oklab, var(--color-fg) 6%, transparent);
|
|
170
|
+
|
|
171
|
+
/* primary CTA gradient: the preset primary, top endpoint lifted a step
|
|
172
|
+
(the baseline's graphite→ink read). Text keeps the preset's pairing —
|
|
173
|
+
the bottom endpoint IS the raw primary. */
|
|
174
|
+
--color-btn-primary-from: oklch(from var(--primary, oklch(0.06 0 0)) calc(l + 0.12) c h);
|
|
175
|
+
--color-btn-primary-to: var(--primary, oklch(0.06 0 0));
|
|
176
|
+
--color-btn-primary-fg: var(--primary-foreground, oklch(0.995 0.005 80));
|
|
177
|
+
|
|
178
|
+
--color-destructive: var(--destructive, oklch(0.58 0.18 25));
|
|
179
|
+
--color-destructive-fg: var(--destructive-foreground, oklch(0.995 0.005 80));
|
|
187
180
|
|
|
188
181
|
/* ---- baseline hue library + persona accent (Priya = persimmon) ----- */
|
|
189
182
|
--hue-teal-soft: oklch(0.95 0.04 210);
|
|
@@ -206,10 +199,34 @@
|
|
|
206
199
|
--hue-purple-medium: oklch(0.86 0.045 314);
|
|
207
200
|
--hue-purple-strong: oklch(0.63 0.065 314);
|
|
208
201
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
202
|
+
/* Persona accent: derived from the preset primary in the baseline's
|
|
203
|
+
pastel register (soft chip → medium badge → strong mark). Unthemed
|
|
204
|
+
hosts fall back to the baseline persimmon. accent-fg pairs with
|
|
205
|
+
accent-strong (= the RAW primary — the Button `accent` variant is its
|
|
206
|
+
one consumer), so it rides the preset's own contrast partner. */
|
|
207
|
+
--color-accent-soft: color-mix(in oklab, var(--primary, var(--hue-orange-medium)) 18%, var(--color-surface));
|
|
208
|
+
--color-accent: color-mix(in oklab, var(--primary, var(--hue-orange-medium)) 45%, var(--color-surface));
|
|
209
|
+
--color-accent-strong: var(--primary, var(--hue-orange-strong));
|
|
210
|
+
--color-accent-fg: var(--primary-foreground, oklch(0.18 0.008 80));
|
|
211
|
+
|
|
212
|
+
/* Footer — the ink closing band (baseline bg-[#111011]): derived from the
|
|
213
|
+
theme's ink so the band follows the palette; the page surface is the
|
|
214
|
+
on-band type color (the theme's fg/bg pair guarantees contrast both
|
|
215
|
+
ways). The dark block re-derives the pair — the band stays a step
|
|
216
|
+
deeper than the walls instead of inverting (the bookend is ink in both
|
|
217
|
+
modes; that's the studio signature). */
|
|
218
|
+
--color-footer: color-mix(in oklab, var(--color-fg) 97%, var(--color-surface));
|
|
219
|
+
--color-footer-fg: var(--color-surface);
|
|
220
|
+
|
|
221
|
+
/* Code panels (the shared CodeWindow ground; studio + executive read
|
|
222
|
+
these, gallery has its vitrine) — derived from the theme's ink instead
|
|
223
|
+
of the old literal #0d1117 github-dark ground, which is a BLUE-hued
|
|
224
|
+
black (~hue 250) and read blue against the warm/themed surfaces in
|
|
225
|
+
both modes. Same model as the footer band: the theme's ink by day, a
|
|
226
|
+
step deeper than the walls after dark — the panel stays dark in both
|
|
227
|
+
modes (shiki's dark token palette needs the dark ground). */
|
|
228
|
+
--color-code: color-mix(in oklab, var(--color-fg) 96%, var(--color-surface));
|
|
229
|
+
--color-code-fg: var(--color-surface);
|
|
213
230
|
|
|
214
231
|
/* ---- baseline radii (62d6f04) ------------------------------------- */
|
|
215
232
|
--radius-section: 36px; /* large section containers */
|
|
@@ -297,48 +314,21 @@ html:has([data-dialect='named']) {
|
|
|
297
314
|
────────────────────────────────────────────────────────────────── */
|
|
298
315
|
.dark [data-dialect='named'],
|
|
299
316
|
[data-dialect='named'].dark {
|
|
300
|
-
/*
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
--
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
--
|
|
314
|
-
--
|
|
315
|
-
--accent-foreground: oklch(0.18 0.008 80);
|
|
316
|
-
--border: oklch(0.94 0.008 80 / 0.12);
|
|
317
|
-
--input: oklch(0.94 0.008 80 / 0.12);
|
|
318
|
-
--ring: oklch(0.94 0.008 80 / 0.4);
|
|
319
|
-
--destructive: oklch(0.64 0.18 25);
|
|
320
|
-
--destructive-foreground: oklch(0.18 0.005 60);
|
|
321
|
-
|
|
322
|
-
/* ---- baseline semantic layer (verbatim from globals.css .dark) ----- */
|
|
323
|
-
--color-surface: oklch(0.155 0.005 60);
|
|
324
|
-
--color-surface-raised: oklch(0.23 0.008 60);
|
|
325
|
-
--color-surface-sunken: oklch(0.105 0.003 60);
|
|
326
|
-
|
|
327
|
-
--color-fg: oklch(0.94 0.008 80);
|
|
328
|
-
--color-fg-soft: oklch(0.82 0.01 80);
|
|
329
|
-
--color-fg-muted: oklch(0.7 0.012 80);
|
|
330
|
-
|
|
331
|
-
--color-border: oklch(0.94 0.008 80 / 0.12);
|
|
332
|
-
--color-border-strong: oklch(0.94 0.008 80 / 0.25);
|
|
333
|
-
--color-ring: oklch(0.94 0.008 80 / 0.4);
|
|
334
|
-
--color-hover: oklch(0.94 0.008 80 / 0.08);
|
|
335
|
-
|
|
336
|
-
--color-btn-primary-from: oklch(0.945 0.008 80);
|
|
337
|
-
--color-btn-primary-to: oklch(0.87 0.01 80);
|
|
338
|
-
--color-btn-primary-fg: oklch(0.18 0.005 60);
|
|
339
|
-
|
|
340
|
-
--color-destructive: oklch(0.64 0.18 25);
|
|
341
|
-
--color-destructive-fg: oklch(0.18 0.005 60);
|
|
317
|
+
/* With the shared names inherited, the preset's own .dark values flow
|
|
318
|
+
through every derivation in the light block — surfaces, ink, hairlines,
|
|
319
|
+
the CTA gradient, and the accent trio all flip for free. Only the hue
|
|
320
|
+
library below needs dark values (it stays template-owned literal). */
|
|
321
|
+
|
|
322
|
+
/* Footer: the ink band does NOT invert after dark — it re-derives a step
|
|
323
|
+
deeper than the walls (derived from the wall's own lightness; preset
|
|
324
|
+
--muted can sit ABOVE a dark background, so it can't anchor "deeper"). */
|
|
325
|
+
--color-footer: oklch(from var(--color-surface) calc(l * 0.72) c h);
|
|
326
|
+
--color-footer-fg: var(--color-fg);
|
|
327
|
+
|
|
328
|
+
/* Code panels after dark: a step deeper than the walls, type in the
|
|
329
|
+
room's ink (re-paired, same as the footer band). */
|
|
330
|
+
--color-code: oklch(from var(--color-surface) calc(l * 0.72) c h);
|
|
331
|
+
--color-code-fg: var(--color-fg);
|
|
342
332
|
|
|
343
333
|
/* ---- hue library, dark values (hue angles preserved) --------------- */
|
|
344
334
|
--hue-teal-soft: oklch(0.245 0.025 210);
|
|
@@ -362,28 +352,6 @@ html:has([data-dialect='named']) {
|
|
|
362
352
|
--hue-purple-strong: oklch(0.73 0.125 314);
|
|
363
353
|
}
|
|
364
354
|
|
|
365
|
-
/* Dark variants for the scoped utilities that bake literal light-ink values
|
|
366
|
-
(everything var()-driven above flips automatically). */
|
|
367
|
-
.dark [data-dialect='named'] .text-foreground\/70,
|
|
368
|
-
[data-dialect='named'].dark .text-foreground\/70 {
|
|
369
|
-
color: oklch(0.94 0.008 80 / 0.7);
|
|
370
|
-
}
|
|
371
|
-
.dark [data-dialect='named'] .text-foreground\/60,
|
|
372
|
-
[data-dialect='named'].dark .text-foreground\/60 {
|
|
373
|
-
color: oklch(0.94 0.008 80 / 0.6);
|
|
374
|
-
}
|
|
375
|
-
.dark [data-dialect='named'] .bg-primary\/10,
|
|
376
|
-
[data-dialect='named'].dark .bg-primary\/10 {
|
|
377
|
-
background-color: oklch(0.87 0.01 80 / 0.1);
|
|
378
|
-
}
|
|
379
|
-
.dark [data-dialect='named'] .fill-muted-foreground\/20,
|
|
380
|
-
[data-dialect='named'].dark .fill-muted-foreground\/20 {
|
|
381
|
-
fill: oklch(0.7 0.012 80 / 0.2);
|
|
382
|
-
}
|
|
383
|
-
.dark [data-dialect='named'] .stroke-muted-foreground\/20,
|
|
384
|
-
[data-dialect='named'].dark .stroke-muted-foreground\/20 {
|
|
385
|
-
stroke: oklch(0.7 0.012 80 / 0.2);
|
|
386
|
-
}
|
|
387
355
|
/* Baseline `.dark .integration-square-shadow` (globals.css) */
|
|
388
356
|
.dark [data-dialect='named'] .integration-square-shadow,
|
|
389
357
|
[data-dialect='named'].dark .integration-square-shadow {
|
|
@@ -428,7 +396,7 @@ html:has([data-dialect='named']) {
|
|
|
428
396
|
background-color: var(--color-btn-primary-to);
|
|
429
397
|
}
|
|
430
398
|
[data-dialect='named'] .bg-primary\/10 {
|
|
431
|
-
background-color:
|
|
399
|
+
background-color: color-mix(in oklab, var(--color-btn-primary-to) 10%, transparent);
|
|
432
400
|
}
|
|
433
401
|
|
|
434
402
|
/* —— Text colors —————————————————————————————————————————————————— */
|
|
@@ -436,10 +404,10 @@ html:has([data-dialect='named']) {
|
|
|
436
404
|
color: var(--color-fg);
|
|
437
405
|
}
|
|
438
406
|
[data-dialect='named'] .text-foreground\/70 {
|
|
439
|
-
color:
|
|
407
|
+
color: color-mix(in oklab, var(--color-fg) 70%, transparent);
|
|
440
408
|
}
|
|
441
409
|
[data-dialect='named'] .text-foreground\/60 {
|
|
442
|
-
color:
|
|
410
|
+
color: color-mix(in oklab, var(--color-fg) 60%, transparent);
|
|
443
411
|
}
|
|
444
412
|
[data-dialect='named'] .text-muted-foreground {
|
|
445
413
|
color: var(--color-fg-muted);
|
|
@@ -461,10 +429,10 @@ html:has([data-dialect='named']) {
|
|
|
461
429
|
|
|
462
430
|
/* —— Fills / strokes (svg accents that read muted-foreground) ———————— */
|
|
463
431
|
[data-dialect='named'] .fill-muted-foreground\/20 {
|
|
464
|
-
fill:
|
|
432
|
+
fill: color-mix(in oklab, var(--color-fg-muted) 20%, transparent);
|
|
465
433
|
}
|
|
466
434
|
[data-dialect='named'] .stroke-muted-foreground\/20 {
|
|
467
|
-
stroke:
|
|
435
|
+
stroke: color-mix(in oklab, var(--color-fg-muted) 20%, transparent);
|
|
468
436
|
}
|
|
469
437
|
|
|
470
438
|
/* —— Custom utilities the baseline markup relies on ———————————————— */
|
|
@@ -617,62 +585,52 @@ html:has([data-dialect='named']) {
|
|
|
617
585
|
}
|
|
618
586
|
|
|
619
587
|
[data-dialect='named'][data-template='executive'] {
|
|
620
|
-
/*
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
--color-
|
|
635
|
-
--color-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
--color-
|
|
646
|
-
--color-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
--color-
|
|
654
|
-
--color-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
--
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
--
|
|
661
|
-
--
|
|
662
|
-
--
|
|
663
|
-
|
|
664
|
-
--
|
|
665
|
-
--
|
|
666
|
-
--primary-foreground: oklch(0.985 0.004 250);
|
|
667
|
-
--secondary: oklch(0.952 0.005 250);
|
|
668
|
-
--secondary-foreground: oklch(0.21 0.012 255);
|
|
669
|
-
--accent: oklch(0.49 0.12 20);
|
|
670
|
-
--accent-foreground: oklch(0.985 0.004 250);
|
|
671
|
-
--border: oklch(0.21 0.012 255 / 0.16);
|
|
672
|
-
--input: oklch(0.21 0.012 255 / 0.16);
|
|
673
|
-
--ring: oklch(0.21 0.012 255 / 0.4);
|
|
674
|
-
--destructive: oklch(0.58 0.18 25);
|
|
675
|
-
--destructive-foreground: oklch(0.985 0.004 250);
|
|
588
|
+
/* ════ THEME DERIVATION ══════════════════════════════════════════════
|
|
589
|
+
Like studio/gallery: the neo shared names inherit from the host preset
|
|
590
|
+
(<Site>'s wrapper — studio's block no longer re-points them), and the
|
|
591
|
+
executive semantic layer derives from them. The hairline language
|
|
592
|
+
survives as foreground-at-alpha mixes; the one-accent language maps
|
|
593
|
+
onto the preset's --primary/--primary-foreground contrast pair.
|
|
594
|
+
Geometry (2px corners, zero shadows) and the Anton masthead stay
|
|
595
|
+
template identity and do NOT follow the theme.
|
|
596
|
+
|
|
597
|
+
PAIR RULE: whenever a derivation adjusts one half of a contrast pair,
|
|
598
|
+
the partner is re-derived with it (see the dark block). */
|
|
599
|
+
|
|
600
|
+
/* ---- semantic layer — derived from the preset ------------------------ */
|
|
601
|
+
/* surfaces (fallbacks: Ledger Paper, for hosts with no theme CSS) */
|
|
602
|
+
--color-surface: var(--background, oklch(0.975 0.004 250));
|
|
603
|
+
--color-surface-raised: var(--card, oklch(0.99 0.003 250));
|
|
604
|
+
--color-surface-sunken: var(--muted, oklch(0.952 0.005 250));
|
|
605
|
+
|
|
606
|
+
/* ink */
|
|
607
|
+
--color-fg: var(--foreground, oklch(0.21 0.012 255));
|
|
608
|
+
--color-fg-soft: color-mix(in oklab, var(--color-fg) 55%, var(--color-fg-muted));
|
|
609
|
+
--color-fg-muted: var(--muted-foreground, oklch(0.47 0.012 255));
|
|
610
|
+
|
|
611
|
+
/* hairline rules — the structural language: always ink-at-alpha, never the
|
|
612
|
+
preset's solid --border (a solid border kills the ledger hairline read) */
|
|
613
|
+
--color-border: color-mix(in oklab, var(--color-fg) 16%, transparent);
|
|
614
|
+
--color-border-strong: color-mix(in oklab, var(--color-fg) 45%, transparent);
|
|
615
|
+
--color-ring: color-mix(in oklab, var(--color-fg) 40%, transparent);
|
|
616
|
+
--color-hover: color-mix(in oklab, var(--color-fg) 4%, transparent);
|
|
617
|
+
|
|
618
|
+
/* the one accent — in TWO roles (`field` paints large surfaces, `strong`
|
|
619
|
+
is accent TYPE and small marks). Both map onto the preset's primary
|
|
620
|
+
pair (fallback: oxblood); the dark block splits them. */
|
|
621
|
+
--color-accent-field: var(--primary, oklch(0.42 0.13 20));
|
|
622
|
+
--color-accent-strong: var(--primary, oklch(0.42 0.13 20));
|
|
623
|
+
--color-accent: oklch(from var(--primary, oklch(0.49 0.12 20)) calc(l + 0.07) c h);
|
|
624
|
+
--color-accent-soft: color-mix(in oklab, var(--primary, oklch(0.42 0.13 20)) 12%, var(--color-surface));
|
|
625
|
+
--color-accent-fg: var(--primary-foreground, oklch(0.985 0.004 250));
|
|
626
|
+
|
|
627
|
+
/* primary button: solid accent (the studio gradient collapses flat) */
|
|
628
|
+
--color-btn-primary-from: var(--primary, oklch(0.42 0.13 20));
|
|
629
|
+
--color-btn-primary-to: var(--primary, oklch(0.42 0.13 20));
|
|
630
|
+
--color-btn-primary-fg: var(--primary-foreground, oklch(0.985 0.004 250));
|
|
631
|
+
|
|
632
|
+
--color-destructive: var(--destructive, oklch(0.58 0.18 25));
|
|
633
|
+
--color-destructive-fg: var(--destructive-foreground, oklch(0.985 0.004 250));
|
|
676
634
|
|
|
677
635
|
/* ---- geometry: square document corners, flat surfaces ---------------- */
|
|
678
636
|
/* 2px everywhere a radius utility appears (--radius anchors the host's
|
|
@@ -724,55 +682,26 @@ html:has([data-dialect='named']) {
|
|
|
724
682
|
────────────────────────────────────────────────────────────────── */
|
|
725
683
|
.dark [data-dialect='named'][data-template='executive'],
|
|
726
684
|
[data-dialect='named'][data-template='executive'].dark {
|
|
727
|
-
/*
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
--color-
|
|
735
|
-
|
|
736
|
-
--color-
|
|
737
|
-
--color-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
--color-accent-
|
|
744
|
-
|
|
745
|
-
--color-
|
|
746
|
-
--color-
|
|
747
|
-
--color-accent-fg: oklch(0.975 0.006 250);
|
|
748
|
-
|
|
749
|
-
--color-btn-primary-from: oklch(0.55 0.15 22);
|
|
750
|
-
--color-btn-primary-to: oklch(0.55 0.15 22);
|
|
751
|
-
--color-btn-primary-fg: oklch(0.975 0.006 250);
|
|
752
|
-
|
|
753
|
-
--color-destructive: oklch(0.62 0.18 25);
|
|
754
|
-
--color-destructive-fg: oklch(0.16 0.01 255);
|
|
755
|
-
|
|
756
|
-
/* ---- neo shared names, re-pointed ----------------------------------- */
|
|
757
|
-
--background: oklch(0.16 0.01 255);
|
|
758
|
-
--foreground: oklch(0.945 0.005 250);
|
|
759
|
-
--card: oklch(0.205 0.012 255);
|
|
760
|
-
--card-foreground: oklch(0.945 0.005 250);
|
|
761
|
-
--popover: oklch(0.205 0.012 255);
|
|
762
|
-
--popover-foreground: oklch(0.945 0.005 250);
|
|
763
|
-
--muted: oklch(0.125 0.008 255);
|
|
764
|
-
--muted-foreground: oklch(0.67 0.008 250);
|
|
765
|
-
--primary: oklch(0.55 0.16 22);
|
|
766
|
-
--primary-foreground: oklch(0.975 0.006 250);
|
|
767
|
-
--secondary: oklch(0.205 0.012 255);
|
|
768
|
-
--secondary-foreground: oklch(0.945 0.005 250);
|
|
769
|
-
--accent: oklch(0.62 0.15 22);
|
|
770
|
-
--accent-foreground: oklch(0.975 0.006 250);
|
|
771
|
-
--border: oklch(0.945 0.005 250 / 0.15);
|
|
772
|
-
--input: oklch(0.945 0.005 250 / 0.15);
|
|
773
|
-
--ring: oklch(0.945 0.005 250 / 0.4);
|
|
774
|
-
--destructive: oklch(0.62 0.18 25);
|
|
775
|
-
--destructive-foreground: oklch(0.16 0.01 255);
|
|
685
|
+
/* SPIKE: with the shared names un-shadowed (base block `inherit`), the
|
|
686
|
+
host preset's own .dark values flow through the derivations above —
|
|
687
|
+
surfaces, ink, hairlines, and the contrast pairs all flip for free.
|
|
688
|
+
The only design-specific dark rule left is the accent ROLE SPLIT:
|
|
689
|
+
FIELDS stay deep (a lifted large field reads muddy), accent TYPE lifts
|
|
690
|
+
to stay legible on ink — derived from the preset primary via relative
|
|
691
|
+
color syntax instead of the old oxblood literals. */
|
|
692
|
+
--color-accent-field: oklch(from var(--primary, oklch(0.37 0.115 20)) min(l, 0.45) c h);
|
|
693
|
+
--color-accent-strong: oklch(from var(--primary, oklch(0.62 0.16 24)) max(l, 0.62) c h);
|
|
694
|
+
--color-accent: oklch(from var(--primary, oklch(0.68 0.15 26)) max(l, 0.68) calc(c * 1.05) h);
|
|
695
|
+
--color-accent-soft: color-mix(in oklab, var(--primary, oklch(0.37 0.115 20)) 22%, var(--color-surface));
|
|
696
|
+
/* Type/marks ON the clamped-deep fields can't keep the preset's
|
|
697
|
+
--primary-foreground pairing — that pairs with the RAW primary, and a
|
|
698
|
+
light dark-mode primary (clay: 0.68 L) carries a near-BLACK foreground,
|
|
699
|
+
which lands black-on-deep once the field is clamped. The theme's dark
|
|
700
|
+
ink IS light, so the cover sets in the theme's own ink. */
|
|
701
|
+
--color-accent-fg: var(--color-fg);
|
|
702
|
+
|
|
703
|
+
--color-btn-primary-from: oklch(from var(--primary, oklch(0.55 0.15 22)) max(l, 0.55) c h);
|
|
704
|
+
--color-btn-primary-to: oklch(from var(--primary, oklch(0.55 0.15 22)) max(l, 0.55) c h);
|
|
776
705
|
}
|
|
777
706
|
|
|
778
707
|
/* Display headings: the shared h1/h2 rule supplies var(--font-display) →
|
|
@@ -860,74 +789,66 @@ html:has([data-dialect='named']) {
|
|
|
860
789
|
}
|
|
861
790
|
|
|
862
791
|
[data-dialect='named'][data-template='gallery'] {
|
|
863
|
-
/*
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
/*
|
|
875
|
-
--color-
|
|
876
|
-
--color-
|
|
877
|
-
--color-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
--color-
|
|
886
|
-
--color-
|
|
887
|
-
--color-
|
|
888
|
-
--color-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
--color-
|
|
896
|
-
--color-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
--color-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
--color-
|
|
905
|
-
--color-
|
|
906
|
-
--color-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
--
|
|
913
|
-
--
|
|
914
|
-
--
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
--
|
|
918
|
-
--
|
|
919
|
-
--
|
|
920
|
-
|
|
921
|
-
--
|
|
922
|
-
--
|
|
923
|
-
--secondary-foreground: oklch(0.21 0.012 55);
|
|
924
|
-
--accent: oklch(0.5 0.24 264);
|
|
925
|
-
--accent-foreground: oklch(0.975 0.006 85);
|
|
926
|
-
--border: oklch(0.21 0.012 55 / 0.14);
|
|
927
|
-
--input: oklch(0.21 0.012 55 / 0.14);
|
|
928
|
-
--ring: oklch(0.45 0.2 264 / 0.5);
|
|
929
|
-
--destructive: oklch(0.55 0.19 28);
|
|
930
|
-
--destructive-foreground: oklch(0.975 0.006 85);
|
|
792
|
+
/* ════ THEME DERIVATION ══════════════════════════════════════════════
|
|
793
|
+
Like studio/executive: the neo shared names inherit from the host
|
|
794
|
+
preset (<Site>'s wrapper); the gallery semantic layer derives from
|
|
795
|
+
them, with the day-gallery literals as unthemed fallbacks. The museum
|
|
796
|
+
STRUCTURE (placard system, vitrines, frames, museum light) is the
|
|
797
|
+
identity; the palette follows the theme.
|
|
798
|
+
|
|
799
|
+
PAIR RULE: whenever a derivation adjusts one half of a contrast pair,
|
|
800
|
+
the partner is re-derived with it (see the dark block). */
|
|
801
|
+
|
|
802
|
+
/* ---- semantic layer — derived from the preset ------------------------ */
|
|
803
|
+
/* walls */
|
|
804
|
+
--color-surface: var(--background, oklch(0.957 0.007 80));
|
|
805
|
+
--color-surface-raised: var(--card, oklch(0.978 0.005 82));
|
|
806
|
+
--color-surface-sunken: var(--muted, oklch(0.928 0.009 78));
|
|
807
|
+
|
|
808
|
+
/* ink */
|
|
809
|
+
--color-fg: var(--foreground, oklch(0.21 0.012 55));
|
|
810
|
+
--color-fg-soft: color-mix(in oklab, var(--color-fg) 60%, var(--color-fg-muted));
|
|
811
|
+
--color-fg-muted: var(--muted-foreground, oklch(0.47 0.014 60));
|
|
812
|
+
|
|
813
|
+
/* hairlines — frame edges and rule lines: always ink-at-alpha */
|
|
814
|
+
--color-border: color-mix(in oklab, var(--color-fg) 14%, transparent);
|
|
815
|
+
--color-border-strong: color-mix(in oklab, var(--color-fg) 42%, transparent);
|
|
816
|
+
--color-ring: color-mix(in oklab, var(--primary, oklch(0.45 0.2 264)) 50%, transparent);
|
|
817
|
+
--color-hover: color-mix(in oklab, var(--color-fg) 5%, transparent);
|
|
818
|
+
|
|
819
|
+
/* the one accent: the preset primary in the Klein-blue roles. `field`
|
|
820
|
+
paints the large surfaces (the closing-room wall, the featured
|
|
821
|
+
edition); `strong` is accent TYPE and small marks (catalogue numbers,
|
|
822
|
+
diamonds). They share the raw primary in daylight — the preset's
|
|
823
|
+
--primary-foreground pairing holds; after dark they split (below). */
|
|
824
|
+
--color-accent-field: var(--primary, oklch(0.45 0.28 264));
|
|
825
|
+
--color-accent-strong: var(--primary, oklch(0.45 0.26 264));
|
|
826
|
+
--color-accent: oklch(from var(--primary, oklch(0.5 0.24 264)) calc(l + 0.05) calc(c * 0.9) h);
|
|
827
|
+
--color-accent-soft: color-mix(in oklab, var(--primary, oklch(0.45 0.28 264)) 10%, var(--color-surface));
|
|
828
|
+
--color-accent-fg: var(--primary-foreground, oklch(0.975 0.006 85));
|
|
829
|
+
|
|
830
|
+
/* placards: the preset's card material (the bone-card conceit yields to
|
|
831
|
+
the theme — a placard is the theme's card, hung in the gallery) */
|
|
832
|
+
--color-placard: var(--card, oklch(0.982 0.005 85));
|
|
833
|
+
--color-placard-fg: var(--card-foreground, oklch(0.21 0.012 55));
|
|
834
|
+
--color-placard-soft: color-mix(in oklab, var(--color-placard-fg) 80%, var(--color-placard));
|
|
835
|
+
--color-placard-muted: color-mix(in oklab, var(--color-placard-fg) 64%, var(--color-placard));
|
|
836
|
+
--color-placard-border: color-mix(in oklab, var(--color-placard-fg) 12%, transparent);
|
|
837
|
+
|
|
838
|
+
/* vitrines: dark velvet interiors — display cases stay dark by day, so
|
|
839
|
+
by day the velvet derives from the room's INK (pair: type in the
|
|
840
|
+
room's surface tone). The dark block re-derives both (see below). */
|
|
841
|
+
--color-vitrine: color-mix(in oklab, var(--color-fg) 92%, var(--color-surface));
|
|
842
|
+
--color-vitrine-fg: var(--color-surface);
|
|
843
|
+
--color-vitrine-border: color-mix(in oklab, var(--color-fg) 35%, transparent);
|
|
844
|
+
|
|
845
|
+
/* primary action: solid preset primary (the studio gradient collapses flat) */
|
|
846
|
+
--color-btn-primary-from: var(--primary, oklch(0.45 0.28 264));
|
|
847
|
+
--color-btn-primary-to: var(--primary, oklch(0.45 0.28 264));
|
|
848
|
+
--color-btn-primary-fg: var(--primary-foreground, oklch(0.975 0.006 85));
|
|
849
|
+
|
|
850
|
+
--color-destructive: var(--destructive, oklch(0.55 0.19 28));
|
|
851
|
+
--color-destructive-fg: var(--destructive-foreground, oklch(0.975 0.006 85));
|
|
931
852
|
|
|
932
853
|
/* ---- geometry: crisp frames, gently eased placard corners ------------ */
|
|
933
854
|
/* 4px base (--radius anchors the host's @theme-inline multipliers; see
|
|
@@ -1001,67 +922,32 @@ html:has([data-dialect='named']) {
|
|
|
1001
922
|
────────────────────────────────────────────────────────────────── */
|
|
1002
923
|
.dark [data-dialect='named'][data-template='gallery'],
|
|
1003
924
|
[data-dialect='named'][data-template='gallery'].dark {
|
|
1004
|
-
/*
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
--color-
|
|
1014
|
-
--color-
|
|
1015
|
-
--color-
|
|
1016
|
-
--color-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
--color-
|
|
1023
|
-
--color-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
--color-
|
|
1029
|
-
--color-
|
|
1030
|
-
--color-placard-border: oklch(0.22 0.012 50 / 0.14);
|
|
1031
|
-
|
|
1032
|
-
/* vitrine: a step deeper than the walls */
|
|
1033
|
-
--color-vitrine: oklch(0.115 0.01 45);
|
|
1034
|
-
--color-vitrine-fg: oklch(0.92 0.008 80);
|
|
1035
|
-
--color-vitrine-border: oklch(0.93 0.01 80 / 0.22);
|
|
1036
|
-
|
|
1037
|
-
/* primary action: ultramarine lifted half a step for the dark room */
|
|
1038
|
-
--color-btn-primary-from: oklch(0.48 0.26 264);
|
|
1039
|
-
--color-btn-primary-to: oklch(0.48 0.26 264);
|
|
1040
|
-
--color-btn-primary-fg: oklch(0.965 0.008 85);
|
|
1041
|
-
|
|
1042
|
-
--color-destructive: oklch(0.62 0.18 28);
|
|
1043
|
-
--color-destructive-fg: oklch(0.168 0.012 45);
|
|
1044
|
-
|
|
1045
|
-
/* ---- neo shared names, re-pointed ----------------------------------- */
|
|
1046
|
-
--background: oklch(0.168 0.012 45);
|
|
1047
|
-
--foreground: oklch(0.93 0.01 80);
|
|
1048
|
-
--card: oklch(0.205 0.014 45);
|
|
1049
|
-
--card-foreground: oklch(0.93 0.01 80);
|
|
1050
|
-
--popover: oklch(0.205 0.014 45);
|
|
1051
|
-
--popover-foreground: oklch(0.93 0.01 80);
|
|
1052
|
-
--muted: oklch(0.13 0.01 45);
|
|
1053
|
-
--muted-foreground: oklch(0.66 0.012 75);
|
|
1054
|
-
--primary: oklch(0.48 0.26 264);
|
|
1055
|
-
--primary-foreground: oklch(0.965 0.008 85);
|
|
1056
|
-
--secondary: oklch(0.205 0.014 45);
|
|
1057
|
-
--secondary-foreground: oklch(0.93 0.01 80);
|
|
1058
|
-
--accent: oklch(0.58 0.22 265);
|
|
1059
|
-
--accent-foreground: oklch(0.965 0.008 85);
|
|
1060
|
-
--border: oklch(0.93 0.01 80 / 0.13);
|
|
1061
|
-
--input: oklch(0.93 0.01 80 / 0.13);
|
|
1062
|
-
--ring: oklch(0.64 0.19 266 / 0.55);
|
|
1063
|
-
--destructive: oklch(0.62 0.18 28);
|
|
1064
|
-
--destructive-foreground: oklch(0.168 0.012 45);
|
|
925
|
+
/* With the shared names inherited, the preset's .dark values flow through
|
|
926
|
+
the light-block derivations — walls, ink, hairlines, placards (now the
|
|
927
|
+
theme's dark cards) all flip for free. What remains is design-specific:
|
|
928
|
+
the accent ROLE SPLIT (painted fields hold deep, type lifts — and the
|
|
929
|
+
on-field type re-pairs to the theme's dark ink, which is light), the
|
|
930
|
+
vitrine re-derived a step deeper than the walls, and the museum light. */
|
|
931
|
+
|
|
932
|
+
/* accent after dark: fields hold deep, type lifts */
|
|
933
|
+
--color-accent-field: oklch(from var(--primary, oklch(0.43 0.27 264)) min(l, 0.45) c h);
|
|
934
|
+
--color-accent-strong: oklch(from var(--primary, oklch(0.66 0.19 266)) max(l, 0.64) calc(c * 0.85) h);
|
|
935
|
+
--color-accent: oklch(from var(--primary, oklch(0.58 0.22 265)) max(l, 0.58) calc(c * 0.9) h);
|
|
936
|
+
--color-accent-soft: color-mix(in oklab, var(--primary, oklch(0.45 0.28 264)) 20%, var(--color-surface));
|
|
937
|
+
--color-accent-fg: var(--color-fg);
|
|
938
|
+
--color-ring: color-mix(in oklab, var(--color-accent-strong) 55%, transparent);
|
|
939
|
+
|
|
940
|
+
/* vitrine: a step deeper than the walls (re-paired to the dark room).
|
|
941
|
+
Derived from the wall's own lightness — preset --muted can sit ABOVE
|
|
942
|
+
the dark background (clay: 0.22 vs 0.15), which would read raised. */
|
|
943
|
+
--color-vitrine: oklch(from var(--background, oklch(0.168 0.012 45)) calc(l * 0.72) c h);
|
|
944
|
+
--color-vitrine-fg: var(--color-fg);
|
|
945
|
+
--color-vitrine-border: color-mix(in oklab, var(--color-fg) 22%, transparent);
|
|
946
|
+
|
|
947
|
+
/* primary action: lifted half a step for the dark room; the lift only
|
|
948
|
+
raises l, so the preset's --primary-foreground pairing still holds */
|
|
949
|
+
--color-btn-primary-from: oklch(from var(--primary, oklch(0.48 0.26 264)) max(l, 0.48) c h);
|
|
950
|
+
--color-btn-primary-to: oklch(from var(--primary, oklch(0.48 0.26 264)) max(l, 0.48) c h);
|
|
1065
951
|
|
|
1066
952
|
/* shadows deepen after dark — spotlit objects throw real penumbrae */
|
|
1067
953
|
--shadow-sm: 0 1px 3px oklch(0.08 0.008 45 / 0.3),
|