feat(engine): glass bar accessibility + drag duck-away #187

Merged
funman300 merged 2 commits from feat/glass-bar-a11y into master 2026-07-15 22:23:25 +00:00
Owner

Follow-up to #186, two commits:

Accessibility

  • New Settings::reduce_transparency_mode (Accessibility toggle row): swaps every GlassSurface's gradients for a flat opaque BG_ELEVATED fill — nothing shows through. Serde-default keeps old settings.json compatible.
  • High-contrast mode now also boosts the glass: near-opaque fill, rim brightened to BORDER_SUBTLE_HC luminance. Both applied in place by settings_plugin::update_glass_surfaces (same pattern as the HC border/background appliers).

Drag duck-away

  • While a card drag is committed, the floating bar slides below the screen edge and returns on release, so it never occludes a bottom-row drop target. Animates UiTransform translation (no layout dirtying mid-drag; Node::bottom stays owned by the safe-area anchor). Snaps under reduce-motion.

994 lib tests, clippy -D warnings, Android target check all green.

🤖 Generated with Claude Code

Follow-up to #186, two commits: **Accessibility** - New `Settings::reduce_transparency_mode` (Accessibility toggle row): swaps every `GlassSurface`'s gradients for a flat opaque `BG_ELEVATED` fill — nothing shows through. Serde-default keeps old settings.json compatible. - High-contrast mode now also boosts the glass: near-opaque fill, rim brightened to `BORDER_SUBTLE_HC` luminance. Both applied in place by `settings_plugin::update_glass_surfaces` (same pattern as the HC border/background appliers). **Drag duck-away** - While a card drag is committed, the floating bar slides below the screen edge and returns on release, so it never occludes a bottom-row drop target. Animates `UiTransform` translation (no layout dirtying mid-drag; `Node::bottom` stays owned by the safe-area anchor). Snaps under reduce-motion. 994 lib tests, clippy -D warnings, Android target check all green. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
funman300 added 2 commits 2026-07-15 22:23:18 +00:00
New Settings::reduce_transparency_mode (serde-default, Accessibility
toggle row) swaps every GlassSurface's gradients for a flat opaque
BG_ELEVATED fill; high-contrast mode now also boosts the glass fill
opacity and rim luminance to BORDER_SUBTLE_HC levels. Both applied by
settings_plugin::update_glass_surfaces, which retargets the gradients
in place on toggle or on newly spawned glass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat(engine): duck the glass tab bar during card drags
Test / fmt (pull_request) Successful in 4s
Test / test (pull_request) Successful in 4m24s
4b484f899a
While a drag is committed the floating bar slides below the screen
edge (UiTransform translation - no layout dirtying, no fight with the
safe-area anchor over Node::bottom) so it never occludes a drop target
on the bottom tableau rows; it slides back on release. Same tween rate
as the label reveal, snaps under reduce-motion. Desktop docked bar is
untouched (no TabBarDuck component).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
funman300 merged commit a0776f79b1 into master 2026-07-15 22:23:25 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: funman300/Ferrous-Solitaire#187