Forntend vývoj novinky 💻
24.05.-31.05.2026
Ukládání přístupových tokenů do localStorage je sice jednoduché, ale při XSS útoku je útočník může snadno získat a převzít uživatelskou relaci. Bezpečnější přístup je držet krátkodobý access token jen v paměti aplikace a refresh token ukládat na serveru do HttpOnly cookie se správnými bezpečnostními atributy. Tím se zmenší prostor pro útok, citlivá data nejsou přímo dostupná z JavaScriptu a správa přihlášení je lépe škálovatelná. Článek doporučuje i krátkou životnost tokenů, rotaci refresh tokenů a důslednou ochranu proti XSS.
Článek ukazuje, jak používat cross-document View Transitions i u velkých gridů produktů, galerií nebo nekonečného scrollu bez toho, aby se CSS rozpadlo na stovky selektorů. Klíč je v rozlišení mezi view-transition-name, které identifikuje konkrétní prvek mezi stránkami, a view-transition-class, které slouží jako společný hook pro stylování animací. Autor doporučuje přiřazovat názvy až těsně před navigací přes události pageswap a pagereveal, aby se zbytečně nezpracovávaly všechny prvky na stránce. Výsledkem je škálovatelnější řešení, lepší výkon na slabších zařízeních a přirozený fallback v prohlížečích bez podpory.
view-transition-name a sdíleného view-transition-class: jména mapují konkrétní prvky mezi stránkami, zatímco jedna sada CSS pravidel obslouží třeba tisíce karet.prefers-reduced-motion, starší prohlížeče prostě načtou stránku běžně a novější Chrome, Edge i Safari už zvládají plnou podporu včetně view-transition-class.Slabé LCP často způsobuje render-blocking CSS, které prohlížeči brání vykreslit stránku, dokud nenačte celý stylesheet. Řešením je oddělit kritické CSS pro první obrazovku a vložit ho přímo do , zatímco zbytek stylů se načte asynchronně. Tím se hero sekce a hlavní typografie zobrazí okamžitě bez prázdné obrazovky nebo neostylovaného obsahu. Článek doporučuje moderní, jednodušší přístup bez křehkých automatizovaných nástrojů pro extrakci stylů.
media="print" a po načtení přepnout na all, s fallbackem v .rel="preload" as="image".Ruse je nové rozšíření pro Chrome, které umožňuje frontend vývojářům a QA rychle zachytit skutečný požadavek z prohlížeče a přepsat jeho odpověď lokálním mockem. Díky tomu lze snadno nasimulovat stavy, které se běžně špatně reprodukují, třeba chyby 500, prázdná data, pomalé odpovědi nebo problémy s oprávněními. Nástroj nevyžaduje mock server, proxy ani zásahy do kódu aplikace. První verze je záměrně jednoduchá a soustředí se hlavně na co nejrychlejší testování konkrétního UI stavu.
Článek ukazuje, jak v Reactu vyřešit zasekávání rozhraní při těžkých výpočtech přesunem práce z hlavního vlákna do Web Workeru. Typický příklad je parsování velkého CSV souboru, které by jinak zablokovalo klikání, animace i celé UI. Worker běží na pozadí, zpracuje data odděleně a s aplikací komunikuje pomocí zpráv. Výsledkem je plynulé ovládání i při práci s velkým objemem dat.
new Worker(), pošlete mu data metodou postMessage() a výsledek převezmete v onmessage.terminate(), aby zbytečně nedržel paměť.Google na příkladu blogové šablony ukazuje, jak mohou webové aplikace v Chromu využít AI běžící přímo v prohlížeči. Vestavěné modely zvládnou shrnování, generování nadpisů, tagů, moderaci komentářů, tvorbu alt textů, přepis textu i překlad. Hlavní výhody jsou nižší náklady, menší latence, lepší soukromí a možnost fungovat i offline po stažení modelu. Na nepodporovaných zařízeních lze navíc přepnout na cloudový režim.
Řada chyb v přístupnosti nevzniká kvůli chybějícímu aria atributu, ale kvůli špatně navrženým komponentám, obalům frameworku a dynamickému chování aplikace. Autor ukazuje, že opakované potíže se čtečkami, fókusen nebo klávesnicí se často vracejí napříč celým systémem, protože jsou zabudované v znovupoužitelných prvcích. Typické příklady jsou modální okna, vlastní dropdowny nebo tlačítka, která se vizuálně tváří správně, ale nemají spolehlivou sémantiku. Skutečná náprava proto často znamená návrat k nativnímu HTML a úpravu architektury, ne jen lokální záplatu.
CSS Grid Subgrid konečně umožňuje, aby vnořené prvky přebíraly řádky nebo sloupce nadřazeného gridu a držely stejné zarovnání napříč kartami s různě dlouhým obsahem. Typický problém s titulkem, textem a tlačítkem v kartách tak odpadá bez pevných výšek, složitých skriptů i rozbití sémantického HTML. Stačí, aby karta používala grid-template-rows: subgrid a zároveň přesně určila, kolik řádků rodičovského gridu zabírá. Výsledkem je čistší kód, lepší responzivita a stabilnější layout.
grid-row: span 3, prohlížeč neví, kolik řádků má převzít, a vnitřní obsah se může rozpadnout.Dubnový přehled Baseline ukazuje, které webové funkce už dozrály pro reálné nasazení napříč prohlížeči. Nově jsou k dispozici třeba CSS funkce contrast-color() a přesné sčítání přes Math.sumPrecise(), zatímco širší podporu získaly element , nové pomůcky pro WebAuthn, práce s nevalidními řetězci a ARIA reflexe v DOM. Hlavní motiv je jasný: méně vlastních hacků, více vestavěných webových standardů a jednodušší cesta k přístupnějším aplikacím.
contrast-color() umí automaticky zvolit kontrastní barvu textu podle pozadí, takže usnadňuje tvorbu dynamických motivů a snižuje množství ručně udržovaného CSS kvůli čitelnosti. a ARIA reflexe pomáhají stavět přístupnější rozhraní nativněji: prohlížeč dodá správnou sémantiku a vývojář může měnit ARIA stavy přímo přes vlastnosti jako element.ariaExpanded.Math.sumPrecise() řeší chyby při sčítání desetinných čísel, isWellFormed() a toWellFormed() pomáhají odhalit a opravit rozbité Unicode řetězce a WebAuthn zjednodušuje bezheslové přihlašování.CSS nově podporuje pravidlo @function, které umožňuje definovat znovupoužitelné funkce přímo ve stylesheetu a vracet z nich vypočtené hodnoty. Oproti preprocesorům fungují za běhu v prohlížeči, takže mohou reagovat na viewport, podporu funkcí i uživatelské preference. Podporují parametry, výchozí hodnoty i typovou kontrolu, takže jsou praktické pro návrhové tokeny, responzivní hodnoty nebo práci s barvami. Zatím jsou ale použitelné hlavně jako progressive enhancement, protože Firefox a Safari je ještě nepodporují.
var(), jen matematiku je stále potřeba psát přes calc().@supports nebo klasické hodnoty; omezením je i nemožnost rekurze a to, že funkce pouze vrací hodnotu bez vedlejších efektů.Nenechte si utéct žádnou důležitou novinku. Přidejte se k nám a získejte pravidelný informační přehled čistých faktů přímo do své schránky.