AdminMenu.php). Regrouping it is a later exercise, led by evidence and done with backend. This board covers mechanics only: how a menu of any shape opens, nests and stays findable in the 4b·R shell. Every frame uses sample items. The labels come from the live menu so they feel real, but the grouping is illustrative, not a proposal.| Depth | Technique | Expanded sidebar (232px) | Collapsed (76px rail) | Phone | Good for | Weak at | Default? |
|---|---|---|---|---|---|---|---|
| 1 | Flat labelled list | plain list, icon + label | labelled rail, label under icon | drawer list | up to ~14 entries per login | breaks past the fold: the live full admin has 52 top-level entries | DEFAULT ≤14 |
| 2 | T-a Accordion | groups open in place (chevron) | no native form: a click expands the sidebar to that group | drawer accordion, one open | reading the whole tree; the open path stays visible | long open groups push everything down | DEFAULT expanded |
| 2 | T-b Rail + flyout | accordion (T-a) | hover or click opens a child panel beside the rail | drawer accordion | fast hops; the rail stays 76px wide | needs hover intent and a touch rule | DEFAULT collapsed |
| 2 | T-c Rail + pinned column | rail + 200px column for the current area | the column hides; the rail falls back to T-b | drawer accordion | long sessions inside one area | costs ~200px all the time; overkill for 2–3 children | ALTERNATIVE |
| 3 | T-d Mega flyout (headings → links) | accordion with level-2 headings | wide flyout: level-2 heading, level-3 links, 1–3 columns | drawer accordion with headings | seeing a whole area at once | large panel; dense past ~25 links | DEFAULT collapsed |
| 3 | T-e Column + in-page tabs | column lists level 2; level 3 = tabs on the page | column hides; flyout lists level 2 | accordion to level 2 + chip tabs | moving sideways between sibling pages | level-3 pages must share a frame; more than ~7 tabs scroll | DEFAULT tabs part |
| 3 | T-f Header section switcher | nav goes to level 2; breadcrumb ▾ switches level 3 | same | breadcrumb opens a sheet | deep links; small screens | hidden until you know it is there | COMPLEMENT |
GET /api/v1/admin/me/menu returns (WP-F-02): sections[] → items[] → children[], where children nests the same shape again. The shell never hard-codes a page list./me/preferences) is a backend proposal, not something that exists today.On a phone there is no rail, no flyout and no hover. The menu is a drawer, and only how the drawer nests is open. Tap ☰ to reopen the drawer after navigating.
One group open at a time, and the active group opens on load. Level 2 shows as headings, so there is no nested accordion. The whole path stays visible after you close and reopen the drawer.
One level per screen, with a ‹ back row. It opens where you are, at the active page's parent. It reads cleanly for very long groups, but you lose sight of the whole path.
Level-3 siblings show as chip tabs under the title and scroll sideways. This is the phone form of T-e, and it covers depth 3 without a third drawer level.
| Depth | Default | Alternative |
|---|---|---|
| 1 | Drawer list, rows 44px | — |
| 2 | Drawer accordion, one group open | Drill-down |
| 3 | Accordion with level-2 headings + chip tabs for level 3 | Drill-down (2 pushes) |
Every entry is one click away and nothing nests. It is the simplest form, and it fails on count alone.
sections[].label./me/menu sends, as a 76px rail at 1:1, with the 900px fold marked…
The 900px fold is generous: the browser's own chrome takes about 90px of a 900px laptop screen. Every entry below the line costs a scroll before it can be read, so a 52-entry login needs either nesting (depth 2–3) or a server regroup. The regroup is a separate exercise and out of scope here.
Source: AdminMenu.php super-admin tree as captured for the earlier menu board (phase-1/menu/src/menu_data.py): 8 sections, 52 entries, 111 links. The largest group, Materials, has 13 children.
One level of nesting. The live menu is already this shape: 8 sections, then items, then children. The open question is how level 2 appears when the sidebar is collapsed and when it is expanded.
aria-haspopup. Enter, Space or → opens the panel and focuses its first link. ↑ ↓ Home End move, and Esc or ← return to the rail item.Use this if the backend regroup ever produces areas with sub-groups. The rule throughout: never put an accordion inside an accordion. Level 3 appears as headings and tabs, never as a third collapsible tier.
tablist, with ← → between tabs as in the shadcn Tabs pattern.These apply on top of whichever technique is used.
/me/preferences)./me/menu already omits pages a login cannot open (WP-F-02 golden fixtures: super 109 links, operations 54, edge-quirks 7, none 3).