feat(redesign): ember identity — landing threads + answer arrival + thinking thread#579
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
✅ Dogfood Visual QA Gate: PASSED
ArtifactsDownload the Generated by Dogfood QA Gate |
HomenShum
enabled auto-merge (squash)
July 17, 2026 23:58
…ntity The landing's dead middle band becomes the product truth as form: abstract source nodes whose hairline threads converge past the frame into the composer — the question visibly drawing on evidence. New tagline states it in three words: "Answers with receipts." Headline lifted to display scale. Motion identity: one easing (--rd-ease-settle), three duration tokens. Threads draw in staggered (110ms steps, <1s total), nodes bloom, then a 12s near-imperceptible drift; composer focus warms the constellation. prefers-reduced-motion flattens everything to the static composition — verified via emulation (computed animationName: none). Geometry is deterministic, so nightly screenshots stay replay-stable. Mobile prunes the low side nodes and halves opacity. Evidence: docs/design/ui-contract/20260717-ember-landing/ — 4 before/after pairs + 3-frame draw-in filmstrip + reduced-motion still. Surface contracts green on both sides. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…r state The answer moment joins the ember identity: the packet settles in on the landing's easing, every section eyebrow gains a terracotta ember tick that sweeps in (evidence underlines every claim — as form), and the thinking state becomes the thread being drawn (ember-tipped hairline on a settle loop). prefers-reduced-motion flattens all three systems. Also introduces the QA-gated seeded answer state: ?qaState=answer under the dogfood chrome flag renders the previously-dead sampleAnswer fixture as a completed turn — the answer moment was unphotographable without a paid authenticated run; now the nightly loop can capture it and future contract states can force it. Unreachable organically. Evidence: docs/design/ui-contract/20260717-answer-arrival/ (4 stills + 3-frame filmstrip; no before pair exists honestly — the state was previously uncapturable, and the manifest says so). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
HomenShum
force-pushed
the
feat/ember-landing
branch
from
July 18, 2026 00:00
e2aebec to
1311fcb
Compare
|
Demo: walkthrough of the surfaces this PR changed is available as a workflow artifact ( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two commits, one motion identity ("ember"):
Commit 1 — Ember-threads landing. Source-node constellation whose threads converge past the frame into the composer; tagline "Answers with receipts."; headline to display scale. Draw-in <1s staggered, 12s drift, composer-focus warming.
Commit 2 — Answer arrival + thinking thread + QA answer state. The packet settles in on the same easing; every section eyebrow gains a terracotta ember tick (evidence underlines every claim — as form); thinking becomes an ember-tipped hairline being drawn. Introduces
?qaState=answer(QA-chrome-flag-gated, seeded from the previously-deadsampleAnswerfixture) so the answer moment is photographable by the nightly loop and forcible by future contract states — it was previously uncapturable without a paid authenticated run.prefers-reduced-motionflattens every system — verified by emulation (animationName: none).Evidence
docs/design/ui-contract/20260717-ember-landing/— 4 before/after pairs + draw-in filmstrip + reduced-motion stilldocs/design/ui-contract/20260717-answer-arrival/— 4 stills + arrival filmstrip (no before pair exists honestly: the state was uncapturable; the manifest says so)Verification
tsc0 errors · redesign suite 92/92 · surface contracts green · deterministic geometry (replay-stable nightly screenshots)🤖 Generated with Claude Code