Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3214 — The narrow-screen menu of /ui and /cockpit closes on Escape, on a choice and on its backdrop, and returns focus to its toggle

Give /ui and /cockpit one narrow-screen drawer shell (toggle, panel, backdrop) that each surface fills with its own entries: Escape, the backdrop and choosing an entry close it, focus returns to the toggle, the page behind does not scroll while it is open, it opens with scripts off, and only one menu toggle shows at a narrow width; the Cockpit gains the narrow navigation it lacks, and cockpit-probe holds the behaviour at every declared width.

PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné souběžně

Part of the-ui-works-on-a-phone — Every first-party surface works on a phone, and the primary flow is accepted there.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3214 bude přijato.

Cíl

Give /ui and /cockpit one narrow-screen drawer shell (toggle, panel, backdrop) that each surface fills with its own entries: Escape, the backdrop and choosing an entry close it, focus returns to the toggle, the page behind does not scroll while it is open, it opens with scripts off, and only one menu toggle shows at a narrow width; the Cockpit gains the narrow navigation it lacks, and cockpit-probe holds the behaviour at every declared width.

Proč

On 2026-10-08 the owner wrote that drawers do not work on mobile and that this harms adoption; the conversation names no reproduction (see open question Q1). The site's navbar collapse has a behaviour spec (nav-collapse.mjs); the UI's sidebar checkbox has none. Proposed in ADR 0215 (A phone is the baseline width of every first-party surface, and the primary flow is accepted there before a surface grows) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c197#0, chatgpt-majordomus:c197#1, chatgpt-majordomus:c193#9.

Aktuální stav

Verified on master 707a04c7ce8: only /ui has a narrow menu, the mj-ui-menu checkbox (apps/majordomus-cli/src/ui/shell.rs, share/ui/src/ui.css); the Cockpit's sidebar is `sticky hidden ... lg:block` (share/cockpit/src/cockpit.css), so below 1024 px its sections are reached only through the JavaScript Ctrl-K palette; scripts/lib/interaction-specs/nav-collapse.mjs holds the site navbar's collapse at one width; I1016 (the Cockpit works on a phone) is BLOCKED on I1009.

Cílový stav

One drawer shell rendered by ui/shell.rs and cockpit/view.rs, each passing its own entries, and scripts/lib/cockpit-probe.mjs driving it on /ui and /cockpit at every width /api/v1/design declares.

Rozsah

  • apps/majordomus-cli/src/ui/shell.rs
  • apps/majordomus-cli/src/cockpit/view.rs
  • share/ui/ui.js
  • share/ui/src/ui.css
  • docs/MAJORDOMUS_UI.md

Mimo rozsah

  • The behaviour of the site navbar's collapse
  • Any route or entry change

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • With scripts off the drawer still opens on /ui and /cockpit and every entry is reachable
  • The ui audit and the navbar comparison of I2770 stay green

Validace

  • scripts/cockpit-probe --quick
  • scripts/ui audit --only /ui
  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib ui::shell

Požadované důkazy

  • cockpit_probe_drawer_every_width

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3214.yaml. Read it back with majordomus plan show I3214.

Prohledává názvy a popisy všech stránek, které tento web publikuje.