Základy

Tokeny, ze kterých je postavené všechno ostatní: barevná škála, typografický systém a mřížka prostoru.

Barevné role

Barva se v Ingotu nepíše hodnotou, ale rolí. Akcent má role čtyři a každá odpovídá na jinou otázku:

  • --accent — samotná barva. Akce, vyplněné tlačítko, ikona, focusový obrys; je to i barva textu, takže musí být čitelná na plochách.
  • --accent-ink — tmavší stupeň akcentu. Hover akcí a barva odkazů.
  • --accent-bg — tint pod vybraným řádkem, odznakem a calloutem. Nikdy ne text.
  • --accent-border — linka akcentu, obrys toho tintu. Dekorativní, nenese informaci sama o sobě.

Obrazovka sáhne po proměnné, ne po hodnotě. Tím se rodina i motiv dají vyměnit bez toho, aby se do obrazovek sahalo.

Akcentové rodiny

Akcent je jedna ze čtyř barevných rolí, které si obrazovka bere přes proměnnou — nikdy jako hex. Rodin je pět a liší se jen hodnotami těch čtyř proměnných; komponenta o tom, která zrovna platí, neví.

Akcentové rodiny
RodinaHodnota--accent--accent-ink--accent-bg--accent-border
modrýblue
smaragdovýemerald
oranžovýorange
fialovýviolet
břidlicovýslate

Každá rodina má vlastní světlé i tmavé hodnoty, takže přepnutí motivu ji přepočítá samo — přepínačem vlevo si to lze vyzkoušet v obou motivech. V aplikaci se rodina volí v menu účtu a pamatuje si ji účet, ne prohlížeč. Uvnitř obchodu má přednost barva toho obchodu.

Neutrální, akcentové a stavové barvy

Hodnoty ve sloupci se čtou za běhu z právě platné palety — přepnutí motivu vlevo je přepíše. Obrazovka proto vždycky sahá po jménu tokenu, nikdy po hodnotě.

Neutrální tokeny
TokenHodnotaK čemu
--bgPlocha stránky.
--surfaceKarty, tabulky.
--surface-2Hlavičky, hover.
--surface-3Track, výplně.
--borderVýchozí linka.
--border-strongVstupy, aktivní.
--inkText, primární tlačítko.
--ink-2Běžný text.
--ink-3Sekundární.
--ink-4Terciární, disabled.
Akcentové tokeny
TokenHodnotaK čemu
--accentAkce, focus.
--accent-inkHover, odkazy.
--accent-bgVýběr, callout.
--accent-borderLinka akcentu.
Stavové tokeny
TokenHodnotaK čemu
--okAktivní, hotovo.
--ok-bgPodklad.
--warnČeká, limit.
--warn-bgPodklad.
--dangerChyba, stop.
--danger-bgPodklad.

Každý stav má i podkladovou variantu. Bez ní nejde postavit odznak se stavovým tintem: sytý token je v něm textem a plocha pod ním musí být vlastní barva, ne oslabená verze té první.

  • Neutrální škála nese většinu plochy — akcent i stav jsou v ní hosté.
  • V jednom pohledu se nikdy nemíchají dva akcenty.
  • Stavové barvy jsou vyhrazené pro stav dat, ne pro dekoraci.
  • Barva nikdy nenese informaci sama — vždy spolu s textem nebo tvarem.

Typografická škála

Škála má osm stupňů a každý má jméno i pevnou hodnotu — velikost se nevybírá od oka. Ukázka vlevo je vysázená přesně těmi třídami, které řádek jmenuje.

Bezpatkové písmo nese řeč, mono nese fakta: čísla, kódy, rozměry a identifikátory. Tabulární číslice drží číslo pod číslem, takže se částky ve sloupci dají porovnat okem.

Typografická škála
UkázkaStupeňVelikost / váhaTřídy
Výrobní partneřiNadpis stránky40 / 600text-h1 text-ink
Cenové vzorceNadpis sekce26 / 600text-h2 text-ink
Parametry strojePodnadpis18 / 600text-h3 text-ink
Nastavení, které se propíše do všech nabídek.Perex17text-lede text-ink-2
Základní text v panelech a popiscích polí.Běžný text14,5text-body text-ink-2
Sekundární informace, nápověda pod vstupem.Drobný text13text-small text-ink-2
Sekce · verzálkyPopisek11 / 500text-eyebrow uppercase text-ink-3
128 640 Kč · S235JR · 3,0 mm · 1 380 ksČíslomonofont-mono tabular-nums text-body text-ink

Prostor, rádiusy, vrstvy

Mezery jdou po čtyřech pixelech. Menší krok se nezavádí — dvě sousední hodnoty, které od oka nerozeznáš, nejsou dvě hodnoty. Čtverec vlevo má přesně tu velikost, kterou popisek jmenuje.

s-1 · 4px
s-2 · 8px
s-3 · 12px
s-4 · 16px
s-5 · 24px
s-6 · 32px
s-7 · 48px

Rádius roste s velikostí prvku: drobné štítky mají nejmenší, karty a rámečky největší. Plný kruh je vyhrazený pro avatary a puntíky.

rounded-sm · r-xs · 4px
rounded · r-sm · 6px
rounded-md · r-md · 10px
rounded-lg · r-lg · 14px
rounded-full · 999px

Stín říká, jak vysoko nad stránkou prvek leží. Tři stupně stačí: každý má své patro a mimo ně se nepoužívá.

--shadow-sm

Karty na pozadí a jejich hover.

--shadow-md

Rozbalovací menu a modální okno.

--shadow-lg

Boční panel a toast.

Vrstvy mají pevné hladiny, aby se překryvy nepřebíjely případ od případu. Mezera mezi bloky obsahu je 24 px.

Vrstvy
VrstvaHladina
Obsah0
Přilepený toolbar30
Hlavička40
Boční panel80
Modální okno90
Toast100

Pohyb

Pohyb má v systému jedno trvání a jednu křivku. Dialog, boční panel, toast i menu se tak otevírají stejně rychle — a když se má rychlost změnit, mění se na jednom místě.

  • --dur — 0,22 s. Dost dlouho, aby bylo vidět, odkud panel přišel; dost krátko, aby se na něj nečekalo.
  • --ease — křivka, která rychle vyjede a měkce dosedne. Lineární pohyb působí mechanicky.
  • Překryv vjíždí, nemizí animovaně: zavření má být okamžité, protože uživatel už ví, co chtěl.
  • Při systémovém nastavení „omezit pohyb“ se vypíná pohyb, ne panel. Zmizet by znamenalo vzít obsah, ne zklidnit ho.