Přeskočit na obsah

Ohraničení

Ohraničení a zaoblení definují vizuální hranice elementů — barvu a sílu linky i tvar jejich rohů.

Ohraničení odděluje prvky a nastavuje jejich vizuální důraz. Správná volba borderu výrazně pomáhá čitelnosti formulářů, tabulek i karet.

Ohraničení je součástí téměř všech komponent. Pro specifické potřeby jsou stejně jako u povrchů dostupné různé varianty, které můžeme využít.

Ohraničení Ohraničení
NázevPopisProměnná
SubtleJemná, nevýrazná linka--border-subtle
DefaultVýchozí ohraničení--border
StrongVýraznější linka, vhodná například pro políčka--border-strong
ContrastVelmi výrazná linka--border-contrast

Simuluje odlesk na okraji povrchu, proto se využívá na elementech vypadajících jako karty, například seznam, detail nebo widgety.

Ohraničení - zářivé Ohraničení - zářivé
NázevPopisProměnná
ShinyOhraničení kartiček--border-shiny

V některých situacích potřebujete border vždy tmavý. Pro to slouží Variant.

Ohraničení - speciální situace Ohraničení - speciální situace
KategoriePopisProměnná
VariantVždy tmavá linka--border-variant

Někdy máte i ve světlém tématu tmavý povrch. V takovém případě použijte reversed varianty ohraničení.

Ohraničení - obrácené potřeby Ohraničení - obrácené potřeby
KategorieProměnná
Subtle Reversed--border-subtle-reversed
Default Reversed--border-reversed
Strong Reversed--border-strong-reversed
Contrast Reversed--border-contrast-reversed

Jakékoliv ohraničení může nést barvu povrchu, pokud je žádoucí rámeček s větší saturací. Další možností je sjednotit barvu rámečku s textem. Vždy záleží na kontextu a chtěném vizuálním efektu.

Barevné ohraničení Barevné ohraničení
.declined[left] {
color: var(--text-primary-on-surface-red-minimal);
background: var(--surface-red-minimal);
border-color: var(--surface-red-subtle);
}
.declined[right] {
color: var(--text-red);
border-color: var(--text-red); // nebo currentColor
}
.approved[left] {
color: var(--text-primary-on-surface-green-minimal);
background: var(--surface-green-minimal);
border-color: var(--surface-green-subtle);
}
.approved[right] {
color: var(--text-green);
border-color: var(--text-green);
}
// ...

Tvar rohů je globální vlastnost tématu — poloměr i křivka se nastavují jednou a projeví se konzistentně napříč celou aplikací. Pro zaoblení rohů vždy používej mixiny; ty zajistí, že se spolu s border-radius nastaví i corner-shape, jinak se tvar rohů z tématu neprojeví.

VariantaMixin
Subtle.corner-subtle()
Default.corner()
Strong.corner-strong()
Extreme.corner-extreme()
Circle.corner-circle()
Zaoblení Zaoblení
.foo { .corner-subtle(); }
.bar { .corner(); }
.baz { .corner-strong(); }
.qux { .corner-extreme(); }
.pill { .corner-circle(); }

Poloměr rohů je rozdělen do pěti variant od jemného po kruh. Konkrétní pixelové hodnoty se odvíjejí od radiusIntensity a aktuálního cornerShape. Při hodnotě 0 jsou všechny radii nulové — prvky mají ostré rohy.

TokenPopis
--radius-subtleJemné zaoblení pro čipy, tagy nebo vnořené prvky
--radiusVýchozí zaoblení pro většinu komponent
--radius-strongVýraznější zaoblení pro karty, dialogy nebo panely
--radius-extremeMaximální zaoblení pro výrazné dekorativní prvky
--radius-circlePlně kulaté rohy bez ohledu na velikost prvku

Křivka rohů se nastavuje globálně pomocí cornerShape a ovlivňuje všechny mixiny kromě .corner-circle().

Typy rohů Typy rohů
HodnotaPopis
roundStandardní CSS border-radius. Výchozí hodnota.
squircleRohová křivka navazuje plynuleji na rovné hrany (ekvivalent superellipse s exponentem 2). Opticky přirozenější než čistá kružnice.
1.03.0Superellipse s volitelným exponentem. Nižší hodnota je hranatější, vyšší se blíží squircle.