Skip to content

Add ⌘K command palette with Liquid Glass, replacing tab search - #22

Merged
ragojose merged 3 commits into
mainfrom
ragojose/cmdk-search-palette
Aug 11, 2026
Merged

ragojose merged 3 commits into
mainfrom
ragojose/cmdk-search-palette

Conversation

@ragojose

Copy link
Copy Markdown
Owner

Replaces the ⇧⌘A tab-search dropdown with a centered cmdk-style ⌘K command palette (src/bro_palette.mm): one fuzzy-ranked list over open tabs, recently closed tabs, browsing history, and app commands derived from the main menu (titles, shortcuts, and enablement come from the existing validateMenuItem: machinery), plus a pinned search-the-web / go-to-URL fallback row reusing the address bar's heuristic, now extracted as BroResolveQueryToURL. ⇧⌘A and the tab strip's button still work, opening the same palette scoped to tabs; Tab/Shift-Tab and arrows cycle the selection with VoiceOver announcements, and the backdrop is real Liquid Glass (NSGlassEffectView tinted near #000) on macOS 26+ with an NSVisualEffectView fallback below.

The strip's search button is restyled to match the toolbar buttons (28pt magnifying glass), the four trailing icons get equal spacing, and search + downloads hide at rest and fade in on hover over their shared zone, with the download-start pulse routed through the reveal.

Also includes the motion/design-system pass: BroTextMorphView animated tab titles, shared BroHoverHighlightGroup hover treatment across the toolbar and downloads rows, unified BroApplyElevation/BroOverlayShow surfaces, and tokenized tab text metrics.

Verified by building (CMake/Ninja) and driving the app: palette open/filter/activate for every row kind, tabs-scope entry points, hidden-icon hover reveal, and the glass rendering.

🤖 Generated with Claude Code

ragojose and others added 3 commits August 11, 2026 11:46
The ⇧⌘A tab search dropdown becomes a centered cmdk-style palette
(src/bro_palette.mm): one fuzzy-ranked list over open tabs, recently
closed tabs, browsing history, and app commands derived from the main
menu, with a pinned search-the-web / go-to-URL fallback row reusing the
address bar's heuristic (extracted as BroResolveQueryToURL). ⌘K opens
the full palette; ⇧⌘A and the strip's search button open it scoped to
tabs. Tab/Shift-Tab cycle the selection and keyboard moves are announced
to VoiceOver. The backdrop is NSGlassEffectView tinted near #000 on
macOS 26+, with an NSVisualEffectView approximation below.

The strip search button matches the toolbar buttons (28pt, magnifying
glass) and the four trailing icons share equal spacing; search and
downloads hide at rest and reveal on hover over their zone, with the
download pulse routed through the reveal.

Also lands the motion/design-system pass: BroTextMorphView animated tab
titles, shared BroHoverHighlightGroup hover treatment across toolbar and
downloads rows, BroApplyElevation/BroOverlayShow surfaces, and unified
tab text metrics.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The window's behind-window blur (contentView NSVisualEffectView) was fully
covered by an opaque black tint. Split that backdrop at the toolbar line:
the chrome row now wears a permanent 60% black scrim — the same tint as the
command palette's glass — and the browser-area tint cross-fades down to that
scrim whenever every visible pane is blank, so new tabs read as dark glass
over the desktop. The fade hooks into UpdateTabContainerVisibility, animates
via the view animator so rapid tab flips retarget cleanly, and collapses to
an instant switch under Reduce Motion.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ragojose
ragojose merged commit 72f29ad into main Aug 11, 2026
1 check passed
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.

1 participant