tyrell-components 1.0.0-TC35 → 1.0.0-TC36
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/css/tyrell-brand.css +149 -297
- package/dist/tyrell-brand.css +149 -297
- package/dist/tyrell.js +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
package/css/tyrell-brand.css
CHANGED
|
@@ -130,8 +130,13 @@
|
|
|
130
130
|
--ty-danger-hue: 25;
|
|
131
131
|
--ty-danger-chroma: calc(var(--ty-brand-chroma) * 1.31);
|
|
132
132
|
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
/* Neutral is ACHROMATIC by default — greys do not follow the brand.
|
|
134
|
+
* Most of an interface is monochrome; a rebrand should not drift it.
|
|
135
|
+
* To warm greys toward the brand (the pre-2026-08 behavior), opt in:
|
|
136
|
+
* --ty-neutral-hue: var(--ty-brand-hue);
|
|
137
|
+
* --ty-neutral-chroma: calc(var(--ty-brand-chroma) * 0.04); */
|
|
138
|
+
--ty-neutral-hue: 0;
|
|
139
|
+
--ty-neutral-chroma: 0;
|
|
135
140
|
|
|
136
141
|
/* ----------------------------------------------------------------
|
|
137
142
|
* Tier 3 — L-CURVE (light mode)
|
|
@@ -150,6 +155,33 @@
|
|
|
150
155
|
--ty-l-bg-bold: 0.92;
|
|
151
156
|
--ty-l-bg-soft: 0.98;
|
|
152
157
|
|
|
158
|
+
/* Text ladder (--ty-text-*) and surface borders — historically
|
|
159
|
+
* hardcoded hexes in tyrell.css that a rebrand never touched; now
|
|
160
|
+
* engine-wired at the SAME lightness the hexes had (measured via
|
|
161
|
+
* oklch(from #hex l c h)), tinted by the neutral seeds. At the
|
|
162
|
+
* default --ty-neutral-chroma (≈0.005) the tint is imperceptible. */
|
|
163
|
+
--ty-l-text-strong: 0; /* was #000 */
|
|
164
|
+
--ty-l-text-bold: 0; /* was #000 */
|
|
165
|
+
--ty-l-text-base: 0.21; /* was #111827 */
|
|
166
|
+
--ty-l-text-soft: 0.37; /* was #374151 */
|
|
167
|
+
--ty-l-text-faint: 0.71; /* was #9ca3af */
|
|
168
|
+
|
|
169
|
+
--ty-l-border-content: 0.93; /* was #e5e7eb */
|
|
170
|
+
--ty-l-border-elevated: 0.93;
|
|
171
|
+
--ty-l-border-floating: 0.93;
|
|
172
|
+
|
|
173
|
+
/* Generic border ladder — borders are their OWN family, not ink.
|
|
174
|
+
* Historically --ty-border-* aliased the neutral text ramp; that tied
|
|
175
|
+
* app chrome to the text emphasis curve (and to --ty-neutral-l-factor),
|
|
176
|
+
* so tuning text moved every border. Defaults preserve the exact L the
|
|
177
|
+
* aliases produced. Borders sit relative to the surfaces they separate;
|
|
178
|
+
* tune them here without touching text. */
|
|
179
|
+
--ty-l-border-strong: 0.46; /* was color-neutral-bold */
|
|
180
|
+
--ty-l-border-bold: 0.64;
|
|
181
|
+
--ty-l-border: 0.76; /* was color-neutral-soft */
|
|
182
|
+
--ty-l-border-soft: 0.88; /* was color-neutral-faint */
|
|
183
|
+
--ty-l-border-faint: 0.92;
|
|
184
|
+
|
|
153
185
|
/* ----------------------------------------------------------------
|
|
154
186
|
* Tier 4 — SATURATION CURVE
|
|
155
187
|
* Per-shade chroma multipliers. Each shade's chroma =
|
|
@@ -235,6 +267,25 @@ html[data-theme="dark"] {
|
|
|
235
267
|
--ty-l-bg-bold: 0.26;
|
|
236
268
|
--ty-l-bg-soft: 0.19;
|
|
237
269
|
|
|
270
|
+
/* Text ladder + surface borders dark — L matched to the hexes
|
|
271
|
+
* tyrell.css used to hardcode (#fff/#f9fafb/#d6d6d6/#7f8590/#555a63,
|
|
272
|
+
* borders #030712/#414141/#494949). */
|
|
273
|
+
--ty-l-text-strong: 1;
|
|
274
|
+
--ty-l-text-bold: 0.985;
|
|
275
|
+
--ty-l-text-base: 0.88;
|
|
276
|
+
--ty-l-text-soft: 0.62;
|
|
277
|
+
--ty-l-text-faint: 0.47;
|
|
278
|
+
|
|
279
|
+
--ty-l-border-content: 0.13;
|
|
280
|
+
--ty-l-border-elevated: 0.375;
|
|
281
|
+
--ty-l-border-floating: 0.41;
|
|
282
|
+
|
|
283
|
+
--ty-l-border-strong: 0.66;
|
|
284
|
+
--ty-l-border-bold: 0.46;
|
|
285
|
+
--ty-l-border: 0.38;
|
|
286
|
+
--ty-l-border-soft: 0.3;
|
|
287
|
+
--ty-l-border-faint: 0.3;
|
|
288
|
+
|
|
238
289
|
/* Tier 4 dark — dim shades hold more chroma so they don't grey out;
|
|
239
290
|
* strong shades trim chroma so bright tones don't over-pop. */
|
|
240
291
|
--ty-c-strong-mult: 0.77;
|
|
@@ -255,8 +306,8 @@ html[data-theme="dark"] {
|
|
|
255
306
|
--ty-solid-strong-l: 0.06; /* tone+ */
|
|
256
307
|
--ty-solid-soft-l: -0.1; /* tone- */
|
|
257
308
|
|
|
258
|
-
--ty-solid-l: -0.
|
|
259
|
-
--ty-solid-c: 0.
|
|
309
|
+
--ty-solid-l: -0.2; /* dim against dark canvas */
|
|
310
|
+
--ty-solid-c: 0.7; /* desaturate against dark canvas */
|
|
260
311
|
--ty-solid-h: 0; /* hue offset */
|
|
261
312
|
}
|
|
262
313
|
|
|
@@ -276,14 +327,18 @@ html[data-theme="dark"] {
|
|
|
276
327
|
* var(--ty-{flavor}-hue) ← H
|
|
277
328
|
* );
|
|
278
329
|
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
* specificity
|
|
282
|
-
* source
|
|
283
|
-
*
|
|
330
|
+
* Formulas are declared ONCE, at `html:root` (specificity 0,1,1 — NOT
|
|
331
|
+
* plain `:root` (0,1,0)): they out-rank tyrell.css's hardcoded light
|
|
332
|
+
* tokens by specificity and its hardcoded `html.dark` hexes (0,1,1) by
|
|
333
|
+
* source order, since the brand layer loads after. Dark mode needs no
|
|
334
|
+
* formula duplicates — the dials they read (Tier 3/4, SECTION 1) are
|
|
335
|
+
* what flip per mode. The `html.dark` block at the END of this file
|
|
336
|
+
* holds only genuine per-mode DATA (surface ladder, hand-pinned
|
|
337
|
+
* absolutes) — never formulas. If you add a token here, do NOT mirror
|
|
338
|
+
* it there unless its VALUE is mode-specific.
|
|
284
339
|
* ===================================================================== */
|
|
285
340
|
|
|
286
|
-
:root {
|
|
341
|
+
html:root {
|
|
287
342
|
/* ----------------------------------------------------------------
|
|
288
343
|
* Flavor color ramps (fg + bg + border)
|
|
289
344
|
* --------------------------------------------------------------*/
|
|
@@ -544,18 +599,66 @@ html[data-theme="dark"] {
|
|
|
544
599
|
);
|
|
545
600
|
|
|
546
601
|
/* ----------------------------------------------------------------
|
|
547
|
-
* Global neutral borders —
|
|
602
|
+
* Global neutral borders — own family, own L ladder (Tier 3).
|
|
603
|
+
* Tinted by the neutral seeds like everything grey, but NOT tied to
|
|
604
|
+
* the text emphasis curve or --ty-neutral-l-factor. Per-flavor
|
|
605
|
+
* accent borders (--ty-border-{flavor}) stay ink aliases — a colored
|
|
606
|
+
* border SHOULD track its flavor's ink.
|
|
548
607
|
* --------------------------------------------------------------*/
|
|
549
|
-
--ty-border-strong:
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
--ty-border
|
|
553
|
-
|
|
608
|
+
--ty-border-strong: oklch(
|
|
609
|
+
var(--ty-l-border-strong) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
610
|
+
);
|
|
611
|
+
--ty-border: oklch(
|
|
612
|
+
var(--ty-l-border) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
613
|
+
);
|
|
614
|
+
--ty-border-bold: oklch(
|
|
615
|
+
var(--ty-l-border-bold) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
616
|
+
);
|
|
617
|
+
--ty-border-soft: oklch(
|
|
618
|
+
var(--ty-l-border-soft) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
619
|
+
);
|
|
620
|
+
--ty-border-faint: oklch(
|
|
621
|
+
var(--ty-l-border-faint) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
622
|
+
);
|
|
623
|
+
|
|
624
|
+
/* ----------------------------------------------------------------
|
|
625
|
+
* Text ladder + surface borders — engine-wired versions of tokens
|
|
626
|
+
* tyrell.css hardcodes as hexes. Own L dials (Tier 3), neutral
|
|
627
|
+
* hue/chroma tint. These out-rank the base hexes the same way every
|
|
628
|
+
* other token here does; a rebrand now reaches body text too.
|
|
629
|
+
* --------------------------------------------------------------*/
|
|
630
|
+
--ty-text-strong: oklch(
|
|
631
|
+
var(--ty-l-text-strong) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
632
|
+
);
|
|
633
|
+
--ty-text-bold: oklch(
|
|
634
|
+
var(--ty-l-text-bold) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
635
|
+
);
|
|
636
|
+
--ty-text: oklch(
|
|
637
|
+
var(--ty-l-text-base) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
638
|
+
);
|
|
639
|
+
--ty-text-soft: oklch(
|
|
640
|
+
var(--ty-l-text-soft) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
641
|
+
);
|
|
642
|
+
--ty-text-faint: oklch(
|
|
643
|
+
var(--ty-l-text-faint) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
644
|
+
);
|
|
645
|
+
|
|
646
|
+
--ty-content-border: oklch(
|
|
647
|
+
var(--ty-l-border-content) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
648
|
+
);
|
|
649
|
+
--ty-elevated-border: oklch(
|
|
650
|
+
var(--ty-l-border-elevated) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
651
|
+
);
|
|
652
|
+
--ty-floating-border: oklch(
|
|
653
|
+
var(--ty-l-border-floating) var(--ty-neutral-chroma) var(--ty-neutral-hue)
|
|
654
|
+
);
|
|
554
655
|
|
|
555
656
|
/* ----------------------------------------------------------------
|
|
556
657
|
* Surfaces — monochrome by default; --ty-surface-chroma warms them.
|
|
557
658
|
* --------------------------------------------------------------*/
|
|
558
|
-
--ty-surface-canvas: oklch(
|
|
659
|
+
--ty-surface-canvas: oklch(
|
|
660
|
+
0.985 var(--ty-surface-chroma) var(--ty-brand-hue)
|
|
661
|
+
);
|
|
559
662
|
--ty-surface-content: oklch(1 0 0);
|
|
560
663
|
--ty-surface-elevated: oklch(1 0 0);
|
|
561
664
|
--ty-surface-floating: oklch(1 0 0);
|
|
@@ -647,7 +750,7 @@ html:root {
|
|
|
647
750
|
|
|
648
751
|
/* Crossover point. Fills lighter than this get black text. ~0.58-0.62
|
|
649
752
|
is the sRGB break-even; higher = prefers white, lower = prefers black. */
|
|
650
|
-
--ty-solid-fg-threshold: 0.
|
|
753
|
+
--ty-solid-fg-threshold: 0.62;
|
|
651
754
|
|
|
652
755
|
--ty-solid-primary-fg: oklch(
|
|
653
756
|
from var(--ty-solid-primary)
|
|
@@ -808,262 +911,39 @@ html:root {
|
|
|
808
911
|
}
|
|
809
912
|
|
|
810
913
|
/* =====================================================================
|
|
811
|
-
* SECTION 2 DARK —
|
|
812
|
-
*
|
|
813
|
-
*
|
|
814
|
-
*
|
|
914
|
+
* SECTION 2 DARK — PER-MODE DATA ONLY
|
|
915
|
+
* =====================================================================
|
|
916
|
+
* No formulas here. Every computed token is declared once at html:root
|
|
917
|
+
* above and resolves per-mode through its dial inputs (SECTION 1 flips
|
|
918
|
+
* those at html.dark). This block holds only values that ARE the dark
|
|
919
|
+
* design data — hand-tuned absolutes with no light-mode derivation.
|
|
815
920
|
* ===================================================================== */
|
|
816
921
|
|
|
817
922
|
html.dark,
|
|
818
923
|
html[data-theme="dark"] {
|
|
819
|
-
/*
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
--ty-color-primary-bold: oklch(
|
|
825
|
-
calc(var(--ty-l-bold) * var(--ty-primary-l-factor))
|
|
826
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bold-mult)) var(--ty-brand-hue)
|
|
827
|
-
);
|
|
828
|
-
--ty-color-primary: oklch(
|
|
829
|
-
calc(var(--ty-l-base) * var(--ty-primary-l-factor))
|
|
830
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-base-mult)) var(--ty-brand-hue)
|
|
831
|
-
);
|
|
832
|
-
--ty-color-primary-soft: oklch(
|
|
833
|
-
calc(var(--ty-l-soft) * var(--ty-primary-l-factor))
|
|
834
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-soft-mult)) var(--ty-brand-hue)
|
|
835
|
-
);
|
|
836
|
-
--ty-color-primary-faint: oklch(
|
|
837
|
-
calc(var(--ty-l-faint) * var(--ty-primary-l-factor))
|
|
838
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-faint-mult)) var(--ty-brand-hue)
|
|
839
|
-
);
|
|
840
|
-
--ty-bg-primary: oklch(
|
|
841
|
-
calc(var(--ty-l-bg-base) * var(--ty-primary-l-factor))
|
|
842
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-base-mult))
|
|
843
|
-
var(--ty-brand-hue)
|
|
844
|
-
);
|
|
845
|
-
--ty-bg-primary-bold: oklch(
|
|
846
|
-
calc(var(--ty-l-bg-bold) * var(--ty-primary-l-factor))
|
|
847
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-bold-mult))
|
|
848
|
-
var(--ty-brand-hue)
|
|
849
|
-
);
|
|
850
|
-
--ty-bg-primary-soft: oklch(
|
|
851
|
-
calc(var(--ty-l-bg-soft) * var(--ty-primary-l-factor))
|
|
852
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-soft-mult))
|
|
853
|
-
var(--ty-brand-hue)
|
|
854
|
-
);
|
|
855
|
-
--ty-border-primary: var(--ty-color-primary-soft);
|
|
856
|
-
|
|
857
|
-
/* Secondary */
|
|
858
|
-
--ty-color-secondary-strong: oklch(
|
|
859
|
-
calc(var(--ty-l-strong) * var(--ty-secondary-l-factor))
|
|
860
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-strong-mult))
|
|
861
|
-
var(--ty-secondary-hue)
|
|
862
|
-
);
|
|
863
|
-
--ty-color-secondary-bold: oklch(
|
|
864
|
-
calc(var(--ty-l-bold) * var(--ty-secondary-l-factor))
|
|
865
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bold-mult))
|
|
866
|
-
var(--ty-secondary-hue)
|
|
867
|
-
);
|
|
868
|
-
--ty-color-secondary: oklch(
|
|
869
|
-
calc(var(--ty-l-base) * var(--ty-secondary-l-factor))
|
|
870
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-base-mult))
|
|
871
|
-
var(--ty-secondary-hue)
|
|
872
|
-
);
|
|
873
|
-
--ty-color-secondary-soft: oklch(
|
|
874
|
-
calc(var(--ty-l-soft) * var(--ty-secondary-l-factor))
|
|
875
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-soft-mult))
|
|
876
|
-
var(--ty-secondary-hue)
|
|
877
|
-
);
|
|
878
|
-
--ty-color-secondary-faint: oklch(
|
|
879
|
-
calc(var(--ty-l-faint) * var(--ty-secondary-l-factor))
|
|
880
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-faint-mult))
|
|
881
|
-
var(--ty-secondary-hue)
|
|
882
|
-
);
|
|
883
|
-
--ty-bg-secondary: oklch(
|
|
884
|
-
calc(var(--ty-l-bg-base) * var(--ty-secondary-l-factor))
|
|
885
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-base-mult))
|
|
886
|
-
var(--ty-secondary-hue)
|
|
887
|
-
);
|
|
888
|
-
--ty-bg-secondary-bold: oklch(
|
|
889
|
-
calc(var(--ty-l-bg-bold) * var(--ty-secondary-l-factor))
|
|
890
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-bold-mult))
|
|
891
|
-
var(--ty-secondary-hue)
|
|
892
|
-
);
|
|
893
|
-
--ty-bg-secondary-soft: oklch(
|
|
894
|
-
calc(var(--ty-l-bg-soft) * var(--ty-secondary-l-factor))
|
|
895
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-soft-mult))
|
|
896
|
-
var(--ty-secondary-hue)
|
|
897
|
-
);
|
|
898
|
-
--ty-border-secondary: var(--ty-color-secondary-soft);
|
|
899
|
-
|
|
900
|
-
/* Success */
|
|
901
|
-
--ty-color-success-strong: oklch(
|
|
902
|
-
calc(var(--ty-l-strong) * var(--ty-success-l-factor))
|
|
903
|
-
calc(var(--ty-success-chroma) * var(--ty-c-strong-mult))
|
|
904
|
-
var(--ty-success-hue)
|
|
905
|
-
);
|
|
906
|
-
--ty-color-success-bold: oklch(
|
|
907
|
-
calc(var(--ty-l-bold) * var(--ty-success-l-factor))
|
|
908
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bold-mult))
|
|
909
|
-
var(--ty-success-hue)
|
|
910
|
-
);
|
|
911
|
-
--ty-color-success: oklch(
|
|
912
|
-
calc(var(--ty-l-base) * var(--ty-success-l-factor))
|
|
913
|
-
calc(var(--ty-success-chroma) * var(--ty-c-base-mult))
|
|
914
|
-
var(--ty-success-hue)
|
|
915
|
-
);
|
|
916
|
-
--ty-color-success-soft: oklch(
|
|
917
|
-
calc(var(--ty-l-soft) * var(--ty-success-l-factor))
|
|
918
|
-
calc(var(--ty-success-chroma) * var(--ty-c-soft-mult))
|
|
919
|
-
var(--ty-success-hue)
|
|
920
|
-
);
|
|
921
|
-
--ty-color-success-faint: oklch(
|
|
922
|
-
calc(var(--ty-l-faint) * var(--ty-success-l-factor))
|
|
923
|
-
calc(var(--ty-success-chroma) * var(--ty-c-faint-mult))
|
|
924
|
-
var(--ty-success-hue)
|
|
925
|
-
);
|
|
926
|
-
--ty-bg-success: oklch(
|
|
927
|
-
calc(var(--ty-l-bg-base) * var(--ty-success-l-factor))
|
|
928
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-base-mult))
|
|
929
|
-
var(--ty-success-hue)
|
|
930
|
-
);
|
|
931
|
-
--ty-bg-success-bold: oklch(
|
|
932
|
-
calc(var(--ty-l-bg-bold) * var(--ty-success-l-factor))
|
|
933
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-bold-mult))
|
|
934
|
-
var(--ty-success-hue)
|
|
935
|
-
);
|
|
936
|
-
--ty-bg-success-soft: oklch(
|
|
937
|
-
calc(var(--ty-l-bg-soft) * var(--ty-success-l-factor))
|
|
938
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-soft-mult))
|
|
939
|
-
var(--ty-success-hue)
|
|
940
|
-
);
|
|
941
|
-
--ty-border-success: var(--ty-color-success-soft);
|
|
942
|
-
|
|
943
|
-
/* Danger */
|
|
944
|
-
--ty-color-danger-strong: oklch(
|
|
945
|
-
calc(var(--ty-l-strong) * var(--ty-danger-l-factor))
|
|
946
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-strong-mult))
|
|
947
|
-
var(--ty-danger-hue)
|
|
948
|
-
);
|
|
949
|
-
--ty-color-danger-bold: oklch(
|
|
950
|
-
calc(var(--ty-l-bold) * var(--ty-danger-l-factor))
|
|
951
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bold-mult)) var(--ty-danger-hue)
|
|
952
|
-
);
|
|
953
|
-
--ty-color-danger: oklch(
|
|
954
|
-
calc(var(--ty-l-base) * var(--ty-danger-l-factor))
|
|
955
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-base-mult)) var(--ty-danger-hue)
|
|
956
|
-
);
|
|
957
|
-
--ty-color-danger-soft: oklch(
|
|
958
|
-
calc(var(--ty-l-soft) * var(--ty-danger-l-factor))
|
|
959
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-soft-mult)) var(--ty-danger-hue)
|
|
960
|
-
);
|
|
961
|
-
--ty-color-danger-faint: oklch(
|
|
962
|
-
calc(var(--ty-l-faint) * var(--ty-danger-l-factor))
|
|
963
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-faint-mult))
|
|
964
|
-
var(--ty-danger-hue)
|
|
924
|
+
/* Surface ladder — hand-tuned; nothing to derive from light (which
|
|
925
|
+
* is 0.985 canvas + pure white everywhere else). */
|
|
926
|
+
--ty-surface-canvas: oklch(0.12 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
927
|
+
--ty-surface-content: oklch(
|
|
928
|
+
0.16 var(--ty-surface-chroma) var(--ty-brand-hue)
|
|
965
929
|
);
|
|
966
|
-
--ty-
|
|
967
|
-
|
|
968
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-base-mult))
|
|
969
|
-
var(--ty-danger-hue)
|
|
930
|
+
--ty-surface-elevated: oklch(
|
|
931
|
+
0.19 var(--ty-surface-chroma) var(--ty-brand-hue)
|
|
970
932
|
);
|
|
971
|
-
--ty-
|
|
972
|
-
|
|
973
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-bold-mult))
|
|
974
|
-
var(--ty-danger-hue)
|
|
933
|
+
--ty-surface-floating: oklch(
|
|
934
|
+
0.22 var(--ty-surface-chroma) var(--ty-brand-hue)
|
|
975
935
|
);
|
|
976
|
-
--ty-
|
|
977
|
-
calc(var(--ty-l-bg-soft) * var(--ty-danger-l-factor))
|
|
978
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-soft-mult))
|
|
979
|
-
var(--ty-danger-hue)
|
|
980
|
-
);
|
|
981
|
-
--ty-border-danger: var(--ty-color-danger-soft);
|
|
936
|
+
--ty-surface-input: oklch(0.18 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
982
937
|
|
|
983
|
-
/*
|
|
984
|
-
--ty-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
);
|
|
989
|
-
--ty-color-warning-bold: oklch(
|
|
990
|
-
calc(var(--ty-l-bold) * var(--ty-warning-l-factor))
|
|
991
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bold-mult))
|
|
992
|
-
var(--ty-warning-hue)
|
|
993
|
-
);
|
|
994
|
-
--ty-color-warning: oklch(
|
|
995
|
-
calc(var(--ty-l-base) * var(--ty-warning-l-factor))
|
|
996
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-base-mult))
|
|
997
|
-
var(--ty-warning-hue)
|
|
998
|
-
);
|
|
999
|
-
--ty-color-warning-soft: oklch(
|
|
1000
|
-
calc(var(--ty-l-soft) * var(--ty-warning-l-factor))
|
|
1001
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-soft-mult))
|
|
1002
|
-
var(--ty-warning-hue)
|
|
1003
|
-
);
|
|
1004
|
-
--ty-color-warning-faint: oklch(
|
|
1005
|
-
calc(var(--ty-l-faint) * var(--ty-warning-l-factor))
|
|
1006
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-faint-mult))
|
|
1007
|
-
var(--ty-warning-hue)
|
|
1008
|
-
);
|
|
1009
|
-
--ty-bg-warning: oklch(
|
|
1010
|
-
calc(var(--ty-l-bg-base) * var(--ty-warning-l-factor))
|
|
1011
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-base-mult))
|
|
1012
|
-
var(--ty-warning-hue)
|
|
1013
|
-
);
|
|
1014
|
-
--ty-bg-warning-bold: oklch(
|
|
1015
|
-
calc(var(--ty-l-bg-bold) * var(--ty-warning-l-factor))
|
|
1016
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-bold-mult))
|
|
1017
|
-
var(--ty-warning-hue)
|
|
1018
|
-
);
|
|
1019
|
-
--ty-bg-warning-soft: oklch(
|
|
1020
|
-
calc(var(--ty-l-bg-soft) * var(--ty-warning-l-factor))
|
|
1021
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-soft-mult))
|
|
1022
|
-
var(--ty-warning-hue)
|
|
938
|
+
/* Focus ring needs more alpha against dark surfaces (light: 5%). */
|
|
939
|
+
--ty-input-shadow-focus: color-mix(
|
|
940
|
+
in oklab,
|
|
941
|
+
var(--ty-color-primary) 20%,
|
|
942
|
+
transparent
|
|
1023
943
|
);
|
|
1024
|
-
--ty-border-warning: var(--ty-color-warning-soft);
|
|
1025
944
|
|
|
1026
|
-
/*
|
|
1027
|
-
|
|
1028
|
-
calc(var(--ty-l-strong) * var(--ty-neutral-l-factor))
|
|
1029
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
1030
|
-
var(--ty-neutral-hue)
|
|
1031
|
-
);
|
|
1032
|
-
--ty-color-neutral-bold: oklch(
|
|
1033
|
-
calc(var(--ty-l-bold) * var(--ty-neutral-l-factor))
|
|
1034
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bold-mult))
|
|
1035
|
-
var(--ty-neutral-hue)
|
|
1036
|
-
);
|
|
1037
|
-
--ty-color-neutral: oklch(
|
|
1038
|
-
calc(var(--ty-l-base) * var(--ty-neutral-l-factor))
|
|
1039
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-base-mult))
|
|
1040
|
-
var(--ty-neutral-hue)
|
|
1041
|
-
);
|
|
1042
|
-
--ty-color-neutral-soft: oklch(
|
|
1043
|
-
calc(var(--ty-l-soft) * var(--ty-neutral-l-factor))
|
|
1044
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-soft-mult))
|
|
1045
|
-
var(--ty-neutral-hue)
|
|
1046
|
-
);
|
|
1047
|
-
--ty-color-neutral-faint: oklch(
|
|
1048
|
-
calc(var(--ty-l-faint) * var(--ty-neutral-l-factor))
|
|
1049
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-faint-mult))
|
|
1050
|
-
var(--ty-neutral-hue)
|
|
1051
|
-
);
|
|
1052
|
-
--ty-bg-neutral: oklch(
|
|
1053
|
-
calc(var(--ty-l-bg-base) * var(--ty-neutral-l-factor))
|
|
1054
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-base-mult))
|
|
1055
|
-
var(--ty-neutral-hue)
|
|
1056
|
-
);
|
|
1057
|
-
--ty-bg-neutral-bold: oklch(
|
|
1058
|
-
calc(var(--ty-l-bg-bold) * var(--ty-neutral-l-factor))
|
|
1059
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-bold-mult))
|
|
1060
|
-
var(--ty-neutral-hue)
|
|
1061
|
-
);
|
|
1062
|
-
--ty-bg-neutral-soft: oklch(
|
|
1063
|
-
calc(var(--ty-l-bg-soft) * var(--ty-neutral-l-factor))
|
|
1064
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-soft-mult))
|
|
1065
|
-
var(--ty-neutral-hue)
|
|
1066
|
-
);
|
|
945
|
+
/* Hand-pinned bg extremes — these OPPOSE the mode (strong bg is dark
|
|
946
|
+
* in light mode, light in dark mode) so they can't ride the bg ramp. */
|
|
1067
947
|
--ty-bg-neutral-strong: oklch(
|
|
1068
948
|
0.95 calc(var(--ty-neutral-chroma) * 2) var(--ty-neutral-hue)
|
|
1069
949
|
);
|
|
@@ -1071,40 +951,12 @@ html[data-theme="dark"] {
|
|
|
1071
951
|
0.15 calc(var(--ty-neutral-chroma) * 2) var(--ty-neutral-hue)
|
|
1072
952
|
);
|
|
1073
953
|
|
|
1074
|
-
/*
|
|
1075
|
-
|
|
1076
|
-
--ty-border: var(--ty-color-neutral-soft);
|
|
1077
|
-
--ty-border-bold: var(--ty-color-neutral-soft);
|
|
1078
|
-
--ty-border-soft: var(--ty-color-neutral-faint);
|
|
1079
|
-
--ty-border-faint: var(--ty-color-neutral-faint);
|
|
1080
|
-
|
|
1081
|
-
/* Surfaces — monochrome by default; --ty-surface-chroma warms them. */
|
|
1082
|
-
--ty-surface-canvas: oklch(0.12 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
1083
|
-
--ty-surface-content: oklch(0.16 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
1084
|
-
--ty-surface-elevated: oklch(0.19 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
1085
|
-
--ty-surface-floating: oklch(0.22 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
1086
|
-
--ty-surface-input: oklch(0.18 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
1087
|
-
|
|
1088
|
-
/* Inputs — re-declared at html.dark specificity. */
|
|
1089
|
-
--ty-input-bg: var(--ty-surface-input);
|
|
1090
|
-
--ty-input-color: var(--ty-color-neutral-strong);
|
|
1091
|
-
--ty-input-border: var(--ty-color-neutral-faint);
|
|
1092
|
-
--ty-input-border-hover: var(--ty-color-neutral-soft);
|
|
1093
|
-
--ty-input-border-focus: var(--ty-color-primary);
|
|
1094
|
-
--ty-input-placeholder: var(--ty-color-neutral-soft);
|
|
1095
|
-
--ty-input-disabled-bg: var(--ty-color-neutral-faint);
|
|
1096
|
-
--ty-input-disabled-border: var(--ty-color-neutral-faint);
|
|
1097
|
-
--ty-input-disabled-color: var(--ty-color-neutral-bold);
|
|
1098
|
-
--ty-input-shadow-focus: color-mix(
|
|
1099
|
-
in oklab,
|
|
1100
|
-
var(--ty-color-primary) 20%,
|
|
1101
|
-
transparent
|
|
1102
|
-
);
|
|
1103
|
-
|
|
1104
|
-
/* Tier 6 dark — solid dials live in SECTION 1's html.dark block.
|
|
1105
|
-
* neutral is hand-pinned (it ignores Axis B); dim it per theme here. */
|
|
954
|
+
/* Neutral solid fill is an "ink" — dark grey in BOTH modes (0.4 light),
|
|
955
|
+
* dimmed a notch here. It ignores the emphasis curve and Axis B. */
|
|
1106
956
|
--ty-solid-neutral: oklch(
|
|
1107
|
-
0.
|
|
957
|
+
0.23 calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
1108
958
|
var(--ty-neutral-hue)
|
|
1109
959
|
);
|
|
960
|
+
|
|
961
|
+
--ty-neutral-l-factor: 0.8;
|
|
1110
962
|
}
|