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.

I2770 — majordomus ui a Cockpit nosí navigační lištu webu: jeden renderer, stejné styly a skripty a porovnání v prohlížeči, které odmítne rozdíl

Udělat z majordomus.dev referenci vzhledu produktu tím, že každá obrazovka majordomus ui a každá stránka Cockpitu dostane vlastní navbar webu: lištu, kterou vykresluje partial webu nad site/data/nav.toml, vyříznutou ze sestaveného webu a zkompilovanou do spustitelného souboru, stylovanou stejným sestavením Tailwindu nad stejnými tokeny, řízenou vlastními skripty webu a držící laťku webu podle srovnání v prohlížeči v obou motivech a při každé deklarované šířce.

HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně

Součást surfaces-never-disagree — Každý povrch promítá stejný stav, říká, kdy byl pozorován, a nevede si vlastní seznam.

Cíl

Udělat z majordomus.dev referenci vzhledu produktu tím, že každá obrazovka majordomus ui a každá stránka Cockpitu dostane vlastní navbar webu: lištu, kterou vykresluje partial webu nad site/data/nav.toml, vyříznutou ze sestaveného webu a zkompilovanou do spustitelného souboru, stylovanou stejným sestavením Tailwindu nad stejnými tokeny, řízenou vlastními skripty webu a držící laťku webu podle srovnání v prohlížeči v obou motivech a při každé deklarované šířce.

Proč

Vlastník, 2026-10-16: oficiální web majordomus.dev je referencí pro pravidla stylu a UI/UX; /ui a Cockpit musí být z něj odvozeny, se stejným rozložením a pixelově shodnou navigační lištou. Změřeno toho dne: lišta webu je vysoká 73 px při 1440 a 65 px při 390, písmo 16 px, se značkou a releasem, čtyřmi menu, hledáním, přepínačem motivu, produktem, GitHubem a výzvou k akci; lišta UI byla 67 px vysoká nástrojová lišta vedle 240 px postranního panelu s vlastní značkou (119 px vysoký při 390), písmo 14 px, bez jediné položky webu; lišta Cockpitu třetí, 53 px, písmo 13,5 px. Tokeny byly sdílené (jeden otisk --mj-design) a lišty byly tři.

Aktuální stav

Web vykresluje svůj navbar ze site/data/nav.toml přes site/templates/partials/navbar.html; apps/majordomus-cli/src/ui/shell.rs kreslí vlastní značku v postranním panelu a horní lištu, apps/majordomus-cli/src/cockpit/view.rs třetí; nic je neporovnává.

Cílový stav

scripts/ui navbar --write vyřízne lištu z buildu webu do apps/majordomus-cli/src/ui/navbar.html, který ui/navbar.rs zkompiluje a vyplní verzí executable, přičemž položku produktu vede na živé UI, pro shell UI i Cockpitu; share/ui/src/ui.css a share/cockpit/src/cockpit.css kompilují utility, které tento soubor jmenuje; nav.js a theme.js pod share/ui/ a share/cockpit/ jsou bajtové kopie webových, zapisované a kontrolované scripts/cockpit-assets; scripts/ui navbar, spouštěný jako první v scripts/ui audit (kontrola ui-audit), odmítne zastaralou kopii i jakýkoli rozdíl mezi lištou webu a lištou /ui či /cockpit v elementu, boxu nebo vypočteném stylu; project.the-ui-wears-the-sites-navbar to stanoví.

Rozsah

  • site/templates/partials/navbar.html
  • apps/majordomus-cli/src/ui/navbar.rs
  • apps/majordomus-cli/src/ui/navbar.html
  • apps/majordomus-cli/src/ui/shell.rs
  • apps/majordomus-cli/src/ui/mod.rs
  • apps/majordomus-cli/src/cockpit/html.rs
  • apps/majordomus-cli/src/cockpit/view.rs
  • apps/majordomus-cli/src/cockpit/mod.rs
  • share/cockpit/src/cockpit.css
  • share/cockpit/cockpit.css
  • share/cockpit/cockpit.js
  • share/cockpit/nav.js
  • share/cockpit/theme.js
  • scripts/lib/cockpit-probe.mjs
  • docs/COCKPIT.md
  • apps/majordomus-cli/src/design/render.rs
  • share/ui/src/ui.css
  • share/ui/ui.css
  • share/ui/ui.js
  • share/ui/nav.js
  • share/ui/theme.js
  • scripts/ui
  • scripts/lib/ui-navbar.mjs
  • scripts/lib/ui.test.mjs
  • scripts/cockpit-assets
  • .ai/repo/rules/project/the-ui-wears-the-sites-navbar.v1.md
  • docs/DESIGN_SYSTEM.md
  • docs/MAJORDOMUS_UI.md
  • .ai/repo/project/issues/I2770.yaml

Mimo rozsah

  • Publikovaný snímek Cockpitu nemá žádný skript, takže jeho kopie lišty tam nemá funkční nabídky; dát snímku dva skripty lišty je změna předmětu exportéru
  • Druhá deklarace navigace nebo druhý renderer lišty pro jakýkoli povrch

Závislosti

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

Co na tom čeká

Kritéria přijetí

  • Každá obrazovka UI a stránka Cockpitu nese právě jeden nav[aria-label=Main], ten webový, s verzí spustitelného souboru a položkou produktu vedoucí na /ui
  • scripts/ui navbar nehlásí žádný rozdíl mezi lištou na titulní stránce webu a na /ui a /cockpit v každé deklarované šířce, světlé a tmavé, zavřené i s otevřenou nabídkou
  • Kopie, která není sestavenou lištou, a skript ze share/ui, který nemá bajty webu, každý selže při své kontrole

Validace

  • scripts/site-build && scripts/ui navbar
  • scripts/ui test
  • scripts/cockpit-assets --check
  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib -- ui::navbar ui::shell cockpit::html

Požadované důkazy

  • navbar_parity_run
  • navbar_unit_tests

Důkazy

pokrývátypcommandvýsledeku commitu
navbar_parity_runtestscripts/site-build --no-data && scripts/ui navbar --port 8811; scripts/ui test; scripts/cockpit-assets --checknavbar: 40 porovnání lišty webu s /ui a /cockpit při 320, 390, 1024, 1280, 1600 px, světlý a tmavý, zavřený a otevřený: 0 rozdílů; test ui 39 prošel; cockpit-assets čisté (kód od 3a8ca854904, předka 4a4573690f8; znovu spuštěno na 4a4573690f8)4a45736
navbar_unit_teststestcargo test --lib -- ui::navbar ui::shell cockpit::htmlprošlo (56 v kombinovaném běhu s mesh::journal), vč. the_compiled_bar_is_the_sites (kód od 3a8ca854904, předek 4a4573690f8; znovu spuštěno na 4a4573690f8)4a45736

Časová osa

zahájeno
2026-10-17T18:26:19Z
ověřeno
2026-10-17T18:26:31Z
dokončeno
2026-10-17T18:26:36Z

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.

Kanonický záznam: .ai/repo/project/issues/I2770.yaml. Přečtěte jej zpět přes majordomus plan show I2770.

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