tyrell-components 1.0.0-TC42 → 1.0.0-TC43

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 CHANGED
@@ -36,6 +36,7 @@ import 'tyrell-components/input'
36
36
  <html>
37
37
  <head>
38
38
  <link rel="stylesheet" href="path/to/tyrell.css">
39
+ <link rel="stylesheet" href="path/to/tyrell-theme.css">
39
40
  </head>
40
41
  <body class="ty-canvas">
41
42
 
@@ -0,0 +1,316 @@
1
+ /* =================================================================
2
+ Tyrell Static Colors — hardcoded fallback color tokens
3
+
4
+ Every --ty-color-*, --ty-bg-{flavor}-*, --ty-border-*, --ty-surface-*,
5
+ --ty-text-*, --ty-input-{color-related}-* and --ty-solid-* token tyrell.css
6
+ used to hardcode directly, now split out here. Load this file alongside
7
+ tyrell.css if you want static, no-theme-engine colors.
8
+
9
+ If you want dynamic theming (custom seeds, live theme switching, per-flavor
10
+ tuning), load tyrell-theme.css INSTEAD — it defines the same token names via
11
+ oklch() formulas and, loaded after tyrell.css, wins by source order. Loading
12
+ both is harmless (tyrell-theme.css always wins) but redundant.
13
+ ================================================================= */
14
+
15
+ html {
16
+ /* Primary */
17
+ --ty-color-primary-strong: #163793;
18
+ --ty-color-primary-bold: #304c9f;
19
+ --ty-color-primary: #466bce;
20
+ --ty-color-primary-soft: #60a5fa;
21
+ --ty-color-primary-faint: #93c5fd;
22
+
23
+ /* Success */
24
+ --ty-color-success-strong: #177858;
25
+ --ty-color-success-bold: #3e9779;
26
+ --ty-color-success: #3eaa86;
27
+ --ty-color-success-soft: #64b399;
28
+ --ty-color-success-faint: #7fd4b2;
29
+
30
+ /* Danger */
31
+ --ty-color-danger-strong: #b91c1c;
32
+ --ty-color-danger-bold: #dc2626;
33
+ --ty-color-danger: #ef4444;
34
+ --ty-color-danger-soft: #f87171;
35
+ --ty-color-danger-faint: #fca5a5;
36
+
37
+ /* Warning */
38
+ --ty-color-warning-strong: #e86400;
39
+ --ty-color-warning-bold: #ee7f00;
40
+ --ty-color-warning: #f59e0b;
41
+ --ty-color-warning-soft: #fbbf24;
42
+ --ty-color-warning-faint: #fcd34d;
43
+
44
+ /* Neutral */
45
+ --ty-color-neutral-strong: #000000;
46
+ --ty-color-neutral-bold: #000000;
47
+ --ty-color-neutral: #111827;
48
+ --ty-color-neutral-soft: #374151;
49
+ --ty-color-neutral-faint: #9ca3af;
50
+
51
+ /* Semantic backgrounds */
52
+ --ty-bg-primary: #e3eefc;
53
+ --ty-bg-primary-bold: #d5e4f8;
54
+ --ty-bg-primary-soft: #eff6ff;
55
+ --ty-bg-success: #d1fae5;
56
+ --ty-bg-success-bold: #a7f3d0;
57
+ --ty-bg-success-soft: #ecfdf5;
58
+ --ty-bg-danger: #fee2e2;
59
+ --ty-bg-danger-bold: #fecaca;
60
+ --ty-bg-danger-soft: #fef2f2;
61
+ --ty-bg-warning: #fef3c7;
62
+ --ty-bg-warning-bold: #fde68a;
63
+ --ty-bg-warning-soft: #fffbeb;
64
+ --ty-bg-neutral: #e0e0e0;
65
+ --ty-bg-neutral-bold: #cecece;
66
+ --ty-bg-neutral-soft: #ededed;
67
+
68
+ /* Borders */
69
+ --ty-border: #e5e7eb;
70
+ --ty-border-bold: #d1d5db;
71
+ --ty-border-strong: #6b7280;
72
+ --ty-border-soft: #f3f4f6;
73
+ --ty-border-faint: #fafafa;
74
+
75
+ /* Semantic borders */
76
+ --ty-border-primary: var(--ty-color-primary);
77
+ --ty-border-success: var(--ty-color-success);
78
+ --ty-border-danger: var(--ty-color-danger);
79
+ --ty-border-warning: var(--ty-color-warning);
80
+ --ty-border-neutral: var(--ty-color-neutral);
81
+
82
+ /* Surfaces */
83
+ --ty-surface-canvas: #fcfcfc;
84
+ --ty-surface-content: #ffffff;
85
+ --ty-surface-elevated: #ffffff;
86
+ --ty-surface-floating: #ffffff;
87
+ --ty-surface-input: #ffffff;
88
+
89
+ /* Surface borders */
90
+ --ty-elevated-border: #e5e7eb;
91
+ --ty-floating-border: #e5e7eb;
92
+ --ty-content-border: #e5e7eb;
93
+
94
+ /* Text hierarchy */
95
+ --ty-text: #111827;
96
+ --ty-text-bold: #000000;
97
+ --ty-text-strong: #000000;
98
+ --ty-text-soft: #374151;
99
+ --ty-text-faint: #9ca3af;
100
+
101
+ /* Input component tokens */
102
+ --ty-input-bg: #ffffff;
103
+ --ty-input-color: #111827;
104
+ --ty-input-border: #e5e7eb;
105
+ --ty-input-border-hover: #d1d5db;
106
+ --ty-input-border-focus: var(--ty-color-primary);
107
+ --ty-input-shadow-focus: rgba(59, 130, 246, 0.1);
108
+ --ty-input-placeholder: #9ca3af;
109
+ --ty-input-disabled-bg: #f9fafb;
110
+ --ty-input-disabled-border: #e5e7eb;
111
+ --ty-input-disabled-color: #9ca3af;
112
+
113
+ /* Input semantic state borders */
114
+ --ty-input-success-border: var(--ty-color-success-soft);
115
+ --ty-input-danger-border: var(--ty-color-danger-soft);
116
+ --ty-input-warning-border: var(--ty-color-warning-soft);
117
+
118
+ /* Solid button fills — Primary */
119
+ --ty-solid-primary: #4076b9;
120
+ --ty-solid-primary-strong: var(--ty-color-primary-bold);
121
+ --ty-solid-primary-soft: #7ea7d9;
122
+ --ty-solid-primary-hover: var(--ty-solid-primary-strong);
123
+ --ty-solid-primary-active: var(--ty-solid-primary-strong);
124
+ --ty-solid-primary-fg: white;
125
+ --ty-solid-primary-strong-fg: white;
126
+ --ty-solid-primary-soft-fg: black;
127
+
128
+ /* Solid button fills — Success */
129
+ --ty-solid-success: #3bb68d;
130
+ --ty-solid-success-strong: #27956e;
131
+ --ty-solid-success-soft: #69b99e;
132
+ --ty-solid-success-hover: var(--ty-solid-success-strong);
133
+ --ty-solid-success-active: var(--ty-solid-success-strong);
134
+ --ty-solid-success-fg: black;
135
+ --ty-solid-success-strong-fg: black;
136
+ --ty-solid-success-soft-fg: black;
137
+
138
+ /* Solid button fills — Danger */
139
+ --ty-solid-danger: #df5b5b;
140
+ --ty-solid-danger-strong: #cc3e3e;
141
+ --ty-solid-danger-soft: #d57a7a;
142
+ --ty-solid-danger-hover: var(--ty-solid-danger-strong);
143
+ --ty-solid-danger-active: var(--ty-solid-danger-strong);
144
+ --ty-solid-danger-fg: black;
145
+ --ty-solid-danger-strong-fg: white;
146
+ --ty-solid-danger-soft-fg: black;
147
+
148
+ /* Solid button fills — Warning */
149
+ --ty-solid-warning: #e1a644;
150
+ --ty-solid-warning-strong: #f59e0b;
151
+ --ty-solid-warning-soft: #fbc56d;
152
+ --ty-solid-warning-hover: var(--ty-solid-warning-strong);
153
+ --ty-solid-warning-active: var(--ty-solid-warning-strong);
154
+ --ty-solid-warning-fg: black;
155
+ --ty-solid-warning-strong-fg: black;
156
+ --ty-solid-warning-soft-fg: black;
157
+
158
+ /* Solid button fills — Neutral */
159
+ --ty-solid-neutral: #414141;
160
+ --ty-solid-neutral-strong: #000000;
161
+ --ty-solid-neutral-soft: #6e6e6e;
162
+ --ty-solid-neutral-hover: var(--ty-solid-neutral-strong);
163
+ --ty-solid-neutral-active: var(--ty-solid-neutral-strong);
164
+ --ty-solid-neutral-fg: white;
165
+ --ty-solid-neutral-strong-fg: white;
166
+ --ty-solid-neutral-soft-fg: white;
167
+
168
+ }
169
+
170
+ /* =================================================================
171
+ DARK THEME OVERRIDES
172
+ ================================================================= */
173
+
174
+ html.dark,
175
+ html[data-theme="dark"] {
176
+ /* Primary */
177
+ --ty-color-primary-strong: #9cbde5;
178
+ --ty-color-primary-bold: #6c9bd5;
179
+ --ty-color-primary: #4976ae;
180
+ --ty-color-primary-soft: #4b698b;
181
+ --ty-color-primary-faint: #445b77;
182
+
183
+ /* Success */
184
+ --ty-color-success-strong: #c2f0df;
185
+ --ty-color-success-bold: #6ee7b7;
186
+ --ty-color-success: #3aba8b;
187
+ --ty-color-success-soft: #459679;
188
+ --ty-color-success-faint: #1b795c;
189
+
190
+ /* Danger */
191
+ --ty-color-danger-strong: #ffabab;
192
+ --ty-color-danger-bold: #e58787;
193
+ --ty-color-danger: #d06f6f;
194
+ --ty-color-danger-soft: #b06666;
195
+ --ty-color-danger-faint: #aa6e6e;
196
+
197
+ /* Warning */
198
+ --ty-color-warning-strong: #fde68a;
199
+ --ty-color-warning-bold: #fcd34d;
200
+ --ty-color-warning: #fbbf24;
201
+ --ty-color-warning-soft: #f59e0b;
202
+ --ty-color-warning-faint: #a06726;
203
+
204
+ /* Neutral */
205
+ --ty-color-neutral-strong: #ffffff;
206
+ --ty-color-neutral-bold: #f9fafb;
207
+ --ty-color-neutral: #d6d6d6;
208
+ --ty-color-neutral-soft: #696969;
209
+ --ty-color-neutral-faint: #474747;
210
+
211
+ /* Semantic backgrounds */
212
+ --ty-bg-primary: #394159;
213
+ --ty-bg-primary-bold: #43517a;
214
+ --ty-bg-primary-soft: #323a4f;
215
+ --ty-bg-success: #3a4442;
216
+ --ty-bg-success-bold: #405752;
217
+ --ty-bg-success-soft: #2f3b38;
218
+ --ty-bg-danger: #522828;
219
+ --ty-bg-danger-bold: #853535;
220
+ --ty-bg-danger-soft: #483c3c;
221
+ --ty-bg-warning: #694555;
222
+ --ty-bg-warning-bold: #743953;
223
+ --ty-bg-warning-soft: #45333b;
224
+ --ty-bg-neutral: #323232;
225
+ --ty-bg-neutral-bold: #414141;
226
+ --ty-bg-neutral-soft: #242424;
227
+
228
+ /* Borders */
229
+ --ty-border: #3e3e3e;
230
+ --ty-border-bold: #666666;
231
+ --ty-border-strong: #8c8c8c;
232
+ --ty-border-soft: #1f2937;
233
+ --ty-border-faint: #030712;
234
+
235
+ /* Surfaces */
236
+ --ty-surface-canvas: black;
237
+ --ty-surface-content: #1a1a1a;
238
+ --ty-surface-elevated: #282828;
239
+ --ty-surface-floating: #343434;
240
+ --ty-surface-input: #1f2937;
241
+
242
+ /* Surface borders */
243
+ --ty-elevated-border: #414141;
244
+ --ty-floating-border: #494949;
245
+ --ty-content-border: #030712;
246
+
247
+ /* Text hierarchy */
248
+ --ty-text: #d6d6d6;
249
+ --ty-text-bold: #f9fafb;
250
+ --ty-text-strong: #ffffff;
251
+ --ty-text-soft: #7f8590;
252
+ --ty-text-faint: #555a63;
253
+
254
+ /* Input component tokens */
255
+ --ty-input-bg: #1b1b1b;
256
+ --ty-input-color: #f9fafb;
257
+ --ty-input-border: #3a3a3a;
258
+ --ty-input-border-hover: #505050;
259
+ --ty-input-border-focus: var(--ty-color-primary);
260
+ --ty-input-shadow-focus: rgba(96, 165, 250, 0.1);
261
+ --ty-input-placeholder: #717171;
262
+ --ty-input-disabled-bg: #282828;
263
+ --ty-input-disabled-border: #2e2e2e;
264
+ --ty-input-disabled-color: #717171;
265
+
266
+ /* Solid button fills — Primary */
267
+ --ty-solid-primary: #3e536c;
268
+ --ty-solid-primary-strong: #426084;
269
+ --ty-solid-primary-soft: #343f4c;
270
+ --ty-solid-primary-hover: var(--ty-solid-primary-strong);
271
+ --ty-solid-primary-active: var(--ty-solid-primary-strong);
272
+ --ty-solid-primary-fg: white;
273
+ --ty-solid-primary-strong-fg: white;
274
+ --ty-solid-primary-soft-fg: white;
275
+
276
+ /* Solid button fills — Success */
277
+ --ty-solid-success: #3bb68d;
278
+ --ty-solid-success-strong: #459679;
279
+ --ty-solid-success-soft: #285748;
280
+ --ty-solid-success-hover: var(--ty-solid-success-strong);
281
+ --ty-solid-success-active: var(--ty-solid-success-strong);
282
+ --ty-solid-success-fg: black;
283
+ --ty-solid-success-strong-fg: black;
284
+ --ty-solid-success-soft-fg: white;
285
+
286
+ /* Solid button fills — Danger */
287
+ --ty-solid-danger: #df5b5b;
288
+ --ty-solid-danger-strong: #cc3e3e;
289
+ --ty-solid-danger-soft: #875656;
290
+ --ty-solid-danger-hover: var(--ty-solid-danger-strong);
291
+ --ty-solid-danger-active: var(--ty-solid-danger-strong);
292
+ --ty-solid-danger-fg: black;
293
+ --ty-solid-danger-strong-fg: white;
294
+ --ty-solid-danger-soft-fg: white;
295
+
296
+ /* Solid button fills — Warning */
297
+ --ty-solid-warning: #e1a644;
298
+ --ty-solid-warning-strong: #f59e0b;
299
+ --ty-solid-warning-soft: #8b6334;
300
+ --ty-solid-warning-hover: var(--ty-solid-warning-strong);
301
+ --ty-solid-warning-active: var(--ty-solid-warning-strong);
302
+ --ty-solid-warning-fg: black;
303
+ --ty-solid-warning-strong-fg: black;
304
+ --ty-solid-warning-soft-fg: white;
305
+
306
+ /* Solid button fills — Neutral */
307
+ --ty-solid-neutral: #414141;
308
+ --ty-solid-neutral-strong: #f5f5f5;
309
+ --ty-solid-neutral-soft: #2a2a2a;
310
+ --ty-solid-neutral-hover: #4c4c4c;
311
+ --ty-solid-neutral-active: #4c4c4c;
312
+ --ty-solid-neutral-fg: white;
313
+ --ty-solid-neutral-strong-fg: black;
314
+ --ty-solid-neutral-soft-fg: white;
315
+
316
+ }