UX / Návrh rozloženia obrazovky
Používateľské rozhrania a používateľský zážitok
Návrh rozloženia obrazovky
Michaela Bačíková, Sergej Chodarev
Čo rieši layout?
Layout určuje:
- kde sa prvky nachádzajú,
- koľko priestoru zaberajú,
- ako spolu súvisia,
- v akom poradí ich používateľ vníma,
- ako sa rozloženie mení pri inom obsahu a rozmere obrazovky.
Obsah pred rozložením
Pred kreslením obrazovky určite:
- hlavný cieľ používateľa,
- poradie informácií,
- súvisiace skupiny prvkov,
- primárnu a sekundárne akcie,
- obsah, ktorý môže pribudnúť alebo chýbať.
Dobré rozloženie vyjadruje štruktúru obsahu.
Vizuálna hierarchia
Vizuálna hierarchia určuje, čo si používateľ všimne ako prvé a čo nasleduje.
Vytvárame ju pomocou:
- veľkosti a mierky,
- kontrastu,
- polohy,
- priestoru,
- opakovania a konzistencie.
Poradie pozornosti
Každá obrazovka potrebuje jasnú odpoveď na otázky:
- Kde sa nachádzam?
- Čo je tu najdôležitejšie?
- Čo môžem urobiť?
- Čo sa stane potom?
Ak všetko vyzerá rovnako dôležito, používateľ musí hierarchiu hľadať sám.
Veľkosť a kontrast
- Väčší prvok zvyčajne získava väčšiu pozornosť
- Kontrast oddeľuje prvok od okolia
- Výrazná farba má mať jasný význam
- Hierarchia nemá závisieť iba od farby
Veľkosť signalizuje význam. Kontrast usmerňuje pozornosť.
Poloha a priestor
- Začiatok čítacieho smeru získava pozornosť skôr
- Izolovaný prvok pôsobí významnejšie
- Voľný priestor oddeľuje skupiny a úrovne
- Zarovnanie vytvára vizuálne spojenie
Prázdne miesto nie je nevyužitá plocha. Pomáha vysvetliť štruktúru.
Kotvové objekty
- Výrazné prvky umiestňujeme do stabilných častí kompozície
- Lineárne prvky prirodzene nadväzujú na okraje
- Vizuálny stred býva mierne vyššie ako geometrický stred
- Primárna akcia potrebuje stabilnú a predvídateľnú polohu
Gestalt princípy
Používatelia nevnímajú každý prvok samostatne. Hľadajú celky a vzťahy.
- Blízkosť: blízke prvky patria k sebe
- Podobnosť: podobný vzhľad naznačuje podobnú funkciu
- Spoločná oblasť: hranica alebo pozadie vytvára skupinu
- Kontinuita: zarovnanie vedie pohľad
- Figúra a pozadie: dôležitý prvok sa musí oddeliť od okolia
Gestalt principles and some other aspects of visual perception
Blízkosť
Vzdialenosť medzi prvkami vyjadruje ich vzťah.
- Menšia medzera vo vnútri skupiny
- Väčšia medzera medzi skupinami
- Rovnaká úroveň hierarchie používa rovnaký rytmus medzier
Používateľ má skupiny rozpoznať aj bez rámikov.
Pravidlo vnútorného a vonkajšieho priestoru
Vnútorný priestor ≤ vonkajší priestor
- Prvky jednej skupiny sú bližšie pri sebe
- Medzi samostatnými skupinami je väčšia medzera
- Padding definuje vnútorný priestor komponentu
- Gap alebo margin oddeľuje komponenty
The rule of the inner and the outer
Zarovnanie
- Zdieľaná hrana vytvára vzťah
- Text zvyčajne zarovnávame podľa jedného čitateľného začiatku
- Náhodné odsadenia oslabujú štruktúru
- Optické zarovnanie môže byť presvedčivejšie než geometrické
Každý prvok má mať dôvod, prečo začína práve na danom mieste.
Rešpektujme prirodzené poradie skenovania
- Vzory F a Z
- Vzor prerušuje napríklad veľa prázdneho priestoru
- Snažte sa, aby bol obsah skenovateľný
- Vytvorte dojem zoradenia podľa dôležitosti
Modulárnosť
Rozhranie skladáme z opakovateľných častí:
- obsahových oblastí,
- komponentov,
- medzier,
- typografických úrovní.
Modulárnosť podporuje konzistentnosť a uľahčuje zmenu rozloženia.
Rozdelenie plochy
Anatomické časti mriežky
- Kontajner: ohraničuje obsah
- Stĺpce: určujú hlavné vertikálne členenie
- Riadky: pomáhajú s vertikálnym rytmom
- Medzery: oddeľujú stĺpce alebo riadky
- Okraje: vytvárajú priestor medzi obsahom a hranou plochy
Mriežka ako pomôcka
- Zjednocuje zarovnanie a šírky
- Uľahčuje opakovanie vzorov
- Podporuje responzívne varianty
- Nemusí byť viditeľná vo výslednom rozhraní
Príliš rigidná mriežka môže vytvoriť monotónne rozloženie. Obsah má prednosť pred pravidelnosťou.
Normálny tok dokumentu
Prvky sa bez ďalších pravidiel ukladajú v poradí HTML:
- blokové prvky pod seba,
- riadkové prvky vedľa seba,
- veľkosť obsahu ovplyvňuje veľkosť prvku.
Normálny tok je základ responzívneho rozloženia.
Box model

