Tlačítko

components/button · makro button(link, classes)

Tři varianty podle grafiky. Výchozí je žlutá: Exo 2 SemiBold 18, výška 52, šipka 16 px. Druhá .is-outline je bílá s tmavým obrysem 1,5 px (Zvýhodněná hypotéka, blok financing-examples), třetí .is-navy je tmavá se žlutým hoverem (Referenční projekty, blok project-showcase). Třídy .button, .is-outline, .is-navy, .has-arrow, .has-arrow-down (rotovaný chevron), .is-block, .is-small (malá varianta 40 / 14 z karet projektů). Hover na světlém pozadí CG Blue s bílým textem i šipkou, na tmavém pozadí (sekce .is-bg-dark nebo karta .is-dark) bílé s tmavým textem; obrys se na tmavém pozadí obrací na bílý.

button · tmavé pozadí (.is-bg-dark)
button · tmavá karta na světlé sekci (.is-dark)

Karta s tmavým pozadím dostane bílý hover přes třídu .is-dark.

Prozkoumat financování Nabídka bytů

Hlavička sekce

components/section-header · makro sectionHeader(args)

Args pretitle, pretitleStyle (line), title, text, tag, align (center | left), size (hero | small), layout (split | actions), reveal, classes, id. Varianta split má sloupce v poměru 566 : 808; třída is-split-even v classes je přepne na 1 : 1. Varianta actions má vpravo slot pro ovladače — jeho obsah se předává {% call %} blokem, takže si markup (js-* třídy, ARIA) drží blok u sebe. Mezera pod hlavičkou je --spc-section-header, bloky si ji přepisují. Jako samostatná sekce stránky se komponenta vkládá blokem headline.

výchozí · vycentrovaná s badgem

Financování

Bydlení bez kompromisů

Perex je omezený na 676 px a zarovnaný na střed. Titulek je H2 48 ExtraBold, akcent v něm dělá tučný řez.

layout: 'split' · titulek vlevo, perex vpravo (od 1024 px)

Vyberte si způsob financování,
který vám bude nejvíc vyhovovat

Titulek je H2 Special 35 v základním řezu, tučný je jen jeho první řádek. Perex vpravo není omezený šířkou — sloupce drží poměr 566 : 808.

layout: 'split' + classes: 'is-split-even' · rovnoměrné sloupce 1 : 1

Jak probíhá koupě
nového bytu

Sloupce se dělí napůl (688 / 688 z obsahové šířky), mezera je 32. Hlavička tak lícuje s dvousloupcovou mřížkou obsahu pod sebou — blok numbered-list.

layout: 'actions' + pretitleStyle: 'line' · akce vpravo (od 1024 px)

Společenská odpovědnost

Podporujeme lepší
a udržitelnější Česko

size: 'small', align: 'left'

Menší titulek zarovnaný doleva

Skleněná karta

components/glass-card · třída .glass-card

Poloprůhledné bílé sklo (--clr-glass) s rozostřeným podkladem (--blur-glass) — všude, kde text leží nad videem nebo nad tmavým přechodem: karta v hero, karta a vyhledávací panel v map-hero, dlaždice v cta-tiles. Je to jen CSS, žádné makro — každá karta má jiný obsah, třída se přidá na existující element. Modifikátor .has-line přidá žlutou linku 40 × 4 nad obsah. Rozměry se ladí proměnnými --glass-card-radius, --glass-card-line-width, --glass-card-line-gap a --glass-card-line-inline (auto linku vycentruje), a to na tomtéž elementu — deklarace na sekci nad ním by se neuplatnila.

Bez podpory backdrop-filter (starší Safari a Firefox, vypnuté průhlednosti) by bílá na 10 % text neunesla, proto @supports not podklad zatmaví na --glass-card-fallback (navy 65 %). Panel karty projektu má sklo vlastní — leží nad neprůhledným podkladem a zapíná se až od 768 px.

glass-card · s linkou (.has-line)

Skleněná karta se žlutou linkou

Linka je ::before, v markupu není. Rozjezd při reveal animaci řeší data-reveal-line.

glass-card · vycentrovaná linka (--glass-card-line-inline: auto)

Vycentrovaná karta

Takhle je linka v dlaždicích cta-tile.

glass-card · bez linky (vyhledávací panel)

Bez .has-line je karta jen sklo — tak ji používá components/search-panel ve variantě glass.

