Design system

Design systém

Živý přehled systému — tokeny, komponenty a jejich stavy. Referenční stránka pro kontrolu každého nového tématu: co tu není, neexistuje (PRINCIPLES §10).

Téma se přepíná v panelu vpravo dole — stejném, jakým se na klientských stránkách přehazují bloky.

Motion

Nájezdové animace

Scrolluj pomalu. Prvky přijíždějí kaskádovitě, každý jen jednou. Tlačítkem vpravo dole spustíš znovu.

Kaskáda mřížky — data-reveal-group

Vodoinstalace

Přijede první.

Malířské práce

O 90 ms později.

Rekonstrukce

A nakonec tahle.

Nadpis po řádcích — reveal-lines

Řemeslo, na které se dá spolehnout.

Jednotlivé varianty

up

Výchozí. Posun zdola + prolnutí.

fade

Jen prolnutí. Pro velké fotky.

scale

Dosedne z 96 %. Pro karty.

left

Zprava doleva.

right

Zleva doprava.

blur

Rozostření. Jen pro hero.

Vše respektuje systémové „omezit pohyb". Bez JS zůstane obsah viditelný a statický.

Barvy a povrchy

Primární — jediná plná škála

50
100
200
300
400
500
600
700
800
900

Brand se používá napříč celým systémem, takže si zaslouží plnou, ručně doladěnou škálu. Ostatní role mají jen tolik odstínů, kolik jich něco vykresluje — token, který nikde není vidět, nejde při tvorbě tématu zkontrolovat.

Sekundární — druhá barva brandu

base
strong
Tečka u eyebrow 240+

Primární jedná (buttony, odkazy), sekundární zdůrazňuje (značky, čísla). Jednobarevný brand ji nastaví na odstín primární — nic se nerozbije.

Dva tokeny, protože značka a slovo nejsou stejná práce: base je barva, která se má vidět (tečka, linka u citátu), strong ta, která se má číst (čísla). Bezpečnostní žluť měří jako tečka výborně a jako číslo 1,85:1 — proto se strong měří, nevybírá. Brand s tmavou druhou barvou nastaví oba tokeny stejně a nic se nehne.

Terciární — akcent (volitelný)

base

Třetí barva brandu, pokud ji brand má (--color-accent). Nenastavená spadá na sekundární — tady ve swatchi i v odvozené paletě níže, kde z ní generátor v tom případě staví „accent" rampu. Vitarent sem dává CTA žlutou: buttony na ni míří přes --btn-surface, ale teprve deklarovaná jako barva se propíše do palety a do adminu. Bez -strong varianty schválně — žlutou nikde nic nečte, čitelný stupeň dopočítá generátor na 800.

Stavy — čtyři tokeny na roli

podklad · linka a ikona · text na podkladu · text na plné barvě

Úspěch

soft
base
strong
Aa
on

Varování

soft
base
strong
Aa
on

Chyba

soft
base
strong
Aa
on

Informace

soft
base
strong
Aa
on

Odvozená paleta — co z tématu odchází do adminu

Generuje backend-data/templates/tools/design_tokens.mjs z tématu výše; jde do setup/design každého klienta. Odstíny s rámečkem si zvolilo téma samo, zbytek je dopočítaný v Oklabu podle primárního žebříku.

Proč to není v tématu: drop-core popisuje barvy stupni (role × 50–900), my úkolem (soft je podklad, strong text na něm, on text na plné barvě). Osmdesát ručně vybraných hodnot na klienta by nikdo nevyplnil a většinu z nich nic nevykresluje — a hlavně by se ztratilo to, co stupeň říct neumí: strong je naměřená podmínka, ne rung. Proto zůstávají dva jazyky pro psaní a jeden pro výstup: překlad dělá generátor, a tady je vidět, co z něj vyleze.

Překladová tabulka: base → 500 a 600 · soft → nejsvětlejší stupeň, který ještě projde 4,5:1 proti strong (na tmavém tématu naopak nejtmavší) · strong → 800 · surface/alt/border → neutral 50/100/200 · text-muted/text → neutral 600/900.

Base

Běžný text a odkaz

240+
Alt

Běžný text a odkaz

240+
Brand

Text na primární barvě

240+
Inverse

Text na tmavém pozadí

240+

Číslo je na všech čtyřech povrchech schválně: pozadí bloku je vlastnost instance, takže statistika může skončit na kterémkoliv z nich. Na světlých ji nese --color-secondary-strong, na brandu a inverzu ustoupí zvýraznění čitelnosti a číslo si vezme text-on-primary / text-on-inverse — jinak by každá role potřebovala jednu hodnotu na povrch a takovou sadu už nikdo nevyplní.