Každý prvok tvorí obdĺžnik:
- obsah,
- vnútorný okraj
padding,
- rám
border,
- vonkajší okraj
margin.
* {
box-sizing: border-box;
}
Priestor medzi prvkami
Používajte predvídateľnú stupnicu, napríklad:
:root {
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 1rem;
--space-4: 1.5rem;
--space-5: 2rem;
}
padding pre vnútro komponentu
gap pre vzťah medzi položkami
margin pre výnimky a hranice sekcií
Flexbox
Flexbox usporadúva prvky primárne v jednom rozmere.
- riadok alebo stĺpec,
- hlavná a priečna os,
- flexibilná veľkosť položiek,
- zarovnanie a rozdelenie voľného priestoru,
- zalamovanie do ďalšieho riadka.
Vizuálny sprievodca
Kedy použiť Flexbox
- navigácia alebo panel nástrojov,
- skupina tlačidiel,
- riadok s ikonou a textom,
- vertikálne alebo horizontálne zarovnanie,
- prvky s nepredvídateľnou šírkou obsahu.
Flexbox rieši vzťah položiek v jednom smere.
CSS Grid
Grid usporadúva prvky v riadkoch aj stĺpcoch.
- definuje mriežku na úrovni kontajnera,
- umiestňuje prvky podľa čiar alebo pomenovaných oblastí,
- vytvára pevné aj flexibilné stopy,
- podporuje automatické umiestňovanie.
Vizuálny sprievodca
Stĺpce, riadky a medzery
.layout {
display: grid;
grid-template-columns: 16rem minmax(0, 1fr);
gap: 2rem;
}
fr rozdeľuje dostupný priestor
minmax() určuje rozsah veľkosti
gap oddeľuje stopy mriežky
Responzívna mriežka kariet
.cards {
display: grid;
grid-template-columns:
repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
gap: 1.5rem;
}
Počet stĺpcov sa prispôsobí dostupnej šírke bez pevne určených breakpointov.
Pomenované oblasti
.page {
display: grid;
grid-template-areas:
"header header"
"aside main"
"footer footer";
grid-template-columns: 16rem 1fr;
}
header { grid-area: header; }
aside { grid-area: aside; }
main { grid-area: main; }
footer { grid-area: footer; }
Subgrid
Vnorený grid môže prevziať stĺpce alebo riadky rodičovskej mriežky.
.card {
display: grid;
grid-row: span 3;
grid-template-rows: subgrid;
}
Subgrid pomáha zarovnať obsah opakovaných komponentov.
Subgrid
Flexbox alebo Grid?
| Potreba |
Vhodnejší nástroj |
| Riadok alebo stĺpec prvkov |
Flexbox |
| Súčasné riadky a stĺpce |
Grid |
| Rozmery určuje najmä obsah |
Flexbox |
| Rozmery určuje spoločná mriežka |
Grid |
| Zarovnanie komponentov v sekcii |
Grid |
| Zarovnanie obsahu komponentu |
Flexbox |
V jednom rozhraní sa bežne kombinujú.
Responzívnosť podľa obsahu
- Začnite normálnym tokom dokumentu
- Používajte flexibilné šírky a
max-width
- Nechajte obsah zalamovať
- Breakpoint pridajte tam, kde sa rozloženie prestáva používať pohodlne
- Overte krátky aj extrémne dlhý obsah
Breakpoint vyplýva z obsahu, nie z názvu zariadenia.
Plynulé rozmery
.page {
width: min(100% - 2rem, 75rem);
margin-inline: auto;
}
h1 {
font-size: clamp(2rem, 5vw, 4rem);
}
min(), max() a clamp() obmedzujú rozmery bez množstva breakpointov.
Media queries
.layout {
display: grid;
gap: 1.5rem;
}
@media (width >= 50rem) {
.layout {
grid-template-columns: 16rem 1fr;
}
}
Media query reaguje na vlastnosti viewportu alebo zariadenia.
Container queries
Komponent reaguje na priestor vo svojom kontajneri.
.card-list {
container-type: inline-size;
}
@container (width >= 32rem) {
.card {
grid-template-columns: 10rem 1fr;
}
}
CSS container queries
Ďalšie spôsoby rozloženia
Ďalšie nástroje CSS
- Normal flow pre lineárny obsah
- Multi-column layout pre dlhší text v stĺpcoch
- Positioning pre prekrytie alebo ukotvenie prvku
- Tables pre skutočné tabuľkové údaje
- Logical properties pre rôzne smery písania
Každý mechanizmus má konkrétny účel. Jeden layout nemusí používať iba jednu techniku.
Absolútne pozicionovanie
position: absolute vyberie prvok z normálneho toku.
Vhodné na:
- dekorácie,
- odznak nad komponentom,
- prekrytie v jasne ohraničenom kontajneri.
Nevhodné na základné rozloženie stránky alebo na obsah s nepredvídateľnou dĺžkou.
Vizuálne a logické poradie
- Poradie v HTML má zodpovedať významu a čítaniu
- Flexbox a Grid môžu zmeniť vizuálnu polohu bez zmeny poradia v DOM
order nepoužívajte na opravu nesprávnej štruktúry HTML
- Skontrolujte poradie klávesového fokusu
- Rozloženie musí fungovať pri zväčšení textu
Vizuálna hierarchia nesmie odporovať logickej hierarchii.
Odolnosť rozloženia
Testujte:
- úzku aj širokú obrazovku,
- zväčšenie textu na 200 %,
- dlhé názvy a preklady,
- prázdne a chybové stavy,
- klávesovú navigáciu,
- zmenu orientácie zariadenia.
Kontrola návrhu
- Je najdôležitejší obsah viditeľný ako prvý?
- Súvisiace prvky tvoria rozpoznateľné skupiny?
- Používa rozhranie konzistentné zarovnanie a medzery?
- Zostáva poradie obsahu zmysluplné bez CSS?
- Prispôsobí sa layout obsahu a dostupnému priestoru?
- Funguje pri klávesnici a zväčšenom texte?
Zhrnutie
- Vizuálna hierarchia určuje poradie pozornosti
- Gestalt princípy vysvetľujú zoskupovanie
- Mriežka podporuje zarovnanie a rytmus
- Flexbox rieši jeden rozmer
- Grid rieši riadky a stĺpce
- Responzívny layout reaguje na obsah a dostupný priestor
- Logické poradie zostáva základom prístupnosti