feat(GlassSurface): add cornerLights prop (subtle | chrome | none) (Brief 1) #123
No reviewers
Labels
No labels
agent-context-drift
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: rstillwell/deckhearth#123
Loading…
Reference in a new issue
No description provided.
Delete branch "brief-1-glass-surface-corner-lights"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Brief 1 of
unify-glass-panel-surfaces— the highest-leverage brief in the convoy. Adds acornerLightsprop to the<GlassSurface>primitive so corner catch-lights compose into every downstream consumer (<Modal>,<StatCard>, landing feature cards) by default. No per-consumer migration needed.API
The other props (
tint,blur,rim,elevation,as,style,className) and the...styleLAST-wins merge order are unchanged.Composition recipe
Verbatim mirror of
styles/globals.css's.glass-panel-strongblock post-PR #118.For
cornerLights='none', the composed style is identical to today's primitive output (single-layerbackground: var(--glass-surface-{tint}), no border declaration).Files changed
components/ui/GlassSurface.js— adds the prop, theCORNER_LIGHT_TOKENSmap, and thecomposeBackground()helper.test/components/ui-primitives.test.js— 3 new assertions, one percornerLightsvalue.Net diff: +78 / -1.
Acceptance criteria
cornerLightsprop accepts'subtle' | 'chrome' | 'none'; unknown values fall back to'subtle'(defensive??fallback mirrors the existingRIM_SHADOWS[rim] ?? []pattern).'subtle'— composes--corner-light-warm-subtle/--corner-light-cool-subtleand addsborder: 1px solid transparent.'chrome'composes the full-intensity--corner-light-warm/--corner-light-cool(NOT the-subtlevariants).'none'emits today's single-layer background with NO border declaration — preserves the box-model exactly.tint/blur/rim/elevation/as/style/classNamebehave exactly as before.cornerLightsvalues.npm run lintpasses (1 pre-existing unrelated warning).npm run test:run: 116/116 tests pass (was 113; +3 GlassSurface assertions).<Modal>,<StatCard>,pages/index.jsfeature cards UNTOUCHED.)Ripple effect (intentional)
<Modal>,<StatCard>, and the landing feature cards delegate to<GlassSurface>. Defaulting to'subtle'means each renders with corner catch-lights without any per-consumer edit. The Vercel preview'sScreenshot diffjob will fire and show the expected differences.Visual-diff baseline refresh required after this merges — queue on Linux per AGENTS.md § Testing before Brief 3 + Brief 4 dispatch. Tracked in PR #119's plan.
Test plan
/my-cards). Verify corner catch-lights are visible on the modal panel./dashboard. Verify the 4 StatCards each render with corner catch-lights./(landing). Verify feature cards have corner catch-lights.<CardItem>grid mode is untouched (it does NOT use<GlassSurface>— verified during architect boot-the-brief).Related
.convoys/unify-glass-panel-surfaces.md.convoys/unify-glass-panel-surfaces/brief-1-upgrade-glass-surface-primitive.md--corner-light-*-subtletokens.styles/globals.css.glass-panel-strongblock — verbatim mirror.Made with Cursor
The latest updates on your projects. Learn more about Vercel for GitHub.
Pipeline Health
Build + CI gates
Build runs on Vercel; this CI runs lint and schema-map drift only (no duplicate build).
Role reports
See individual comments above for details. This rollup updates automatically.
Visual Diff
Screenshots and diffs uploaded as artifacts: view run
If intentional changes: update snapshots locally with
npx playwright test --project=visual --update-snapshotsand commit.