Forums Bug Reports Thread

Course form uses fixed 2- and 3-column grids with no mobile stacking (Law 5)

Patrick Bass · Jun 6 · 11 · 1 Locked
[Minor] [Normal Priority] [Bug Fixed] [Always Reproduces]
🚀 OP Jun 6, 2026 6:45pm

Area: mobieusLearn (audit p8) · Surface: /admin/learn/courses/new and /admin/learn/courses/{id}/edit (shared _form.php) · Dimension: mobile · Severity: minor

On a phone the 3-up credit fieldset (Hours, Kind, Expires-after-months) squeezes three number/text inputs into ~110px each, making them cramped and hard to tap/read. The 2-up Language/Estimated-minutes row has the same issue at smaller scale. Other learn forms that use fieldsets face the same fixed-column problem.

Evidence

platform/templates/learn/admin/courses/_form.php:94 `<div style="display:grid; grid-template-columns: 1fr 1fr; gap:0.9rem;">` (Language + Estimated minutes) and :107 `<fieldset style="display:grid; grid-template-columns:1fr 1fr 1fr; gap:0.7rem;...">` (Hours / Kind / Expires-after credit fields), with the URL field spanning all 3 (:134 `grid-column: 1 / span 3`). These are inline-style fixed column counts with no `@media` query and no `minmax`/`auto-fit`. The admin layout body has no .mobile-v2 class (layouts/admin.php:56), so the global `.mobile-v2 .form-grid{flex-direction:column}` rule (mobile-v2.css:2750) does not apply.

Suggested fix. Convert the fixed `grid-template-columns: 1fr 1fr 1fr` / `1fr 1fr` to `repeat(auto-fit, minmax(160px, 1fr))`, or add a `@media (max-width:600px)` block that collapses these grids to a single column. The analytics KPI grid already uses the auto-fit pattern (analytics.php:28) and is a good template.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 5:44am

Resolved — fixed and deployed. Commit 059d6bf29b6f, shipped dev-first then to all tenants on 2026-06-06.

Made both form grids responsive in _form.php: converted the Language/Estimated-minutes 2-col grid to repeat(auto-fit, minmax(160px,1fr)) per the analytics.php template, and gave the 3-col credit fieldset a .lrn-credit-grid class with a @media (max-width:600px) block that collapses it to 1 column (resetting the span-3 children to grid-column 1/-1 so they stay full width). php -l clean.

Status: fixed. Thread closed and locked.


Patrick Bass
@mobieus

Log in or register to reply to this thread.