Fotopodklad (.section--photo)

Střední tón

Text na fotce pod clonou

Světlá fotka

Text na fotce pod clonou

Kontrola: každý text na každém povrchu musí splnit WCAG AA (PRINCIPLES §9). U fotopodkladu se měří proti nejsvětlejšímu pixelu pod každým řádkem — clona je nastavená na nejsvětlejší hodnotu, která projde na všech fotkách v knihovně, ne na té aktuální.

Stavové barvy

Úspěch, varování, chyba, informace. Každý stav má čtyři tokeny: podklad, linku, text na podkladu a text na plné barvě.

Poptávka odeslána. Ozvu se do 24 hodin.
Termíny na jaro jsou plné. Nejbližší volná kapacita je od září.
Zprávu se nepodařilo odeslat. Zkuste to prosím znovu, nebo zavolejte.
Dílna je otevřená po domluvě. Rád vám ukážu rozdělané kusy.
Hotovo Čeká na materiál Zrušeno V návrhu

Plné barvy testují token -on — právě tady jantar nejčastěji propadne v kontrastu, aniž by to bylo na první pohled vidět.

Typografie

Hero — Příliš žluťoučký kůň

Vlastní stupeň --text-5xl, jen pro hero. Je to první věc, která odliší jedno téma od druhého — proto stojí samostatně a nic jiného do něj nesmí sklouznout.

Display — Příliš žluťoučký kůň

Nadpis H1 — Příliš žluťoučký kůň úpěl ďábelské ódy

Nadpis H2 — Instalatérství a topenářství Jihomoravský region s.r.o.

Nadpis H3 — Kompletní rekonstrukce koupelen

Nadpis H4 — Drobné opravy a údržba

Perex: Rodinná firma s dvacetiletou tradicí. Postaráme se o vaši koupelnu, kuchyň i celý byt — rychle, čistě a bez starostí.

Běžný odstavec: Voláte instalatéra a nikdo nebere? Známe to. Proto u nás platí jednoduché pravidlo — na telefonu jsme každý všední den od sedmi do pěti a na zprávy odpovídáme do 24 hodin. Vložený odkaz v textu musí být rozeznatelný i bez barvy.

Drobné písmo pro metadata, popisky fotek a právní texty.

Buttony

Hover ověřit myší, fokus tabulátorem, stisk myší (button se lehce propadne). Poslední testuje dlouhý label.

Ikony — Phosphor

Předvybraná sada. Šest vah stejné kresby, ~9 000 ikon, MIT licence. Níže placeholdery v jejím stylu.

Ikona dědí barvu z kontextu (currentColor)

Před nasazením prvního klienta vyměnit za skutečné Phosphor SVG (BACKLOG). Výměna sady = jeden soubor.

Obrázky

Poměry 16:9, 4:3, 1:1. Třetí rámeček = fallback bez fotky (PRINCIPLES §6).

Formulářové prvky

Výchozí stav s nápovědou.
Zadejte platnou e-mailovou adresu.
V pořádku.
Vybraná hodnota.
Povinný výběr, zatím nezodpovězený.
Vyberte prosím jednu z možností.

Newsletter — sběr adres

Jedno pole, jeden button; na úzkém sloupci se dvojice sama zalomí do sloupce, bez breakpointu. Label pole je skrytý (viditelným nadpisem je titulek bloku nad formulářem), validaci dělá form.js stejně jako u kontaktního formuláře. Souhlas neřeší checkbox, ale potvrzovací e-mail — poznámka to říká.

Grafické radio karty

Radio skupina jako dlaždice: skutečný radio input leží neviditelně přes celou kartu, takže klávesnice, validace i odeslání vidí obyčejná radia. Zaškrtnutí kreslí vnitřní ring (nic se neposune), fokus stejný kroužek jako každý ovladač. Druhá skupina je textová s odznakem a nápovědou — odznak sedí kartě na rameni.

Typ poptávky *
Termín realizace *

Slider s vypsanou hodnotou

Vyplněnou část dráhy drží scripts/range.js přes --range-fill, hodnotu píše do řádku pod ovladačem (formát data-range-format="czk", mezery sází Intl). Bez JS je to funkční nativní range — výplň stojí na fallbacku a řádek ukazuje výchozí hodnotu z markupu.

1 800 000 Kč

Formulář ve dvou krocích

Sekce data-step, tlačítka data-step-next / data-step-prev (type="button"). „Dál" validuje jen viditelný krok, ve stejném chybovém jazyce jako submit; odesílá se jednou, na konci. Bez JS se nic neskrývá — formulář je prostě jedna dlouhá stránka. Zkuste pokračovat s prázdným polem.

