Responsive options layout, toolbar-icon toggles panel, settings link in empty state - #3
Merged
Merged
Conversation
…in empty state - Options page: settings cards are now container-query contexts and each Row stacks (label above control) on narrow widths, switching to side-by-side at >=28rem. Wide controls (shortcut input group, debounce slider, launch row) wrap / flex instead of squishing the label. Fixes the cramped about:addons layout. - Toolbar icon: removed the popup entrypoint so clicking the pinned icon toggles the slide-out panel directly (action.onClicked -> toggleActiveTab). - Empty state: added an "Open settings" link. Content scripts can't call runtime.openOptionsPage, so it sends a new OPEN_OPTIONS message that the background handles. Tests: new EmptyState.test.tsx (settings link sends OPEN_OPTIONS; recent chip runs onPick; no-matches message) and messaging.test.ts (both guards). Suite green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three changes from testing in Firefox.
Responsive options page
The settings page arranged rows by fixed side-by-side layout, which squished labels and wrapped text awkwardly in the narrow
about:addonsoptions view. Now:@container).Rowstacks (label above control) on narrow widths and switches to side-by-side at>=28rem(@md) — so it adapts to the actual available width, not pixels.Toolbar icon toggles the panel
Removed the popup entrypoint, so clicking the pinned icon now opens/closes the slide-out directly via
action.onClicked→toggleActiveTab(already wired in the background). No more intermediate menu."Open settings" link in the empty state
With the popup gone, the empty-state flyout gets an Open settings link. Content scripts can't call
runtime.openOptionsPage, so it sends a newOPEN_OPTIONSmessage that the background handles.Tests
components/__tests__/EmptyState.test.tsx— the settings link sendsOPEN_OPTIONS; a recent chip callsonPick; the no-matches message renders.lib/__tests__/messaging.test.ts— both message guards.npm run compile,npm test(51 pass),npm run build,npm run build:firefoxall green. Verified the built manifests haveaction/browser_actionwith nodefault_popup, and the container-query CSS is emitted.Manual check (Firefox first)
Load
.output/firefox-mv2viaabout:debugging: the toolbar icon toggles the panel; the options page (both inabout:addonsand opened full-width) reflows cleanly with no squished labels; the empty flyout's "Open settings" opens the options page.🤖 Generated with Claude Code