@tradalab/lyra 3.2.0 → 3.4.0
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 +34 -2
- package/dist/blocks/index.d.ts +68 -1
- package/dist/blocks/index.js +152 -4
- package/dist/blocks/index.js.map +1 -1
- package/dist/{chunk-DUWK53B5.js → chunk-EJP7F42V.js} +41 -4
- package/dist/chunk-EJP7F42V.js.map +1 -0
- package/dist/data-table/index.d.ts +10 -1
- package/dist/data-table/index.js +14 -1
- package/dist/data-table/index.js.map +1 -1
- package/dist/shell/index.d.ts +66 -2
- package/dist/shell/index.js +36 -3
- package/dist/shell/index.js.map +1 -1
- package/dist/ui/index.d.ts +58 -5
- package/dist/ui/index.js +27 -41
- package/dist/ui/index.js.map +1 -1
- package/package.json +1 -1
- package/styles/globals.css +631 -0
- package/dist/chunk-DUWK53B5.js.map +0 -1
package/package.json
CHANGED
package/styles/globals.css
CHANGED
|
@@ -48,6 +48,9 @@
|
|
|
48
48
|
--color-input: var(--input);
|
|
49
49
|
--color-border: var(--border);
|
|
50
50
|
--color-destructive: var(--destructive);
|
|
51
|
+
--color-success: var(--success);
|
|
52
|
+
--color-warning: var(--warning);
|
|
53
|
+
--color-info: var(--info);
|
|
51
54
|
--color-accent-foreground: var(--accent-foreground);
|
|
52
55
|
--color-accent: var(--accent);
|
|
53
56
|
--color-muted-foreground: var(--muted-foreground);
|
|
@@ -85,6 +88,15 @@
|
|
|
85
88
|
--accent: oklch(0.97 0 0);
|
|
86
89
|
--accent-foreground: oklch(0.205 0 0);
|
|
87
90
|
--destructive: oklch(0.577 0.245 27.325);
|
|
91
|
+
/* The palette is otherwise achromatic, which left every state but a failure rendering as the
|
|
92
|
+
same grey: `secondary` and `outline` differ by a fill, not a hue, so "running" and "archived"
|
|
93
|
+
arrived as two identical pills. Measured as TEXT on --card, not picked by eye: success 5.49:1
|
|
94
|
+
light / 9.32:1 dark, warning 5.03 / 8.35, info 5.56 / 8.13. No *-foreground counterparts,
|
|
95
|
+
because nothing fills a shape with these yet and a token nothing renders is a claim nobody
|
|
96
|
+
checks. */
|
|
97
|
+
--success: oklch(0.508 0.105 165.6);
|
|
98
|
+
--warning: oklch(0.555 0.146 49);
|
|
99
|
+
--info: oklch(0.52 0.16 253);
|
|
88
100
|
--border: oklch(0.922 0 0);
|
|
89
101
|
--input: oklch(0.922 0 0);
|
|
90
102
|
--ring: oklch(0.708 0 0);
|
|
@@ -120,6 +132,10 @@
|
|
|
120
132
|
--accent: oklch(0.269 0 0);
|
|
121
133
|
--accent-foreground: oklch(0.985 0 0);
|
|
122
134
|
--destructive: oklch(0.704 0.191 22.216);
|
|
135
|
+
/* Lighter ends of the same three ramps: on a dark card the light values drop under the bar. */
|
|
136
|
+
--success: oklch(0.773 0.153 163.2);
|
|
137
|
+
--warning: oklch(0.769 0.165 70.1);
|
|
138
|
+
--info: oklch(0.75 0.14 245);
|
|
123
139
|
--border: oklch(1 0 0 / 10%);
|
|
124
140
|
--input: oklch(1 0 0 / 15%);
|
|
125
141
|
--ring: oklch(0.556 0 0);
|
|
@@ -149,3 +165,618 @@
|
|
|
149
165
|
@apply font-sans;
|
|
150
166
|
}
|
|
151
167
|
}
|
|
168
|
+
|
|
169
|
+
/* A sidebar row marks "you are here" with `data-active:bg-sidebar-accent`, which is the SAME
|
|
170
|
+
background `hover:` paints. Only `font-medium` separated the two, so pointing at any row made it
|
|
171
|
+
look like the open one and the open one was findable only by elimination. A rail marks POSITION,
|
|
172
|
+
which is the one thing on that row you cannot also do.
|
|
173
|
+
*
|
|
174
|
+
* Three choices that each cost a bug to learn:
|
|
175
|
+
* - `::before`, not `box-shadow`. An unlayered box-shadow beats every layered utility whatever
|
|
176
|
+
* its specificity, so it overwrote `focus-visible:ring-2`; since the button also carries
|
|
177
|
+
* `outline-hidden`, the row for the current page had NO keyboard focus indicator at all.
|
|
178
|
+
* - the attribute, not `NavItem`. Apps render `SidebarMenuButton` directly for rows that carry a
|
|
179
|
+
* count or a custom body, and those are rows you can be standing on too.
|
|
180
|
+
* - `--sidebar-accent-foreground` as the fallback, which measures 16.4:1 on the active row in
|
|
181
|
+
* light and 14.5:1 in dark. `--ring` reads better in prose and measures 2.38:1 here, so it is
|
|
182
|
+
* invisible until an app happens to remap it. An app with an accent sets
|
|
183
|
+
* `--sidebar-active-rail` and changes nothing else. */
|
|
184
|
+
@layer components {
|
|
185
|
+
[data-slot="sidebar-menu-button"][data-active="true"] {
|
|
186
|
+
position: relative;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
[data-slot="sidebar-menu-button"][data-active="true"]::before {
|
|
190
|
+
content: "";
|
|
191
|
+
position: absolute;
|
|
192
|
+
inset-block: 0;
|
|
193
|
+
inset-inline-start: 0;
|
|
194
|
+
width: 2px;
|
|
195
|
+
background: var(--sidebar-active-rail, var(--sidebar-accent-foreground));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/* COMPACT - denser UI, from ONE lever: the root font size.
|
|
200
|
+
*
|
|
201
|
+
* `data-compact="true"` anywhere in the tree (an app usually puts it on `<html>`, beside the theme
|
|
202
|
+
* class) and every rem-sized thing in the kit tightens together: text, padding, control heights, gaps,
|
|
203
|
+
* icon boxes. That is the whole mechanism, and it is here rather than in each app because the sizes
|
|
204
|
+
* it acts on are lyra's.
|
|
205
|
+
*
|
|
206
|
+
* It came out of redishub, which had three "density tokens" beside it - `--tab-height`,
|
|
207
|
+
* `--tree-item-py`, `--sidebar-header-p`. Measured before moving: the first two had ZERO readers.
|
|
208
|
+
* Only the font size was doing anything, and it works for every app, so only the font size moved.
|
|
209
|
+
*
|
|
210
|
+
* No combinator in the selector, deliberately: unlike the dark plate blocks this matches wherever the
|
|
211
|
+
* attribute lands, on the root or on a wrapper. And `rem` in a root `font-size` resolves against the
|
|
212
|
+
* INITIAL 16px rather than itself, so 0.875rem is 14px whichever element carries the attribute.
|
|
213
|
+
*
|
|
214
|
+
* ⚠️ It reaches rem sizes only. 32 places in this kit use an explicit px value; most should not scale
|
|
215
|
+
* (hairlines, `ring-[3px]`, a 2px rail), but about ten are content sizes - `text-[10px]`, `h-[14px]`,
|
|
216
|
+
* `w-[32px]` - and those stay put while everything around them tightens. Prefer the rem scale in a new
|
|
217
|
+
* primitive, or compact will leave it behind.
|
|
218
|
+
*
|
|
219
|
+
* An app that wants a different density sets `--compact-font-size` and nothing else. */
|
|
220
|
+
:root {
|
|
221
|
+
--compact-font-size: 0.875rem;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
[data-compact="true"] {
|
|
225
|
+
font-size: var(--compact-font-size);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* TOAST above every overlay. Not a style preference.
|
|
229
|
+
*
|
|
230
|
+
* A toast reports the outcome of something the reader just did, and they usually did it in a dialog,
|
|
231
|
+
* so the case where the message matters is the case where it was hidden. Every overlay in this kit
|
|
232
|
+
* ships at z-50, which left stacking to DOM order, and the viewport mounts once at app start while a
|
|
233
|
+
* dialog portals in later: the dialog won every time.
|
|
234
|
+
*
|
|
235
|
+
* ⚠️ The per-toast `z-[calc(1000-var(--toast-index))]` inside the viewport is NOT a second chance at
|
|
236
|
+
* this. `position: fixed` with a z-index other than `auto` makes the viewport its own stacking
|
|
237
|
+
* context, so that 1000 is trapped inside it - it orders toasts against each other and can never lift
|
|
238
|
+
* one over a dialog. The viewport is the only element where the fix works.
|
|
239
|
+
*
|
|
240
|
+
* Unlayered on purpose: it has to outrank `.z-50` from `@layer utilities`, and an unlayered rule does
|
|
241
|
+
* that by cascade rather than by source order. It lives here rather than in `ui/primitives/toast.tsx`
|
|
242
|
+
* so that no primitive carries a hand deviation.
|
|
243
|
+
*
|
|
244
|
+
* ⚠️ Nothing checks this. An overlay added later at 60 or above reopens the bug silently, so raise
|
|
245
|
+
* this number rather than matching it. */
|
|
246
|
+
[data-slot="toast-viewport"] {
|
|
247
|
+
z-index: 60;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* PLATES - the palette a READER picks: the action colour, and a tint on every surface.
|
|
251
|
+
*
|
|
252
|
+
* A plate paints `--primary` / `--primary-foreground` / `--ring`, and tints `--background` `--card`
|
|
253
|
+
* `--popover` `--sidebar` `--muted` `--accent`. It never touches `--destructive` `--success`
|
|
254
|
+
* `--warning` `--info`: letting a chosen colour reach a status token is how a success badge comes to
|
|
255
|
+
* look like a button (doc/platform/CONVENTIONS.md §19).
|
|
256
|
+
*
|
|
257
|
+
* No app sets a plate by default. With no `data-plate` in the tree every token above keeps the
|
|
258
|
+
* neutral value declared earlier in this file, which is what every app ships.
|
|
259
|
+
*
|
|
260
|
+
* ## BOTH dark selectors, and why one alone is a white-on-white bug
|
|
261
|
+
*
|
|
262
|
+
* `.dark [data-plate]` is a DESCENDANT selector. An app that sets the theme class and the plate on
|
|
263
|
+
* the same element - `<html class="dark" data-plate=teal>`, which is where next-themes and a one-line
|
|
264
|
+
* effect both land - does not match it. The dark block is skipped, the LIGHT block wins, and
|
|
265
|
+
* `--background` goes near-white while `.dark` keeps `--foreground` near-white: white text on a white
|
|
266
|
+
* page. Measured with a real DOM, not reasoned: for a plate on `<html class=dark>` the descendant
|
|
267
|
+
* form is false and the same-element form true, and for a plate on `<body>` it is the other way
|
|
268
|
+
* round. Neither form covers both placements, so every dark block carries both.
|
|
269
|
+
*
|
|
270
|
+
* ## The label colour is per plate, and that is what makes the yellow band yellow
|
|
271
|
+
*
|
|
272
|
+
* Every plate used to carry a near-WHITE label, so it had to be dark enough for 4.6:1. Yellow, amber
|
|
273
|
+
* and gold are intrinsically light in sRGB, so that rule turned them brown: `gold` was #746208 (dark
|
|
274
|
+
* olive) and `orange` #803703. A yellow button in any real palette carries BLACK text. Each plate now
|
|
275
|
+
* takes whichever label lets it be more saturated, and `orange` went from #803703 C0.115 to #ef6c01
|
|
276
|
+
* C0.185.
|
|
277
|
+
*
|
|
278
|
+
* Two consequences worth stating. The swatch row is NOT one lightness, and it should not be - yellow
|
|
279
|
+
* IS lighter than blue, and levelling them is what made mud. And the switch needs a MARGIN (0.03
|
|
280
|
+
* chroma): without one, picking the more saturated family flips a plate over a rounding difference,
|
|
281
|
+
* so the row stops being consistent. That margin is what separates the yellow band (a real gain) from
|
|
282
|
+
* pink (0.200 to 0.215, noise).
|
|
283
|
+
*
|
|
284
|
+
* ⚠️ In DARK mode there is only one family: a button on a near-black page has to be the light thing.
|
|
285
|
+
* Allowing the alternative let chroma-maximising choose a navy button on a black page.
|
|
286
|
+
*
|
|
287
|
+
* ## Nineteen hues: 12 degrees through red and yellow, 24 elsewhere, one gap
|
|
288
|
+
*
|
|
289
|
+
* The step is finer where the palette was thinnest and where names are most distinct to the eye -
|
|
290
|
+
* red (0 to 36) and yellow (48 to 120). Adjacent plates measure dE76 10 to 21 in the fine bands and
|
|
291
|
+
* 15 to 57 in the 24-degree ones; 10 is still four times the just-noticeable difference, so they read
|
|
292
|
+
* as neighbours rather than duplicates.
|
|
293
|
+
*
|
|
294
|
+
* The single 48 degree gap is where `emerald` would go, and it is empty because `--success` sits at
|
|
295
|
+
* hue 165.6 - measured, no rotation of the grid avoids it. There is no emerald plate because emerald
|
|
296
|
+
* is what success means.
|
|
297
|
+
*
|
|
298
|
+
* Every plate clears, in both themes: its own label at 4.6:1, dE76 >= 25 from `--destructive` and
|
|
299
|
+
* >= 18 from the other three. The bars are this low - and red and orange plates exist at all - because
|
|
300
|
+
* NO status token fills a shape here: `--destructive` on a button is `bg-destructive/10
|
|
301
|
+
* text-destructive` and the other three only ever paint text or a border, so a solid plate block is
|
|
302
|
+
* already a different object.
|
|
303
|
+
*
|
|
304
|
+
* Nine of the nineteen - pink rust amber olive green teal azure blue violet - additionally sit
|
|
305
|
+
* >= 29.7 from EACH OTHER, an exact maximum rather than a greedy one, and are the only plates an app
|
|
306
|
+
* may derive from an id, where the difference between two plates IS the signal.
|
|
307
|
+
*
|
|
308
|
+
* ## The surface tint, and the white it costs
|
|
309
|
+
*
|
|
310
|
+
* You cannot tint white. At L 1.0 sRGB admits chroma 0.000, so `--background` `--card` `--popover`
|
|
311
|
+
* come down to L 0.99 - a light-mode plate is paid for with pure white, and that is the one visible
|
|
312
|
+
* concession the feature makes. The other three keep their neutral lightness, because lowering
|
|
313
|
+
* `--sidebar` or `--muted` took `--muted-foreground` under the contrast it already has.
|
|
314
|
+
*
|
|
315
|
+
* Chroma is UNIFORM across the nineteen, at the weakest value every hue can hold at that lightness
|
|
316
|
+
* (0.004 on the page, 0.007 on the sidebar, 0.014 on muted). Per-hue maxima would have tinted green
|
|
317
|
+
* ten times harder than red for no reason a reader could see. The lightness ladder is preserved -
|
|
318
|
+
* 0.99 page, 0.985 sidebar, 0.97 muted - because inverting it would flip which surface reads as
|
|
319
|
+
* "on top". The contrast check is relative: 4.5:1 is the bar, and where lyra already leaves a pair
|
|
320
|
+
* under it (`--muted-foreground` on `--muted` is 4.32 with no plate at all) the tint must merely not
|
|
321
|
+
* make it worse.
|
|
322
|
+
*
|
|
323
|
+
* `plate.test.ts` PARSES THIS BLOCK and re-measures every axis, including the surfaces, both dark
|
|
324
|
+
* selectors, and each plate's own label whichever one it chose. It reads the stylesheet rather than a
|
|
325
|
+
* copy of the numbers in TypeScript on purpose: the same table in two languages is a table that
|
|
326
|
+
* drifts, and chat shipped exactly that. */
|
|
327
|
+
|
|
328
|
+
[data-plate="pink"] {
|
|
329
|
+
--primary: oklch(0.500 0.200 0);
|
|
330
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
331
|
+
--ring: oklch(0.500 0.200 0);
|
|
332
|
+
--background: oklch(0.990 0.004 0);
|
|
333
|
+
--card: oklch(0.990 0.004 0);
|
|
334
|
+
--popover: oklch(0.990 0.004 0);
|
|
335
|
+
--sidebar: oklch(0.985 0.007 0);
|
|
336
|
+
--muted: oklch(0.970 0.014 0);
|
|
337
|
+
--accent: oklch(0.970 0.014 0);
|
|
338
|
+
}
|
|
339
|
+
.dark[data-plate="pink"],
|
|
340
|
+
.dark [data-plate="pink"] {
|
|
341
|
+
--primary: oklch(0.780 0.140 0);
|
|
342
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
343
|
+
--ring: oklch(0.780 0.140 0);
|
|
344
|
+
--background: oklch(0.145 0.014 0);
|
|
345
|
+
--card: oklch(0.205 0.014 0);
|
|
346
|
+
--popover: oklch(0.205 0.014 0);
|
|
347
|
+
--sidebar: oklch(0.205 0.014 0);
|
|
348
|
+
--muted: oklch(0.269 0.016 0);
|
|
349
|
+
--accent: oklch(0.269 0.016 0);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
[data-plate="rose"] {
|
|
353
|
+
--primary: oklch(0.500 0.200 12);
|
|
354
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
355
|
+
--ring: oklch(0.500 0.200 12);
|
|
356
|
+
--background: oklch(0.990 0.004 12);
|
|
357
|
+
--card: oklch(0.990 0.004 12);
|
|
358
|
+
--popover: oklch(0.990 0.004 12);
|
|
359
|
+
--sidebar: oklch(0.985 0.007 12);
|
|
360
|
+
--muted: oklch(0.970 0.014 12);
|
|
361
|
+
--accent: oklch(0.970 0.014 12);
|
|
362
|
+
}
|
|
363
|
+
.dark[data-plate="rose"],
|
|
364
|
+
.dark [data-plate="rose"] {
|
|
365
|
+
--primary: oklch(0.780 0.130 12);
|
|
366
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
367
|
+
--ring: oklch(0.780 0.130 12);
|
|
368
|
+
--background: oklch(0.145 0.014 12);
|
|
369
|
+
--card: oklch(0.205 0.014 12);
|
|
370
|
+
--popover: oklch(0.205 0.014 12);
|
|
371
|
+
--sidebar: oklch(0.205 0.014 12);
|
|
372
|
+
--muted: oklch(0.269 0.016 12);
|
|
373
|
+
--accent: oklch(0.269 0.016 12);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
[data-plate="crimson"] {
|
|
377
|
+
--primary: oklch(0.500 0.200 24);
|
|
378
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
379
|
+
--ring: oklch(0.500 0.200 24);
|
|
380
|
+
--background: oklch(0.990 0.004 24);
|
|
381
|
+
--card: oklch(0.990 0.004 24);
|
|
382
|
+
--popover: oklch(0.990 0.004 24);
|
|
383
|
+
--sidebar: oklch(0.985 0.007 24);
|
|
384
|
+
--muted: oklch(0.970 0.014 24);
|
|
385
|
+
--accent: oklch(0.970 0.014 24);
|
|
386
|
+
}
|
|
387
|
+
.dark[data-plate="crimson"],
|
|
388
|
+
.dark [data-plate="crimson"] {
|
|
389
|
+
--primary: oklch(0.780 0.125 24);
|
|
390
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
391
|
+
--ring: oklch(0.780 0.125 24);
|
|
392
|
+
--background: oklch(0.145 0.014 24);
|
|
393
|
+
--card: oklch(0.205 0.014 24);
|
|
394
|
+
--popover: oklch(0.205 0.014 24);
|
|
395
|
+
--sidebar: oklch(0.205 0.014 24);
|
|
396
|
+
--muted: oklch(0.269 0.016 24);
|
|
397
|
+
--accent: oklch(0.269 0.016 24);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
[data-plate="rust"] {
|
|
401
|
+
--primary: oklch(0.440 0.150 36);
|
|
402
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
403
|
+
--ring: oklch(0.440 0.150 36);
|
|
404
|
+
--background: oklch(0.990 0.004 36);
|
|
405
|
+
--card: oklch(0.990 0.004 36);
|
|
406
|
+
--popover: oklch(0.990 0.004 36);
|
|
407
|
+
--sidebar: oklch(0.985 0.007 36);
|
|
408
|
+
--muted: oklch(0.970 0.014 36);
|
|
409
|
+
--accent: oklch(0.970 0.014 36);
|
|
410
|
+
}
|
|
411
|
+
.dark[data-plate="rust"],
|
|
412
|
+
.dark [data-plate="rust"] {
|
|
413
|
+
--primary: oklch(0.780 0.130 36);
|
|
414
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
415
|
+
--ring: oklch(0.780 0.130 36);
|
|
416
|
+
--background: oklch(0.145 0.014 36);
|
|
417
|
+
--card: oklch(0.205 0.014 36);
|
|
418
|
+
--popover: oklch(0.205 0.014 36);
|
|
419
|
+
--sidebar: oklch(0.205 0.014 36);
|
|
420
|
+
--muted: oklch(0.269 0.016 36);
|
|
421
|
+
--accent: oklch(0.269 0.016 36);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
[data-plate="orange"] {
|
|
425
|
+
--primary: oklch(0.680 0.185 48);
|
|
426
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
427
|
+
--ring: oklch(0.680 0.185 48);
|
|
428
|
+
--background: oklch(0.990 0.004 48);
|
|
429
|
+
--card: oklch(0.990 0.004 48);
|
|
430
|
+
--popover: oklch(0.990 0.004 48);
|
|
431
|
+
--sidebar: oklch(0.985 0.007 48);
|
|
432
|
+
--muted: oklch(0.970 0.014 48);
|
|
433
|
+
--accent: oklch(0.970 0.014 48);
|
|
434
|
+
}
|
|
435
|
+
.dark[data-plate="orange"],
|
|
436
|
+
.dark [data-plate="orange"] {
|
|
437
|
+
--primary: oklch(0.780 0.140 48);
|
|
438
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
439
|
+
--ring: oklch(0.780 0.140 48);
|
|
440
|
+
--background: oklch(0.145 0.014 48);
|
|
441
|
+
--card: oklch(0.205 0.014 48);
|
|
442
|
+
--popover: oklch(0.205 0.014 48);
|
|
443
|
+
--sidebar: oklch(0.205 0.014 48);
|
|
444
|
+
--muted: oklch(0.269 0.016 48);
|
|
445
|
+
--accent: oklch(0.269 0.016 48);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
[data-plate="ochre"] {
|
|
449
|
+
--primary: oklch(0.680 0.155 60);
|
|
450
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
451
|
+
--ring: oklch(0.680 0.155 60);
|
|
452
|
+
--background: oklch(0.990 0.004 60);
|
|
453
|
+
--card: oklch(0.990 0.004 60);
|
|
454
|
+
--popover: oklch(0.990 0.004 60);
|
|
455
|
+
--sidebar: oklch(0.985 0.007 60);
|
|
456
|
+
--muted: oklch(0.970 0.014 60);
|
|
457
|
+
--accent: oklch(0.970 0.014 60);
|
|
458
|
+
}
|
|
459
|
+
.dark[data-plate="ochre"],
|
|
460
|
+
.dark [data-plate="ochre"] {
|
|
461
|
+
--primary: oklch(0.790 0.145 60);
|
|
462
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
463
|
+
--ring: oklch(0.790 0.145 60);
|
|
464
|
+
--background: oklch(0.145 0.014 60);
|
|
465
|
+
--card: oklch(0.205 0.014 60);
|
|
466
|
+
--popover: oklch(0.205 0.014 60);
|
|
467
|
+
--sidebar: oklch(0.205 0.014 60);
|
|
468
|
+
--muted: oklch(0.269 0.016 60);
|
|
469
|
+
--accent: oklch(0.269 0.016 60);
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
[data-plate="amber"] {
|
|
473
|
+
--primary: oklch(0.670 0.140 72);
|
|
474
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
475
|
+
--ring: oklch(0.670 0.140 72);
|
|
476
|
+
--background: oklch(0.990 0.004 72);
|
|
477
|
+
--card: oklch(0.990 0.004 72);
|
|
478
|
+
--popover: oklch(0.990 0.004 72);
|
|
479
|
+
--sidebar: oklch(0.985 0.007 72);
|
|
480
|
+
--muted: oklch(0.970 0.014 72);
|
|
481
|
+
--accent: oklch(0.970 0.014 72);
|
|
482
|
+
}
|
|
483
|
+
.dark[data-plate="amber"],
|
|
484
|
+
.dark [data-plate="amber"] {
|
|
485
|
+
--primary: oklch(0.830 0.135 72);
|
|
486
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
487
|
+
--ring: oklch(0.830 0.135 72);
|
|
488
|
+
--background: oklch(0.145 0.014 72);
|
|
489
|
+
--card: oklch(0.205 0.014 72);
|
|
490
|
+
--popover: oklch(0.205 0.014 72);
|
|
491
|
+
--sidebar: oklch(0.205 0.014 72);
|
|
492
|
+
--muted: oklch(0.269 0.016 72);
|
|
493
|
+
--accent: oklch(0.269 0.016 72);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
[data-plate="honey"] {
|
|
497
|
+
--primary: oklch(0.670 0.135 84);
|
|
498
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
499
|
+
--ring: oklch(0.670 0.135 84);
|
|
500
|
+
--background: oklch(0.990 0.004 84);
|
|
501
|
+
--card: oklch(0.990 0.004 84);
|
|
502
|
+
--popover: oklch(0.990 0.004 84);
|
|
503
|
+
--sidebar: oklch(0.985 0.007 84);
|
|
504
|
+
--muted: oklch(0.970 0.014 84);
|
|
505
|
+
--accent: oklch(0.970 0.014 84);
|
|
506
|
+
}
|
|
507
|
+
.dark[data-plate="honey"],
|
|
508
|
+
.dark [data-plate="honey"] {
|
|
509
|
+
--primary: oklch(0.700 0.140 84);
|
|
510
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
511
|
+
--ring: oklch(0.700 0.140 84);
|
|
512
|
+
--background: oklch(0.145 0.014 84);
|
|
513
|
+
--card: oklch(0.205 0.014 84);
|
|
514
|
+
--popover: oklch(0.205 0.014 84);
|
|
515
|
+
--sidebar: oklch(0.205 0.014 84);
|
|
516
|
+
--muted: oklch(0.269 0.016 84);
|
|
517
|
+
--accent: oklch(0.269 0.016 84);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
[data-plate="gold"] {
|
|
521
|
+
--primary: oklch(0.660 0.135 96);
|
|
522
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
523
|
+
--ring: oklch(0.660 0.135 96);
|
|
524
|
+
--background: oklch(0.990 0.004 96);
|
|
525
|
+
--card: oklch(0.990 0.004 96);
|
|
526
|
+
--popover: oklch(0.990 0.004 96);
|
|
527
|
+
--sidebar: oklch(0.985 0.007 96);
|
|
528
|
+
--muted: oklch(0.970 0.014 96);
|
|
529
|
+
--accent: oklch(0.970 0.014 96);
|
|
530
|
+
}
|
|
531
|
+
.dark[data-plate="gold"],
|
|
532
|
+
.dark [data-plate="gold"] {
|
|
533
|
+
--primary: oklch(0.780 0.160 96);
|
|
534
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
535
|
+
--ring: oklch(0.780 0.160 96);
|
|
536
|
+
--background: oklch(0.145 0.014 96);
|
|
537
|
+
--card: oklch(0.205 0.014 96);
|
|
538
|
+
--popover: oklch(0.205 0.014 96);
|
|
539
|
+
--sidebar: oklch(0.205 0.014 96);
|
|
540
|
+
--muted: oklch(0.269 0.016 96);
|
|
541
|
+
--accent: oklch(0.269 0.016 96);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
[data-plate="olive"] {
|
|
545
|
+
--primary: oklch(0.660 0.140 108);
|
|
546
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
547
|
+
--ring: oklch(0.660 0.140 108);
|
|
548
|
+
--background: oklch(0.990 0.004 108);
|
|
549
|
+
--card: oklch(0.990 0.004 108);
|
|
550
|
+
--popover: oklch(0.990 0.004 108);
|
|
551
|
+
--sidebar: oklch(0.985 0.007 108);
|
|
552
|
+
--muted: oklch(0.970 0.014 108);
|
|
553
|
+
--accent: oklch(0.970 0.014 108);
|
|
554
|
+
}
|
|
555
|
+
.dark[data-plate="olive"],
|
|
556
|
+
.dark [data-plate="olive"] {
|
|
557
|
+
--primary: oklch(0.780 0.165 108);
|
|
558
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
559
|
+
--ring: oklch(0.780 0.165 108);
|
|
560
|
+
--background: oklch(0.145 0.014 108);
|
|
561
|
+
--card: oklch(0.205 0.014 108);
|
|
562
|
+
--popover: oklch(0.205 0.014 108);
|
|
563
|
+
--sidebar: oklch(0.205 0.014 108);
|
|
564
|
+
--muted: oklch(0.269 0.016 108);
|
|
565
|
+
--accent: oklch(0.269 0.016 108);
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
[data-plate="lime"] {
|
|
569
|
+
--primary: oklch(0.660 0.155 120);
|
|
570
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
571
|
+
--ring: oklch(0.660 0.155 120);
|
|
572
|
+
--background: oklch(0.990 0.004 120);
|
|
573
|
+
--card: oklch(0.990 0.004 120);
|
|
574
|
+
--popover: oklch(0.990 0.004 120);
|
|
575
|
+
--sidebar: oklch(0.985 0.007 120);
|
|
576
|
+
--muted: oklch(0.970 0.014 120);
|
|
577
|
+
--accent: oklch(0.970 0.014 120);
|
|
578
|
+
}
|
|
579
|
+
.dark[data-plate="lime"],
|
|
580
|
+
.dark [data-plate="lime"] {
|
|
581
|
+
--primary: oklch(0.780 0.185 120);
|
|
582
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
583
|
+
--ring: oklch(0.780 0.185 120);
|
|
584
|
+
--background: oklch(0.145 0.014 120);
|
|
585
|
+
--card: oklch(0.205 0.014 120);
|
|
586
|
+
--popover: oklch(0.205 0.014 120);
|
|
587
|
+
--sidebar: oklch(0.205 0.014 120);
|
|
588
|
+
--muted: oklch(0.269 0.016 120);
|
|
589
|
+
--accent: oklch(0.269 0.016 120);
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
[data-plate="green"] {
|
|
593
|
+
--primary: oklch(0.500 0.160 144);
|
|
594
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
595
|
+
--ring: oklch(0.500 0.160 144);
|
|
596
|
+
--background: oklch(0.990 0.004 144);
|
|
597
|
+
--card: oklch(0.990 0.004 144);
|
|
598
|
+
--popover: oklch(0.990 0.004 144);
|
|
599
|
+
--sidebar: oklch(0.985 0.007 144);
|
|
600
|
+
--muted: oklch(0.970 0.014 144);
|
|
601
|
+
--accent: oklch(0.970 0.014 144);
|
|
602
|
+
}
|
|
603
|
+
.dark[data-plate="green"],
|
|
604
|
+
.dark [data-plate="green"] {
|
|
605
|
+
--primary: oklch(0.780 0.220 144);
|
|
606
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
607
|
+
--ring: oklch(0.780 0.220 144);
|
|
608
|
+
--background: oklch(0.145 0.014 144);
|
|
609
|
+
--card: oklch(0.205 0.014 144);
|
|
610
|
+
--popover: oklch(0.205 0.014 144);
|
|
611
|
+
--sidebar: oklch(0.205 0.014 144);
|
|
612
|
+
--muted: oklch(0.269 0.016 144);
|
|
613
|
+
--accent: oklch(0.269 0.016 144);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
[data-plate="teal"] {
|
|
617
|
+
--primary: oklch(0.530 0.090 192);
|
|
618
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
619
|
+
--ring: oklch(0.530 0.090 192);
|
|
620
|
+
--background: oklch(0.990 0.004 192);
|
|
621
|
+
--card: oklch(0.990 0.004 192);
|
|
622
|
+
--popover: oklch(0.990 0.004 192);
|
|
623
|
+
--sidebar: oklch(0.985 0.007 192);
|
|
624
|
+
--muted: oklch(0.970 0.014 192);
|
|
625
|
+
--accent: oklch(0.970 0.014 192);
|
|
626
|
+
}
|
|
627
|
+
.dark[data-plate="teal"],
|
|
628
|
+
.dark [data-plate="teal"] {
|
|
629
|
+
--primary: oklch(0.780 0.130 192);
|
|
630
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
631
|
+
--ring: oklch(0.780 0.130 192);
|
|
632
|
+
--background: oklch(0.145 0.014 192);
|
|
633
|
+
--card: oklch(0.205 0.014 192);
|
|
634
|
+
--popover: oklch(0.205 0.014 192);
|
|
635
|
+
--sidebar: oklch(0.205 0.014 192);
|
|
636
|
+
--muted: oklch(0.269 0.016 192);
|
|
637
|
+
--accent: oklch(0.269 0.016 192);
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
[data-plate="cyan"] {
|
|
641
|
+
--primary: oklch(0.510 0.090 216);
|
|
642
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
643
|
+
--ring: oklch(0.510 0.090 216);
|
|
644
|
+
--background: oklch(0.990 0.004 216);
|
|
645
|
+
--card: oklch(0.990 0.004 216);
|
|
646
|
+
--popover: oklch(0.990 0.004 216);
|
|
647
|
+
--sidebar: oklch(0.985 0.007 216);
|
|
648
|
+
--muted: oklch(0.970 0.014 216);
|
|
649
|
+
--accent: oklch(0.970 0.014 216);
|
|
650
|
+
}
|
|
651
|
+
.dark[data-plate="cyan"],
|
|
652
|
+
.dark [data-plate="cyan"] {
|
|
653
|
+
--primary: oklch(0.780 0.135 216);
|
|
654
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
655
|
+
--ring: oklch(0.780 0.135 216);
|
|
656
|
+
--background: oklch(0.145 0.014 216);
|
|
657
|
+
--card: oklch(0.205 0.014 216);
|
|
658
|
+
--popover: oklch(0.205 0.014 216);
|
|
659
|
+
--sidebar: oklch(0.205 0.014 216);
|
|
660
|
+
--muted: oklch(0.269 0.016 216);
|
|
661
|
+
--accent: oklch(0.269 0.016 216);
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
[data-plate="azure"] {
|
|
665
|
+
--primary: oklch(0.660 0.150 240);
|
|
666
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
667
|
+
--ring: oklch(0.660 0.150 240);
|
|
668
|
+
--background: oklch(0.990 0.004 240);
|
|
669
|
+
--card: oklch(0.990 0.004 240);
|
|
670
|
+
--popover: oklch(0.990 0.004 240);
|
|
671
|
+
--sidebar: oklch(0.985 0.007 240);
|
|
672
|
+
--muted: oklch(0.970 0.014 240);
|
|
673
|
+
--accent: oklch(0.970 0.014 240);
|
|
674
|
+
}
|
|
675
|
+
.dark[data-plate="azure"],
|
|
676
|
+
.dark [data-plate="azure"] {
|
|
677
|
+
--primary: oklch(0.830 0.090 240);
|
|
678
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
679
|
+
--ring: oklch(0.830 0.090 240);
|
|
680
|
+
--background: oklch(0.145 0.014 240);
|
|
681
|
+
--card: oklch(0.205 0.014 240);
|
|
682
|
+
--popover: oklch(0.205 0.014 240);
|
|
683
|
+
--sidebar: oklch(0.205 0.014 240);
|
|
684
|
+
--muted: oklch(0.269 0.016 240);
|
|
685
|
+
--accent: oklch(0.269 0.016 240);
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
[data-plate="blue"] {
|
|
689
|
+
--primary: oklch(0.500 0.220 264);
|
|
690
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
691
|
+
--ring: oklch(0.500 0.220 264);
|
|
692
|
+
--background: oklch(0.990 0.004 264);
|
|
693
|
+
--card: oklch(0.990 0.004 264);
|
|
694
|
+
--popover: oklch(0.990 0.004 264);
|
|
695
|
+
--sidebar: oklch(0.985 0.007 264);
|
|
696
|
+
--muted: oklch(0.970 0.014 264);
|
|
697
|
+
--accent: oklch(0.970 0.014 264);
|
|
698
|
+
}
|
|
699
|
+
.dark[data-plate="blue"],
|
|
700
|
+
.dark [data-plate="blue"] {
|
|
701
|
+
--primary: oklch(0.710 0.150 264);
|
|
702
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
703
|
+
--ring: oklch(0.710 0.150 264);
|
|
704
|
+
--background: oklch(0.145 0.014 264);
|
|
705
|
+
--card: oklch(0.205 0.014 264);
|
|
706
|
+
--popover: oklch(0.205 0.014 264);
|
|
707
|
+
--sidebar: oklch(0.205 0.014 264);
|
|
708
|
+
--muted: oklch(0.269 0.016 264);
|
|
709
|
+
--accent: oklch(0.269 0.016 264);
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
[data-plate="indigo"] {
|
|
713
|
+
--primary: oklch(0.500 0.220 288);
|
|
714
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
715
|
+
--ring: oklch(0.500 0.220 288);
|
|
716
|
+
--background: oklch(0.990 0.004 288);
|
|
717
|
+
--card: oklch(0.990 0.004 288);
|
|
718
|
+
--popover: oklch(0.990 0.004 288);
|
|
719
|
+
--sidebar: oklch(0.985 0.007 288);
|
|
720
|
+
--muted: oklch(0.970 0.014 288);
|
|
721
|
+
--accent: oklch(0.970 0.014 288);
|
|
722
|
+
}
|
|
723
|
+
.dark[data-plate="indigo"],
|
|
724
|
+
.dark [data-plate="indigo"] {
|
|
725
|
+
--primary: oklch(0.780 0.115 288);
|
|
726
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
727
|
+
--ring: oklch(0.780 0.115 288);
|
|
728
|
+
--background: oklch(0.145 0.014 288);
|
|
729
|
+
--card: oklch(0.205 0.014 288);
|
|
730
|
+
--popover: oklch(0.205 0.014 288);
|
|
731
|
+
--sidebar: oklch(0.205 0.014 288);
|
|
732
|
+
--muted: oklch(0.269 0.016 288);
|
|
733
|
+
--accent: oklch(0.269 0.016 288);
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
[data-plate="violet"] {
|
|
737
|
+
--primary: oklch(0.500 0.220 312);
|
|
738
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
739
|
+
--ring: oklch(0.500 0.220 312);
|
|
740
|
+
--background: oklch(0.990 0.004 312);
|
|
741
|
+
--card: oklch(0.990 0.004 312);
|
|
742
|
+
--popover: oklch(0.990 0.004 312);
|
|
743
|
+
--sidebar: oklch(0.985 0.007 312);
|
|
744
|
+
--muted: oklch(0.970 0.014 312);
|
|
745
|
+
--accent: oklch(0.970 0.014 312);
|
|
746
|
+
}
|
|
747
|
+
.dark[data-plate="violet"],
|
|
748
|
+
.dark [data-plate="violet"] {
|
|
749
|
+
--primary: oklch(0.780 0.155 312);
|
|
750
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
751
|
+
--ring: oklch(0.780 0.155 312);
|
|
752
|
+
--background: oklch(0.145 0.014 312);
|
|
753
|
+
--card: oklch(0.205 0.014 312);
|
|
754
|
+
--popover: oklch(0.205 0.014 312);
|
|
755
|
+
--sidebar: oklch(0.205 0.014 312);
|
|
756
|
+
--muted: oklch(0.269 0.016 312);
|
|
757
|
+
--accent: oklch(0.269 0.016 312);
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
[data-plate="magenta"] {
|
|
761
|
+
--primary: oklch(0.500 0.220 336);
|
|
762
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
763
|
+
--ring: oklch(0.500 0.220 336);
|
|
764
|
+
--background: oklch(0.990 0.004 336);
|
|
765
|
+
--card: oklch(0.990 0.004 336);
|
|
766
|
+
--popover: oklch(0.990 0.004 336);
|
|
767
|
+
--sidebar: oklch(0.985 0.007 336);
|
|
768
|
+
--muted: oklch(0.970 0.014 336);
|
|
769
|
+
--accent: oklch(0.970 0.014 336);
|
|
770
|
+
}
|
|
771
|
+
.dark[data-plate="magenta"],
|
|
772
|
+
.dark [data-plate="magenta"] {
|
|
773
|
+
--primary: oklch(0.780 0.185 336);
|
|
774
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
775
|
+
--ring: oklch(0.780 0.185 336);
|
|
776
|
+
--background: oklch(0.145 0.014 336);
|
|
777
|
+
--card: oklch(0.205 0.014 336);
|
|
778
|
+
--popover: oklch(0.205 0.014 336);
|
|
779
|
+
--sidebar: oklch(0.205 0.014 336);
|
|
780
|
+
--muted: oklch(0.269 0.016 336);
|
|
781
|
+
--accent: oklch(0.269 0.016 336);
|
|
782
|
+
}
|