Skip to content
Domphy

Domphy visual QA — honest findings (2026-07-21)

Coverage

CatalogThemeCellsCapture method
Patcheslight202full catalog + cell isolate (shoot-all.mjs)
Patchesdark202full catalog + cell isolate
Blockslight173solo page per block (?only= + shoot-blocks-solo.mjs)
Blocksdark173solo page per block

Solo capture is required for blocks: mounting all 70 charts at once exhausts WebGL contexts (~blank canvases).

Verified fixed

ItemBeforeAfter
Login05 / Login02Sidebar bleed / cropped formCorrect full login shells
globe + chartsBlank WebGLPlots render (solo mount)
dashboard01 KPIMid-glyph clipFull labels/values + chart/table
safari URLCenter-clipped "mph"Full domphy.com
bentoGrid mosaicSkinny strips / CSS undefined3-col spans ≥64em
solid warning vs primaryNear-identical brownOlive-green vs amber brown (dist ~59)
solid error vs dangerSame maroonRose vs scarlet (dist ~40)
android / iphone / safariEmpty black/white chromeDefault sample SVG screen content
confettiEmpty fixed canvasconfettiButton resting "Celebrate" CTA
smoothCursorInvisible until pointerIn-flow resting arrow glyph
scrollProgress0-width empty barResting scaleX(0.42) only when no overflow; real pages at scrollTop=0 show scaleX(0)
spinningText0×0 collapsed hostExplicit ch box + visible ring
terminalMid-type blankFull text at rest; retypes on start; reduced-motion keeps rest

Color probe (Playwright computed, light catalog)

primary solid:  rgb(80, 32, 0)     brown
warning solid:  rgb(29, 62, 0)     olive
error solid:    rgb(107, 0, 49)    rose
danger solid:   rgb(102, 0, 9)     scarlet
primary↔warning distance: ~59  PASS (>40)
error↔danger distance:    ~40  PASS (>25)

Evidence: scratch color-probe.json + shots-fix/button-solid-*.png.

Product / harness changes (this pass)

  • apps/web/site-theme.ts — distinct warning / danger / error brand anchors
  • packages/theme/src/light.ts — built-in danger ramp no longer clones error
  • Device mocks — DEFAULT_*_SCREEN_SRC SVG data URIs when no src/imageSrc
  • Effects resting UI — confetti demo → button; smoothCursor rest glyph; scrollProgress floor; spinningText box; terminal full-text rest
  • Visual harness — solo capture, isolation, import map (prior commits)

Intentionally deferred

ItemReason
Disabled control contrast ~1.7–2.9Dim disabled recipe by design (plan non-goal)
Full catalog.spec.ts-snapshots re-baselineScratch reshoot is evidence; promote on CI if desired
Every chart *Legend / *Icons variant chromeDemo data gaps, not the listed open blockers
orbitingCircles frozen to center logoMotion freeze; not in acceptance list
Full dark-theme human pixel pass of all 375 cellsAutomated dark shoot exists; light was gating

Tests (shipped)

  • @domphy/theme — solid-depth primary/warning + error/danger distance; light error≠danger
  • @domphy/blocks — device default img data URI; spinningText box size; smoothCursor rest; scrollProgress resting scale; terminal full resting text