Skip to content

fix(components): respect prefers-reduced-motion in animations (f951529)#279

Merged
IgorShevchik merged 1 commit into
mainfrom
sync/nuxt-f951529
Jul 15, 2026
Merged

fix(components): respect prefers-reduced-motion in animations (f951529)#279
IgorShevchik merged 1 commit into
mainfrom
sync/nuxt-f951529

Conversation

@IgorShevchik

Copy link
Copy Markdown
Collaborator

Syncs upstream nuxt/ui commit f951529fix(components): respect prefers-reduced-motion in animations (#6723).

What

Wraps every looping animate-* utility in the motion-safe: variant and adds motion-reduce: fallbacks so animations honor the user's prefers-reduced-motion setting.

b24ui port

  • src/theme/chat-messages.ts — the three bounce indicator dots → motion-safe:.
  • src/theme/chat-shimmer.tsanimate-[shimmer…] / rtl:animate-[shimmer-rtl…]motion-safe:; base gains motion-reduce:bg-none motion-reduce:text-muted (static muted text).
  • src/theme/progress.ts — all 10 compoundVariants indicator animations → motion-safe: (both data-[state=indeterminate]:animate-* and the …:rtl:animate-* halves), including the fork-extra progressbar-loading / progressbar-loading-vertical variants; base indicator gains motion-reduce:data-[state=indeterminate]:animate-pulse.
  • src/theme/table.ts — all 5 loading thead after:animate-* (+ rtl:) → motion-safe:, including the fork-extra progressbar-loading variant; base loading thead gains motion-reduce:after:inset-x-0 motion-reduce:after:animate-pulse.
  • Marquee — N/A. b24ui has no Marquee component, so the upstream Marquee theme/docs hunks were skipped.
  • Docs — reduced-motion ::tip added to chat-shimmer.md, progress.md, table.md.

Tests

Theme-class changes only. Snapshots regenerated for the directly-edited components and the components that embed them — ChatTool / ChatReasoning render ChatShimmer, and Toast renders a Progress bar: 118 snapshots across 14 spec files (nuxt + vue variants), all diffs pure motion-safe: / motion-reduce: class additions.

Verify (CI=true)

dev:prepare · lint · typecheck · test · build — all green. Suite 5485 passed / 6 skipped (unchanged).

Ledger: cursor advanced to f951529; previous entry 17196ec reconciled to PR #278.

🤖 Generated with Claude Code


Generated by Claude Code

Syncs upstream nuxt/ui commit f951529 (#6723) — wrap looping animate-*
utilities in the motion-safe: variant and add motion-reduce: fallbacks so
animations honor the user's prefers-reduced-motion setting.

- chat-messages.ts: bounce indicator dots → motion-safe:
- chat-shimmer.ts: shimmer + rtl-shimmer → motion-safe:; base gains
  motion-reduce:bg-none motion-reduce:text-muted
- progress.ts: all 10 indicator animations (incl. fork-extra
  progressbar-loading / -vertical) → motion-safe:; base indicator gains
  motion-reduce:data-[state=indeterminate]:animate-pulse
- table.ts: all 5 loading thead animations (incl. fork-extra
  progressbar-loading) → motion-safe:; base loading thead gains
  motion-reduce:after:inset-x-0 motion-reduce:after:animate-pulse
- docs: reduced-motion ::tip added to chat-shimmer / progress / table
- Marquee N/A (b24ui has no Marquee component)

Snapshots regenerated (118 across 14 spec files — ChatTool/ChatReasoning
embed ChatShimmer, Toast embeds Progress). Suite: 5485 passed / 6 skipped.

Ledger: cursor → f951529; previous entry 17196ec reconciled to PR #278.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JS8ypVfQSFzYVZzkTHhURb
@IgorShevchik
IgorShevchik merged commit ab25ae6 into main Jul 15, 2026
1 check passed
@IgorShevchik
IgorShevchik deleted the sync/nuxt-f951529 branch July 15, 2026 06:57
IgorShevchik added a commit that referenced this pull request Jul 15, 2026
…280)

Syncs upstream nuxt/ui commit 2cc2849 (#6729) — add a sideEffects field to
package.json so consumer bundlers can tree-shake unused JS barrel exports
while preserving CSS side effects.

- package.json: add "sideEffects": ["**/*.css"] after "main"
  (glob covers dist/runtime/index.css + .nuxt/b24ui.static.css)
- no dependency change → pnpm-lock.yaml untouched

Manifest metadata only. Suite: 5485 passed / 6 skipped.

Ledger: cursor → 2cc2849; previous entry f951529 reconciled to PR #279.


Claude-Session: https://claude.ai/code/session_01JS8ypVfQSFzYVZzkTHhURb

Co-authored-by: Shevchik Igor <noreply@anthropic.com>
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.

2 participants