Skip to content

fix(settings): keep settings panels within the modal on narrow windows - #777

Merged
luanfreitasdev merged 1 commit into
4.xfrom
fix-settings-overflow
Nov 10, 2026
Merged

luanfreitasdev merged 1 commit into
4.xfrom
fix-settings-overflow

Conversation

@luanfreitasdev

Copy link
Copy Markdown
Member

Problem

On smaller windows the Settings modal clipped its content on the right edge. Most visible in Appearance → Window transparency (blur): the "Glass mode" select overflowed the card, the opacity sliders and values crowded the edge, and labels wrapped onto two lines. The same overflow affected rows with fixed-width controls in Capture, Integrations, Shortcuts and App.

Root cause: the content column had no min-w-0, so it grew to the intrinsic width of fixed-width controls (w-52 / w-64) and the modal's overflow-hidden clipped it.

Changes

  • SettingsModal: content column can shrink (min-w-0), panel hides horizontal overflow.
  • SettingsRow: rows wrap; the control drops below the label when there is no room (ml-auto max-w-full).
  • Fixed-width controls capped with max-w-full.
  • Window transparency card: auto_minmax(0,1fr) grid so the select shrinks/truncates, no-wrap labels, preview wraps above the controls when the card is narrow.
  • SettingsSidebar: icon-only (with title tooltip, label kept as sr-only) below 640px, so the menu does not take a third of the modal.

Testing

  • npm run build passes.
  • Checked every Settings panel at 760×620 (default), 639×595 and 520×560: no element extends past the modal edge.

- Let the content column shrink (min-w-0) and wrap rows so fixed-width
  controls no longer overflow the modal and get clipped.
- Cap fixed-width controls with max-w-full.
- Window transparency card: shrinkable grid column for the glass mode
  select, no-wrap labels, wrap the preview above the controls when the
  card is too narrow.
- Collapse the settings sidebar to icons below 640px.
@luanfreitasdev
luanfreitasdev merged commit f3b4cdd into 4.x Nov 10, 2026
3 checks 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