Přeskočit na obsah

Typografie

Typografie ve Spectru určuje výběr písma, hierarchii textu i způsob použití v komponentách. Zároveň vychází z práce s variabilními fonty, kde lze v rámci jednoho fontového souboru nastavovat například tloušťku, šířku a další OpenType vlastnosti podle potřeb konkrétního rozhraní.

  • Pokud potřebujete stabilní hierarchii napříč aplikací (nadpisy, tělo textu, metadata).
  • Pokud chcete měnit vzhled písma bez změny struktury komponent.
  • Pokud chcete držet konzistentní velikosti a váhy mezi týmy.

Spectro pracuje se třemi typy písem podle použití. V Motivu si je můžete snadno kombinovat.

Typografie - typy fontů Typografie - typy fontů
TypPopisSeed
HlavníSlouží pro veškerý běžný obsah aplikace, kde je klíčová čitelnost a jednoduchost. Neměl by být příliš dekorativní, aby text zůstal snadno čitelný i při delším používání.fontFamilyMain
NadpisyZvýrazňuje nadpisy větší velikostí, což umožňuje použít výraznější a vizuálně zajímavější typografii. Lze zvolit odlišný font od hlavního, nebo ponechat stejný a upravit jeho parametry pro dynamičtější vzhled.fontFamilyHeadings
Pevná šířkaPoužívá se pro zobrazení kódu nebo tam, kde je důležitá přesná zarovnanost znaků. Hodí se také pro technicky laděný design, kde může sloužit nejen pro kód, ale i pro nadpisy nebo specifické prvky rozhraní.fontFamilyMonospace

Každý typ s sebou kromě rodiny písma nese další dva parametry:

  • Nastavení os
  • Nastavení OpenType vlastností

Protože každý font disponuje jinou sadou os a jinou sadou OpenType vlastností, je nutné tyto parametry použít vždy k danému typu fontu.

.main {
.font-family-main();
}
.heading {
.font-family-headings();
}
.mono {
.font-family-monospace();
}

Typografická škála (type ramp) je sada předdefinovaných stylů, která drží konzistenci a jasnou hierarchii textu.

Typografie - škála Typografie - škála
KategoriePopisTypMixin
FootnotePoznámky pod čarou, nejmenší textMain.font-footnote()
CaptionPopisky a menší textMain.font-caption()
BodyBěžné texty v aplikaci, základní velikostMain.font-body()
ButtonTlačítkaMain.font-button()
CodeKódMonospace.font-code()
SubheadPodnadpisMain.font-subhead()
H6Nejmenší nadpisHeadings.font-h6()
H5NadpisHeadings.font-h5()
H4NadpisHeadings.font-h4()
H3NadpisHeadings.font-h3()
H2NadpisHeadings.font-h2()
H1Největší nadpisHeadings.font-h1()
.foo {
.font-body()
}
.bar {
.font-h4()
}
.qux {
.font-button()
}
.large-code {
.font-code();
font-size: var(--font-size-xxl);
}

Určují dostupné velikosti písma pro škálu. Rozsah velikostí lze změnit v Motivu.

ParametrPopisSeedHodnoty
ZákladVýchozí velikost písma, od které se odvíjejí ostatní stupněfontBaseSize13–16 px
PoměrNásobek, podle kterého se vypočítávají velikosti dalších stupňůscaleRatio1.1–1.6
KategorieProměnná
XS--font-size-xs
S--font-size-s
Base--font-size-base
L--font-size-l
XL--font-size-xl
XXL--font-size-xxl
XXXL--font-size-xxxl
XXXXL--font-size-xxxxl
large-button-component {
.font-button();
// Zvětší velikost textu buttonu, ale zachová vše ostatní
font-size: var(--font-size-xxl);
}

Tloušťka je součástí mixinů, ale někdy je potřeba ji doladit. Rozsah závisí na fontu (typicky 100–1000). V praxi nejčastěji používáme 400, 500-600 a 700-900.

TypPopisSeed
Pro hlavní fontVhodné ponechat výchozí hodnotu 400, popř. vyzkoušet rozmezí 350 – 450.fontWeightMain
Pro nadpisyVyužívejte hodnoty 500 – 1000, výchozí je 700fontWeightHeadings
Pro pevnou šířkuVhodné ponechat výchozí hodnotu 400, popř. vyzkoušet rozmezí 350 – 450fontWeightMonospace
Typografie - tloušťka Typografie - tloušťka

Výchozí tloušťka pro každý typ písma je volitelná, proto pro další stupně využívejte proměnné s adekvátně nastavenými hodnotami pro tenší a tučnější řezy.

TypPopisRozdílProměnná
ThinVelmi tenký řez, používejte jen u velkých nadpisů-200--font-weight-[font_type]-thin
LightTenký řez, používejte jen u velkých nadpisů-100--font-weight-[font_type]-light
RegularVýchozí---font-weight-[font_type]
MediumTučnější řez pro mírné zvýraznění+100--font-weight-[font_type]-medium
BoldTučný řez pro velké zvýraznění+300--font-weight-[font_type]-bold
// Tučný text
.foo {
.font-body();
font-weight: var(--font-weight-main-bold);
}
// Tenší nadpis
.bar {
.font-h1();
font-weight: var(--font-weight-headings-light);
}