Brand and design · Hi-fi screens · Hi-fi screens

Hi-fi: S13 Diagnostic · Diagnostic result · animated reveal

Contract, a board per state (reveal, loading, empty, error, offline), tokens and strings.

Generated by botgumi-design index from ../../screens.json. Edit that file, not this page.

Stage: hifi · Key: diagnostic/diag-result · Data-binding map: bindings.md

Drawn in the gallery: Diagnostic. Each board is the committed HTML in screens/, drawn on the example data in docs/api/examples/.

Contract

  • reveal: Count-up reveal of overall (ring) then each dimension; weakest dimension feeds the plan and paywall; one action with evidence.

Flows: F1 First launch → diagnostic → paywall → first real session.

Reads and calls:

  • GET /v1/attempts/{id} → assessment

Local state:

  • none

Boards

One row per state. A state without boards of its own says what shows it.

State Board Example data
reveal zh-Hans · en assessment-diagnostic.json (zh-Hans · en)
loading no board of its own: From states.md (Diagnostic result): ring at 0 until data (never shown before assessed)
empty no board of its own: From states.md (Diagnostic result): —
error no board of its own: From states.md (Diagnostic result): — · fatal: —
offline no board of its own: From states.md (Diagnostic result): cached assessment

The boards

Each state as drawn (393 × 852), one board per locale. Open a board on its own for its spec panel.

reveal

Tokens used

By path in ../../system/tokens.source.json.

Token Where
color.accentPrimary .btn--primary
color.accentPrimaryPressed .btn--primary
color.bandBasic inline
color.bgCanvas .device, .dock, .navbar, .screen
color.bgInverse .one-action
color.bgInverseRaised .oa-example, .one-action, .ts-chip
color.bgSunken .btn, .dim-bar, .dim-row, .ts-chip …
color.bgSurface .list
color.dimEfficiency inline
color.dimFluency inline
color.dimKeyInfo inline
color.dimStructure inline
color.lineHairline .dim-row, .evidence, .list-row
color.reward .oa-head, .one-action
color.statusSuccess .c-success
color.statusWarning .c-warning
color.textDisabled .btn
color.textOnAccent .btn--primary
color.textOnInverse .oa-example, .one-action, .ts-chip
color.textOnInverseSecondary .c-on-inverse-2
color.textPrimary .device, .dim-bar, .dim-name, .dim-row …
color.textSecondary .c-secondary
color.textTertiary .c-tertiary, .list-row, .score-ring, .val
color.topicViolet .evidence, .ts-chip
color.topicVioletSoft .evidence
radius.button .btn
radius.lg .one-action
radius.md .list
radius.sm .oa-example, .one-action
space.gutter .dock, .navbar, .pad, .section-head
space.s3 .section-head
space.s6 .screen
space.safeBottom .dock, .has-dock, .screen
space.safeTop .device, .screen
space.section .section-head
space.sizeCtaHeight .btn, .has-dock, .screen
space.sizeNavbarHeight .navbar
space.sizeTabbarHeight .screen
typography.footnote .t-footnote
typography.headline .t-headline
typography.subheadline .t-subhead
typography.title3 .t-title3

Strings

app.name, band.basic, diag.result.cta, diag.result.nav, diag.result.ring_label, dimension.efficiency, dimension.fluency, dimension.key_info, dimension.structure, dimension.weights, feedback.dims.title, feedback.evidence.hint, feedback.evidence.title, feedback.keypoints.count, feedback.keypoints.title, feedback.one_action.basis, feedback.ring_label, growth.title, home.greeting.format, notif.daily.title, paywall.eyebrow, paywall.per.month, paywall.per.year, paywall.projection.score, read.tag.diagnostic, tab.growth

Notes for the app tracks

Motion, haptics, Dynamic Type and VoiceOver: engagement.md, tokens.md §6–7 and ios-handoff.md. Open a board with ?theme=dark&dt=1.35&binds=1 to see dark mode, the largest tested type size and every bound element.

Tracking-plan events: no tracking plan page exists yet; ADR-001 D12 names the events.

Tokens with no group in system/tokens.source.json yet (they stay in tokens.css): --dt, --elevation-1, --elevation-2, --fill, --font-family-numeric, --font-family-reading, --font-family-text, --font-weight-bold, --font-weight-regular, --font-weight-semibold, --motion-duration-countup, --motion-duration-fast, --motion-duration-instant, --motion-ease-emphasized, --motion-ease-standard.