Skip to content

(workflowbar-autohide) Autohide the workflow bar with retro slide + phosphor#244

Merged
krissen merged 3 commits into
devfrom
feature/workflowbar-autohide
Jul 17, 2026
Merged

(workflowbar-autohide) Autohide the workflow bar with retro slide + phosphor#244
krissen merged 3 commits into
devfrom
feature/workflowbar-autohide

Conversation

@krissen

@krissen krissen commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

Owner-requested follow-up: the workflow bar auto-hides to reclaim screen real estate, Lightroom-style.

  • Autohide on by default: the bar slides away after ~3 s of inactivity; a 5 px top-edge hover zone (subtle hairline) brings it back, as do step switches (Cmd+1–5 / hand-offs), keyboard focus, and open dropdowns (which also pause the timer).
  • When hidden the bar overlays the top of the layout host (absolute) so FlexLayout never re-layouts during show/hide — only a transform animates.
  • Retro effect: slide + a short CRT-phosphor glow pulse in the theme accent; prefers-reduced-motion gets a motion-free opacity variant. No new theme keys.
  • New independent preference "Autodölj arbetsflödesraden" (default on; disabled state when the bar itself is hidden). Autohide off = today's always-visible behavior.

Testing

…hosphor

Default-on autohide: the workflow bar slides out of flow and overlays the
top of the layout host (Lightroom module-row style), so the workspace
reclaims the height and FlexLayout never re-layouts as it shows/hides. It
returns on a step change, a top-edge hover-zone, or keyboard focus; an open
dropdown, focus-within, or the pointer resting on it pause the hide timer.

Timer logic lives in a headless hook (useWorkflowBarAutoHide); the slide and
accent phosphor pulse are CSS-only using existing theme tokens and are
neutralised under prefers-reduced-motion. A new independent preference
(workspace.workflowBarAutoHide, default true) offers the always-visible
opt-out, separate from showWorkflowBar.
@krissen krissen added the enhancement New feature or request label Jul 17, 2026
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

krissen added 2 commits July 18, 2026 00:38
The autohide bar and its hover-zone overlay the layout host at z 6-7, but the
StartupLanding welcome card fills that host at --z-sticky (200) with default
pointer-events, so on the first-run / empty workspace it painted over the row
and swallowed its clicks — leaving a mouse user no way to reach the bar. Raise
the overlay + hover-zone to --z-sticky + 100 (still below --z-modal so modals
win). Update the StartupLanding comment to describe the new ordering.
…eveal on focus

The hidden row was translateY(-100%) + aria-hidden, but its buttons stayed in
the tab order (focusable-inside-aria-hidden antipattern) and onFocus only
paused the timer without revealing. Replace aria-hidden with `inert` while
hidden — the whole row leaves the tab order and a11y tree and cannot take focus
or clicks; the catch-strip and Cmd+1..5 step changes remain the ways back in.
onFocus now also reveals, so a Tab into a still-visible, just-idle row surfaces
it before it slides away. Tests cover both: inert toggles with hidden state and
the hover-zone restores it, and focus reveals + pauses the hide timer.
@krissen
krissen merged commit f9fb91f into dev Jul 17, 2026
2 checks passed
@krissen
krissen deleted the feature/workflowbar-autohide branch July 17, 2026 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant