Captive Portal: Add VLAN Group form squeezes into a 3-line button at 390px #6
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Persona: superadmin@playwright.test
URL: https://central-dev.vancs.org/app/network/portal (route:
unifi.portal.settings)Steps:
Expected: The Name / VLAN ID / Description fields and the "Add VLAN Group" submit button lay out usably at a 390px viewport — either stacking to one column or otherwise giving the button enough width for its label.
Actual: The form uses a hardcoded
grid grid-cols-3 gap-3 items-end(Unifi/Portal.vue, "Add VLAN Group form", nosm:prefix / no mobile collapse — unlike the sibling "Add mapping" and "Add MAC" forms just below it in the same file, which correctly usegrid-cols-2 sm:grid-cols-3). At 390px this leaves each column ~93px wide, so the "Add VLAN Group" button (a plain.btn-primary, nowhitespace-nowrap) wraps its own label across 3 lines and balloons to ~76px tall. Not a hard cutoff/overflow, but a squeezed, ugly control that's hard to tap precisely. The equivalent "Edit" row for an existing VLAN group (same component) is fine since its Save/Cancel buttons have short one-word labels.Fix suggestion: match the pattern already used two forms down in the same file —
grid-cols-2 sm:grid-cols-3(orgrid-cols-1 sm:grid-cols-3per the shell's own two-column convention) — on both the "Add VLAN Group" grid and the sibling "Edit row" grid (grid grid-cols-3 gap-3 items-end, same file) which has the identical hardcoded-3-column issue and would show the same symptom once a longer label is present.Console errors: none.
Filed automatically by the Claude-driven QA sweep (
/opt/qa-agent). The marker below dedupes repeat reports — do not edit it.Root cause: exactly as filed, including the reference pattern.
Unifi/Portal.vuehad two grids hardcodedgrid grid-cols-3 gap-3 items-endwith nosm:collapse — the Add form and the Edit row — while "Add mapping" and "Add MAC" further down the same file already usegrid-cols-2 sm:grid-cols-3.Fix:
grid-cols-2 sm:grid-cols-3;col-span-2 sm:col-span-3;col-span-2 sm:col-span-1withwhitespace-nowrap w-full sm:w-auto, so on a phone it gets the full width instead of a ~145px half-column. It is the longest button label on the page, so the shell'swhitespace-nowraprule applies to it regardless.Measured in the dev browser, same DOM, pre-fix classes restored via JS for the before figures:
Your 93px / 76px / three-line measurements were spot on.
Test —
tests/Feature/MobileLayout390Test.php: no grid inPortal.vuemay be an unprefixedgrid-cols-3(stated as an invariant so the next one cannot slip in), and the Add VLAN Group label may not wrap. Not added totests/Browser/mobile_table_overflow.py— nothing overflows the viewport here, before or after, so that probe reads 390/390 either way and would be a hollow pass.Where the code is:
central-unifi's Vue lives in the shell (dashboard-shell/resources/js/Pages/Unifi/Portal.vue), so there is no commit in this repo — the fix is dashboard-shelld854710onfeature/email-provider-seam, pending that branch's push. Closing here since nothing in central-unifi changes; reopen if it is not right once the branch lands.