Přejít k obsahu Přejít k hlavnímu menu

SUPERKODERS

Frontendové novinky v roce 2023

Překročili jsme práh dalšího roku a je čas se podívat, co nám do frontendového světa přinesl ten minulý.

Jozef Rosenberger 17. ledna 2024 5 min. čtení

Nejprve si povíme něco o widgetu Baseline, který zpřehledňuje implementaci nových vlastností do prohlížečů, potom si projdeme seznam toho nejlepšího, co přišlo do CSS a HTML. Následovat bude State of HTML, nový sourozenec State of JS a State of CSS. Tyto průzkumy nám pomáhají sledovat nadcházející trendy v ekosystému vývoje webu. Nakonec se rychle podíváme na to, co se změnilo ve webové rychlosti a přístupnosti.

Text jsem vybavil množstvím odkazů na různé ukázky a další informace, které doporučuji nevynechat.

Baseline 2023

S widgetem Baseline začneme, protože pak už budete vždy vědět, které z nových vlastností lze již bezpečně používat. Baseline informuje o plné podpoře dané vlastnosti v hlavních prohlížečích a jejich mobilních verzích Externí odkaz .

Widget definuje dvě fáze implementace vlastnosti: První, když je podporovaná ve všech hlavních prohlížečích (označení rokem začátku podpory). Druhá, ve které je již plně podporovaná 30 měsíců (widely available).

Aktuálně můžete Baseline využít v MDN Externí odkaz a Can I Use Externí odkaz .

Obrazek obsahuje tři různé zobrazení Baseline widgetu. Shora dolů: zelený widget s textem Baseline Widely available, modrý widget Baseline 2022 Newly available, šedý widget s textem Limited availability
Zdroj: Baseline (compatibility) Externí odkaz .

A nyní jdeme na novinky.

:has() selektor

Určitě první a největší novinkou byl relační selektor :has(). Ten na začátku získal největší pozornost hlavně proto, že ho lze použít jako selektor rodiče h1:has(+ p) {}. A na to frontend komunita čekala fakt dlouho.

To ale není jediná jeho funkce a do závorek můžete zapsat jakýkoli relativní selektor, kombinovat ho s jinými selektory a dotazovat se tak například i na sousední elementy, nebo ho použít na filtraci.

Příklad použití has selektoru pro filtrování seznamu článků
Zdroj: CSS Notes Filters Externí odkaz .

Spoustu ukázek a odkazů na použití najdete v článku na Vzhůru dolů Relační selektor :has – zdaleka ne jen selektor rodiče Externí odkaz , nebo v přednášce od Jhey Tompkinse z CSSDay '23 Supercharge your skills with creative coding Vol IX: You :has the power. Externí odkaz .

@container queries

Container queries nám umožňují přímé dotazování na kontejner nad komponentou, kterou chceme dynamicky měnit na základě velikosti kontejneru. V tom je velký rozdíl od media queries, a to při tvorbě komponent to chybělo jako sůl. Zatímco v media queries je jasné, z čeho se velikost počítá, při container queries je nejprve potřeba kontejner definovat pomocí container-type.

Příklad použití container queries na dvou boxech různých šířek
Zdroj: CSS Containers. What Do They Know? Externí odkaz .

Style container queries

Container queries mohou vyhodnocovat nejen velikost, ale také styly kontejneru. Navíc pomocí CSS pravidla @property můžeme nastavit syntax pro proměnné v CSS ( ukázka Externí odkaz ).

Příklad použití style container queries na seznamu boxů s počasím
Zdroj: Getting Started with Style Queries Externí odkaz .

CSS nesting

Zanořování CSS, které známe z CSS preprocesorů, významně přispívá ke čitelnosti, modularitě a udržitelnosti šablon. V konečném důsledku též snižuje velikost výsledných CSS souborů.

Stejně jako v případě Sass nebo Less je možné využít selektor &.

.a {
	/* styles for element with class="a" */
	.b {
		/* styles for element with class="b" which is a descendant of class="a" */
	}
	&.b {
		/* styles for element with class="a b" */
	}
}

