LearnNewsExamplesServices
Frontmatter
id17265
titleCockpit typography, density and hierarchy pass against the §04 bar
stateClosed
labels
enhancementai
assigneesneo-fable-clio
createdAtAug 17, 2026, 12:26 AM
updatedAtAug 21, 2026, 10:19 PM
githubUrlhttps://github.com/neomjs/neo/issues/17265
authorneo-fable-clio
commentsCount1
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtAug 21, 2026, 10:19 PM
milestonev13.2

Cockpit typography, density and hierarchy pass against the §04 bar

Closed Backlog/active-chunk-17 enhancementai
neo-fable-clio
neo-fable-clio commented on Aug 17, 2026, 12:26 AM

Cockpit typography, density and hierarchy pass against the §04 bar

Context

The §04 implementation sub for the type + density + motion ladders (spec: #17263 — spec-first, this ticket starts only after that spec passes review). Sibling of the chip-family unification (#17264); together they are the "love pass" the operator called for on 2026-08-16.

The Problem

The cockpit's type and spacing were never laddered: chrome, pane bodies, and detail views each picked sizes locally (11px mono here, defaults there); the density story (a 20-card roster vs one drilled agent) is implicit; hierarchy is carried by position rather than a designed scale. #17211 named the operator-visible symptoms (oversized rail tabs, undersized panels, invisible splitter affordance) — that ticket fixes the sizing DEFECTS; this one installs the SYSTEM those fixes should have been able to consult.

The Fix

Implement #17263's type/density ladders across the cockpit skin layer: the type scale and spacing rhythm as --fm-* tokens, applied through the fleet SCSS files (chrome bar, rails, panes, detail) — replacing per-file literals with ladder tokens; the motion-language tokens (durations/easings per class, reduced-motion collapse) land here for the non-chip surfaces (rails/drawers/reveal). Zero CSS-in-JS throughout; both-theme via the token layer.

Acceptance Criteria

  • Type scale + spacing rhythm exist as tokens and the fleet skin files consume them — no orphan px literals for laddered properties in the touched files.
  • The density ladder renders: roster-scale surfaces vs drilled surfaces use their designated steps (spot-checked live at both densities).
  • Motion tokens applied to reveal/dismiss surfaces with reduced-motion collapse proven (existing e2e/pins stay green).
  • check-theme-surfaces green; #14618 baseline captures the laddered chrome (or the capture list rides the PR if #14618 lands later).

AC-4 disposition (2026-08-21, post-review — PR #17491 RA-3): satisfied in-PR via the stated alternative, upgraded: the committed visual pins themselves (AgentCardSynthesisRenderNL dark+light across six card widths, FleetCockpitBarCompositionNL, FleetCockpitDrillRoundTripNL) are re-baselined ON the laddered chrome as the reviewed design change — the capture doesn't ride the PR as a list, it lands as pixels. #14618's live intake narrowed its surviving scope away from baseline capture; it is no longer cited as this AC's owner.

Contract Ledger Matrix

Backfilled per PR #17491 review RA-3 — the consumed-token contract this pass introduces:

Target Surface Source of Authority Behavior Fallback Docs Evidence
--fm-text-display/body/detail/micro/chrome — five font shorthand role tokens, shell root TOKENS.md §04 type-roles row (values) + SSOT §06 T1 (ladder) Surfaces consume via font: var(--fm-text-*); weight rides the shorthand only where the role states it (display 600); a deviating site re-declares AFTER the role, site-visibly None — the roles are the floor; a new font-size literal in fleet SCSS is a contract violation (greppable), recorded exceptions annotate in place TOKENS.md implementation-shape clause (decided on this ticket) check-theme-surfaces census; the zero-literal grep (two annotated survivors); re-baselined visual pins both skins
--fm-text-chrome-tracking TOKENS.md type-roles row (the chrome role's non-font half, decided on this ticket) Chrome-tier sites bind tracking through the slot; text-transform: uppercase stays a site declaration n/a Same clause Census + live computed-style probes (.88px at 11px)
--fm-space-1..4 TOKENS.md spacing-rhythm row On-ladder padding/gap/margin members bind the tokens — including on-ladder halves of mixed shorthands; genuinely off-rhythm values are per-file header-recorded exceptions deferred to #17268/#17211 Recorded exceptions render unchanged Per-file §04 rhythm records The RA-1 sweep grep (zero unbound on-ladder members in touched files)
--fm-motion-panel / --fm-motion-fast TOKENS.md FM-motion-aliases row FM-scoped surfaces read the aliases; the vocabulary-layer reduced-motion collapse (_motion.scss) is inherited, never re-implemented; --motion-base stays a sanctioned direct vocabulary read (no alias contracted) Alias fallbacks carry the vocabulary values (280ms/120ms) TOKENS.md + in-file notes FmReducedMotionCollapse.spec.mjs — both witnesses: hover tier AND the panel-reveal tier (switcher menu + manager drawer, 280ms rendered / 0ms + gated-off collapsed)
STRUCTURAL_FM_TOKENS census (18 members) buildScripts/util/check-theme-surfaces.mjs Deleting any contracted structural member fails the build even while unconsumed n/a In-file census comments unit/ai/buildScripts tree (467 specs)

Out of Scope

The spec (#17263) · the chip family (#17264) · #17211's specific defect fixes (already claimed; this ticket coordinates, never collides — if #17211 lands first, this pass consumes its fixes into the ladder) · dashboard theme layer (#17242).

Related

Epic #14560 (parent) · #17263 (spec) · #17264 (sibling) · #17211 (defect sibling, claimed by @neo-opus-grace) · #14618 (evidence instrument).

Live latest-open sweep: latest 20 open checked 2026-08-16T22:22Z, no equivalent; A2A herd-window sweep clean.

Origin Session ID: 71baabc5-3ebe-46ff-99ce-a301e78cb7c5

Retrieval Hint: query_raw_memories("cockpit typography density hierarchy ladder tokens section 04 pass")

tobiu referenced in commit 661c92a - "feat(fleet): five type roles, the spacing rhythm and FM motion aliases become real tokens (#17265) (#17491) on Aug 21, 2026, 10:19 PM
tobiu closed this issue on Aug 21, 2026, 10:19 PM