Pravidla používání

Rozhodnutí, která nejsou vidět v katalogu, ale drží produkt pohromadě. Když se dva návrhy neshodnou, rozhoduje tato sekce.

Skladba obrazovky

Rám

Horní lišta → drobečky → hlavička stránky → obsah. Drobečky se vynechávají jen na kořenových stránkách sekce, kde by ukazovaly samy na sebe.

Obsah

Právě jeden hlavní pattern: tabulka, krokový setup, skupinové karty, detail s taby, nebo metriky. Dva se nemíchají — ani jeden by neměl dost místa.

Akce

Primární akce je vpravo v hlavičce, nikdy plovoucí. Akce řádku jsou ikonové a vždy na konci řádku, aby se v seznamu hledaly na jednom místě.

Ano a ne

Pět situací, které se v administraci opakují a pokaždé svádí ke stejné špatné odpovědi. Sloupec vpravo je ta, která platí.

Ano a ne
SituaceNeAno
Delší editace záznamuBoční panel vmáčknutý vedle seznamuModální okno — místo na vysvětlení a soustředění na jednu věc
Potvrzení smazáníPlná červená plochaObrysové tlačítko a název entity přímo v textu
Výsledek uloženíModální okno „Hotovo“Toast se zpětnou akcí
Chyba ve formulářiJen toast nahořeHláška u pole, které chybu má
Prázdný seznamPrázdná tabulka s hlavičkouPrázdný stav s první akcí

Texty

  • Tlačítko pojmenovává výsledek: Přidat zemi, ne OK. Čtenář se rozhoduje podle toho, co se stane, ne podle toho, že něco potvrzuje. Zrušení je vždy Zrušit.
  • Popisek pole je podstatné jméno bez dvojtečky; nápověda pod polem je celá věta s tečkou. Dvě různé role textu se tak poznají i bez čtení.
  • Chyba říká, co udělat: „IČO musí mít 8 číslic“, ne „Neplatná hodnota“. Hláška, ze které nejde poznat další krok, uživatele zastaví stejně jako žádná.
  • Odborný termín se používá jen tam, kde ho výroba sama používá. Přepínač slovníku v menu účtu (Jednoduše / Expert) přepíná mezi lidovou a odbornou variantou — každý termín proto potřebuje obě.
  • Bez vykřičníků, bez emoji a bez „Ups!“. Chyba je fakt, ne omluva.

Připojení kitu

Kit se instaluje z gitu, takže pin je celá dohoda. Míří na tag vydání, ne na commit.

"@forgmatic/ingot": "github:zm-sw/ingot-ui-kit#v1.1.0"
  • Commit vypadá přesněji, ale je méně bezpečný. Číslo verze se hne až s vydáním, takže každý commit mezi dvěma vydáními nese číslo toho předchozího — jedno číslo verze označuje víc různých stromů.
  • Správce balíčků si závislost z gitu ukládá do mezipaměti pod jménem a verzí. Pod jedním číslem tam proto může ležet jiný strom, než na který pin ukazuje — a nic to neohlásí: package.json, package-lock.json i node_modules spolu souhlasí.
  • Vydání se tagují, takže tag je právě jedna verze a právě jeden strom. To je jediný pin, který drží.
  • Když typová kontrola nenajde symbol, který ve zdrojích kitu vidíš, podezřívej instalaci dřív než kit: porovnej nainstalovaný soubor proti tagu, ne proti číslu verze, a napřed vyčisti mezipaměť. Shoda čísel nedokazuje nic.

Co balíček nabízí

Balíček má víc vstupů než jeden. Není to úklid: kdyby existoval jen hlavní, marketingová stránka by kvůli ceníku natáhla runtime formulářů, a motiv by si každý konzument napsal znovu — první, kdo klíč v úložišti napíše jinak, přijde o volbu čtenáře na půlce stránek.

VstupCo z něj chodí
@forgmatic/ingotPrimitiva. Tlačítko, tabulka, formulář, dialog — všechno, co má stránku v Komponentách.
@forgmatic/ingot/marketingBloky veřejných stránek. Hero, kroky, ceník, FAQ. Marketingový web si tak nenatáhne runtime formulářů.
@forgmatic/ingot/themeMotiv a akcent: přečti volbu, ulož ji, přelož ji proti systému, pověs ji na dokument. Bez Reactu.
@forgmatic/ingot/theme-init.jsSkript proti probliknutí. Patří do <head> jako obyčejný, neodložený <script> — modul by se odložil a problikne to.
@forgmatic/ingot/tailwind-presetPreset pro Tailwind. Utility se jmenují po tokenech, takže bez něj polovina tříd nic neznamená.
@forgmatic/ingot/tokens.cssHodnoty tokenů. Jeden import, světlá i tmavá a všech pět akcentových rodin.
@forgmatic/ingot/tokens.jsonTytéž tokeny jako data, pro nástroje mimo web.

Motiv záměrně nezná React ani zdroj pravdy. V produktu volbu drží účet, aby operátora následovala mezi zařízeními; úložiště v prohlížeči je jen rychlá kopie, kterou čte skript proti probliknutí a první vykreslení.