@poodle64/librarian 2026.9.17 → 2026.9.18

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.
@@ -356,8 +356,14 @@
356
356
  /* The reader's own words carry the consuming app's hue, the way every chat
357
357
  a person already uses colours THEIR side and leaves the other party
358
358
  neutral. It is an identity mark, not decoration: scanning back for "what
359
- did I ask" is a colour search, not a reading task. The hue is whatever
360
- the host set --ds-color-primary to, so no consumer is named here.
359
+ did I ask" is a colour search, not a reading task.
360
+
361
+ --ds-color-primary-solid, falling back to --ds-color-primary, because a
362
+ dark-mode palette lightens its primary so the SAME token can serve as
363
+ coloured text on a dark page. A fill behind light text and text on a dark
364
+ ground want opposite lightness, and a brand asked to be both comes out
365
+ washed — a deep red reads as salmon. An app with a fill-grade brand
366
+ colour declares the solid pair; one that has not is unaffected.
361
367
  It stays on the SHORT side of the transcript on purpose — a question is
362
368
  a line or two, an answer is paragraphs, so filling the question is an
363
369
  accent and filling the answer would be a wall. */
@@ -365,9 +371,9 @@
365
371
  max-width: 85%;
366
372
  border: 1px solid transparent;
367
373
  border-radius: var(--ds-radius-xl);
368
- background: var(--ds-color-primary);
374
+ background: var(--ds-color-primary-solid, var(--ds-color-primary));
369
375
  padding: 0.625rem 1rem;
370
- color: var(--ds-color-primary-foreground);
376
+ color: var(--ds-color-primary-solid-foreground, var(--ds-color-primary-foreground));
371
377
  font-size: 1rem;
372
378
  line-height: 1.5rem;
373
379
  overflow-wrap: break-word;
@@ -414,8 +420,8 @@
414
420
  under the 3:1 floor for a non-text graphic and read as a smudge —
415
421
  measured 2.55:1 on a dark-mode host. A solid fill carries the hue AND
416
422
  the contrast. */
417
- background: var(--ds-color-primary);
418
- color: var(--ds-color-primary-foreground);
423
+ background: var(--ds-color-primary-solid, var(--ds-color-primary));
424
+ color: var(--ds-color-primary-solid-foreground, var(--ds-color-primary-foreground));
419
425
  font-size: var(--ds-text-2xs);
420
426
  font-weight: 600;
421
427
  text-transform: uppercase;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poodle64/librarian",
3
- "version": "2026.9.17",
3
+ "version": "2026.9.18",
4
4
  "description": "An agent's conversation surface as a consumable Svelte 5 package: the stream client, transcript state and self-styling chat components (transcript, composer, markdown) every household app renders instead of rebuilding, speaking as whichever persona the app names.",
5
5
  "type": "module",
6
6
  "license": "MIT",