@kolkrabbi/kol-theme 0.13.1 → 0.13.3
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.
|
@@ -243,6 +243,91 @@
|
|
|
243
243
|
.tag-md { font-size: 12px; font-weight: 470; padding: 5px 12px; }
|
|
244
244
|
.tag-lg { font-size: 14px; font-weight: 470; padding: 6px 14px; }
|
|
245
245
|
|
|
246
|
+
/* ─────────────────────────────────────────────────────────────────────
|
|
247
|
+
* Tag color family — molecules/Tag.jsx `color` prop (wave-4 vault parity,
|
|
248
|
+
* 2026-07-30). Tag emits `tag tag--{color}` (chip) / `tag-naked
|
|
249
|
+
* tag--{color}` (text-only); the classes shipped in the JSX but the RULES
|
|
250
|
+
* never migrated out of the monorepo workshop — the same dangling trap as
|
|
251
|
+
* the palette tokens themselves (kol-color.css, 2026-07-16) — so every
|
|
252
|
+
* colored tag rendered dead. Re-authored from the monorepo colors spec
|
|
253
|
+
* (02-design-system/01-colors.md § Tag Color Classes): light mode =
|
|
254
|
+
* palette-*-light fill + dark ink; dark mode = saturated palette-* fill +
|
|
255
|
+
* light ink (yellow keeps dark ink); `dark` = the on-primary/surface flip.
|
|
256
|
+
* Inks are LITERALS (the surface poles): on a fixed palette fill a
|
|
257
|
+
* theme-flipping token is wrong by definition.
|
|
258
|
+
* ───────────────────────────────────────────────────────────────────── */
|
|
259
|
+
|
|
260
|
+
.tag {
|
|
261
|
+
display: inline-flex;
|
|
262
|
+
align-items: center;
|
|
263
|
+
gap: 6px;
|
|
264
|
+
border-radius: var(--kol-radius-full);
|
|
265
|
+
font-family: var(--kol-font-family-mono);
|
|
266
|
+
border: 1px solid transparent;
|
|
267
|
+
transition: background-color var(--kol-transition-base),
|
|
268
|
+
color var(--kol-transition-base);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/* naked — text-only: no fill, no chip padding (the reader-sidebar voice).
|
|
272
|
+
* Sits AFTER .tag-{size} so its padding reset wins at equal specificity. */
|
|
273
|
+
.tag-naked {
|
|
274
|
+
display: inline-flex;
|
|
275
|
+
align-items: center;
|
|
276
|
+
gap: 6px;
|
|
277
|
+
padding: 0;
|
|
278
|
+
background: transparent;
|
|
279
|
+
border: none;
|
|
280
|
+
font-family: var(--kol-font-family-mono);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* Light mode (default): light fill + dark ink */
|
|
284
|
+
.tag--blue { background-color: var(--kol-palette-blue-light); color: #121215; }
|
|
285
|
+
.tag--teal { background-color: var(--kol-palette-teal-light); color: #121215; }
|
|
286
|
+
.tag--green { background-color: var(--kol-palette-green-light); color: #121215; }
|
|
287
|
+
.tag--yellow { background-color: var(--kol-palette-yellow-light); color: #121215; }
|
|
288
|
+
.tag--red { background-color: var(--kol-palette-red-light); color: #121215; }
|
|
289
|
+
.tag--orange { background-color: var(--kol-palette-orange-light); color: #121215; }
|
|
290
|
+
.tag--purple { background-color: var(--kol-palette-purple-light); color: #121215; }
|
|
291
|
+
.tag--dark { background-color: var(--kol-surface-on-primary); color: var(--kol-surface-primary); }
|
|
292
|
+
|
|
293
|
+
/* naked + color = saturated text, both modes (no fill to carry the pair) */
|
|
294
|
+
.tag-naked.tag--blue { background: transparent; color: var(--kol-palette-blue); }
|
|
295
|
+
.tag-naked.tag--teal { background: transparent; color: var(--kol-palette-teal); }
|
|
296
|
+
.tag-naked.tag--green { background: transparent; color: var(--kol-palette-green); }
|
|
297
|
+
.tag-naked.tag--yellow { background: transparent; color: var(--kol-palette-yellow); }
|
|
298
|
+
.tag-naked.tag--red { background: transparent; color: var(--kol-palette-red); }
|
|
299
|
+
.tag-naked.tag--orange { background: transparent; color: var(--kol-palette-orange); }
|
|
300
|
+
.tag-naked.tag--purple { background: transparent; color: var(--kol-palette-purple); }
|
|
301
|
+
.tag-naked.tag--dark { background: transparent; color: var(--kol-surface-on-primary); }
|
|
302
|
+
|
|
303
|
+
/* active (Tag.jsx emits .tag--active when active + colored) */
|
|
304
|
+
.tag--active { border-color: currentColor; }
|
|
305
|
+
|
|
306
|
+
/* Dark mode: saturated fill + light ink (yellow keeps dark ink). Scoped to
|
|
307
|
+
* .tag.tag--{color} so the chip flips while .tag-naked (equal specificity,
|
|
308
|
+
* earlier in the sheet) keeps its saturated TEXT — a bare .tag--{color}
|
|
309
|
+
* override here would out-order the naked rules and give text tags a fill.
|
|
310
|
+
* MIRROR of the system-follow block below — edit both. */
|
|
311
|
+
:is([data-theme="dark"], .dark) .tag.tag--blue { background-color: var(--kol-palette-blue); color: #fafafa; }
|
|
312
|
+
:is([data-theme="dark"], .dark) .tag.tag--teal { background-color: var(--kol-palette-teal); color: #fafafa; }
|
|
313
|
+
:is([data-theme="dark"], .dark) .tag.tag--green { background-color: var(--kol-palette-green); color: #fafafa; }
|
|
314
|
+
:is([data-theme="dark"], .dark) .tag.tag--yellow { background-color: var(--kol-palette-yellow); color: #121215; }
|
|
315
|
+
:is([data-theme="dark"], .dark) .tag.tag--red { background-color: var(--kol-palette-red); color: #fafafa; }
|
|
316
|
+
:is([data-theme="dark"], .dark) .tag.tag--orange { background-color: var(--kol-palette-orange); color: #fafafa; }
|
|
317
|
+
:is([data-theme="dark"], .dark) .tag.tag--purple { background-color: var(--kol-palette-purple); color: #fafafa; }
|
|
318
|
+
|
|
319
|
+
/* System-follow dark — only when no explicit theme is stamped (explicit >
|
|
320
|
+
* system > light, USER law). MIRROR of the block above — edit both. */
|
|
321
|
+
@media (prefers-color-scheme: dark) {
|
|
322
|
+
:root:not([data-theme]) .tag.tag--blue { background-color: var(--kol-palette-blue); color: #fafafa; }
|
|
323
|
+
:root:not([data-theme]) .tag.tag--teal { background-color: var(--kol-palette-teal); color: #fafafa; }
|
|
324
|
+
:root:not([data-theme]) .tag.tag--green { background-color: var(--kol-palette-green); color: #fafafa; }
|
|
325
|
+
:root:not([data-theme]) .tag.tag--yellow { background-color: var(--kol-palette-yellow); color: #121215; }
|
|
326
|
+
:root:not([data-theme]) .tag.tag--red { background-color: var(--kol-palette-red); color: #fafafa; }
|
|
327
|
+
:root:not([data-theme]) .tag.tag--orange { background-color: var(--kol-palette-orange); color: #fafafa; }
|
|
328
|
+
:root:not([data-theme]) .tag.tag--purple { background-color: var(--kol-palette-purple); color: #fafafa; }
|
|
329
|
+
}
|
|
330
|
+
|
|
246
331
|
.control-unified-inverse {
|
|
247
332
|
display: inline-flex;
|
|
248
333
|
align-items: center;
|
|
@@ -483,10 +568,10 @@
|
|
|
483
568
|
|
|
484
569
|
/* the ONE chip — filename if present, else the language. In-flow above the
|
|
485
570
|
* code. VERBATIM from the live reference build (index-Bro9Jnn6.css). */
|
|
486
|
-
/* bare — the host owns the frame (PreviewCard Code tab);
|
|
487
|
-
*
|
|
571
|
+
/* bare — the host owns the frame (PreviewCard Code tab); the border/radius go,
|
|
572
|
+
* the CODE SURFACE stays (2026-07-30: a transparent bare block made the Code
|
|
573
|
+
* tab a different color from every other code surface on the page). */
|
|
488
574
|
.kol-codeblock--bare {
|
|
489
|
-
background: none;
|
|
490
575
|
border: none;
|
|
491
576
|
border-radius: 0;
|
|
492
577
|
}
|
|
@@ -376,11 +376,15 @@
|
|
|
376
376
|
CSS retains the descendant typography for figcaption + inline <code>.
|
|
377
377
|
═════════════════════════════════════════════════════════════════════ */
|
|
378
378
|
|
|
379
|
+
/* mono, upright (2026-07-30 user ruling) — the italic sans rode in with the
|
|
380
|
+
* styleguide raid unsanctioned; Right Grotesk's italic is a placeholder cut,
|
|
381
|
+
* not for use. Captions speak the doc-caption voice: mono 12, no slant. */
|
|
379
382
|
.kol-anatomy-sample figcaption {
|
|
380
383
|
margin-top: 12px;
|
|
384
|
+
font-family: var(--kol-font-family-mono);
|
|
381
385
|
font-size: 12px;
|
|
382
386
|
color: var(--kol-fg-48);
|
|
383
|
-
font-style:
|
|
387
|
+
font-style: normal;
|
|
384
388
|
}
|
|
385
389
|
|
|
386
390
|
.kol-anatomy-sample code {
|
|
@@ -264,11 +264,12 @@
|
|
|
264
264
|
/* =============================================================================
|
|
265
265
|
* DOCS CONTENT CLASSES
|
|
266
266
|
* =============================================================================
|
|
267
|
-
* Content-rendering styles for documentation pages. The
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
267
|
+
* Content-rendering styles for documentation pages. The reader types every
|
|
268
|
+
* element explicitly through the kol-doc-* roles (workshop 0.3.4 retype —
|
|
269
|
+
* prose is the blog/CMS voice, never docs surfaces), so the per-element
|
|
270
|
+
* `.docs-article *` type rules that used to live here are gone. Only
|
|
271
|
+
* structural doc chrome (cards, frontmatter layout, callout rule, media,
|
|
272
|
+
* tag graph) remains.
|
|
272
273
|
*/
|
|
273
274
|
|
|
274
275
|
/* Documentation Card (used in inventory listing) */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-theme",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.3",
|
|
4
4
|
"description": "KOL (Kolkrabbi) design-system tokens + base CSS — brand-neutral. The canonical token/cascade layer every other KOL package and consumer builds on.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|