One play/pause control
The matter orb owns playback. It shows play when idle or paused and pause while playing or seeking. No second transport control is added.
The design package is ready to decide
Start with the interactive package. Then answer the eight decisions that block the Flutter port. The reports below hold the evidence when you need the detail.
Status
All five specialist reviews fed the synthesis. The package keeps the 78-state contract and records the decisions that still need your call.
Owner anchors
They came directly from your corrections. The synthesis does not reopen them.
The matter orb owns playback. It shows play when idle or paused and pause while playing or seeking. No second transport control is added.
Voice preview uses explicit "Preview voice" and "Stop preview" copy inside the Voice sheet. It never starts Reader playback.
Paused and seeking live in the dock through the glyph, position row, timecode, and status label. Reading text stays clear.
Start here
Walk the state package at full size. It is the visual source for this review, not a thumbnail summary.
If the embedded view feels cramped, open the full preview. The earlier package revisions remain untouched.
Review order
This order keeps visual reactions separate from product decisions.
Check Library, Reader, sheets, dialogs, recovery, and platform-owned states.
Look for the single matter control, Voice-only preview, and clean reading text.
Use the selectors below to record your current decision in this browser.
After the decisions, the next work is tokens, components, Reader geometry, then device proof.
Owner decisions
These selectors are a private review aid. They save locally in this browser and do not send a decision anywhere.
When no voice is installed, may the person browse the Library through "Not now" and "Keep browsing", or must the model gate block the flow?
Settings currently says Premium is unavailable in this build while the package shows live checkout. Which truth should the product show?
The pinned quiet color is only 2.64–2.80:1 on reading surfaces. Raise it to an accessible value, or make quiet decorative-only and keep wake for must-read text?
The roughly 600 MB on-device rewrite model has setup states that are folded into copy. Add explicit states, or keep the fold and name the inline setup state?
When the current sentence appears in Contents, should the row use live text, the spike accent, or both? The package and Flutter must match.
If a voice preview is playing and the person closes the sheet with Back or outside tap, should preview stop? Revision 05 assumes yes.
Confirm the five-second fade for secondary dock rows and reveal on tap or scroll, or change the timing before it becomes the port contract?
If Retelling settings ships in this pass, its dirty, apply, cancel, and loading states need Flow proof. Otherwise, keep the affordance as a stub.
Evidence
Open a report only when you want the line-level reasoning behind the package.
Checks the 78 states against the Ferrofluid composition and the Reader at large text.
Reviews how the experience hands attention from voice to chrome, sheets, progress, and recovery.
Checks screen-reader order, labels, contrast, hit areas, text scaling, and recovery.
Checks whether every state tells the truth about local, cloud, premium, privacy, and recovery.
Checks whether the visual rules can become reusable components without geometry drift.
What happens next
The next engineering pass is deliberately separate from this review package.
Approval checklist
Selections and checks stay in this browser. They are a working review aid, not a substitute for the written decision.
Source files
These are the source documents used to build revision 05.
The complete reconciliation, checks, unresolved decisions, and recommended next step.
Ferrofluid roles, type, layout, motion, voice, and edge-case rules.
The state inventory and remaining edge-case questions.
Navigation, state groups, naming, and component ownership.
Review notes for the complete state package and its coverage.
The original visual contract used to compare the package.