tyrell-components 1.0.0-TC25 → 1.0.0-TC26

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.
Files changed (120) hide show
  1. package/css/tyrell-brand.css +15 -11
  2. package/css/tyrell.css +4 -4
  3. package/dist/tyrell-brand.css +15 -11
  4. package/dist/tyrell.css +4 -4
  5. package/dist/tyrell.js +1 -1
  6. package/lib/components/calendar-month.d.ts +6 -0
  7. package/lib/components/calendar-month.d.ts.map +1 -1
  8. package/lib/components/calendar-month.js +52 -9
  9. package/lib/components/calendar-month.js.map +1 -1
  10. package/lib/components/calendar-navigation.d.ts +31 -5
  11. package/lib/components/calendar-navigation.d.ts.map +1 -1
  12. package/lib/components/calendar-navigation.js +71 -31
  13. package/lib/components/calendar-navigation.js.map +1 -1
  14. package/lib/components/calendar.d.ts +14 -1
  15. package/lib/components/calendar.d.ts.map +1 -1
  16. package/lib/components/calendar.js +65 -4
  17. package/lib/components/calendar.js.map +1 -1
  18. package/lib/components/checkbox.d.ts +8 -0
  19. package/lib/components/checkbox.d.ts.map +1 -1
  20. package/lib/components/checkbox.js +48 -27
  21. package/lib/components/checkbox.js.map +1 -1
  22. package/lib/components/copy.d.ts +10 -0
  23. package/lib/components/copy.d.ts.map +1 -1
  24. package/lib/components/copy.js +25 -4
  25. package/lib/components/copy.js.map +1 -1
  26. package/lib/components/date-picker.d.ts +14 -0
  27. package/lib/components/date-picker.d.ts.map +1 -1
  28. package/lib/components/date-picker.js +29 -0
  29. package/lib/components/date-picker.js.map +1 -1
  30. package/lib/components/input.d.ts +6 -0
  31. package/lib/components/input.d.ts.map +1 -1
  32. package/lib/components/input.js +30 -0
  33. package/lib/components/input.js.map +1 -1
  34. package/lib/components/modal.js +6 -0
  35. package/lib/components/modal.js.map +1 -1
  36. package/lib/components/radio.d.ts +1 -0
  37. package/lib/components/radio.d.ts.map +1 -1
  38. package/lib/components/radio.js +37 -8
  39. package/lib/components/radio.js.map +1 -1
  40. package/lib/components/select.d.ts +440 -0
  41. package/lib/components/select.d.ts.map +1 -0
  42. package/lib/components/select.js +1747 -0
  43. package/lib/components/select.js.map +1 -0
  44. package/lib/components/selected-tags.d.ts +80 -0
  45. package/lib/components/selected-tags.d.ts.map +1 -0
  46. package/lib/components/selected-tags.js +250 -0
  47. package/lib/components/selected-tags.js.map +1 -0
  48. package/lib/components/switch.d.ts.map +1 -1
  49. package/lib/components/switch.js +19 -7
  50. package/lib/components/switch.js.map +1 -1
  51. package/lib/index.d.ts +2 -0
  52. package/lib/index.d.ts.map +1 -1
  53. package/lib/index.js +2 -0
  54. package/lib/index.js.map +1 -1
  55. package/lib/styles/calendar-month.d.ts +1 -1
  56. package/lib/styles/calendar-month.d.ts.map +1 -1
  57. package/lib/styles/calendar-month.js +9 -1
  58. package/lib/styles/calendar-month.js.map +1 -1
  59. package/lib/styles/calendar-navigation.d.ts +1 -1
  60. package/lib/styles/calendar-navigation.d.ts.map +1 -1
  61. package/lib/styles/calendar-navigation.js +7 -1
  62. package/lib/styles/calendar-navigation.js.map +1 -1
  63. package/lib/styles/checkbox.d.ts +5 -5
  64. package/lib/styles/checkbox.d.ts.map +1 -1
  65. package/lib/styles/checkbox.js +147 -8
  66. package/lib/styles/checkbox.js.map +1 -1
  67. package/lib/styles/copy.d.ts +1 -1
  68. package/lib/styles/copy.d.ts.map +1 -1
  69. package/lib/styles/copy.js +32 -0
  70. package/lib/styles/copy.js.map +1 -1
  71. package/lib/styles/input.d.ts +1 -1
  72. package/lib/styles/input.d.ts.map +1 -1
  73. package/lib/styles/input.js +28 -298
  74. package/lib/styles/input.js.map +1 -1
  75. package/lib/styles/option.d.ts +1 -1
  76. package/lib/styles/option.d.ts.map +1 -1
  77. package/lib/styles/option.js +7 -3
  78. package/lib/styles/option.js.map +1 -1
  79. package/lib/styles/radio.d.ts +1 -1
  80. package/lib/styles/radio.d.ts.map +1 -1
  81. package/lib/styles/select.d.ts +12 -0
  82. package/lib/styles/select.d.ts.map +1 -0
  83. package/lib/styles/select.js +257 -0
  84. package/lib/styles/select.js.map +1 -0
  85. package/lib/styles/switch.d.ts +1 -1
  86. package/lib/styles/switch.d.ts.map +1 -1
  87. package/lib/styles/textarea.d.ts +1 -1
  88. package/lib/styles/textarea.d.ts.map +1 -1
  89. package/lib/styles/textarea.js +1 -1
  90. package/lib/utils/calendar-utils.d.ts +0 -48
  91. package/lib/utils/calendar-utils.d.ts.map +1 -1
  92. package/lib/utils/calendar-utils.js +0 -69
  93. package/lib/utils/calendar-utils.js.map +1 -1
  94. package/lib/utils/icon-registry.d.ts +0 -13
  95. package/lib/utils/icon-registry.d.ts.map +1 -1
  96. package/lib/utils/icon-registry.js +0 -35
  97. package/lib/utils/icon-registry.js.map +1 -1
  98. package/lib/utils/locale.d.ts +0 -57
  99. package/lib/utils/locale.d.ts.map +1 -1
  100. package/lib/utils/locale.js +0 -89
  101. package/lib/utils/locale.js.map +1 -1
  102. package/lib/utils/number-format.d.ts +0 -21
  103. package/lib/utils/number-format.d.ts.map +1 -1
  104. package/lib/utils/number-format.js +0 -27
  105. package/lib/utils/number-format.js.map +1 -1
  106. package/lib/utils/positioning.d.ts +0 -24
  107. package/lib/utils/positioning.d.ts.map +1 -1
  108. package/lib/utils/positioning.js +3 -86
  109. package/lib/utils/positioning.js.map +1 -1
  110. package/lib/utils/scroll-lock.d.ts.map +1 -1
  111. package/lib/utils/scroll-lock.js +0 -1
  112. package/lib/utils/scroll-lock.js.map +1 -1
  113. package/lib/utils/styles.d.ts +0 -5
  114. package/lib/utils/styles.d.ts.map +1 -1
  115. package/lib/utils/styles.js +0 -7
  116. package/lib/utils/styles.js.map +1 -1
  117. package/lib/version.d.ts +1 -1
  118. package/lib/version.js +1 -1
  119. package/package.json +9 -1
  120. package/css/tyrell-simple.css +0 -257
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tyrell-components",
3
- "version": "1.0.0-TC25",
3
+ "version": "1.0.0-TC26",
4
4
  "description": "Tyrell Components - Framework-agnostic web components with semantic design system",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -96,6 +96,14 @@