Šedý box a podnadpis

components/info-box · makra infoBox(html, classes), infoBoxSubtitle(text, classes)

Dva drobné prvky, které sdílí karta nabídky (offer-dark, offer-light) s detailem programu v bloku programs a s blokem image-text-with-header. Podnadpis je <p>, ne nadpis — popisuje následující obsah, není to úroveň osnovy stránky. Výchozí je 20 SemiBold; třída is-small v classes ho přepne na drobných 16 Bold pro textový sloupec vedle obrázku. Bez textu se nevypíše nic.

infoBoxSubtitle · výchozí (20 SemiBold) a is-small (16 Bold)

Co získáte

Co vám OIS umožní

infoBox · šedý box s WYSIWYG obsahem

Zvýhodněnou hypotéku vyřídíme zdarma včetně administrativy. Financovat lze až 90 % kupní ceny bytu.

Hlavička s linkou

components/line-header · makro lineHeader(args)

Dekorativní linka 40 × 4 a pod ní titulek, oboje vlevo — vzor ze světlých sekcí s titulkem zarovnaným vlevo (financing-examples, layout-examples, download-cards, project-signpost). Od sectionHeader se liší tím, že linka je bez textu nadtitulku. Tři velikosti: h3 (35 Regular), h3-small (32 Regular, výchozí) a h4 (24 Bold); mezera pod linkou se odvozuje z velikosti (12 / 14 / 24), gap ji umí přebít. Titulek snese tučný akcent (<strong>), barva linky jde přebít proměnnou --line-header-line-color. Mezeru pod hlavičkou určuje blok, ne komponenta. Bez titulku se nevypíše nic.

line-header · size: h3 (35 Regular)

Příklady financování

line-header · size: h3-small (32 Regular, výchozí)

Fotografie a vizualizace ke stažení

line-header · size: h4 (24 Bold), tag: h3

Vizualizace exteriérů

Poznámka

components/note · makro note(html, classes)

Kolečko „i“ a drobný právní text pod obsahem sekce (poprvé v bloku financing-examples). Ikona je textový znak, ne SVG — tak je i v grafice — a je aria-hidden, význam nese text. Text je WYSIWYG pole, uvnitř platí styly .content-wrapper. Mezery kolem poznámky určuje blok, který ji vkládá, ne komponenta. Bez textu se nevypíše nic.

note · jeden odstavec
Uvedené příklady jsou orientační a nejsou nabídkou k uzavření smlouvy. Konkrétní podmínky vám spočítáme na míru podle vaší situace.
note · delší text s odkazem

Uvedené měsíční splátky platí při financování Zvýhodněnou hypotékou a při úhradě minimální požadované částky kupní ceny z vlastních prostředků. Doba splatnosti úvěru je 35 let.

Nabídka je časově omezena a platí do odvolání ze strany CENTRAL GROUP. Podrobnosti najdete v podmínkách financování.

Textový sloupec

components/text-column · jen CSS, bez makra

Šedomodrá linka 40 × 4, titulek ve dvou řezech (základ Regular, <strong> SemiBold), perex Medium a šedá poznámka. Markup si píše každý blok sám — obal .text-column (linka je jeho ::before, proto na něm visí data-reveal-line), uvnitř .text-column-title, .text-column-text a .text-column-note (odstavce z filtru paragraphs, mezi nimi 30). Používají ho bloky image-text-with-header a endowment-fund. Šířku sloupce určuje blok.

text-column · titulek, perex a poznámka o dvou odstavcích

Pomáháme zlepšovat zdraví dětí už téměř dvě desetiletí

CENTRAL GROUP je zakladatelem a dlouhodobým hlavním sponzorem Nadačního fondu pro zdraví dětí.

Za 19 let přispěl CENTRAL GROUP na tyto účely více než 24 milionů korun.

Na podporu fondu pořádá CENTRAL GROUP každoročně také charitativní galavečer.

Kontaktní osoba

components/contact-person · makro contactPerson(opts)

Fotka osoby, jméno, kontaktní řádky ve žlutém čtverci a volitelné CTA — používá je blok contact-cta (varianta s titulkem nad boxem), project-table a contact-list (kulatá fotka). Args name, photo, contacts (pole { type: 'phone' | 'email', value }, whitelist typů je v makru), cta, dál háky classes, photoClasses, bodyClasses, ctaClasses a lazy. Kontakty komponenta nečte odnikud — dostane je od bloku, takže můžou být globální (site.json) i osobní.

