feat(engine): floating liquid-glass touch tab bar #186

Merged
funman300 merged 3 commits from feat/glass-tab-bar into master 2026-07-15 21:59:21 +00:00

3 Commits

Author SHA1 Message Date
funman300 c8fc3e7a09 feat(engine): replace docked touch bar with floating glass tab bar
Test / fmt (pull_request) Successful in 7s
Test / test (pull_request) Successful in 4m50s
Touch layout only (desktop bar unchanged): a floating glass pill
(Undo / Draw / Hint / Pause) plus a detached circular Menu button,
margin above the bottom edge on top of the safe-area inset. Draw is
the persistently expanded accent pill (icon + label); other buttons
are icon-only and slide their label out while pressed, snapping under
reduce-motion. Buttons keep the existing marker components so click
handlers, tooltips, focus ring, and chrome toggle work unchanged.
Icons: None degrades to text-fallback labels (MinimalPlugins tests /
SVG regression), keeping the bar fully usable.

Toast stack clearance now derives from TAB_BAR_CLEARANCE_PX; the
legacy touch bar spawn path and primary-button metrics are removed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 13:57:21 -07:00
funman300 7c2daa1e32 feat(engine): add stroke-based SVG icon set for the touch tab bar
Five white 24-box stroke icons (undo/draw/hint/pause/menu) rasterised
through the existing usvg/resvg pipeline; tinted at spawn time via
ImageNode::color. Avoids FiraMono's missing icon glyphs on Android.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 13:42:37 -07:00
funman300 37919cfe17 feat(engine): add ui_glass liquid-glass material module
Layered bevy_ui treatment (sheen gradient, specular BorderGradient rim,
BoxShadow) approximating frosted glass without shaders or backdrop
sampling - WebGL2-safe by construction. Layout callers depend only on
glass_surface() + GLASS_BORDER_PX so the material can be swapped later.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 13:40:39 -07:00