96
96
  "types": "./lib/components/multiselect.d.ts",
97
97
  "import": "./lib/components/multiselect.js"
98
98
  },
99
+ "./select": {
100
+ "types": "./lib/components/select.d.ts",
101
+ "import": "./lib/components/select.js"
102
+ },
103
+ "./selected-tags": {
104
+ "types": "./lib/components/selected-tags.d.ts",
105
+ "import": "./lib/components/selected-tags.js"
106
+ },
99
107
  "./css/*": "./css/*",
100
108
  "./icons/registry": {
101
109
  "types": "./lib/utils/icon-registry.d.ts",
@@ -1,257 +0,0 @@
1
- /* =====================================================================
2
- * tyrell-simple.css — the lightweight color-mix theme engine for Tyrell
3
- * =====================================================================
4
- *
5
- * EXPERIMENTAL, opt-in. The SIMPLE counterpart to tyrell-brand.css (the
6
- * complex OKLCH engine). Same job — fill the color-token contract — with
7
- * far fewer moving parts. Load it INSTEAD of tyrell-brand.css:
8
- *
9
- * <link rel="stylesheet" href=".../tyrell.css"> <!-- structure + default colors -->
10
- * <link rel="stylesheet" href=".../tyrell-simple.css"> <!-- overrides colors -->
11
- *
12
- * THE WHOLE MODEL
13
- * ---------------
14
- * Every color is one expression:
15
- * color-mix(in oklch, <ink>, var(--ty-bg) STOP%)
16
- * - --ty-bg the page/background pole
17
- * - --ty-ink-{role} the saturated emphasis pole for each role
18
- * - STOP how far toward the background (shared, see below)
19
- *
20
- * Inputs are ~7 anchors per theme (page bg + 6 inks). Everything else is
21
- * derived ONCE in :root. Dark mode only re-points those anchors — the
22
- * whole palette falls out. No second curve, no sign-flips, no duplication.
23
- *
24
- * Rebrand: change the 6 inks. Retune contrast: change the STOP percentages.
25
- *
26
- * Needs oklch() + color-mix() + relative color (oklch(from …)) for solids:
27
- * Chrome 119 / Safari 16.4 / Firefox 128 (mid-2024).
28
- * ===================================================================== */
29
-
30
- :root {
31
- /* ---- shared emphasis stops (% toward --ty-bg). One curve, both themes. ---- */
32
- --ty-s-strong: 0%;
33
- --ty-s-bold: 16%;
34
- --ty-s-base: 32%;
35
- --ty-s-soft: 56%;
36
- --ty-s-faint: 78%;
37
- /* background tints: mostly bg, a breath of ink */
38
- --ty-bgs-bold: 82%;
39
- --ty-bgs-base: 88%;
40
- --ty-bgs-soft: 94%;
41
-
42
- /* ====================== ANCHORS (light) ====================== */
43
- --ty-bg: oklch(0.99 0.003 250); /* page pole */
44
- --ty-ink-primary: oklch(0.55 0.15 250);
45
- --ty-ink-secondary: oklch(0.55 0.16 300);
46
- --ty-ink-success: oklch(0.55 0.13 150);
47
- --ty-ink-danger: oklch(0.55 0.17 25);
48
- --ty-ink-warning: oklch(0.68 0.15 75);
49
- --ty-ink-neutral: oklch(0.30 0.012 250);
50
-
51
- /* ====================== DERIVED — everything below references anchors ===== */
52
-
53
- /* ---- flavor color ramps ---- */
54
- --ty-color-primary-strong: color-mix(in oklch, var(--ty-ink-primary), var(--ty-bg) var(--ty-s-strong));
55
- --ty-color-primary-bold: color-mix(in oklch, var(--ty-ink-primary), var(--ty-bg) var(--ty-s-bold));
56
- --ty-color-primary: color-mix(in oklch, var(--ty-ink-primary), var(--ty-bg) var(--ty-s-base));
57
- --ty-color-primary-soft: color-mix(in oklch, var(--ty-ink-primary), var(--ty-bg) var(--ty-s-soft));
58
- --ty-color-primary-faint: color-mix(in oklch, var(--ty-ink-primary), var(--ty-bg) var(--ty-s-faint));
59
-
60
- --ty-color-secondary-strong: color-mix(in oklch, var(--ty-ink-secondary), var(--ty-bg) var(--ty-s-strong));
61
- --ty-color-secondary-bold: color-mix(in oklch, var(--ty-ink-secondary), var(--ty-bg) var(--ty-s-bold));
62
- --ty-color-secondary: color-mix(in oklch, var(--ty-ink-secondary), var(--ty-bg) var(--ty-s-base));
63
- --ty-color-secondary-soft: color-mix(in oklch, var(--ty-ink-secondary), var(--ty-bg) var(--ty-s-soft));
64
- --ty-color-secondary-faint: color-mix(in oklch, var(--ty-ink-secondary), var(--ty-bg) var(--ty-s-faint));
65
-
66
- --ty-color-success-strong: color-mix(in oklch, var(--ty-ink-success), var(--ty-bg) var(--ty-s-strong));
67
- --ty-color-success-bold: color-mix(in oklch, var(--ty-ink-success), var(--ty-bg) var(--ty-s-bold));
68
- --ty-color-success: color-mix(in oklch, var(--ty-ink-success), var(--ty-bg) var(--ty-s-base));
69
- --ty-color-success-soft: color-mix(in oklch, var(--ty-ink-success), var(--ty-bg) var(--ty-s-soft));
70
- --ty-color-success-faint: color-mix(in oklch, var(--ty-ink-success), var(--ty-bg) var(--ty-s-faint));
71
-
72
- --ty-color-danger-strong: color-mix(in oklch, var(--ty-ink-danger), var(--ty-bg) var(--ty-s-strong));
73
- --ty-color-danger-bold: color-mix(in oklch, var(--ty-ink-danger), var(--ty-bg) var(--ty-s-bold));
74
- --ty-color-danger: color-mix(in oklch, var(--ty-ink-danger), var(--ty-bg) var(--ty-s-base));
75
- --ty-color-danger-soft: color-mix(in oklch, var(--ty-ink-danger), var(--ty-bg) var(--ty-s-soft));
76
- --ty-color-danger-faint: color-mix(in oklch, var(--ty-ink-danger), var(--ty-bg) var(--ty-s-faint));
77
-
78
- --ty-color-warning-strong: color-mix(in oklch, var(--ty-ink-warning), var(--ty-bg) var(--ty-s-strong));
79
- --ty-color-warning-bold: color-mix(in oklch, var(--ty-ink-warning), var(--ty-bg) var(--ty-s-bold));
80
- --ty-color-warning: color-mix(in oklch, var(--ty-ink-warning), var(--ty-bg) var(--ty-s-base));
81
- --ty-color-warning-soft: color-mix(in oklch, var(--ty-ink-warning), var(--ty-bg) var(--ty-s-soft));
82
- --ty-color-warning-faint: color-mix(in oklch, var(--ty-ink-warning), var(--ty-bg) var(--ty-s-faint));
83
-
84
- --ty-color-neutral-strong: var(--ty-ink-neutral);
85
- --ty-color-neutral-bold: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) 8%);
86
- --ty-color-neutral: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) 18%);
87
- --ty-color-neutral-soft: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) 45%);
88
- --ty-color-neutral-faint: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) 70%);
89
-
90
- /* ---- text hierarchy (neutral ink → bg) ---- */
91
- --ty-text-strong: var(--ty-ink-neutral);
92
- --ty-text-bold: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) 8%);
93
- --ty-text: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) 16%);
94
- --ty-text-soft: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) 40%);
95
- --ty-text-faint: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) 60%);
96
-
97
- /* ---- soft background tints per flavor ---- */
98
- --ty-bg-primary-bold: color-mix(in oklch, var(--ty-ink-primary), var(--ty-bg) var(--ty-bgs-bold));
99
- --ty-bg-primary: color-mix(in oklch, var(--ty-ink-primary), var(--ty-bg) var(--ty-bgs-base));
100
- --ty-bg-primary-soft: color-mix(in oklch, var(--ty-ink-primary), var(--ty-bg) var(--ty-bgs-soft));
101
-
102
- --ty-bg-secondary-bold: color-mix(in oklch, var(--ty-ink-secondary), var(--ty-bg) var(--ty-bgs-bold));
103
- --ty-bg-secondary: color-mix(in oklch, var(--ty-ink-secondary), var(--ty-bg) var(--ty-bgs-base));
104
- --ty-bg-secondary-soft: color-mix(in oklch, var(--ty-ink-secondary), var(--ty-bg) var(--ty-bgs-soft));
105
-
106
- --ty-bg-success-bold: color-mix(in oklch, var(--ty-ink-success), var(--ty-bg) var(--ty-bgs-bold));
107
- --ty-bg-success: color-mix(in oklch, var(--ty-ink-success), var(--ty-bg) var(--ty-bgs-base));
108
- --ty-bg-success-soft: color-mix(in oklch, var(--ty-ink-success), var(--ty-bg) var(--ty-bgs-soft));
109
-
110
- --ty-bg-danger-bold: color-mix(in oklch, var(--ty-ink-danger), var(--ty-bg) var(--ty-bgs-bold));
111
- --ty-bg-danger: color-mix(in oklch, var(--ty-ink-danger), var(--ty-bg) var(--ty-bgs-base));
112
- --ty-bg-danger-soft: color-mix(in oklch, var(--ty-ink-danger), var(--ty-bg) var(--ty-bgs-soft));
113
-
114
- --ty-bg-warning-bold: color-mix(in oklch, var(--ty-ink-warning), var(--ty-bg) var(--ty-bgs-bold));
115
- --ty-bg-warning: color-mix(in oklch, var(--ty-ink-warning), var(--ty-bg) var(--ty-bgs-base));
116
- --ty-bg-warning-soft: color-mix(in oklch, var(--ty-ink-warning), var(--ty-bg) var(--ty-bgs-soft));
117
-
118
- --ty-bg-neutral-bold: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) var(--ty-bgs-bold));
119
- --ty-bg-neutral: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) var(--ty-bgs-base));
120
- --ty-bg-neutral-soft: color-mix(in oklch, var(--ty-ink-neutral), var(--ty-bg) var(--ty-bgs-soft));
121
-
122
- /* ---- generic bg / elevation ---- */
123
- --ty-bg-faint: var(--ty-bg);
124
- --ty-bg-soft: color-mix(in oklch, var(--ty-bg), var(--ty-ink-neutral) 4%);
125
- --ty-bg-bold: color-mix(in oklch, var(--ty-bg), var(--ty-ink-neutral) 8%);
126
- --ty-bg-strong: color-mix(in oklch, var(--ty-bg), var(--ty-ink-neutral) 16%);
127
- --ty-focus-ring-gap: var(--ty-bg);
128
-
129
- /* ---- surfaces (elevate toward white in both themes) ---- */
130
- --ty-surface-canvas: var(--ty-bg);
131
- --ty-surface-content: color-mix(in oklab, var(--ty-bg), white 25%);
132
- --ty-surface-elevated: color-mix(in oklab, var(--ty-bg), white 45%);
133
- --ty-surface-floating: color-mix(in oklab, var(--ty-bg), white 60%);
134
- --ty-surface-input: color-mix(in oklab, var(--ty-bg), white 30%);
135
-
136
- /* ---- borders ---- */
137
- --ty-border-strong: color-mix(in oklch, var(--ty-bg), var(--ty-ink-neutral) 40%);
138
- --ty-border-bold: color-mix(in oklch, var(--ty-bg), var(--ty-ink-neutral) 22%);
139
- --ty-border: color-mix(in oklch, var(--ty-bg), var(--ty-ink-neutral) 14%);
140
- --ty-border-soft: color-mix(in oklch, var(--ty-bg), var(--ty-ink-neutral) 8%);
141
- --ty-border-faint: color-mix(in oklch, var(--ty-bg), var(--ty-ink-neutral) 4%);
142
-
143
- --ty-border-primary: var(--ty-color-primary-soft);
144
- --ty-border-secondary: var(--ty-color-secondary-soft);
145
- --ty-border-success: var(--ty-color-success-soft);
146
- --ty-border-danger: var(--ty-color-danger-soft);
147
- --ty-border-warning: var(--ty-color-warning-soft);
148
- --ty-border-neutral: var(--ty-color-neutral);
149
-
150
- --ty-elevated-border: var(--ty-border);
151
- --ty-floating-border: var(--ty-border);
152
- --ty-content-border: var(--ty-border);
153
- --ty-canvas-border: transparent;
154
-
155
- /* ---- scrollbar (neutral ink → transparent; auto-flips) ---- */
156
- --ty-scrollbar-thumb: color-mix(in srgb, var(--ty-ink-neutral) 35%, transparent);
157
- --ty-scrollbar-thumb-hover: color-mix(in srgb, var(--ty-ink-neutral) 50%, transparent);
158
- --ty-scrollbar-thumb-active: color-mix(in srgb, var(--ty-ink-neutral) 60%, transparent);
159
- --ty-scrollbar-track: transparent;
160
- --ty-scrollbar-track-hover: color-mix(in srgb, var(--ty-ink-neutral) 8%, transparent);
161
-
162
- /* ---- modal ---- */
163
- --ty-modal-bg: var(--ty-surface-floating);
164
- --ty-modal-color: var(--ty-text);
165
- --ty-modal-border: var(--ty-border);
166
- --ty-modal-backdrop: color-mix(in oklab, black 50%, transparent);
167
- --ty-modal-shadow: var(--ty-shadow-xl);
168
-
169
- /* ---- inputs ---- */
170
- --ty-input-bg: var(--ty-surface-input);
171
- --ty-input-color: var(--ty-text);
172
- --ty-input-border: var(--ty-border-bold);
173
- --ty-input-border-hover: var(--ty-border-strong);
174
- --ty-input-border-focus: var(--ty-color-primary);
175
- --ty-input-shadow-focus: color-mix(in srgb, var(--ty-color-primary) 12%, transparent);
176
- --ty-input-placeholder: var(--ty-text-faint);
177
- --ty-input-disabled-bg: var(--ty-bg-soft);
178
- --ty-input-disabled-border: var(--ty-border);
179
- --ty-input-disabled-color: var(--ty-text-faint);
180
- --ty-label-color: var(--ty-text-soft);
181
- --ty-input-success-border: var(--ty-color-success);
182
- --ty-input-danger-border: var(--ty-color-danger);
183
- --ty-input-warning-border: var(--ty-color-warning);
184
-
185
- /* ====================== SOLID ====================== */
186
- /* base fill = flavor ink; states via OKLCH L offsets (same axes as the
187
- other engines). theme dim/desaturate via the dark block re-points ink. */
188
- --ty-solid-hover-l: -0.04;
189
- --ty-solid-active-l: -0.08;
190
- --ty-solid-strong-l: -0.06;
191
- --ty-solid-soft-l: 0.1;
192
- /* solid fill lightness — PINNED, not the text ink (which flips light on dark).
193
- Keeps fills a saturated mid so white fg stays legible in both themes. */
194
- --ty-solid-base-l: 0.55;
195
-
196
- --ty-solid-primary: oklch(from var(--ty-ink-primary) var(--ty-solid-base-l) c h);
197
- --ty-solid-secondary: oklch(from var(--ty-ink-secondary) var(--ty-solid-base-l) c h);
198
- --ty-solid-success: oklch(from var(--ty-ink-success) var(--ty-solid-base-l) c h);
199
- --ty-solid-danger: oklch(from var(--ty-ink-danger) var(--ty-solid-base-l) c h);
200
- --ty-solid-warning: oklch(from var(--ty-ink-warning) var(--ty-solid-base-l) c h);
201
- --ty-solid-neutral: oklch(from var(--ty-ink-neutral) 0.4 c h);
202
-
203
- --ty-solid-primary-fg: white;
204
- --ty-solid-secondary-fg: white;
205
- --ty-solid-success-fg: white;
206
- --ty-solid-danger-fg: white;
207
- --ty-solid-warning-fg: white;
208
- --ty-solid-neutral-fg: white;
209
-
210
- --ty-solid-primary-hover: oklch(from var(--ty-solid-primary) calc(l + var(--ty-solid-hover-l)) c h);
211
- --ty-solid-primary-active: oklch(from var(--ty-solid-primary) calc(l + var(--ty-solid-active-l)) c h);
212
- --ty-solid-primary-strong: oklch(from var(--ty-solid-primary) calc(l + var(--ty-solid-strong-l)) c h);
213
- --ty-solid-primary-soft: oklch(from var(--ty-solid-primary) calc(l + var(--ty-solid-soft-l)) c h);
214
-
215
- --ty-solid-secondary-hover: oklch(from var(--ty-solid-secondary) calc(l + var(--ty-solid-hover-l)) c h);
216
- --ty-solid-secondary-active: oklch(from var(--ty-solid-secondary) calc(l + var(--ty-solid-active-l)) c h);
217
- --ty-solid-secondary-strong: oklch(from var(--ty-solid-secondary) calc(l + var(--ty-solid-strong-l)) c h);
218
- --ty-solid-secondary-soft: oklch(from var(--ty-solid-secondary) calc(l + var(--ty-solid-soft-l)) c h);
219
-
220
- --ty-solid-success-hover: oklch(from var(--ty-solid-success) calc(l + var(--ty-solid-hover-l)) c h);
221
- --ty-solid-success-active: oklch(from var(--ty-solid-success) calc(l + var(--ty-solid-active-l)) c h);
222
- --ty-solid-success-strong: oklch(from var(--ty-solid-success) calc(l + var(--ty-solid-strong-l)) c h);
223
- --ty-solid-success-soft: oklch(from var(--ty-solid-success) calc(l + var(--ty-solid-soft-l)) c h);
224
-
225
- --ty-solid-danger-hover: oklch(from var(--ty-solid-danger) calc(l + var(--ty-solid-hover-l)) c h);
226
- --ty-solid-danger-active: oklch(from var(--ty-solid-danger) calc(l + var(--ty-solid-active-l)) c h);
227
- --ty-solid-danger-strong: oklch(from var(--ty-solid-danger) calc(l + var(--ty-solid-strong-l)) c h);
228
- --ty-solid-danger-soft: oklch(from var(--ty-solid-danger) calc(l + var(--ty-solid-soft-l)) c h);
229
-
230
- --ty-solid-warning-hover: oklch(from var(--ty-solid-warning) calc(l + var(--ty-solid-hover-l)) c h);
231
- --ty-solid-warning-active: oklch(from var(--ty-solid-warning) calc(l + var(--ty-solid-active-l)) c h);
232
- --ty-solid-warning-strong: oklch(from var(--ty-solid-warning) calc(l + var(--ty-solid-strong-l)) c h);
233
- --ty-solid-warning-soft: oklch(from var(--ty-solid-warning) calc(l + var(--ty-solid-soft-l)) c h);
234
-
235
- --ty-solid-neutral-hover: oklch(from var(--ty-solid-neutral) calc(l + var(--ty-solid-hover-l)) c h);
236
- --ty-solid-neutral-active: oklch(from var(--ty-solid-neutral) calc(l + var(--ty-solid-active-l)) c h);
237
- --ty-solid-neutral-strong: oklch(from var(--ty-solid-neutral) calc(l + var(--ty-solid-strong-l)) c h);
238
- --ty-solid-neutral-soft: oklch(from var(--ty-solid-neutral) calc(l + var(--ty-solid-soft-l)) c h);
239
- }
240
-
241
- /* =====================================================================
242
- * DARK — re-point the anchors ONLY. The whole palette above re-derives.
243
- * Inks go lighter (emphasis inverts); page goes dark.
244
- * ===================================================================== */
245
- html.dark,
246
- html[data-theme="dark"] {
247
- --ty-bg: oklch(0.16 0.012 250);
248
- --ty-ink-primary: oklch(0.80 0.12 250);
249
- --ty-ink-secondary: oklch(0.80 0.13 300);
250
- --ty-ink-success: oklch(0.80 0.11 150);
251
- --ty-ink-danger: oklch(0.78 0.14 25);
252
- --ty-ink-warning: oklch(0.84 0.13 75);
253
- --ty-ink-neutral: oklch(0.88 0.008 250);
254
-
255
- /* solids: dim the pinned fill slightly against the dark canvas */
256
- --ty-solid-base-l: 0.50;
257
- }