Moderni CSS je dodao funkcije i svojstva koja zamjenjuju cijele kategorije media-query i JavaScript trikova. Ističućih:
clamp() — fluidne, ograničene vrijednosti
h1 { font-size: clamp(1.5rem, , ); }
Moderni CSS je dodao funkcije i svojstva koja zamjenjuju cijele kategorije media-query i JavaScript trikova. Ističućih:
h1 { font-size: clamp(1.5rem, , ); }
clamp(min, preferred, max) pruža fluidnu tipografiju/razmak koji se glatko skalira s prikazom, ali ostaje unutar granica — zamjenjujući nekoliko breakpoints-ovih font-size media query-ja s jednom linijom.
.video { aspect-ratio: 16 / 9; width: 100%; } /* height auto-computed to keep 16:9 */
.avatar { aspect-ratio: 1; } /* perfect square at any width */
Prije toga, održavanje responzivnog okvira 16:9 zahtijevalo je poznati padding-bottom: 56.25% trik. Sada je to samo jedna deklaracija — i ona rezervira prostor (dobro za CLS) prije nego što se slike učitaju.
.container { width: min(90%, 1200px); } /* whichever is SMALLER → fluid but capped */
.box { padding: max(1rem, 3vw); } /* whichever is LARGER → a minimum floor */
min()/max() biraju manju/veću vrijednost, omogućujući jednom svojstvu da bude responzivno bez media query-ja (npr. "90% širine, ali nikada više od 1200px").
.card { display: grid; grid-template-rows: subgrid; grid-row: span 3; }
subgrid omogućava ugneždenu mrežu da naslijedi redove prati svojega roditelja, tako da se stavke preko odvojenih kartica (naslovi, tijelo, dugmići) savršeno poravnavaju na zajedničkim redovima — prije toga nemoguće bez fiksnih visina.
.flex { display: flex; gap: 1rem; } /* gap now works in flexbox, not just grid */
Ova svojstva eliminiraju dugotrajna rješenja: clamp()/min()/max() zamjenjuju nizove media query-ja za fluidnu veličinu, aspect-ratio zamjenjuje padding trik i štiti od promjene rasporeda, a subgrid rješava poravnanje između komponenti.
Čine responzivne, proporcionalne rasporede dramatično jednostavnijima i robusnijima — moderni CSS deklarativno radi ono što je prije trebalo JS ili nesigurne trikove.