4.3 KiB
4.3 KiB
Motion Accessibility And Selection Pass
- Status:
completed - Owner:
codex - Date:
2026-03-25
Goal
Polish the remaining low-level interaction motion gaps called out in the motion review, with an
emphasis on reduced-motion correctness, selection-state feedback, and bringing lower-tier
components closer to the established Command / Combobox / Tabs motion quality bar.
Scope
- In scope:
- add explicit reduced-motion handling for continuous loader animation surfaces
- soften
CheckboxandRadioGroupselection feedback with short scale/fade indicator motion - give
Tooltipa light rise to match the rest of the overlay family - reduce layout-heavy motion where it is currently doing too much work in
Accordion,Sparkbar, andProgress - polish
Selectlist motion so it feels closer toComboboxandCommand - update focused tests and stories when the behavior contract changes
- Out of scope:
- introducing new animation dependencies
- expanding public APIs unless a small compatibility-safe prop is justified
- broad visual restyling unrelated to motion or reduced-motion behavior
Constraints
- Respect
DESIGN.mdand keep one calm, spatial motion language. - Treat
packages/ui/src/components/progress*as main-thread-owned because reduced-motion and motion-refinement requirements both land there. - Do not revert or overwrite unrelated in-progress repo changes.
- Preserve static-motion behavior through
data-motion="static"and make OS-level reduced motion behave equivalently for continuous animation surfaces.
Ownership
- Main thread:
packages/ui/src/components/progress*- final review, integration, and validation
- Worker 1:
packages/ui/src/components/spinner.tsxpackages/ui/src/components/skeleton.tsx- nearest tests/stories if needed
- Worker 2:
packages/ui/src/components/checkbox*packages/ui/src/components/radio-group*- nearest tests/stories if needed
- Worker 3:
packages/ui/src/components/tooltip*- nearest tests/stories if needed
- Worker 4:
packages/ui/src/components/accordion*packages/ui/src/components/sparkbar*- nearest tests/stories if needed
- Worker 5:
packages/ui/src/components/select*- nearest tests/stories if needed
Plan
- Write the execution plan and keep
Progressunder main-thread ownership. - Dispatch five isolated workers for loaders, selection controls, tooltip, accordion/sparkbar, and select.
- Implement
Progressreduced-motion and motion refinements locally. - Review and integrate the worker slices, then fix any shared token or contract issues.
- Run focused tests for the changed surfaces and a narrow typecheck/docs pass if needed.
Validation
pnpm --filter @ai-ui/ui exec vitest run packages/ui/src/components/progress.test.tsxpnpm --filter @ai-ui/ui exec vitest run packages/ui/src/components/checkbox.test.tsx packages/ui/src/components/radio-group.test.tsxpnpm --filter @ai-ui/ui exec vitest run packages/ui/src/components/tooltip.test.tsxpnpm --filter @ai-ui/ui exec vitest run packages/ui/src/components/accordion.test.tsx packages/ui/src/components/sparkbar.test.tsxpnpm --filter @ai-ui/ui exec vitest run packages/ui/src/components/select.test.tsxpnpm --filter @ai-ui/ui exec tsc --noEmit
Status Log
2026-03-25 17:18started the focused pass after motion review identified reduced-motion gaps, low-fidelity selection feedback, and one remainingSelectpolish gap2026-03-25 17:19wrote the execution plan, keptprogress.*under main-thread ownership, and dispatched five isolated workers for loaders, selection controls, tooltip, accordion/sparkbar, and select2026-03-25 17:22landed the main-threadProgressrefactor: reduced-motion detection now collapses indeterminate animation, the linear bar scales withtransforminstead of animating layout width, and segmented indeterminate progress falls back to a static partial fill when motion is reduced2026-03-25 17:24reviewed and accepted worker slices for loaders, selection controls, tooltip, accordion/sparkbar, and select polish2026-03-25 17:25validated the combined result set with focused component tests pluspnpm --filter @ai-ui/ui exec tsc --noEmitandpnpm --dir apps/docs exec tsc --noEmit