Obal je display: contents, takže fotka, sloupec jména i CTA zůstávají přímými položkami layoutu bloku; rozměry se ladí proměnnými --contact-person-* zapsanými na .blok .contact-person (fotka i --contact-person-photo-fit / -position / -bg / -ring). Řádky kreslí komponenta contact-row — jejich vzhled ladí --contact-row-* na .blok .contact-row. Jméno je popisek kontaktů (aria-labelledby), ne nadpis; fotka je dekorace (alt="") a smí přesahovat nad hranu boxu — obal proto nikdy nesmí mít overflow: hidden. Bez dat se nevypíše nic.

contactPerson · fotka, jméno, kontakty a CTA
contactPerson · jen jméno a kontakty (bez fotky a bez CTA)

Vysouvací formulář

components/contact-form · partial partials/contact-form.njk

Globální panel „Sjednat schůzku“ — není blok, vkládá se jednou z layouts/base.njk a data má v _data/contactForm.json. Na téhle stránce je proto taky. Záložka je součástí panelu: zavřená vykouká u pravého okraje, po kliku vyjede celý panel a zůstane na jeho levé straně, druhý klik ho zase zasune (pod 768 px je z ní plovoucí kulaté tlačítko). Otevře ho i jakýkoli odkaz na kotvu #schuzka — js/components/anchors.ts ji na kotvě otevře místo scrollování. Není to modal ze components/modal/, jen sdílí jeho utility (focus trap, zámek scrollu, Esc).

contact-form · otevření kotvou

Lightbox

components/lightbox · makro lightbox(id, opts)

Prohlížečka fotek postavená nad components/modal: dialog, focus trap, Esc, zámek scrollu i návrat fokusu zůstávají modalu, lightbox řeší jen fotku, popisek, počítadlo a listování šipkami ←/→. Makro vypíše prázdnou skořápku; sadu do ní vloží js/components/lightbox.ts voláním openLightbox(id, photos, index, trigger). Fotky se nevypisují dvakrát — collectPhotos(root) je přečte z odkazů .js-lightbox-item (href a data-srcset / data-webp / data-alt / data-width / data-height). Poprvé v bloku project-showcase. Skořápka je position: fixed, takže nesmí ležet uvnitř prvku s data-reveal.

lightbox · spouštěče jsou odkazy (bez JS otevřou plnou fotku)

Formulářové prvky

core/forms.css · components/alert · makro alert(text, type)

Pole, zaškrtávátka, stavy a hlášky, ze kterých se skládá každý formulář v šabloně — kontaktní panel „Sjednat schůzku“ i registrace v bloku signup. Třídy jsou .form (mřížka), .form-row (sloupce vedle sebe), .form-field (jedno pole, stav .is-invalid), .form-required (hvězdička), .form-error (hláška pod polem, prázdná se skryje), .form-check (řádek se zaškrtávátkem), .form-control.has-icon + .form-control-icon (pole s ikonou vpravo), .form-control.has-icon-start (ikona vlevo, plátno 24 — adresní pole v magazine-order), .form-actions a .form-submit.

⚠ Ukázky níž nejsou <form>, ale <div class="form"> — stavy se vypisují staticky (stejně jako u tlačítek se tu neemuluje hover) a formulář v knihovně by se buď odesílal, nebo by po Enteru přenačetl stránku. Živé chování ukazuje vysouvací panel výš: odeslání řídí js/components/form.ts na třídě .js-form (s atributem data-mail odesílá na API, bez něj simuluje), který přepíná .is-submitting, .is-invalid a plní .js-form-message. Kontrakt těchto tříd se nesmí měnit.

pole · text, e-mail, telefon, ikona vlevo, textarea, select, datum s ikonou
zaškrtávátka · checkbox, souhlas s odkazem, skupina přepínačů
Preferovaný kontakt
stavy · neplatné pole, odesílání
Zadejte e-mail ve tvaru jmeno@domena.cz.
hlášky · alert(text, type) — success, error, info
Zpráva byla odeslána. Ozveme se do dvou pracovních dnů.
Zprávu se nepodařilo odeslat. Zkuste to prosím znovu.
Schůzky sjednáváme v pracovní dny mezi 8 a 19 hodinou.
pole na tmavé sekci