tyrell-components 1.0.0-RC12 → 1.0.0-RC13
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/README.md +1 -0
- package/css/tyrell-colors-static.css +316 -0
- package/css/tyrell-theme.css +1454 -0
- package/css/tyrell.css +108 -423
- package/dist/tyrell-colors-static.css +316 -0
- package/dist/tyrell-theme.css +1454 -0
- package/dist/tyrell.css +108 -423
- package/dist/tyrell.js +1 -1
- package/lib/components/button.d.ts +7 -0
- package/lib/components/button.d.ts.map +1 -1
- package/lib/components/button.js +12 -1
- package/lib/components/button.js.map +1 -1
- package/lib/components/calendar-month.d.ts +17 -0
- package/lib/components/calendar-month.d.ts.map +1 -1
- package/lib/components/calendar-month.js +121 -7
- package/lib/components/calendar-month.js.map +1 -1
- package/lib/components/calendar.d.ts +3 -1
- package/lib/components/calendar.d.ts.map +1 -1
- package/lib/components/calendar.js +19 -9
- package/lib/components/calendar.js.map +1 -1
- package/lib/components/checkbox.d.ts +4 -3
- package/lib/components/checkbox.d.ts.map +1 -1
- package/lib/components/checkbox.js +23 -35
- package/lib/components/checkbox.js.map +1 -1
- package/lib/components/copy.d.ts +4 -3
- package/lib/components/copy.d.ts.map +1 -1
- package/lib/components/copy.js +22 -21
- package/lib/components/copy.js.map +1 -1
- package/lib/components/date-picker.d.ts +12 -1
- package/lib/components/date-picker.d.ts.map +1 -1
- package/lib/components/date-picker.js +122 -32
- package/lib/components/date-picker.js.map +1 -1
- package/lib/components/input.d.ts +3 -2
- package/lib/components/input.d.ts.map +1 -1
- package/lib/components/input.js +24 -21
- package/lib/components/input.js.map +1 -1
- package/lib/components/modal.d.ts.map +1 -1
- package/lib/components/modal.js +22 -3
- package/lib/components/modal.js.map +1 -1
- package/lib/components/option.d.ts +0 -11
- package/lib/components/option.d.ts.map +1 -1
- package/lib/components/option.js +4 -103
- package/lib/components/option.js.map +1 -1
- package/lib/components/popup.d.ts.map +1 -1
- package/lib/components/popup.js +36 -2
- package/lib/components/popup.js.map +1 -1
- package/lib/components/radio.d.ts +5 -2
- package/lib/components/radio.d.ts.map +1 -1
- package/lib/components/radio.js +16 -5
- package/lib/components/radio.js.map +1 -1
- package/lib/components/select.d.ts +119 -9
- package/lib/components/select.d.ts.map +1 -1
- package/lib/components/select.js +426 -58
- package/lib/components/select.js.map +1 -1
- package/lib/components/selected-tags.d.ts +19 -6
- package/lib/components/selected-tags.d.ts.map +1 -1
- package/lib/components/selected-tags.js +43 -7
- package/lib/components/selected-tags.js.map +1 -1
- package/lib/components/switch.d.ts +4 -3
- package/lib/components/switch.d.ts.map +1 -1
- package/lib/components/switch.js +17 -29
- package/lib/components/switch.js.map +1 -1
- package/lib/components/tabs.d.ts.map +1 -1
- package/lib/components/tabs.js +180 -25
- package/lib/components/tabs.js.map +1 -1
- package/lib/components/tag.js +1 -1
- package/lib/components/tag.js.map +1 -1
- package/lib/components/tooltip.d.ts +4 -2
- package/lib/components/tooltip.d.ts.map +1 -1
- package/lib/components/tooltip.js +109 -70
- package/lib/components/tooltip.js.map +1 -1
- package/lib/components/wizard.d.ts.map +1 -1
- package/lib/components/wizard.js +22 -3
- package/lib/components/wizard.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/styles/button.d.ts +36 -6
- package/lib/styles/button.d.ts.map +1 -1
- package/lib/styles/button.js +239 -36
- package/lib/styles/button.js.map +1 -1
- package/lib/styles/calendar-month.d.ts +3 -1
- package/lib/styles/calendar-month.d.ts.map +1 -1
- package/lib/styles/calendar-month.js +64 -9
- package/lib/styles/calendar-month.js.map +1 -1
- package/lib/styles/calendar-navigation.d.ts +1 -1
- package/lib/styles/calendar-navigation.d.ts.map +1 -1
- package/lib/styles/calendar-navigation.js +1 -1
- package/lib/styles/checkbox.d.ts +3 -1
- package/lib/styles/checkbox.d.ts.map +1 -1
- package/lib/styles/checkbox.js +33 -55
- package/lib/styles/checkbox.js.map +1 -1
- package/lib/styles/copy.d.ts +3 -1
- package/lib/styles/copy.d.ts.map +1 -1
- package/lib/styles/copy.js +29 -6
- package/lib/styles/copy.js.map +1 -1
- package/lib/styles/custom-scrollbar.d.ts +1 -1
- package/lib/styles/custom-scrollbar.d.ts.map +1 -1
- package/lib/styles/custom-scrollbar.js +2 -2
- package/lib/styles/date-picker.d.ts +3 -1
- package/lib/styles/date-picker.d.ts.map +1 -1
- package/lib/styles/date-picker.js +53 -99
- package/lib/styles/date-picker.js.map +1 -1
- package/lib/styles/file-upload.d.ts +1 -1
- package/lib/styles/file-upload.d.ts.map +1 -1
- package/lib/styles/file-upload.js +3 -3
- package/lib/styles/input.d.ts +3 -1
- package/lib/styles/input.d.ts.map +1 -1
- package/lib/styles/input.js +67 -123
- package/lib/styles/input.js.map +1 -1
- package/lib/styles/multiselect.d.ts +3 -1
- package/lib/styles/multiselect.d.ts.map +1 -1
- package/lib/styles/multiselect.js +26 -2
- package/lib/styles/multiselect.js.map +1 -1
- package/lib/styles/option.d.ts +1 -1
- package/lib/styles/option.d.ts.map +1 -1
- package/lib/styles/option.js +0 -51
- package/lib/styles/option.js.map +1 -1
- package/lib/styles/radio.d.ts +3 -1
- package/lib/styles/radio.d.ts.map +1 -1
- package/lib/styles/radio.js +24 -21
- package/lib/styles/radio.js.map +1 -1
- package/lib/styles/scroll-container.d.ts +1 -1
- package/lib/styles/scroll-container.d.ts.map +1 -1
- package/lib/styles/select-base.d.ts +9 -0
- package/lib/styles/select-base.d.ts.map +1 -0
- package/lib/styles/select-base.js +973 -0
- package/lib/styles/select-base.js.map +1 -0
- package/lib/styles/select.d.ts +3 -3
- package/lib/styles/select.d.ts.map +1 -1
- package/lib/styles/select.js +98 -30
- package/lib/styles/select.js.map +1 -1
- package/lib/styles/step.d.ts +1 -1
- package/lib/styles/step.d.ts.map +1 -1
- package/lib/styles/switch.d.ts +3 -1
- package/lib/styles/switch.d.ts.map +1 -1
- package/lib/styles/switch.js +25 -10
- package/lib/styles/switch.js.map +1 -1
- package/lib/styles/tab.d.ts +1 -1
- package/lib/styles/tab.d.ts.map +1 -1
- package/lib/styles/tabs.d.ts +1 -1
- package/lib/styles/tabs.d.ts.map +1 -1
- package/lib/styles/tabs.js +71 -1
- package/lib/styles/tabs.js.map +1 -1
- package/lib/styles/tag.d.ts.map +1 -1
- package/lib/styles/tag.js +4 -1
- package/lib/styles/tag.js.map +1 -1
- package/lib/styles/textarea.d.ts +1 -1
- package/lib/styles/textarea.d.ts.map +1 -1
- package/lib/styles/textarea.js +5 -5
- package/lib/styles/tooltip.d.ts +4 -2
- package/lib/styles/tooltip.d.ts.map +1 -1
- package/lib/styles/tooltip.js +4 -119
- package/lib/styles/tooltip.js.map +1 -1
- package/lib/styles/wizard.d.ts +1 -1
- package/lib/styles/wizard.d.ts.map +1 -1
- package/lib/styles/wizard.js +18 -6
- package/lib/styles/wizard.js.map +1 -1
- package/lib/types/common.d.ts +1 -1
- package/lib/types/common.d.ts.map +1 -1
- package/lib/types/common.js +3 -1
- package/lib/types/common.js.map +1 -1
- package/lib/utils/icons.d.ts +10 -0
- package/lib/utils/icons.d.ts.map +1 -0
- package/lib/utils/icons.js +10 -0
- package/lib/utils/icons.js.map +1 -0
- package/lib/utils/loader-registry.d.ts +2 -2
- package/lib/utils/loader-registry.js +2 -2
- package/lib/utils/positioning.d.ts +31 -0
- package/lib/utils/positioning.d.ts.map +1 -1
- package/lib/utils/positioning.js +22 -3
- package/lib/utils/positioning.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +7 -4
- package/css/tyrell-brand.css +0 -1015
- package/dist/tyrell-brand.css +0 -1015
package/css/tyrell-brand.css
DELETED
|
@@ -1,1015 +0,0 @@
|
|
|
1
|
-
/* =====================================================================
|
|
2
|
-
* tyrell-brand.css — OKLCH-based brand layer for Tyrell Components
|
|
3
|
-
* =====================================================================
|
|
4
|
-
*
|
|
5
|
-
* Opt-in. Load AFTER `tyrell.css`. Override a few variables to rebrand.
|
|
6
|
-
*
|
|
7
|
-
* <link rel="stylesheet" href=".../tyrell.css">
|
|
8
|
-
* <link rel="stylesheet" href=".../tyrell-brand.css">
|
|
9
|
-
*
|
|
10
|
-
* :root {
|
|
11
|
-
* --ty-brand-hue: 200; // teal. Try 260 indigo, 30 orange, 145 emerald.
|
|
12
|
-
* --ty-brand-chroma: 0.13;
|
|
13
|
-
* }
|
|
14
|
-
*
|
|
15
|
-
* =====================================================================
|
|
16
|
-
* THE FORMULA
|
|
17
|
-
* =====================================================================
|
|
18
|
-
*
|
|
19
|
-
* Every color in the library is one formula on five axes:
|
|
20
|
-
*
|
|
21
|
-
* oklch(
|
|
22
|
-
* L = L-curve[shade] × flavor-l-factor ← Tier 3 × Tier 5
|
|
23
|
-
* C = flavor-chroma × saturation-curve[shade] ← Tier 2 × Tier 4
|
|
24
|
-
* H = flavor-hue ← Tier 2
|
|
25
|
-
* )
|
|
26
|
-
*
|
|
27
|
-
* Pick a flavor (primary / secondary / success / warning / danger /
|
|
28
|
-
* neutral). Pick a shade (strong / bold / base / soft / faint). That's
|
|
29
|
-
* the cell; the formula gives you its color.
|
|
30
|
-
*
|
|
31
|
-
* FLAVOR axis — which semantic role (carries its own hue, chroma,
|
|
32
|
-
* l-factor seeds)
|
|
33
|
-
* SHADE axis — 5 emphasis stops shared across flavors
|
|
34
|
-
* (strong / bold / base / soft / faint)
|
|
35
|
-
* HUE axis — what color family (0°–360°)
|
|
36
|
-
* CHROMA axis — how saturated (0 = grey, ~0.4 = max vivid)
|
|
37
|
-
* L axis — how dark or light (0 = black, 1 = white)
|
|
38
|
-
* Light mode: low L = more emphasis.
|
|
39
|
-
* Dark mode: high L = more emphasis (curve flips).
|
|
40
|
-
*
|
|
41
|
-
* Worked example — `--ty-color-warning-bold` in LIGHT mode:
|
|
42
|
-
*
|
|
43
|
-
* L = 0.46 × 1 = 0.46 ← l-bold × warning-l-factor
|
|
44
|
-
* C = 0.26 × 1.00 = 0.26 ← warning-chroma × c-bold-mult
|
|
45
|
-
* H = 75° ← warning-hue
|
|
46
|
-
* → oklch(0.46 0.26 75) (a punchy amber for +1 emphasis text)
|
|
47
|
-
*
|
|
48
|
-
* Want warning a notch darker without touching anything else? Set
|
|
49
|
-
* `--ty-warning-l-factor: 0.85` and the new L becomes 0.46 × 0.85 =
|
|
50
|
-
* 0.39. Every warning shade shifts in step; primary / success / danger
|
|
51
|
-
* are untouched.
|
|
52
|
-
*
|
|
53
|
-
* =====================================================================
|
|
54
|
-
* FILE LAYOUT
|
|
55
|
-
* =====================================================================
|
|
56
|
-
*
|
|
57
|
-
* SECTION 1 — KNOBS
|
|
58
|
-
* The variables you might want to override. Six tiers from drop-in
|
|
59
|
-
* rebrand (Tier 1) to surgical per-flavor tweak (Tier 5) plus solid
|
|
60
|
-
* buttons (Tier 6).
|
|
61
|
-
*
|
|
62
|
-
* SECTION 2 — IMPLEMENTATION
|
|
63
|
-
* The oklch() expressions that wire the knobs through to the actual
|
|
64
|
-
* color tokens. Rarely needs editing — Section 1 is the contract.
|
|
65
|
-
*
|
|
66
|
-
* Browser support: oklch() is in every evergreen browser since mid-2023.
|
|
67
|
-
* Tier 6 (solid) additionally uses OKLCH relative color — oklch(from …) —
|
|
68
|
-
* which lands later: Chrome 119, Safari 16.4, Firefox 128 (mid-2024).
|
|
69
|
-
* Solid fills have no fallback below those versions.
|
|
70
|
-
*
|
|
71
|
-
* ===================================================================== */
|
|
72
|
-
|
|
73
|
-
/* =====================================================================
|
|
74
|
-
* SECTION 1 — KNOBS
|
|
75
|
-
* =====================================================================
|
|
76
|
-
*
|
|
77
|
-
* Five tiers, ordered by how often you'd touch them. Override any of
|
|
78
|
-
* these in your own `:root` (or `html.dark` for per-mode tuning) —
|
|
79
|
-
* your declaration wins by source order.
|
|
80
|
-
*
|
|
81
|
-
* Tier 1 — SEEDS brand-hue + chroma. Rebrand in 2 lines.
|
|
82
|
-
* Tier 2 — PER-FLAVOR ANCHORS each flavor's hue + chroma.
|
|
83
|
-
* Tier 3 — L-CURVE 5 lightness stops for the emphasis ramp.
|
|
84
|
-
* Tier 4 — SATURATION CURVE per-shade chroma multipliers.
|
|
85
|
-
* Tier 5 — PER-FLAVOR L-FACTOR per-flavor lightness multiplier — push
|
|
86
|
-
* one flavor up or down without touching
|
|
87
|
-
* the others. Default 1.
|
|
88
|
-
* Tier 6 — SOLID FILLS solid-button system: hover/active/tone
|
|
89
|
-
* L offsets + per-theme dim/desaturate.
|
|
90
|
-
* ===================================================================== */
|
|
91
|
-
|
|
92
|
-
:root {
|
|
93
|
-
/* ----------------------------------------------------------------
|
|
94
|
-
* Tier 1 — SEEDS
|
|
95
|
-
* Brand-hue + chroma drive primary, neutral, surfaces, inputs,
|
|
96
|
-
* solid buttons. One slider rebrands the page.
|
|
97
|
-
* --------------------------------------------------------------*/
|
|
98
|
-
|
|
99
|
-
--ty-brand-hue: 230;
|
|
100
|
-
--ty-brand-chroma: 0.12; /* restrained EU default; the loud 0.2 read as "bollywood" */
|
|
101
|
-
|
|
102
|
-
/* Surface tint. 0 = monochrome surfaces (default, no brand leak).
|
|
103
|
-
* Bump to ~0.005 (light) / ~0.012 (dark) to warm surfaces toward brand. */
|
|
104
|
-
--ty-surface-chroma: 0;
|
|
105
|
-
|
|
106
|
-
/* Secondary rotates from brand by an exposed offset. Default +60°
|
|
107
|
-
* (sibling accent). Try 30° for a close sibling, 120° for triadic,
|
|
108
|
-
* 180° for complement. Set --ty-secondary-hue to a literal number
|
|
109
|
-
* to detach completely. */
|
|
110
|
-
--ty-secondary-offset: 60;
|
|
111
|
-
|
|
112
|
-
/* ----------------------------------------------------------------
|
|
113
|
-
* Tier 2 — PER-FLAVOR ANCHORS
|
|
114
|
-
* Semantic colors (success/warning/danger/neutral) have their own
|
|
115
|
-
* hue + chroma seeds so they keep meaning across brand changes.
|
|
116
|
-
* Override any individually:
|
|
117
|
-
* --ty-success-hue: 160; (more teal)
|
|
118
|
-
* --ty-warning-chroma: 0.2; (more vivid)
|
|
119
|
-
* --------------------------------------------------------------*/
|
|
120
|
-
|
|
121
|
-
--ty-secondary-hue: calc(var(--ty-brand-hue) + var(--ty-secondary-offset));
|
|
122
|
-
--ty-secondary-chroma: var(--ty-brand-chroma);
|
|
123
|
-
|
|
124
|
-
--ty-success-hue: 145;
|
|
125
|
-
--ty-success-chroma: calc(var(--ty-brand-chroma) * 1.08);
|
|
126
|
-
|
|
127
|
-
--ty-warning-hue: 75;
|
|
128
|
-
--ty-warning-chroma: calc(var(--ty-brand-chroma) * 2);
|
|
129
|
-
|
|
130
|
-
--ty-danger-hue: 25;
|
|
131
|
-
--ty-danger-chroma: calc(var(--ty-brand-chroma) * 1.31);
|
|
132
|
-
|
|
133
|
-
--ty-neutral-hue: var(--ty-brand-hue);
|
|
134
|
-
--ty-neutral-chroma: calc(var(--ty-brand-chroma) * 0.04);
|
|
135
|
-
|
|
136
|
-
/* ----------------------------------------------------------------
|
|
137
|
-
* Tier 3 — L-CURVE (light mode)
|
|
138
|
-
* 5 lightness stops per flavor for the emphasis ramp.
|
|
139
|
-
* Lower L = darker = more emphasis in light mode.
|
|
140
|
-
* Plus 3 bg L stops for the soft-tint backgrounds.
|
|
141
|
-
* --------------------------------------------------------------*/
|
|
142
|
-
|
|
143
|
-
--ty-l-strong: 0.38; /* ++ max emphasis */
|
|
144
|
-
--ty-l-bold: 0.46; /* + high emphasis */
|
|
145
|
-
--ty-l-base: 0.54; /* body */
|
|
146
|
-
--ty-l-soft: 0.72; /* - low emphasis */
|
|
147
|
-
--ty-l-faint: 0.88; /* -- min emphasis */
|
|
148
|
-
|
|
149
|
-
--ty-l-bg-base: 0.96;
|
|
150
|
-
--ty-l-bg-bold: 0.92;
|
|
151
|
-
--ty-l-bg-soft: 0.98;
|
|
152
|
-
|
|
153
|
-
/* ----------------------------------------------------------------
|
|
154
|
-
* Tier 4 — SATURATION CURVE
|
|
155
|
-
* Per-shade chroma multipliers. Each shade's chroma =
|
|
156
|
-
* flavor-chroma × multiplier. Drops near the extremes so
|
|
157
|
-
* near-white and near-black can hold their tint.
|
|
158
|
-
* --------------------------------------------------------------*/
|
|
159
|
-
|
|
160
|
-
--ty-c-strong-mult: 0.77;
|
|
161
|
-
--ty-c-bold-mult: 1;
|
|
162
|
-
--ty-c-base-mult: 0.92;
|
|
163
|
-
--ty-c-soft-mult: 0.77;
|
|
164
|
-
--ty-c-faint-mult: 0.46;
|
|
165
|
-
|
|
166
|
-
--ty-c-bg-base-mult: 0.15;
|
|
167
|
-
--ty-c-bg-bold-mult: 0.38;
|
|
168
|
-
--ty-c-bg-soft-mult: 0.08;
|
|
169
|
-
|
|
170
|
-
/* ----------------------------------------------------------------
|
|
171
|
-
* Tier 5 — PER-FLAVOR L-FACTOR
|
|
172
|
-
* Multiplies the L-curve values for that flavor only. Default 1 =
|
|
173
|
-
* no change. Useful when one flavor's brand-default sits too close
|
|
174
|
-
* to brand-hue on the wheel and the buttons blend.
|
|
175
|
-
*
|
|
176
|
-
* Example: brand-hue: 47° (gold). Warning sits at 75° (amber).
|
|
177
|
-
* Both render as similar warm browns at brand-chroma. Drop warning
|
|
178
|
-
* a notch and it darkens enough to stand apart:
|
|
179
|
-
* --ty-warning-l-factor: 0.85;
|
|
180
|
-
*
|
|
181
|
-
* NOTE: the L-curve flips between light and dark mode, so a factor
|
|
182
|
-
* < 1 darkens in light mode but DIMS in dark mode. If you want
|
|
183
|
-
* symmetric "more emphatic" in both modes, set the factor here for
|
|
184
|
-
* light AND set its inverse (1 / factor, roughly) in `html.dark`.
|
|
185
|
-
* --------------------------------------------------------------*/
|
|
186
|
-
|
|
187
|
-
--ty-primary-l-factor: 1;
|
|
188
|
-
--ty-secondary-l-factor: 1;
|
|
189
|
-
--ty-success-l-factor: 1;
|
|
190
|
-
--ty-warning-l-factor: 1.15;
|
|
191
|
-
--ty-danger-l-factor: 1;
|
|
192
|
-
--ty-neutral-l-factor: 1;
|
|
193
|
-
|
|
194
|
-
/* ----------------------------------------------------------------
|
|
195
|
-
* Tier 6 — SOLID FILLS
|
|
196
|
-
* Solid buttons are their OWN system, not the emphasis ramp. Each
|
|
197
|
-
* flavor's fill defaults to --ty-color-{flavor}; the knobs below
|
|
198
|
-
* derive its hover / active / tone+ / tone- and per-theme adjust.
|
|
199
|
-
* Math lives in SECTION 2 (search "Tier 6 — SOLID"); these are the
|
|
200
|
-
* dials.
|
|
201
|
-
*
|
|
202
|
-
* Axis A — interaction & tone, OKLCH L offsets on the fill.
|
|
203
|
-
* Axis B — per-theme adjust applied to the base fill (dim/desaturate).
|
|
204
|
-
*
|
|
205
|
-
* NOTE: like Tier 5, the emphasis curve flips for dark, so these L
|
|
206
|
-
* offsets are sign-flipped in `html.dark` below (darken in light =
|
|
207
|
-
* lighten in dark). Keep the two blocks in sync.
|
|
208
|
-
* --------------------------------------------------------------*/
|
|
209
|
-
|
|
210
|
-
/* Axis A — interaction (light: darken on press, so offsets are negative) */
|
|
211
|
-
--ty-solid-hover-l: -0.04; /* :hover */
|
|
212
|
-
--ty-solid-active-l: -0.08; /* :active */
|
|
213
|
-
--ty-solid-strong-l: -0.06; /* tone+ */
|
|
214
|
-
--ty-solid-soft-l: 0.1; /* tone- */
|
|
215
|
-
|
|
216
|
-
/* Axis B — per-theme adjust (light reads fine → identity) */
|
|
217
|
-
--ty-solid-l: 0; /* lightness offset — negative dims */
|
|
218
|
-
--ty-solid-c: 1; /* chroma multiplier — <1 desaturates */
|
|
219
|
-
--ty-solid-h: 0; /* hue offset (deg) */
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/* Dark mode overrides for the L-curve and saturation curve. Tier 1 + 2
|
|
223
|
-
* seeds and Tier 5 L-factors carry through unchanged from :root. */
|
|
224
|
-
html.dark,
|
|
225
|
-
html[data-theme="dark"] {
|
|
226
|
-
/* Tier 3 dark — inverted curve. Higher L = lighter text = more
|
|
227
|
-
* emphasis on a dark background. */
|
|
228
|
-
--ty-l-strong: 0.72;
|
|
229
|
-
--ty-l-bold: 0.66;
|
|
230
|
-
--ty-l-base: 0.62;
|
|
231
|
-
--ty-l-soft: 0.46;
|
|
232
|
-
--ty-l-faint: 0.3;
|
|
233
|
-
|
|
234
|
-
--ty-l-bg-base: 0.22;
|
|
235
|
-
--ty-l-bg-bold: 0.26;
|
|
236
|
-
--ty-l-bg-soft: 0.19;
|
|
237
|
-
|
|
238
|
-
/* Tier 4 dark — dim shades hold more chroma so they don't grey out;
|
|
239
|
-
* strong shades trim chroma so bright tones don't over-pop. */
|
|
240
|
-
--ty-c-strong-mult: 0.77;
|
|
241
|
-
--ty-c-bold-mult: 1;
|
|
242
|
-
--ty-c-base-mult: 0.92;
|
|
243
|
-
--ty-c-soft-mult: 0.77;
|
|
244
|
-
--ty-c-faint-mult: 0.5;
|
|
245
|
-
|
|
246
|
-
--ty-c-bg-base-mult: 0.38;
|
|
247
|
-
--ty-c-bg-bold-mult: 0.54;
|
|
248
|
-
--ty-c-bg-soft-mult: 0.23;
|
|
249
|
-
|
|
250
|
-
/* Tier 6 dark — interaction offsets flip sign (press LIGHTENS on dark),
|
|
251
|
-
* and the per-theme adjust dims + desaturates the fills against the
|
|
252
|
-
* dark canvas. (Computed solid tokens live in SECTION 2 DARK.) */
|
|
253
|
-
--ty-solid-hover-l: 0.04; /* :hover */
|
|
254
|
-
--ty-solid-active-l: 0.08; /* :active */
|
|
255
|
-
--ty-solid-strong-l: 0.06; /* tone+ */
|
|
256
|
-
--ty-solid-soft-l: -0.1; /* tone- */
|
|
257
|
-
|
|
258
|
-
--ty-solid-l: -0.25; /* dim against dark canvas */
|
|
259
|
-
--ty-solid-c: 0.65; /* desaturate against dark canvas */
|
|
260
|
-
--ty-solid-h: 0; /* hue offset */
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/* =====================================================================
|
|
264
|
-
* SECTION 2 — IMPLEMENTATION
|
|
265
|
-
* =====================================================================
|
|
266
|
-
*
|
|
267
|
-
* The oklch() expressions that turn Section 1's knobs into the actual
|
|
268
|
-
* --ty-color-*, --ty-bg-*, --ty-border-*, --ty-surface-*, --ty-input-*,
|
|
269
|
-
* and --ty-solid-* tokens that components read.
|
|
270
|
-
*
|
|
271
|
-
* Pattern for each flavor's 5-shade fg ramp + 3-shade bg ramp:
|
|
272
|
-
*
|
|
273
|
-
* --ty-color-{flavor}-{shade}: oklch(
|
|
274
|
-
* calc(var(--ty-l-{shade}) * var(--ty-{flavor}-l-factor)) ← L
|
|
275
|
-
* calc(var(--ty-{flavor}-chroma) * var(--ty-c-{shade}-mult)) ← C
|
|
276
|
-
* var(--ty-{flavor}-hue) ← H
|
|
277
|
-
* );
|
|
278
|
-
*
|
|
279
|
-
* Computed tokens are declared in BOTH `:root` and `html.dark` blocks
|
|
280
|
-
* because tyrell.css ships hardcoded dark-mode hexes at html.dark
|
|
281
|
-
* specificity (0,1,1); our brand-layer `:root` (0,1,0) would lose
|
|
282
|
-
* source-order otherwise. Same math both blocks — just different L/C
|
|
283
|
-
* inputs from Tier 3/4.
|
|
284
|
-
* ===================================================================== */
|
|
285
|
-
|
|
286
|
-
:root {
|
|
287
|
-
/* ----------------------------------------------------------------
|
|
288
|
-
* Flavor color ramps (fg + bg + border)
|
|
289
|
-
* --------------------------------------------------------------*/
|
|
290
|
-
|
|
291
|
-
/* Primary */
|
|
292
|
-
--ty-color-primary-strong: oklch(
|
|
293
|
-
calc(var(--ty-l-strong) * var(--ty-primary-l-factor))
|
|
294
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-strong-mult)) var(--ty-brand-hue)
|
|
295
|
-
);
|
|
296
|
-
--ty-color-primary-bold: oklch(
|
|
297
|
-
calc(var(--ty-l-bold) * var(--ty-primary-l-factor))
|
|
298
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bold-mult)) var(--ty-brand-hue)
|
|
299
|
-
);
|
|
300
|
-
--ty-color-primary: oklch(
|
|
301
|
-
calc(var(--ty-l-base) * var(--ty-primary-l-factor))
|
|
302
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-base-mult)) var(--ty-brand-hue)
|
|
303
|
-
);
|
|
304
|
-
--ty-color-primary-soft: oklch(
|
|
305
|
-
calc(var(--ty-l-soft) * var(--ty-primary-l-factor))
|
|
306
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-soft-mult)) var(--ty-brand-hue)
|
|
307
|
-
);
|
|
308
|
-
--ty-color-primary-faint: oklch(
|
|
309
|
-
calc(var(--ty-l-faint) * var(--ty-primary-l-factor))
|
|
310
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-faint-mult)) var(--ty-brand-hue)
|
|
311
|
-
);
|
|
312
|
-
--ty-bg-primary: oklch(
|
|
313
|
-
calc(var(--ty-l-bg-base) * var(--ty-primary-l-factor))
|
|
314
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-base-mult))
|
|
315
|
-
var(--ty-brand-hue)
|
|
316
|
-
);
|
|
317
|
-
--ty-bg-primary-bold: oklch(
|
|
318
|
-
calc(var(--ty-l-bg-bold) * var(--ty-primary-l-factor))
|
|
319
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-bold-mult))
|
|
320
|
-
var(--ty-brand-hue)
|
|
321
|
-
);
|
|
322
|
-
--ty-bg-primary-soft: oklch(
|
|
323
|
-
calc(var(--ty-l-bg-soft) * var(--ty-primary-l-factor))
|
|
324
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-soft-mult))
|
|
325
|
-
var(--ty-brand-hue)
|
|
326
|
-
);
|
|
327
|
-
--ty-border-primary: var(--ty-color-primary-soft);
|
|
328
|
-
|
|
329
|
-
/* Secondary */
|
|
330
|
-
--ty-color-secondary-strong: oklch(
|
|
331
|
-
calc(var(--ty-l-strong) * var(--ty-secondary-l-factor))
|
|
332
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-strong-mult))
|
|
333
|
-
var(--ty-secondary-hue)
|
|
334
|
-
);
|
|
335
|
-
--ty-color-secondary-bold: oklch(
|
|
336
|
-
calc(var(--ty-l-bold) * var(--ty-secondary-l-factor))
|
|
337
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bold-mult))
|
|
338
|
-
var(--ty-secondary-hue)
|
|
339
|
-
);
|
|
340
|
-
--ty-color-secondary: oklch(
|
|
341
|
-
calc(var(--ty-l-base) * var(--ty-secondary-l-factor))
|
|
342
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-base-mult))
|
|
343
|
-
var(--ty-secondary-hue)
|
|
344
|
-
);
|
|
345
|
-
--ty-color-secondary-soft: oklch(
|
|
346
|
-
calc(var(--ty-l-soft) * var(--ty-secondary-l-factor))
|
|
347
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-soft-mult))
|
|
348
|
-
var(--ty-secondary-hue)
|
|
349
|
-
);
|
|
350
|
-
--ty-color-secondary-faint: oklch(
|
|
351
|
-
calc(var(--ty-l-faint) * var(--ty-secondary-l-factor))
|
|
352
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-faint-mult))
|
|
353
|
-
var(--ty-secondary-hue)
|
|
354
|
-
);
|
|
355
|
-
--ty-bg-secondary: oklch(
|
|
356
|
-
calc(var(--ty-l-bg-base) * var(--ty-secondary-l-factor))
|
|
357
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-base-mult))
|
|
358
|
-
var(--ty-secondary-hue)
|
|
359
|
-
);
|
|
360
|
-
--ty-bg-secondary-bold: oklch(
|
|
361
|
-
calc(var(--ty-l-bg-bold) * var(--ty-secondary-l-factor))
|
|
362
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-bold-mult))
|
|
363
|
-
var(--ty-secondary-hue)
|
|
364
|
-
);
|
|
365
|
-
--ty-bg-secondary-soft: oklch(
|
|
366
|
-
calc(var(--ty-l-bg-soft) * var(--ty-secondary-l-factor))
|
|
367
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-soft-mult))
|
|
368
|
-
var(--ty-secondary-hue)
|
|
369
|
-
);
|
|
370
|
-
--ty-border-secondary: var(--ty-color-secondary-soft);
|
|
371
|
-
|
|
372
|
-
/* Success */
|
|
373
|
-
--ty-color-success-strong: oklch(
|
|
374
|
-
calc(var(--ty-l-strong) * var(--ty-success-l-factor))
|
|
375
|
-
calc(var(--ty-success-chroma) * var(--ty-c-strong-mult))
|
|
376
|
-
var(--ty-success-hue)
|
|
377
|
-
);
|
|
378
|
-
--ty-color-success-bold: oklch(
|
|
379
|
-
calc(var(--ty-l-bold) * var(--ty-success-l-factor))
|
|
380
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bold-mult))
|
|
381
|
-
var(--ty-success-hue)
|
|
382
|
-
);
|
|
383
|
-
--ty-color-success: oklch(
|
|
384
|
-
calc(var(--ty-l-base) * var(--ty-success-l-factor))
|
|
385
|
-
calc(var(--ty-success-chroma) * var(--ty-c-base-mult))
|
|
386
|
-
var(--ty-success-hue)
|
|
387
|
-
);
|
|
388
|
-
--ty-color-success-soft: oklch(
|
|
389
|
-
calc(var(--ty-l-soft) * var(--ty-success-l-factor))
|
|
390
|
-
calc(var(--ty-success-chroma) * var(--ty-c-soft-mult))
|
|
391
|
-
var(--ty-success-hue)
|
|
392
|
-
);
|
|
393
|
-
--ty-color-success-faint: oklch(
|
|
394
|
-
calc(var(--ty-l-faint) * var(--ty-success-l-factor))
|
|
395
|
-
calc(var(--ty-success-chroma) * var(--ty-c-faint-mult))
|
|
396
|
-
var(--ty-success-hue)
|
|
397
|
-
);
|
|
398
|
-
--ty-bg-success: oklch(
|
|
399
|
-
calc(var(--ty-l-bg-base) * var(--ty-success-l-factor))
|
|
400
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-base-mult))
|
|
401
|
-
var(--ty-success-hue)
|
|
402
|
-
);
|
|
403
|
-
--ty-bg-success-bold: oklch(
|
|
404
|
-
calc(var(--ty-l-bg-bold) * var(--ty-success-l-factor))
|
|
405
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-bold-mult))
|
|
406
|
-
var(--ty-success-hue)
|
|
407
|
-
);
|
|
408
|
-
--ty-bg-success-soft: oklch(
|
|
409
|
-
calc(var(--ty-l-bg-soft) * var(--ty-success-l-factor))
|
|
410
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-soft-mult))
|
|
411
|
-
var(--ty-success-hue)
|
|
412
|
-
);
|
|
413
|
-
--ty-border-success: var(--ty-color-success-soft);
|
|
414
|
-
|
|
415
|
-
/* Danger */
|
|
416
|
-
--ty-color-danger-strong: oklch(
|
|
417
|
-
calc(var(--ty-l-strong) * var(--ty-danger-l-factor))
|
|
418
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-strong-mult))
|
|
419
|
-
var(--ty-danger-hue)
|
|
420
|
-
);
|
|
421
|
-
--ty-color-danger-bold: oklch(
|
|
422
|
-
calc(var(--ty-l-bold) * var(--ty-danger-l-factor))
|
|
423
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bold-mult)) var(--ty-danger-hue)
|
|
424
|
-
);
|
|
425
|
-
--ty-color-danger: oklch(
|
|
426
|
-
calc(var(--ty-l-base) * var(--ty-danger-l-factor))
|
|
427
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-base-mult)) var(--ty-danger-hue)
|
|
428
|
-
);
|
|
429
|
-
--ty-color-danger-soft: oklch(
|
|
430
|
-
calc(var(--ty-l-soft) * var(--ty-danger-l-factor))
|
|
431
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-soft-mult)) var(--ty-danger-hue)
|
|
432
|
-
);
|
|
433
|
-
--ty-color-danger-faint: oklch(
|
|
434
|
-
calc(var(--ty-l-faint) * var(--ty-danger-l-factor))
|
|
435
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-faint-mult))
|
|
436
|
-
var(--ty-danger-hue)
|
|
437
|
-
);
|
|
438
|
-
--ty-bg-danger: oklch(
|
|
439
|
-
calc(var(--ty-l-bg-base) * var(--ty-danger-l-factor))
|
|
440
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-base-mult))
|
|
441
|
-
var(--ty-danger-hue)
|
|
442
|
-
);
|
|
443
|
-
--ty-bg-danger-bold: oklch(
|
|
444
|
-
calc(var(--ty-l-bg-bold) * var(--ty-danger-l-factor))
|
|
445
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-bold-mult))
|
|
446
|
-
var(--ty-danger-hue)
|
|
447
|
-
);
|
|
448
|
-
--ty-bg-danger-soft: oklch(
|
|
449
|
-
calc(var(--ty-l-bg-soft) * var(--ty-danger-l-factor))
|
|
450
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-soft-mult))
|
|
451
|
-
var(--ty-danger-hue)
|
|
452
|
-
);
|
|
453
|
-
--ty-border-danger: var(--ty-color-danger-soft);
|
|
454
|
-
|
|
455
|
-
/* Warning */
|
|
456
|
-
--ty-color-warning-strong: oklch(
|
|
457
|
-
calc(var(--ty-l-strong) * var(--ty-warning-l-factor))
|
|
458
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-strong-mult))
|
|
459
|
-
var(--ty-warning-hue)
|
|
460
|
-
);
|
|
461
|
-
--ty-color-warning-bold: oklch(
|
|
462
|
-
calc(var(--ty-l-bold) * var(--ty-warning-l-factor))
|
|
463
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bold-mult))
|
|
464
|
-
var(--ty-warning-hue)
|
|
465
|
-
);
|
|
466
|
-
--ty-color-warning: oklch(
|
|
467
|
-
calc(var(--ty-l-base) * var(--ty-warning-l-factor))
|
|
468
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-base-mult))
|
|
469
|
-
var(--ty-warning-hue)
|
|
470
|
-
);
|
|
471
|
-
--ty-color-warning-soft: oklch(
|
|
472
|
-
calc(var(--ty-l-soft) * var(--ty-warning-l-factor))
|
|
473
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-soft-mult))
|
|
474
|
-
var(--ty-warning-hue)
|
|
475
|
-
);
|
|
476
|
-
--ty-color-warning-faint: oklch(
|
|
477
|
-
calc(var(--ty-l-faint) * var(--ty-warning-l-factor))
|
|
478
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-faint-mult))
|
|
479
|
-
var(--ty-warning-hue)
|
|
480
|
-
);
|
|
481
|
-
--ty-bg-warning: oklch(
|
|
482
|
-
calc(var(--ty-l-bg-base) * var(--ty-warning-l-factor))
|
|
483
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-base-mult))
|
|
484
|
-
var(--ty-warning-hue)
|
|
485
|
-
);
|
|
486
|
-
--ty-bg-warning-bold: oklch(
|
|
487
|
-
calc(var(--ty-l-bg-bold) * var(--ty-warning-l-factor))
|
|
488
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-bold-mult))
|
|
489
|
-
var(--ty-warning-hue)
|
|
490
|
-
);
|
|
491
|
-
--ty-bg-warning-soft: oklch(
|
|
492
|
-
calc(var(--ty-l-bg-soft) * var(--ty-warning-l-factor))
|
|
493
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-soft-mult))
|
|
494
|
-
var(--ty-warning-hue)
|
|
495
|
-
);
|
|
496
|
-
--ty-border-warning: var(--ty-color-warning-soft);
|
|
497
|
-
|
|
498
|
-
/* Neutral — same L curve, near-zero chroma so the grey scale stays grey. */
|
|
499
|
-
--ty-color-neutral-strong: oklch(
|
|
500
|
-
calc(var(--ty-l-strong) * var(--ty-neutral-l-factor))
|
|
501
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
502
|
-
var(--ty-neutral-hue)
|
|
503
|
-
);
|
|
504
|
-
--ty-color-neutral-bold: oklch(
|
|
505
|
-
calc(var(--ty-l-bold) * var(--ty-neutral-l-factor))
|
|
506
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bold-mult))
|
|
507
|
-
var(--ty-neutral-hue)
|
|
508
|
-
);
|
|
509
|
-
--ty-color-neutral: oklch(
|
|
510
|
-
calc(var(--ty-l-base) * var(--ty-neutral-l-factor))
|
|
511
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-base-mult))
|
|
512
|
-
var(--ty-neutral-hue)
|
|
513
|
-
);
|
|
514
|
-
--ty-color-neutral-soft: oklch(
|
|
515
|
-
calc(var(--ty-l-soft) * var(--ty-neutral-l-factor))
|
|
516
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-soft-mult))
|
|
517
|
-
var(--ty-neutral-hue)
|
|
518
|
-
);
|
|
519
|
-
--ty-color-neutral-faint: oklch(
|
|
520
|
-
calc(var(--ty-l-faint) * var(--ty-neutral-l-factor))
|
|
521
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-faint-mult))
|
|
522
|
-
var(--ty-neutral-hue)
|
|
523
|
-
);
|
|
524
|
-
--ty-bg-neutral: oklch(
|
|
525
|
-
calc(var(--ty-l-bg-base) * var(--ty-neutral-l-factor))
|
|
526
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-base-mult))
|
|
527
|
-
var(--ty-neutral-hue)
|
|
528
|
-
);
|
|
529
|
-
--ty-bg-neutral-bold: oklch(
|
|
530
|
-
calc(var(--ty-l-bg-bold) * var(--ty-neutral-l-factor))
|
|
531
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-bold-mult))
|
|
532
|
-
var(--ty-neutral-hue)
|
|
533
|
-
);
|
|
534
|
-
--ty-bg-neutral-soft: oklch(
|
|
535
|
-
calc(var(--ty-l-bg-soft) * var(--ty-neutral-l-factor))
|
|
536
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-soft-mult))
|
|
537
|
-
var(--ty-neutral-hue)
|
|
538
|
-
);
|
|
539
|
-
--ty-bg-neutral-strong: oklch(
|
|
540
|
-
0.25 calc(var(--ty-neutral-chroma) * 2) var(--ty-neutral-hue)
|
|
541
|
-
);
|
|
542
|
-
--ty-bg-neutral-faint: oklch(
|
|
543
|
-
0.99 calc(var(--ty-neutral-chroma) * 0.4) var(--ty-neutral-hue)
|
|
544
|
-
);
|
|
545
|
-
|
|
546
|
-
/* ----------------------------------------------------------------
|
|
547
|
-
* Global neutral borders — read off the neutral color ramp.
|
|
548
|
-
* --------------------------------------------------------------*/
|
|
549
|
-
--ty-border-strong: var(--ty-color-neutral-bold);
|
|
550
|
-
--ty-border: var(--ty-color-neutral-soft);
|
|
551
|
-
--ty-border-bold: var(--ty-color-neutral-soft);
|
|
552
|
-
--ty-border-soft: var(--ty-color-neutral-faint);
|
|
553
|
-
--ty-border-faint: var(--ty-color-neutral-faint);
|
|
554
|
-
|
|
555
|
-
/* ----------------------------------------------------------------
|
|
556
|
-
* Surfaces — monochrome by default; --ty-surface-chroma warms them.
|
|
557
|
-
* --------------------------------------------------------------*/
|
|
558
|
-
--ty-surface-canvas: oklch(0.985 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
559
|
-
--ty-surface-content: oklch(1 0 0);
|
|
560
|
-
--ty-surface-elevated: oklch(1 0 0);
|
|
561
|
-
--ty-surface-floating: oklch(1 0 0);
|
|
562
|
-
--ty-surface-input: oklch(1 0 0);
|
|
563
|
-
|
|
564
|
-
/* ----------------------------------------------------------------
|
|
565
|
-
* Inputs — tied to neutral ramp so form controls retint with brand.
|
|
566
|
-
* --------------------------------------------------------------*/
|
|
567
|
-
--ty-input-bg: var(--ty-surface-input);
|
|
568
|
-
--ty-input-color: var(--ty-color-neutral-strong);
|
|
569
|
-
--ty-input-border: var(--ty-color-neutral-faint);
|
|
570
|
-
--ty-input-border-hover: var(--ty-color-neutral-soft);
|
|
571
|
-
--ty-input-border-focus: var(--ty-color-primary);
|
|
572
|
-
--ty-input-placeholder: var(--ty-color-neutral-soft);
|
|
573
|
-
--ty-input-disabled-bg: var(--ty-color-neutral-faint);
|
|
574
|
-
--ty-input-disabled-border: var(--ty-color-neutral-faint);
|
|
575
|
-
--ty-input-disabled-color: var(--ty-color-neutral-bold);
|
|
576
|
-
--ty-input-shadow-focus: color-mix(
|
|
577
|
-
in oklab,
|
|
578
|
-
var(--ty-color-primary) 5%,
|
|
579
|
-
transparent
|
|
580
|
-
);
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
/* ----------------------------------------------------------------
|
|
584
|
-
* Tier 6 — SOLID (implementation)
|
|
585
|
-
* Solid is its OWN system, NOT the text/emphasis ramp. The dials
|
|
586
|
-
* (--ty-solid-hover-l / -active-l / -strong-l / -soft-l and
|
|
587
|
-
* --ty-solid-l / -c / -h) live in SECTION 1, Tier 6. Below is the
|
|
588
|
-
* derivation only: base fill bakes in the per-theme adjust (Axis B);
|
|
589
|
-
* hover/active/strong/soft offset the base by Axis A. Override any
|
|
590
|
-
* single --ty-solid-{flavor}-{state} to recolor just that segment.
|
|
591
|
-
*
|
|
592
|
-
* Declared at `html:root` (specificity 0,1,1) — NOT plain `:root` (0,1,0) —
|
|
593
|
-
* on purpose: it must out-rank tyrell.css's hardcoded dark solids at
|
|
594
|
-
* `html.dark` (0,1,1). It wins light by specificity over base's `html{}`,
|
|
595
|
-
* and wins dark by source order over base's `html.dark` (brand loads after).
|
|
596
|
-
* That's what lets dark solids re-tint with --ty-brand-hue. Declared ONCE —
|
|
597
|
-
* the oklch(from var(--ty-color-*)) formulas resolve per-mode automatically,
|
|
598
|
-
* so no dark duplicate is needed.
|
|
599
|
-
* --------------------------------------------------------------*/
|
|
600
|
-
html:root {
|
|
601
|
-
/* base fill per flavor (= flavor color, theme-adjusted by Axis B) */
|
|
602
|
-
--ty-solid-primary: oklch(
|
|
603
|
-
from var(--ty-color-primary) calc(l + var(--ty-solid-l))
|
|
604
|
-
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
605
|
-
);
|
|
606
|
-
--ty-solid-secondary: oklch(
|
|
607
|
-
from var(--ty-color-secondary) calc(l + var(--ty-solid-l))
|
|
608
|
-
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
609
|
-
);
|
|
610
|
-
--ty-solid-success: oklch(
|
|
611
|
-
from var(--ty-color-success) calc(l + var(--ty-solid-l))
|
|
612
|
-
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
613
|
-
);
|
|
614
|
-
--ty-solid-danger: oklch(
|
|
615
|
-
from var(--ty-color-danger) calc(l + var(--ty-solid-l))
|
|
616
|
-
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
617
|
-
);
|
|
618
|
-
--ty-solid-warning: oklch(
|
|
619
|
-
from var(--ty-color-warning) calc(l + var(--ty-solid-l))
|
|
620
|
-
calc(c * var(--ty-solid-c)) calc(h + var(--ty-solid-h))
|
|
621
|
-
);
|
|
622
|
-
/* neutral is a deliberate dark grey fill, not the neutral text color */
|
|
623
|
-
--ty-solid-neutral: oklch(
|
|
624
|
-
0.4 calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
625
|
-
var(--ty-neutral-hue)
|
|
626
|
-
);
|
|
627
|
-
|
|
628
|
-
--ty-solid-primary-fg: white;
|
|
629
|
-
--ty-solid-secondary-fg: white;
|
|
630
|
-
--ty-solid-success-fg: white;
|
|
631
|
-
--ty-solid-danger-fg: white;
|
|
632
|
-
--ty-solid-warning-fg: white;
|
|
633
|
-
--ty-solid-neutral-fg: white;
|
|
634
|
-
|
|
635
|
-
/* derived states — axis 2 offsets on each base fill */
|
|
636
|
-
--ty-solid-primary-hover: oklch(
|
|
637
|
-
from var(--ty-solid-primary) calc(l + var(--ty-solid-hover-l)) c h
|
|
638
|
-
);
|
|
639
|
-
--ty-solid-primary-active: oklch(
|
|
640
|
-
from var(--ty-solid-primary) calc(l + var(--ty-solid-active-l)) c h
|
|
641
|
-
);
|
|
642
|
-
--ty-solid-primary-strong: oklch(
|
|
643
|
-
from var(--ty-solid-primary) calc(l + var(--ty-solid-strong-l)) c h
|
|
644
|
-
);
|
|
645
|
-
--ty-solid-primary-soft: oklch(
|
|
646
|
-
from var(--ty-solid-primary) calc(l + var(--ty-solid-soft-l)) c h
|
|
647
|
-
);
|
|
648
|
-
|
|
649
|
-
--ty-solid-secondary-hover: oklch(
|
|
650
|
-
from var(--ty-solid-secondary) calc(l + var(--ty-solid-hover-l)) c h
|
|
651
|
-
);
|
|
652
|
-
--ty-solid-secondary-active: oklch(
|
|
653
|
-
from var(--ty-solid-secondary) calc(l + var(--ty-solid-active-l)) c h
|
|
654
|
-
);
|
|
655
|
-
--ty-solid-secondary-strong: oklch(
|
|
656
|
-
from var(--ty-solid-secondary) calc(l + var(--ty-solid-strong-l)) c h
|
|
657
|
-
);
|
|
658
|
-
--ty-solid-secondary-soft: oklch(
|
|
659
|
-
from var(--ty-solid-secondary) calc(l + var(--ty-solid-soft-l)) c h
|
|
660
|
-
);
|
|
661
|
-
|
|
662
|
-
--ty-solid-success-hover: oklch(
|
|
663
|
-
from var(--ty-solid-success) calc(l + var(--ty-solid-hover-l)) c h
|
|
664
|
-
);
|
|
665
|
-
--ty-solid-success-active: oklch(
|
|
666
|
-
from var(--ty-solid-success) calc(l + var(--ty-solid-active-l)) c h
|
|
667
|
-
);
|
|
668
|
-
--ty-solid-success-strong: oklch(
|
|
669
|
-
from var(--ty-solid-success) calc(l + var(--ty-solid-strong-l)) c h
|
|
670
|
-
);
|
|
671
|
-
--ty-solid-success-soft: oklch(
|
|
672
|
-
from var(--ty-solid-success) calc(l + var(--ty-solid-soft-l)) c h
|
|
673
|
-
);
|
|
674
|
-
|
|
675
|
-
--ty-solid-danger-hover: oklch(
|
|
676
|
-
from var(--ty-solid-danger) calc(l + var(--ty-solid-hover-l)) c h
|
|
677
|
-
);
|
|
678
|
-
--ty-solid-danger-active: oklch(
|
|
679
|
-
from var(--ty-solid-danger) calc(l + var(--ty-solid-active-l)) c h
|
|
680
|
-
);
|
|
681
|
-
--ty-solid-danger-strong: oklch(
|
|
682
|
-
from var(--ty-solid-danger) calc(l + var(--ty-solid-strong-l)) c h
|
|
683
|
-
);
|
|
684
|
-
--ty-solid-danger-soft: oklch(
|
|
685
|
-
from var(--ty-solid-danger) calc(l + var(--ty-solid-soft-l)) c h
|
|
686
|
-
);
|
|
687
|
-
|
|
688
|
-
--ty-solid-warning-hover: oklch(
|
|
689
|
-
from var(--ty-solid-warning) calc(l + var(--ty-solid-hover-l)) c h
|
|
690
|
-
);
|
|
691
|
-
--ty-solid-warning-active: oklch(
|
|
692
|
-
from var(--ty-solid-warning) calc(l + var(--ty-solid-active-l)) c h
|
|
693
|
-
);
|
|
694
|
-
--ty-solid-warning-strong: oklch(
|
|
695
|
-
from var(--ty-solid-warning) calc(l + var(--ty-solid-strong-l)) c h
|
|
696
|
-
);
|
|
697
|
-
--ty-solid-warning-soft: oklch(
|
|
698
|
-
from var(--ty-solid-warning) calc(l + var(--ty-solid-soft-l)) c h
|
|
699
|
-
);
|
|
700
|
-
|
|
701
|
-
--ty-solid-neutral-hover: oklch(
|
|
702
|
-
from var(--ty-solid-neutral) calc(l + var(--ty-solid-hover-l)) c h
|
|
703
|
-
);
|
|
704
|
-
--ty-solid-neutral-active: oklch(
|
|
705
|
-
from var(--ty-solid-neutral) calc(l + var(--ty-solid-active-l)) c h
|
|
706
|
-
);
|
|
707
|
-
--ty-solid-neutral-strong: oklch(
|
|
708
|
-
from var(--ty-solid-neutral) calc(l + var(--ty-solid-strong-l)) c h
|
|
709
|
-
);
|
|
710
|
-
--ty-solid-neutral-soft: oklch(
|
|
711
|
-
from var(--ty-solid-neutral) calc(l + var(--ty-solid-soft-l)) c h
|
|
712
|
-
);
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
/* =====================================================================
|
|
716
|
-
* SECTION 2 DARK — same computations re-declared so html.dark (0,1,1)
|
|
717
|
-
* matches tyrell.css's hardcoded dark-mode hexes at source-order
|
|
718
|
-
* specificity. The math is identical to the :root block above; only
|
|
719
|
-
* the L/C inputs differ (from html.dark's Tier 3/4 overrides).
|
|
720
|
-
* ===================================================================== */
|
|
721
|
-
|
|
722
|
-
html.dark,
|
|
723
|
-
html[data-theme="dark"] {
|
|
724
|
-
/* Primary */
|
|
725
|
-
--ty-color-primary-strong: oklch(
|
|
726
|
-
calc(var(--ty-l-strong) * var(--ty-primary-l-factor))
|
|
727
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-strong-mult)) var(--ty-brand-hue)
|
|
728
|
-
);
|
|
729
|
-
--ty-color-primary-bold: oklch(
|
|
730
|
-
calc(var(--ty-l-bold) * var(--ty-primary-l-factor))
|
|
731
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bold-mult)) var(--ty-brand-hue)
|
|
732
|
-
);
|
|
733
|
-
--ty-color-primary: oklch(
|
|
734
|
-
calc(var(--ty-l-base) * var(--ty-primary-l-factor))
|
|
735
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-base-mult)) var(--ty-brand-hue)
|
|
736
|
-
);
|
|
737
|
-
--ty-color-primary-soft: oklch(
|
|
738
|
-
calc(var(--ty-l-soft) * var(--ty-primary-l-factor))
|
|
739
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-soft-mult)) var(--ty-brand-hue)
|
|
740
|
-
);
|
|
741
|
-
--ty-color-primary-faint: oklch(
|
|
742
|
-
calc(var(--ty-l-faint) * var(--ty-primary-l-factor))
|
|
743
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-faint-mult)) var(--ty-brand-hue)
|
|
744
|
-
);
|
|
745
|
-
--ty-bg-primary: oklch(
|
|
746
|
-
calc(var(--ty-l-bg-base) * var(--ty-primary-l-factor))
|
|
747
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-base-mult))
|
|
748
|
-
var(--ty-brand-hue)
|
|
749
|
-
);
|
|
750
|
-
--ty-bg-primary-bold: oklch(
|
|
751
|
-
calc(var(--ty-l-bg-bold) * var(--ty-primary-l-factor))
|
|
752
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-bold-mult))
|
|
753
|
-
var(--ty-brand-hue)
|
|
754
|
-
);
|
|
755
|
-
--ty-bg-primary-soft: oklch(
|
|
756
|
-
calc(var(--ty-l-bg-soft) * var(--ty-primary-l-factor))
|
|
757
|
-
calc(var(--ty-brand-chroma) * var(--ty-c-bg-soft-mult))
|
|
758
|
-
var(--ty-brand-hue)
|
|
759
|
-
);
|
|
760
|
-
--ty-border-primary: var(--ty-color-primary-soft);
|
|
761
|
-
|
|
762
|
-
/* Secondary */
|
|
763
|
-
--ty-color-secondary-strong: oklch(
|
|
764
|
-
calc(var(--ty-l-strong) * var(--ty-secondary-l-factor))
|
|
765
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-strong-mult))
|
|
766
|
-
var(--ty-secondary-hue)
|
|
767
|
-
);
|
|
768
|
-
--ty-color-secondary-bold: oklch(
|
|
769
|
-
calc(var(--ty-l-bold) * var(--ty-secondary-l-factor))
|
|
770
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bold-mult))
|
|
771
|
-
var(--ty-secondary-hue)
|
|
772
|
-
);
|
|
773
|
-
--ty-color-secondary: oklch(
|
|
774
|
-
calc(var(--ty-l-base) * var(--ty-secondary-l-factor))
|
|
775
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-base-mult))
|
|
776
|
-
var(--ty-secondary-hue)
|
|
777
|
-
);
|
|
778
|
-
--ty-color-secondary-soft: oklch(
|
|
779
|
-
calc(var(--ty-l-soft) * var(--ty-secondary-l-factor))
|
|
780
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-soft-mult))
|
|
781
|
-
var(--ty-secondary-hue)
|
|
782
|
-
);
|
|
783
|
-
--ty-color-secondary-faint: oklch(
|
|
784
|
-
calc(var(--ty-l-faint) * var(--ty-secondary-l-factor))
|
|
785
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-faint-mult))
|
|
786
|
-
var(--ty-secondary-hue)
|
|
787
|
-
);
|
|
788
|
-
--ty-bg-secondary: oklch(
|
|
789
|
-
calc(var(--ty-l-bg-base) * var(--ty-secondary-l-factor))
|
|
790
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-base-mult))
|
|
791
|
-
var(--ty-secondary-hue)
|
|
792
|
-
);
|
|
793
|
-
--ty-bg-secondary-bold: oklch(
|
|
794
|
-
calc(var(--ty-l-bg-bold) * var(--ty-secondary-l-factor))
|
|
795
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-bold-mult))
|
|
796
|
-
var(--ty-secondary-hue)
|
|
797
|
-
);
|
|
798
|
-
--ty-bg-secondary-soft: oklch(
|
|
799
|
-
calc(var(--ty-l-bg-soft) * var(--ty-secondary-l-factor))
|
|
800
|
-
calc(var(--ty-secondary-chroma) * var(--ty-c-bg-soft-mult))
|
|
801
|
-
var(--ty-secondary-hue)
|
|
802
|
-
);
|
|
803
|
-
--ty-border-secondary: var(--ty-color-secondary-soft);
|
|
804
|
-
|
|
805
|
-
/* Success */
|
|
806
|
-
--ty-color-success-strong: oklch(
|
|
807
|
-
calc(var(--ty-l-strong) * var(--ty-success-l-factor))
|
|
808
|
-
calc(var(--ty-success-chroma) * var(--ty-c-strong-mult))
|
|
809
|
-
var(--ty-success-hue)
|
|
810
|
-
);
|
|
811
|
-
--ty-color-success-bold: oklch(
|
|
812
|
-
calc(var(--ty-l-bold) * var(--ty-success-l-factor))
|
|
813
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bold-mult))
|
|
814
|
-
var(--ty-success-hue)
|
|
815
|
-
);
|
|
816
|
-
--ty-color-success: oklch(
|
|
817
|
-
calc(var(--ty-l-base) * var(--ty-success-l-factor))
|
|
818
|
-
calc(var(--ty-success-chroma) * var(--ty-c-base-mult))
|
|
819
|
-
var(--ty-success-hue)
|
|
820
|
-
);
|
|
821
|
-
--ty-color-success-soft: oklch(
|
|
822
|
-
calc(var(--ty-l-soft) * var(--ty-success-l-factor))
|
|
823
|
-
calc(var(--ty-success-chroma) * var(--ty-c-soft-mult))
|
|
824
|
-
var(--ty-success-hue)
|
|
825
|
-
);
|
|
826
|
-
--ty-color-success-faint: oklch(
|
|
827
|
-
calc(var(--ty-l-faint) * var(--ty-success-l-factor))
|
|
828
|
-
calc(var(--ty-success-chroma) * var(--ty-c-faint-mult))
|
|
829
|
-
var(--ty-success-hue)
|
|
830
|
-
);
|
|
831
|
-
--ty-bg-success: oklch(
|
|
832
|
-
calc(var(--ty-l-bg-base) * var(--ty-success-l-factor))
|
|
833
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-base-mult))
|
|
834
|
-
var(--ty-success-hue)
|
|
835
|
-
);
|
|
836
|
-
--ty-bg-success-bold: oklch(
|
|
837
|
-
calc(var(--ty-l-bg-bold) * var(--ty-success-l-factor))
|
|
838
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-bold-mult))
|
|
839
|
-
var(--ty-success-hue)
|
|
840
|
-
);
|
|
841
|
-
--ty-bg-success-soft: oklch(
|
|
842
|
-
calc(var(--ty-l-bg-soft) * var(--ty-success-l-factor))
|
|
843
|
-
calc(var(--ty-success-chroma) * var(--ty-c-bg-soft-mult))
|
|
844
|
-
var(--ty-success-hue)
|
|
845
|
-
);
|
|
846
|
-
--ty-border-success: var(--ty-color-success-soft);
|
|
847
|
-
|
|
848
|
-
/* Danger */
|
|
849
|
-
--ty-color-danger-strong: oklch(
|
|
850
|
-
calc(var(--ty-l-strong) * var(--ty-danger-l-factor))
|
|
851
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-strong-mult))
|
|
852
|
-
var(--ty-danger-hue)
|
|
853
|
-
);
|
|
854
|
-
--ty-color-danger-bold: oklch(
|
|
855
|
-
calc(var(--ty-l-bold) * var(--ty-danger-l-factor))
|
|
856
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bold-mult)) var(--ty-danger-hue)
|
|
857
|
-
);
|
|
858
|
-
--ty-color-danger: oklch(
|
|
859
|
-
calc(var(--ty-l-base) * var(--ty-danger-l-factor))
|
|
860
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-base-mult)) var(--ty-danger-hue)
|
|
861
|
-
);
|
|
862
|
-
--ty-color-danger-soft: oklch(
|
|
863
|
-
calc(var(--ty-l-soft) * var(--ty-danger-l-factor))
|
|
864
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-soft-mult)) var(--ty-danger-hue)
|
|
865
|
-
);
|
|
866
|
-
--ty-color-danger-faint: oklch(
|
|
867
|
-
calc(var(--ty-l-faint) * var(--ty-danger-l-factor))
|
|
868
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-faint-mult))
|
|
869
|
-
var(--ty-danger-hue)
|
|
870
|
-
);
|
|
871
|
-
--ty-bg-danger: oklch(
|
|
872
|
-
calc(var(--ty-l-bg-base) * var(--ty-danger-l-factor))
|
|
873
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-base-mult))
|
|
874
|
-
var(--ty-danger-hue)
|
|
875
|
-
);
|
|
876
|
-
--ty-bg-danger-bold: oklch(
|
|
877
|
-
calc(var(--ty-l-bg-bold) * var(--ty-danger-l-factor))
|
|
878
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-bold-mult))
|
|
879
|
-
var(--ty-danger-hue)
|
|
880
|
-
);
|
|
881
|
-
--ty-bg-danger-soft: oklch(
|
|
882
|
-
calc(var(--ty-l-bg-soft) * var(--ty-danger-l-factor))
|
|
883
|
-
calc(var(--ty-danger-chroma) * var(--ty-c-bg-soft-mult))
|
|
884
|
-
var(--ty-danger-hue)
|
|
885
|
-
);
|
|
886
|
-
--ty-border-danger: var(--ty-color-danger-soft);
|
|
887
|
-
|
|
888
|
-
/* Warning */
|
|
889
|
-
--ty-color-warning-strong: oklch(
|
|
890
|
-
calc(var(--ty-l-strong) * var(--ty-warning-l-factor))
|
|
891
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-strong-mult))
|
|
892
|
-
var(--ty-warning-hue)
|
|
893
|
-
);
|
|
894
|
-
--ty-color-warning-bold: oklch(
|
|
895
|
-
calc(var(--ty-l-bold) * var(--ty-warning-l-factor))
|
|
896
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bold-mult))
|
|
897
|
-
var(--ty-warning-hue)
|
|
898
|
-
);
|
|
899
|
-
--ty-color-warning: oklch(
|
|
900
|
-
calc(var(--ty-l-base) * var(--ty-warning-l-factor))
|
|
901
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-base-mult))
|
|
902
|
-
var(--ty-warning-hue)
|
|
903
|
-
);
|
|
904
|
-
--ty-color-warning-soft: oklch(
|
|
905
|
-
calc(var(--ty-l-soft) * var(--ty-warning-l-factor))
|
|
906
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-soft-mult))
|
|
907
|
-
var(--ty-warning-hue)
|
|
908
|
-
);
|
|
909
|
-
--ty-color-warning-faint: oklch(
|
|
910
|
-
calc(var(--ty-l-faint) * var(--ty-warning-l-factor))
|
|
911
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-faint-mult))
|
|
912
|
-
var(--ty-warning-hue)
|
|
913
|
-
);
|
|
914
|
-
--ty-bg-warning: oklch(
|
|
915
|
-
calc(var(--ty-l-bg-base) * var(--ty-warning-l-factor))
|
|
916
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-base-mult))
|
|
917
|
-
var(--ty-warning-hue)
|
|
918
|
-
);
|
|
919
|
-
--ty-bg-warning-bold: oklch(
|
|
920
|
-
calc(var(--ty-l-bg-bold) * var(--ty-warning-l-factor))
|
|
921
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-bold-mult))
|
|
922
|
-
var(--ty-warning-hue)
|
|
923
|
-
);
|
|
924
|
-
--ty-bg-warning-soft: oklch(
|
|
925
|
-
calc(var(--ty-l-bg-soft) * var(--ty-warning-l-factor))
|
|
926
|
-
calc(var(--ty-warning-chroma) * var(--ty-c-bg-soft-mult))
|
|
927
|
-
var(--ty-warning-hue)
|
|
928
|
-
);
|
|
929
|
-
--ty-border-warning: var(--ty-color-warning-soft);
|
|
930
|
-
|
|
931
|
-
/* Neutral */
|
|
932
|
-
--ty-color-neutral-strong: oklch(
|
|
933
|
-
calc(var(--ty-l-strong) * var(--ty-neutral-l-factor))
|
|
934
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
935
|
-
var(--ty-neutral-hue)
|
|
936
|
-
);
|
|
937
|
-
--ty-color-neutral-bold: oklch(
|
|
938
|
-
calc(var(--ty-l-bold) * var(--ty-neutral-l-factor))
|
|
939
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bold-mult))
|
|
940
|
-
var(--ty-neutral-hue)
|
|
941
|
-
);
|
|
942
|
-
--ty-color-neutral: oklch(
|
|
943
|
-
calc(var(--ty-l-base) * var(--ty-neutral-l-factor))
|
|
944
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-base-mult))
|
|
945
|
-
var(--ty-neutral-hue)
|
|
946
|
-
);
|
|
947
|
-
--ty-color-neutral-soft: oklch(
|
|
948
|
-
calc(var(--ty-l-soft) * var(--ty-neutral-l-factor))
|
|
949
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-soft-mult))
|
|
950
|
-
var(--ty-neutral-hue)
|
|
951
|
-
);
|
|
952
|
-
--ty-color-neutral-faint: oklch(
|
|
953
|
-
calc(var(--ty-l-faint) * var(--ty-neutral-l-factor))
|
|
954
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-faint-mult))
|
|
955
|
-
var(--ty-neutral-hue)
|
|
956
|
-
);
|
|
957
|
-
--ty-bg-neutral: oklch(
|
|
958
|
-
calc(var(--ty-l-bg-base) * var(--ty-neutral-l-factor))
|
|
959
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-base-mult))
|
|
960
|
-
var(--ty-neutral-hue)
|
|
961
|
-
);
|
|
962
|
-
--ty-bg-neutral-bold: oklch(
|
|
963
|
-
calc(var(--ty-l-bg-bold) * var(--ty-neutral-l-factor))
|
|
964
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-bold-mult))
|
|
965
|
-
var(--ty-neutral-hue)
|
|
966
|
-
);
|
|
967
|
-
--ty-bg-neutral-soft: oklch(
|
|
968
|
-
calc(var(--ty-l-bg-soft) * var(--ty-neutral-l-factor))
|
|
969
|
-
calc(var(--ty-neutral-chroma) * var(--ty-c-bg-soft-mult))
|
|
970
|
-
var(--ty-neutral-hue)
|
|
971
|
-
);
|
|
972
|
-
--ty-bg-neutral-strong: oklch(
|
|
973
|
-
0.95 calc(var(--ty-neutral-chroma) * 2) var(--ty-neutral-hue)
|
|
974
|
-
);
|
|
975
|
-
--ty-bg-neutral-faint: oklch(
|
|
976
|
-
0.15 calc(var(--ty-neutral-chroma) * 2) var(--ty-neutral-hue)
|
|
977
|
-
);
|
|
978
|
-
|
|
979
|
-
/* Global neutral borders */
|
|
980
|
-
--ty-border-strong: var(--ty-color-neutral-bold);
|
|
981
|
-
--ty-border: var(--ty-color-neutral-soft);
|
|
982
|
-
--ty-border-bold: var(--ty-color-neutral-soft);
|
|
983
|
-
--ty-border-soft: var(--ty-color-neutral-faint);
|
|
984
|
-
--ty-border-faint: var(--ty-color-neutral-faint);
|
|
985
|
-
|
|
986
|
-
/* Surfaces — monochrome by default; --ty-surface-chroma warms them. */
|
|
987
|
-
--ty-surface-canvas: oklch(0.12 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
988
|
-
--ty-surface-content: oklch(0.16 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
989
|
-
--ty-surface-elevated: oklch(0.19 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
990
|
-
--ty-surface-floating: oklch(0.22 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
991
|
-
--ty-surface-input: oklch(0.18 var(--ty-surface-chroma) var(--ty-brand-hue));
|
|
992
|
-
|
|
993
|
-
/* Inputs — re-declared at html.dark specificity. */
|
|
994
|
-
--ty-input-bg: var(--ty-surface-input);
|
|
995
|
-
--ty-input-color: var(--ty-color-neutral-strong);
|
|
996
|
-
--ty-input-border: var(--ty-color-neutral-faint);
|
|
997
|
-
--ty-input-border-hover: var(--ty-color-neutral-soft);
|
|
998
|
-
--ty-input-border-focus: var(--ty-color-primary);
|
|
999
|
-
--ty-input-placeholder: var(--ty-color-neutral-soft);
|
|
1000
|
-
--ty-input-disabled-bg: var(--ty-color-neutral-faint);
|
|
1001
|
-
--ty-input-disabled-border: var(--ty-color-neutral-faint);
|
|
1002
|
-
--ty-input-disabled-color: var(--ty-color-neutral-bold);
|
|
1003
|
-
--ty-input-shadow-focus: color-mix(
|
|
1004
|
-
in oklab,
|
|
1005
|
-
var(--ty-color-primary) 20%,
|
|
1006
|
-
transparent
|
|
1007
|
-
);
|
|
1008
|
-
|
|
1009
|
-
/* Tier 6 dark — solid dials live in SECTION 1's html.dark block.
|
|
1010
|
-
* neutral is hand-pinned (it ignores Axis B); dim it per theme here. */
|
|
1011
|
-
--ty-solid-neutral: oklch(
|
|
1012
|
-
0.3 calc(var(--ty-neutral-chroma) * var(--ty-c-strong-mult))
|
|
1013
|
-
var(--ty-neutral-hue)
|
|
1014
|
-
);
|
|
1015
|
-
}
|