Karty — tři obsahové varianty

Vodoinstalace

Rozvody vody a odpadů, výměny baterií, připojení spotřebičů. Rychlý servis do 48 hodin.

Prostřední karta testuje extrémně dlouhý titulek, pravá chybějící fotku. Najeď myší — karta se nadzvedne a fotka se pomalu přiblíží. Obrázek vede tam co titulek, ale je mimo pořadí tabulátoru: klávesnice ani čtečka se o stejný cíl nezastavují dvakrát.

Počty karet — mřížka se řídí obsahem

Jedna karta dostane jiný tvar, ne zmenšenou verzi řady tří — s fotkou se otočí na bok, bez fotky drží obsah na čitelné míře. Čtyři se lámou na 2×2 místo 3+1, neúplná řada začíná vlevo — tam, kde začíná každá jiná. Zmenšuj okno — na tabletu jsou dva sloupce, na mobilu jeden a jedna karta je zase obyčejná karta.

1 karta s fotkou

1 karta bez fotky

Jediná služba

Není z čeho udělat druhý sloupec, takže tvar dělá proporce: celá šířka, obsah na střed a držený na čitelné míře.

2 karty

První

Dva sloupce, ne dva ze tří.

Druhá

Díra po třetí kartě by blok shodila.

4 karty

Jedna

2×2.

Dvě

Ne tři a sirotek.

Tři

Působí to jako záměr.

Čtyři

A je to všechno, co je.

5 karet

Jedna

Plná řada.

Dvě

Plná řada.

Tři

Plná řada.

Čtyři

Zbytek zarovnaný vlevo.

Pět

Ne uprostřed — oko má pořád stejnou hranu.

Testimonial

Řada, kterou lze listovat. Tlačítka se objeví sama, jakmile je čím listovat — se dvěma kartami vypadá blok přesně jako obyčejná dvojice. Na dotyku se posouvá prstem, na trackpadu dvěma prsty; tlačítka jsou pro myš, která pro vodorovný posun žádné gesto nemá. Poslední karta má schválně krátký text a předposlední dlouhý — podpisy musí zůstat na společné patě.

Proces — kroky na časové ose

Očíslované kroky spolupráce se společnou spojnicí. Číslo píše CSS čítač, takže přeskládané kroky se přečíslují samy. Pin nese ikonu v barvě secondary, lhůta je metadata. Druhá ukázka je hraniční stav: tři kroky, bez lhůt, jeden s dlouhým názvem — patky se drží, spojnice končí u posledního pinu.

  1. Zaslaná nabídkado 5 dnů

    Ocenění nemovitosti

    Zajistíme profesionální ocenění vaší nemovitosti, které bude základem pro stanovení výkupní ceny.

  2. Osobní schůzkado 10 dní

    Individuální nabídka

    Připravíme vám nabídku na míru, která bude zohledňovat hodnotu nemovitosti i další faktory.

  3. Ověřeno notářemdo 1 měsíce

    Právní zajištění

    Připravíme smlouvy, které garantují vaše práva, a celý proces ověříme notářsky.

  4. Výplatado 2 měsíců

    Výplata peněz

    Po podpisu smlouvy vám bude vyplacena sjednaná částka a vy můžete dál bydlet ve svém domově.

Hraniční stav — 3 kroky, bez lhůt, dlouhý název

  1. Poptávka

    Nezávazná konzultace zdarma a bez závazků po telefonu

    Zavoláte, my se ptáme. Nic nepodepisujete.

  2. Zaměření

    Schůzka u vás

    Přijedeme, změříme, probereme možnosti.

  3. Realizace

    Hotovo

    Předání a záruka.

Akordeon (FAQ)

Jak rychle dokážete přijet k havárii?

V pracovní dny do dvou hodin po celém Brně a okolí do 30 km. O víkendech držíme pohotovost — příplatek najdete v ceníku.

Poskytujete záruku na provedenou práci?

Ano, na veškerou práci 36 měsíců, na použitý materiál dle záruky výrobce.

Co všechno zahrnuje cenová nabídka a je opravdu závazná, nebo se může konečná částka ještě dodatečně navýšit?

Nabídka je závazná pro rozsah, který jsme viděli. Pokud se při bourání objeví skrytá vada, zastavíme práci a nejdřív se domluvíme.

Kontaktní formulář (složený)

Kontaktní karty a mapa

Kanály rozepsané po kartách — to, co má kontaktní stránka nabídnout dřív než formulář. Na homepage zůstává jeden panel vedle formuláře (.contact-info), tady je z každého kanálu karta.

