Skip to content

UI overhaul Phase 2d: promote DAW-lane primitives to ui/, delete MeasurementPrimitives - #170

Merged
slittycode merged 1 commit into
mainfrom
claude/charming-faraday-bcny24
Jun 19, 2026
Merged

UI overhaul Phase 2d: promote DAW-lane primitives to ui/, delete MeasurementPrimitives#170
slittycode merged 1 commit into
mainfrom
claude/charming-faraday-bcny24

Conversation

@slittycode

Copy link
Copy Markdown
Owner

Phase 2d of the UI overhaul — retire MeasurementPrimitives.tsx (final slice)

Completes Phase 2 (#167, #168, #169). The competing MeasurementPrimitives.tsx primitive layer is deletedsrc/components/ui/ is now the single primitive layer.

Change

  • New ui/Lane.tsx (LaneContainer, LaneRow, TimeRuler, StatsBar) — the DAW arrangement-lane vocabulary, with tokenized chrome: the raw #1a1a1a/#222/#252525/#1e1e1e/#2a2a2a/#333 shades snap to the surface-darker / surface-dark / border-light token ladder, #777/#555 text → text-muted, and the StatsBar default value color → var(--color-text-primary). No raw hex remains in the primitives (required, since ui/ is under the hex guard).
  • HarmonyLanes + StructureLanes import the lanes from ./ui. Their own per-chord/segment viz hex is unchanged — those components compute colors and aren't under the ui/ hex rule.
  • ui/Lane Storybook story added (convention; Chromatic covers it).
  • Fixed the now-stale MeasurementPrimitives mention in ConfidenceBandBadge's comment.
  • Deleted apps/ui/src/components/MeasurementPrimitives.tsx (−565 lines).

Phase 2 complete

The off-palette tone system (info/violet/blue/teal) is fully eliminated; every badge/metric/table/lane now renders through the canonical ui/ primitives on the token palette. Net −425 lines.

Verification

  • npm run lint:style
  • npm run lint (tsc --noEmit) ✓
  • npm run test:unit ✓ (830)
  • npm run build

Invariants

Presentation-layer only; no measurement/citation/data-contract surface touched; data-text-role hooks preserved.

🤖 Generated with Claude Code


Generated by Claude Code

…urementPrimitives

Final slice of Phase 2 — the competing MeasurementPrimitives.tsx layer is
now deleted; ui/ is the single primitive layer.

- New ui/Lane.tsx (LaneContainer, LaneRow, TimeRuler, StatsBar) tokenizes
  the lane chrome: the raw #1a1a1a/#222/#252525/#1e1e1e/#2a2a2a/#333 shades
  snap to the surface-darker / surface-dark / border-light token ladder,
  #777/#555 text -> text-muted, and the StatsBar default value color ->
  var(--color-text-primary). No raw hex remains in the primitives.
- HarmonyLanes + StructureLanes import the lanes from ./ui (their own viz
  hex is unchanged — they are not under the ui/ hex rule).
- Add ui/Lane Storybook story (convention; Chromatic covers it).
- Fix the now-stale MeasurementPrimitives reference in ConfidenceBandBadge's
  comment.
- Delete apps/ui/src/components/MeasurementPrimitives.tsx.

Verified: lint:style, tsc --noEmit, 830 unit tests, and the production
build all green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016to3B8Hf9eAGxAbzpQNvku
@slittycode
slittycode merged commit 8ed363b into main Jun 19, 2026
5 checks passed
@slittycode
slittycode deleted the claude/charming-faraday-bcny24 branch June 19, 2026 04:40
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.

2 participants