Úvod

Ingot je designový systém Forgmaticu — sada rozhodnutí o barvě, typografii, prostoru a chování. Není to galerie komponent.

Co to je

Ingot je designový systém Forgmaticu — sada rozhodnutí o barvě, typografii, prostoru a chování, ze které se skládá administrace tenanta, administrace platformy i veřejné stránky. Není to galerie komponent. Je to dohoda, jak vypadá práce ve výrobě přeložená do obrazovky.

Co to je

Tokeny a třídy na jednom místě. Obrazovka se z nich skládá — nevzniká z vlastních stylů psaných až v ní. Proto se změna rozhodnutí projeví všude, a ne jen tam, kde si na ni někdo vzpomene.

Pro koho

Pro designéry i vývojáře. Stejný slovník na obou stranách znamená, že návrh a kód mluví o téže věci — a nikdo mezi nimi nepřekládá dva popisy jedné obrazovky.

Jak se mění

Nová komponenta nevzniká v obrazovce. Nejdřív vznikne v systému, dostane pravidlo a název, a teprve pak se použije.

Principy

01

Data před dekorací

Rozhraní administrace je hustý zápis skutečnosti. Žádné ozdobné plochy ani barevné přechody — plocha slouží tomu, aby se v ní dala číst čísla.

02

Kontrast dělá strukturu

Pozadí stránky je vždy tmavší než karta. Hierarchii nese odsazení a linka, ne stín a ne barva.

03

Jeden akcent

Akcent je jedna rodina čtyř tokenů. Barva navíc znamená nový význam — a ten musí být pojmenovaný, ne vymyšlený až v obrazovce.

04

Fakta jsou mono

Čísla, kódy, identifikátory, rozměry a časy patří do neproporcionálního písma s tabulkovými číslicemi. Text vysvětluje, mono měří.

05

Tenant = platform

Obě administrace sdílí jednu lištu i jedny komponenty. Liší se odznakem u značky a obsahem sekcí — nikdy vlastním vzhledem.

06

Jazyk uživatele

Popisky mluví řečí dílny, ne databáze. Odborný termín se uvádí jen tam, kde ho výroba sama používá.

Z čeho se systém skládá

Systém má čtyři vrstvy a každá odpovídá na jinou otázku. Než něco přidáš, patří rozhodnout, do které z nich to patří — vrstva určuje, kde se ta věc mění a co změna zasáhne.

Vrstvy systému
VrstvaKde žijeKdy sáhnout
TokenyKořen systému — jediné místo, kde je hodnota deklarovaná.Barva, mezera, rádius, stín, písmo.
PrvkyVrstva nad tokeny — tlačítko, pole, štítek.Jednotlivé ovládání a značky.
BlokySloženiny z prvků — tabulka, karta kroku, prázdný stav.Opakující se části obrazovky.
ShellRám aplikace — horní lišta, drobečky, hlavní plocha.Rám každé stránky administrace.

Jak začít

  1. Připojit. Do projektu patří tokeny palety, sada ikon a písma Geist a Geist Mono. Bez tokenů nemají komponenty z čeho brát barvu ani mezeru.
  2. Postavit rám. Horní lišta → drobečky → hlavička stránky → jeden pattern obsahu. Vždycky v tomhle pořadí: čtenář, který ho jednou pochopil, se v každé další obrazovce rozhlíží už jen po obsahu.
  3. Doplnit obsah. Skládat z existujících prvků. Chybí-li něco, přidá se to nejdřív do systému.

Jak se používá

Všechno se importuje z jednoho místa:

import { IngotTable, IngotEmptyState } from "@/ingot";

Vždycky přes tenhle jeden vstup, nikdy hlubší cestou na konkrétní soubor. Co odsud vede ven, je veřejné rozhraní kitu a mění se ohlášeně; co ne, je vnitřek a smí se přejmenovat nebo rozdělit kdykoli. Součástí toho rozhraní jsou i typy, které si prvek žádá — třeba IngotColumn pro sloupce tabulky.

Jak se přidává nové primitivum

Nové primitivum vzniká, až si o něj řekne konkrétní obrazovka. Když ten žadatel je, patří k sobě tři věci v jedné změně: komponenta a její vyvedení z @/ingot, stránka na tomhle webu s živou ukázkou, a první obrazovka, která ji doopravdy používá.

Ukázku musí stránka vykreslit skutečnou komponentou. Opsané JSX vypadá v den zápisu stejně a od druhého dne tiše lže.

Co tu najdeš

Každá stránka komponenty má stejnou stavbu: živou ukázku i s kódem, kdy použít a kdy nepoužít, tabulku vlastností, přístupnost a překlady. Tam, kde první verze něco schválně neumí, je to vypsané taky. Pravidlo o překladech je společné všem prvkům, takže má vlastní stránku — Překlady.

Pravidlo palce

Pravidlo palce. Píšeš-li do obrazovky vlastní barvu, mezeru nebo rádius, platí jedno ze dvou: buď existuje token, který jsi nenašel, nebo systému chybí rozhodnutí. Obojí se řeší v systému, ne v komponentě.