CSS subgrid

Subgrid rozšiřuje schopnost gridu tak, že potomek vytváří vnořenou mřížku - „subgrid“, která automaticky převezme definici mřížky rodičovského kontejneru. Nejčastěji se s tím setkáme např. při zarovnávání jednotlivých částí produktových karet v seznamu produktů. Více informací o subgridu naleznete na webu Vzhůru dolů Externí odkaz .

Zobrazení mřížky subgridu pomocí Dev Tools

Popover

Popover atribut řeší defaultní zobrazování vyskakovacích non-modálních oken. Element s atributem popover je defaultně skrytý pomocí display: none. Popover lze stylovat, odkazovat na jeho třídu a podobně. Plnou manipulaci s objektem pomocí JavaScriptu umožňuje Popover API Externí odkaz .

Ukázky jednoduchých použití si prohlédněte na webu MDN Externí odkaz .

Na rozdíl od HTML elementu <dialog>, který má plnou podporu prohlížečů od roku 2022, zde ještě čekáme na Firefox 124 (release 19.3.2024).

Základní použití atributu popover v kódu
Zdroj: MDN popover Externí odkaz .

Ještě více novinek roku 2023

…a mnoho dalšího obsahu je v krásném článku CSS Wrapped: 2023! Externí odkaz od Una Kravets Externí odkaz , Bramus Externí odkaz & Adam Argyle, který vyšel před Vánoci.

State of HTML

K projektům State of CSS Externí odkaz a State of JS Externí odkaz , které analyzují trendy a vývoj ve frontend světě, přibylo v minulém roce State of HTML Externí odkaz . Výsledky těchto analýz nám poskytují ucelený pohled na to, jak jsou určité technologie a postupy vnímány a používány v komunitě vývojářů. Přípravu prvního ročníku si vzala komplet na starost Lea Verou Externí odkaz . Na výsledky si stejně jako u State of JS ale musíme ještě pár dní počkat.

Logo State of HTML 2023

Web performance

Začátkem roku vyšel Lighthouse 10 a s ním i velká změna ve výpočtu Lighthouse Performance Score (LPS). Metrika Time To Interactive (TTI) Externí odkaz je pryč a 10% z celkového skóre se přesunulo na metriku Cumulative Layout Shift (CLS) Externí odkaz .

Další novinka přichází také do Core Web Vitals, kdy metriku First Input Delay (FID) nahradí Interaction to Next Paint (INP) Externí odkaz . Google chce tímto krokem zpřísnit metriku v oblasti interaktivity webů. Tato změna je již dlouho dopředu ohlášená na březen 2024, aby všichni měli dost času na optimalizace.

Úpravu zaznamenala také metrika Largest Contentful Paint (LCP) Externí odkaz , kde jsou nyní vyřazeny z hodnocení obrázky s nízkou informační hodnotou, aby se předešlo jejich zneužití různými „LCP hacky“ Externí odkaz .

Rozdíl v metrikách FID a INP
Rozdíl v metrikách FID a INP. Zdroj: Pohled pod pokličku nové metriky Interaction to Next Paint Externí odkaz .

Přístupnost

Směrnici o přístupnosti webového obsahu WCAG vyšla v říjnu po 5 letech nová aktualizace, konkrétně ve verzi 2.2. Ta se zaměřuje hlavně na zpřístupnění navigace a interakce. Výraznou změnou je odstranění kritéria „Parsing“, čímž reaguje na schopnost prohlížeče správně interpretovat i chybný HTML kód. Více se dočtete na stránce WCAG 2.2 Is Here (Finally): 4 Takeaways Externí odkaz .

Browserstack pro lepší testování přístupnosti vydal nové rozšíření do DevTools Accessibility Toolkit. Accessibility Toolkit Externí odkaz .

Chceš se bavit s námi?

Hledáme do týmu další zapálené vývojáře.
Mrkněte na kariéru a napište Michalovi.

Michal Matuška | CTO

Michal Matuška