Skip to content

More responsive modals + cap member picker height#81

Merged
SiteRelEnby merged 1 commit into
mainfrom
responsive-modals
May 26, 2026
Merged

More responsive modals + cap member picker height#81
SiteRelEnby merged 1 commit into
mainfrom
responsive-modals

Conversation

@SiteRelEnby
Copy link
Copy Markdown
Contributor

Two UX findings from load-testing on a large system / large monitors.

Member picker no longer dominates the modal

MemberSelect's chip list had no height cap, so a roster of hundreds (the load-test profile) pushed the surrounding controls way below the fold. In the switch modal you had to scroll past every member to reach the Start button.

Now the chip list caps at max-h-[40vh] with its own internal scroll. The custom-status field, the "End all current fronts" toggle, and the Start button stay visible no matter the member count. Applies everywhere the picker is used (tag / group editors too).

Dialogs are no longer 512px on a 2560 monitor

Default DialogContent was sm:max-w-lg (512px), cramped on a 1920+ display. Default now scales to max-w-2xl (672px) at lg+ (>= 1024px viewport):

sm:max-w-lg lg:max-w-2xl

Modals that already opted into a different width via className still win - tailwind-merge resolves the matching breakpoint variant. So sm:max-w-2xl content modals are unchanged.

Worth eyeballing

The 40vh picker cap and 2xl default width are reasonable defaults but subjective. Easy to tweak both numbers if they feel off:

  • 40vh in member-select.tsx -> 45vh / 50vh for a taller picker.
  • lg:max-w-2xl in dialog.tsx -> xl (576px) for less aggressive, 3xl (768px) for wider on huge monitors.

ruff / tsc / eslint clean. Frontend only, no backend changes or migrations.

Two load-test UX findings on large systems / large monitors:

- MemberSelect's chip list had no height cap, so a roster of hundreds
  pushed surrounding controls (notably the Start button in the switch
  modal) far below the fold. Cap it at 40vh with its own scroll; the
  enclosing controls now stay reachable. Applies everywhere the picker is
  used (start-front, tag/group editors).
- Dialogs defaulted to a fixed sm:max-w-lg (512px), cramped on large
  displays. Default now scales to max-w-2xl at lg+ (>=1024px viewport).
  Modals with explicit widths still override via className.
@SiteRelEnby SiteRelEnby merged commit 967d562 into main May 26, 2026
2 checks passed
@SiteRelEnby SiteRelEnby deleted the responsive-modals branch May 26, 2026 02:13
@SiteRelEnby SiteRelEnby mentioned this pull request May 26, 2026
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