From f7a04f6c02bd5e2b3610a62c56da02e1280060ba Mon Sep 17 00:00:00 2001 From: amosblomqvist Date: Wed, 23 Sep 2026 22:05:58 +0300 Subject: [PATCH] Default bold ink #c96b4a -> #ee928c Owner default change (2026-09-23): the factory strong-color token moves to the softer coral. The factory lives in the stylesheet token (both theme blocks in globals.css) - settings' boldColor:null means "factory" by design, so no record/schema change. The settings row hint + placeholder follow, plus the placeholder test and two comments that cited the old literal. Live-verified: unset boldColor renders rgb(238,146,140) (#ee928c) on the real ; dialog hint reads "Empty = #ee928c". --- app/globals.css | 4 ++-- components/md-blocks.tsx | 2 +- components/settings/appearance-section.tsx | 4 ++-- tests/render-markdown.test.tsx | 2 +- tests/render-settings.test.tsx | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/globals.css b/app/globals.css index 8b722c4..efb8a29 100644 --- a/app/globals.css +++ b/app/globals.css @@ -39,7 +39,7 @@ --input: #434343; --ring: #8d8d8d; /* Emphasis coloring in teaching prose — ready for the settings UI. */ - --lh-ink-strong: #c96b4a; + --lh-ink-strong: #ee928c; --lh-ink-italic: #6fa9d6; /* THE READING SIZE = the ladder's 16px rung (--text-lg). Can't be var()-linked: @theme inline inlines literals into utilities without @@ -73,7 +73,7 @@ --border: #434343; --input: #434343; --ring: #8d8d8d; - --lh-ink-strong: #c96b4a; + --lh-ink-strong: #ee928c; --lh-ink-italic: #6fa9d6; /* THE READING SIZE = the ladder's 16px rung (--text-lg). Can't be var()-linked: @theme inline inlines literals into utilities without diff --git a/components/md-blocks.tsx b/components/md-blocks.tsx index 4d5d162..04a6c14 100644 --- a/components/md-blocks.tsx +++ b/components/md-blocks.tsx @@ -341,7 +341,7 @@ export function MathDisplay(props: ComponentProps<"span"> & ExtraProps) { /** Bold as the REAL element (appearance fix, 2026-09-23): streamdown's * default `strong` renders `` — and `.lh-prose :where(strong, b)` matches strong/b - * ELEMENTS, so neither the factory ink (#c96b4a) nor a settings + * ELEMENTS, so neither the factory ink (#ee928c) nor a settings * boldColor ever landed on bold text (italic worked: streamdown leaves * `em` native). Rendering the semantic element restores screen-reader * emphasis AND lets the designed token rule apply unmodified — color diff --git a/components/settings/appearance-section.tsx b/components/settings/appearance-section.tsx index 83af74d..a1fe016 100644 --- a/components/settings/appearance-section.tsx +++ b/components/settings/appearance-section.tsx @@ -116,10 +116,10 @@ export function AppearanceSection({ }} /> - + onSectionChange({ ...appearance, mdRendering: { ...md, boldColor: v === "" ? null : v } })} diff --git a/tests/render-markdown.test.tsx b/tests/render-markdown.test.tsx index a968eb6..7359744 100644 --- a/tests/render-markdown.test.tsx +++ b/tests/render-markdown.test.tsx @@ -219,7 +219,7 @@ describe("render — bold is the real (the dead Bold-color fix)", () => // data-streamdown="strong"> — and the app's ink token rule // (.lh-prose :where(strong, b), globals.css) matches strong/b // ELEMENTS, so bold never took the --lh-ink-strong color (neither the - // factory #c96b4a nor a settings boldColor). The mdComponents override + // factory #ee928c nor a settings boldColor). The mdComponents override // renders the semantic element. it("bold renders a real element inside .lh-prose", () => { const html = render("plain **bold** plain"); diff --git a/tests/render-settings.test.tsx b/tests/render-settings.test.tsx index 2ef7efe..6610284 100644 --- a/tests/render-settings.test.tsx +++ b/tests/render-settings.test.tsx @@ -207,7 +207,7 @@ describe("AppearanceSection (thin SSR)", () => { const html = renderToStaticMarkup( {}} />); assert.ok(html.includes(`placeholder="#141414"`)); assert.ok(html.includes(`placeholder="Source Sans 3"`)); - assert.ok(html.includes(`placeholder="#c96b4a"`)); + assert.ok(html.includes(`placeholder="#ee928c"`)); assert.ok(html.includes("16px")); });