Skip to content

feat(ui): Visual System 2.0 — T5 detail polish (six chapters) - #2538

Merged
jackwener merged 17 commits into
mainfrom
feat/visual-system-t5-polish
Aug 9, 2026
Merged

feat(ui): Visual System 2.0 — T5 detail polish (six chapters)#2538
jackwener merged 17 commits into
mainfrom
feat/visual-system-t5-polish

Conversation

@jackwener

Copy link
Copy Markdown
Member

Summary

Task #173 — the six-chapter detail-refinement program over the 2.0 foundation, 17 commits, each individually gated (typecheck / ui build / lint / format / dead-css).

  • A · State feedback: DESIGN.md §10 ratified (three empty-state tiers with an anti-inflation lock, loading protocol keyed on structural predictability, the search/filter clear-action rule with its rationale). All 39 EmptyState sites conformed (24 fixed — including a filter dead-end with a disabled exit, and five WeChat dialog states untangled into Spinner/Banner/tier-3); memory page's hand-rolled empties migrated; MCP loading text → row-shaped skeletons; onboarding's static first-paint bars → pulsing Skeletons; dead data-pending attributes → native isLoading.
  • B · Interaction completeness: the never-defined --ease-standard retired from all five references (product scale or by-value lockstep); seven keyboard-focus gaps closed; one global prefers-reduced-motion rule for real users; hover washes converged to a two-lane rule (§9).
  • C · Icons & alignment: the five-rung ICON_SIZE scale (meta 13 / control 14 / chrome 16 / empty 20 / plate 28) across 226 glyph sites — 96% of sized sites move ≤1px; 56 unsized sites (24px defaults and the squashed-in-slot class) fixed; plate ladder named with a 58–64% fill convention; one right-edge cap for settings row ends.
  • D · Type & spacing: the orphan section-header system deleted; permission center rejoins the sm tier; heading-as-row-label fixed; title→subtitle pairs at one 2px gap; off-ladder tracking zeroed; the 11px composer tooltip ratified as a documented Astryx-lockstep exception.
  • E · Dialect cleanup: the import dialog fully translated from vendor tokens onto the product contract; the paired QR dialogs share one --qr-frame-size and width.
  • F · High-perception steals: one app-wide scrollbar recipe (both reference systems' convergent solution); quiet tabular tab counters — with the references' mono component rejected by the Role-Not-Axes rule, reasoning in-source.

Verification

  • Geometry round (second agent, same-methodology census with settle wait): six fixtures button/svg counts identical to main; zero control escape; overflow probes clean. Two interim census alarms were falsified as probe timing bias (no settle wait bites the slower-rendering side) — methodology now recorded.
  • Focus-ring clipping probe found three real classes → fixed via inset rings (breadcrumb, titlebar strip, turn-footer actions); scroll-to-bottom's identical clip is vendor-internal (upstream item, with popper/bubble themeProps asks).
  • Known follow-ups (not in this PR): skills-page loading signal through the app-shell hook; 4px chat-subtree horizontal overflow (present on main, T6 candidate); three transient-state screenshot verifications (conditional surfaces, supplementary).

Merged under the owner's no-CI-wait directive; CI runs post-merge, fix-forward.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant