Files
brain-of-reese/.agents/phases/todo/138_markdown_blockquotes/02_blockquote_css.md
T
ducoterra 0db6ab5df0
Build and Push Containers / build-and-push-app (push) Successful in 2m37s
Build and Push Containers / build-and-push-db (push) Successful in 12s
chore(agent): phase roadmap from TODO.md — 3 phases (138–140)
2026-09-30 09:35:07 -04:00

2.0 KiB

Task 02 — .md-quote styling (theme-safe, WCAG AA)

Phase: 138_markdown_blockquotes · Source: TODO.md:3 — "Markdown formatted ">" quotes aren't rendering" Story: n/a

Objective

The blockquote is visually distinct and readable in all three rendering contexts (chat bubble, thinking block, document viewer) with ONE rule set, using only the existing :root palette.

Work

  1. frontend/assets/styles.css — add the .md-quote rule next to the other markdown element styles (the phase-44 .md-table / .md-table-wrap block is the anchor): border-left: 3px solid <palette var> (a visible-but-restrained border — pick from the existing :root palette, the executor's contrast judgment), padding: 0.25rem 0.75rem, margin: 0.5rem 0, color: <muted palette var> with a ≥4.5:1 contrast comment on the bubble surface per the house convention (--ink-soft's /* 8.2:1 on --surface */ qualifies — verify against the actual bubble background and document it).
  2. frontend/assets/styles.css — no background fill (ASSUMPTION A2); verify the rule renders acceptably in the chat .bubble, the .thinking-text block, and the document-viewer content region — add a scoped override only if the task-03 E2E proves a clash.
  • ASSUMPTION: the built-in dark palette is the single source of truth — the :root-drift unit test parses built-ins from this file, so no hex literal outside :root and no second copy.

Testing & Quality

  • Unit: tests/unit/test_markdown_blockquotes.py (task 03) source-pins the .md-quote rule's presence and its palette-var-only references (the phase-44 CSS-pin pattern).
  • Coverage: n/a (frontend).

Completion Criteria

  • the .md-quote rule exists in styles.css, references only :root palette vars, and carries a ≥4.5:1 contrast comment
  • the quote is visually distinct in chat + viewer (the E2E screenshot, task 03)
  • the theme no-op (B4) is unaffected — the rule uses existing vars; no new ui_settings column