Telefon +420 777 123 456 Po–Pá 8:00–17:00.
Provozovna Nádražní 1234
602 00 Brno
Otevřeno po telefonické domluvě, i mimo pracovní dobu. Firma Vzorová s.r.o.
IČO 12345678 · DIČ CZ12345678
Zapsána v OR vedeném KS v Brně, oddíl C, vložka 12345

Řada srovná karty na stejnou výšku — správně, když nesou srovnatelně dlouhý obsah. Prostřední je schválně bez poznámky: takhle vypadá řada, když jedna karta výrazně kratší je, a proto se vedle formuláře skládají pod sebe (PRINCIPLES §8). Povinné údaje drží u spodní hrany a odděluje je linka — je to jiné publikum než adresa nad nimi.

Pod sebou — vedle formuláře

Stejná karta, jen .contact-cards--stack. Každá je přesně tak vysoká, kolik unese; žádná se nenatahuje na sousedku.

Telefon +420 777 123 456 Po–Pá 8:00–17:00.

Mapa

Bezplatný embed, bez API klíče a bez fakturačního účtu — adresa je v parametru q=. Tlačítko patří mapě, takže bere její šířku a otevírá navigaci Googlu, ne náš vlastní embed.

Mapa — varianta na klepnutí

Stejná fasáda jako u videa a audia: dokud na ni nikdo neklepne, nejde ke Googlu jediný požadavek. Pro klienta, který má v zásadách napsáno, že se nic nenačítá samo — jinak stačí mapa výše. data-id je adresa tak, jak byste ji napsali do vyhledávání.

Dlouhý text (detail článku, textová stránka)

Zásady zpracování osobních údajů

Tento text slouží zároveň jako ukázka typografie textové stránky (GDPR, obchodní podmínky) i detailu článku. Správce osobních údajů, společnost Instalatérství a topenářství Jihomoravský region s.r.o., zpracovává osobní údaje v souladu s nařízením GDPR.

Jaké údaje zpracováváme

Z kontaktního formuláře ukládáme pouze údaje, které nám sami sdělíte:

  • jméno a příjmení,
  • e-mailovou adresu a telefon,
  • obsah zprávy.
Údaje nikdy nepředáváme třetím stranám pro marketingové účely.

Údaje uchováváme po dobu nezbytnou pro vyřízení poptávky, nejdéle však 24 měsíců od posledního kontaktu.

Článkové moduly

Prvky, které redaktor vkládá dovnitř textu — na rozdíl od bloků výše, ze kterých se skládá stránka. Živě je uvidíš v detailu článku.

Šířky: text · široký · přes celou šířku

Tři úrovně, jedna osa. Text drží čtecí míru, tabulky a podobné „ke čtení“ dostanou .is-wide, fotky a videa .is-full.

Běžný odstavec drží čtecí míru — kolem 65 znaků na řádek.

.is-wide — širší než text, ale ne přes celou stránku
.is-full — plná šířka obsahu

Autorský řádek

Bez fotky spadne na iniciály — autor bez portrétu je běžnější než s ním.

Vytržený citát

Deska, která se za rok zkroutí, není vada materiálu. Je to vada trpělivosti.

— hlasitější než běžná citace uvnitř textu

Obrázek s popiskem

Popisek je volitelný. Bez něj zůstane jen rám.

Galerie — 12 fotek

Ve třech se galerie chová hezky sama od sebe; test je dvanáct. Mřížka se přizpůsobuje šířce, ne počtu, takže poslední řádka nikdy neroztáhne zbylé kusy do nesmyslných rozměrů.

Video a playlist — načtou se až po kliknutí

Vložený iframe kontaktuje YouTube a nastaví cookies ve chvíli, kdy se stránka otevře. Tohle je zástupný obrázek; nic třetí strany se nenačte, dokud čtenář neklikne.

Přehrávač zvuku

Vlastní ovládání, protože nativní <audio> se nedá otémovat. Převíjení potřebuje HTTP Range — když ho server neumí, lišta to řekne místo toho, aby kliknutí tiše ignorovala.

Podcast Řemeslo dneška — díl 12
0:00 / 0:00

Soubor ke stažení

Péče o olejovaný nábytek PDF · 340 kB

Faktový list a čísla projektu

Z detailu reference. Deska přišroubovaná k práci — dokumentární rejstřík, ne ozdoba. Obojí je v adminu vypnutelné: malá zakázka nemusí mít co vypsat.

Realizace
Březen 2026
Místo
Vsetín
Materiál
Jasanový masiv
Doba výroby
11 týdnů

Karta dalšího článku nebo reference

Materiály

Jak poznat, že vás čeká havárie odpadu

Tři varovné signály, které byste neměli ignorovat, než bude pozdě.

Číst článek