Skip to content

feat(ui): add semantic color contract and visual gate - #1500

Open
gcko wants to merge 13 commits into
mainfrom
feature/drc-2843-semantic-color-foundation
Open

feat(ui): add semantic color contract and visual gate#1500
gcko wants to merge 13 commits into
mainfrom
feature/drc-2843-semantic-color-foundation

Conversation

@gcko

@gcko gcko commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

PR checklist

  • Ensure you have added or ran the appropriate tests for your PR.
  • DCO signed

What type of PR is this?

Feature / accessibility

What this PR does / why we need it:

  • Adds a role-first semantic color contract for comparison, structural change, and direction meanings while preserving the legacy DiffText.colorPalette API.
  • Migrates shared grids, charts, lineage, CLL, row-count, legends, and edge renderers away from overloaded red/green presentation.
  • Adds redundant symbols, labels, patterns, and accessible names so meaning survives grayscale, Protanopia, and Deuteranopia.
  • Adds a production-renderer Storybook matrix with deterministic Light, Dark, and Grayscale visual baselines.
  • Documents the semantic contract, contrast requirements, CVD review procedure, and canonical visual-capture environment.

Which issue(s) this PR fixes:

Part of DRC-2843.

This is the shared @datarecce/ui Phase B prerequisite. The recce-cloud-infra adoption remains a follow-up after this package is released, so this PR intentionally does not close the parent issue.

Special notes for your reviewer:

  • Fresh verification on the pushed head: lint checked 677 files; all TypeScript projects passed; Vitest passed 194 files / 4,087 tests with 5 skipped; @datarecce/ui production and CSS builds passed; the semantic Playwright gate passed 5/5.
  • Light, Dark, and Grayscale baselines were reviewed at 1440×1466. Chromium vision-deficiency emulation was reviewed for Protanopia and Deuteranopia in both themes.
  • Two stale ExternalLink/Markdown Storybook interaction assertions and ten legacy Timeline visual selectors are byte-identical to main and are not introduced here.
  • diff-cell-modified remains a rail-only compatibility selector for a value-summary mismatch producer; moving it to a dedicated semantic channel is safe follow-up debt.

Does this PR introduce a user-facing change?:

Yes. Comparison, structural-change, lineage, chart, and direction states now use consistent semantic colors with redundant non-color cues across light, dark, grayscale, and common color-vision deficiencies.

gcko added 13 commits August 6, 2026 11:46
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
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