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>
This commit is contained in:
funman300
2026-07-15 13:57:21 -07:00
parent 7c2daa1e32
commit c8fc3e7a09
8 changed files with 598 additions and 135 deletions
@@ -573,20 +573,6 @@ pub(super) fn action_button_metrics() -> (UiRect, Val, Val) {
}
}
/// Metrics for the touch bar's enlarged Undo / Draw / Hint trio (Phase F).
/// 96×64 px targets — comfortably past the 44 px accessibility floor and
/// big enough to hit one-handed without looking. Only the touch layout
/// spawns primary buttons, so no desktop branch is needed; the desktop
/// values exist purely so host-side tests can exercise the touch spawn
/// path with sensible numbers.
pub(super) fn primary_action_button_metrics() -> (UiRect, Val, Val) {
(
UiRect::axes(Val::Px(10.0), Val::Px(8.0)),
Val::Px(96.0),
Val::Px(64.0),
)
}
pub(super) fn spawn_action_button_label(
parent: &mut ChildSpawnerCommands,
label: &str,