Skip to content

refactor(design): the bot demo was the sixth colour system - #150

Merged
github-actions[bot] merged 1 commit into
mainfrom
fix/first-party-accents
Aug 28, 2026
Merged

refactor(design): the bot demo was the sixth colour system#150
github-actions[bot] merged 1 commit into
mainfrom
fix/first-party-accents

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

#144 branded the bot page sections. It didn't reach the demo underneath them, so every first-party bot still ran the per-colour palette in its interactive step — buttons, focus rings, progress dots, message bubbles, dropzone, context panel — plus the bot switcher in the nav.

The colour came from lib/demo/botDemoConfigs.ts, carrying its own accentColor per bot.

Six places a colour was chosen

  1. app/globals.css — the actual SSOT
  2. lib/config/colors.ts — 16-colour accent sets
  3. lib/hooks/navigationConfig.ts — its own 5-colour nav scheme
  4. ACCENT_HERO_CLASSES — a fifth set, internally inconsistent
  5. data/professionals.ts — the homepage six (fix(design): the homepage had a fifth colour system, and the guard missed it #149)
  6. lib/demo/botDemoConfigs.tsthis PR

The fix

DemoSection and BotSwitcher are used only by first-party bot pages — verified, no custom-bot page imports either — so both are now brand: BRAND_BUTTON, BRAND_FOCUS_RING, BRAND_STARTER, BRAND_CHECKBOX, BRAND_PROGRESS, BRAND_MESSAGE, BRAND_DROPZONE, BRAND_CONTEXT_PANEL, BRAND_SWITCHER.

accentColor is gone from the demo config, its type, and the whole prop chain.

What still emits raw palette — correctly

Source Why it stays
VISION_STATUS_CONFIG Roadmap status: completed green, in-progress blue, planned amber, vision purple. Four states that must stay tellable apart — collapsing them to ochre destroys the information.
/personal templates Per-template identity in the memorial/legends product, from an allowlisted surface.

Both live behind lib/config/colors.ts, which the guard already documents as an exception — so the guard passing while those classes ship is correct, not a blind spot. The actual blind spot was data/professionals.ts, fixed in #149.

Verify

format:check, lint, typecheck, 256 tests, build — all green. Bot demo confirmed ochre end to end against a local production build.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HVwg8DKHQktxJuHeLM3xpG

#144 branded the bot page sections. It did not reach the demo underneath
them, so every first-party bot still ran the per-colour palette in its
interactive step -- the buttons, focus rings, progress dots, message bubbles,
dropzone and context panel -- plus the bot switcher in the nav.

The colour came from lib/demo/botDemoConfigs.ts, which carried its own
accentColor per bot (blue, green, red, indigo, amber). That is the sixth
place a colour was chosen, after: globals.css, lib/config/colors.ts,
lib/hooks/navigationConfig.ts, ACCENT_HERO_CLASSES, and data/professionals.ts.

DemoSection and BotSwitcher are used ONLY by the first-party bot pages
(verified: no custom-bot page imports either), so both are now brand:
BRAND_BUTTON, BRAND_FOCUS_RING, BRAND_STARTER, BRAND_CHECKBOX, BRAND_PROGRESS,
BRAND_MESSAGE, BRAND_DROPZONE, BRAND_CONTEXT_PANEL, BRAND_SWITCHER.

accentColor is gone from the demo config, its type, and the whole prop chain.

What still emits raw palette, correctly:
  VISION_STATUS_CONFIG   roadmap status -- completed green, in-progress blue,
                         planned amber, vision purple. Four states that have to
                         stay tellable apart; collapsing them to ochre would
                         destroy the information.
  the /personal templates per-template identity in the memorial/legends
                         product, chosen from an allowlisted surface.

Both live behind lib/config/colors.ts, which the guard already documents as an
exception -- so the guard passing while those classes ship is correct, not a
blind spot. The blind spot was data/professionals.ts, fixed in #149.

verify: format, lint, typecheck, 256 tests, build -- all green. Bot demo
confirmed ochre end to end against a local production build.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HVwg8DKHQktxJuHeLM3xpG
@github-actions
github-actions Bot merged commit 3a438c8 into main Aug 28, 2026
1 check passed
@github-actions
github-actions Bot deleted the fix/first-party-accents branch August 28, 2026 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant