CSS
Nové a přepracované stránky používají jednu složku
/web/css/v2/. Staré soubory (movies.css,
navbar.css, …) mohou během migrace zůstat, ale nová
stránka je nepoužívá jako opravnou berličku.
Struktura souborů
/web/css/v2/
general.css obecný text, tabulky, formulářové prvky
layout.css kontejner, sloupcová rozložení
navigation.css breadcrumb, sekční nav, levé menu, hledání
components.css karta, řádek, seznam, tlačítko, badge, …
responsive.css pravidla nevázaná na jednu komponentu
module_docs.css kostra dokumentace, odsazení článku
module_movies.css
module_books.css
module_games.css
Nevytváříme další vnořenou složku modules/ – prefix
module_ jednoznačně odlišuje modulové CSS od
globálních vrstev.
Pořadí načítání
Pořadí je závazné, protože modulový soubor smí přebít jen skutečné odlišnosti, ne celý layout:
<link href="/web/css/v2/general.css" rel="stylesheet">
<link href="/web/css/v2/layout.css" rel="stylesheet">
<link href="/web/css/v2/navigation.css" rel="stylesheet">
<link href="/web/css/v2/components.css" rel="stylesheet">
<link href="/web/css/v2/responsive.css" rel="stylesheet">
<link href="/web/css/v2/module_docs.css" rel="stylesheet">
Tahle stránka dědí z docs/docs_base_public.html,
ne z docs/_base.html – dokumentace zatím zůstává
na starém základu (navbar.css,
navbar_together.css, docs.css) a
načítá si k němu jen web/css/v2/components.css
pro karty, tlačítka, badge a další ukázky na téhle stránce.
Kompletní pořadí výše platí pro nové moduly, které staví na
docs/_base.html / _layout/base.html.
Pojmenování tříd
Názvy CSS tříd jsou anglicky, popisné a hierarchické – nejméně tři významové části: modul – komponenta – prvek.
Takto
content-card-main
content-card-title
docs-nav-main
sidebar-list
movie-detail-head
book-detail-info
Ne takto
box
wrapper
menu2
content
left
right
card-new
Obecné názvy (content-*, action-*,
form-*) jsou povolené jen u skutečně globálních
abstrakcí, jako je karta, tlačítko nebo formulářové pole – prvků,
které patří všem modulům stejně.
Inline CSS
Inline CSS nepoužíváme pro layout ani standardní komponenty.
Ne takto
<div style="width:100%; margin-left:20px;">
Takto
<div class="left-side">
Výjimkou jsou skutečně datové vizuální hodnoty – například barva
ve vzorníku na stránce Moduly,
kde style="background:#E31E24;" přímo reprezentuje
zobrazovanou hodnotu, ne rozhodnutí o layoutu.
Co nepřidáváme
Novou CSS třídu nepřidáváme, pokud:
- existující komponenta řeší stejný problém,
- rozdíl je pouze barva,
- rozdíl je pouze obsah,
- rozdíl lze vyřešit modulovou identitou (
.module-*).
Pokud nová stránka potřebuje vlastní řešení něčeho, co na DIV.cz už existuje, nejprve ověříme, jestli problém neřeší společný design systém. Pokud společné pravidlo nevyhovuje více stránkám, upraví se společné pravidlo – nevzniká další lokální oprava jen kvůli jedné stránce.