Asi před 15 lety jsem pracoval ve společnosti, kde jsme vytvářeli aplikace pro cestovní kanceláře, pracovníky letišť a letecké společnosti. Vytvořili jsme také vlastní interní rámec pro komponenty uživatelského rozhraní a možnosti jednostránkové aplikace. Měli jsme komponenty pro všechno: pole, tlačítka, karty, rozsahy, datové tabulky, nabídky, výběry data, výběry a vícenásobné výběry. Měli jsme dokonce i komponent div. Naše komponenta div byla mimochodem skvělá, umožňovala nám dělat zaoblené rohy ve všech prohlížečích, což, věřte nebo ne, v té době nebylo snadné.

Naše práce se odehrála v bodě naší historie, kdy JS, Ajax a dynamické HTML byly považovány za revoluci, která nás přivedla do budoucnosti. Najednou jsme mohli dynamicky aktualizovat stránku, získávat data ze serveru a nemuseli jsme přecházet na jiné stránky, což bylo považováno za pomalé a na obrazovce mezi dvěma stránkami blikal velký bílý obdélník. Byla tam fráze, kterou zpopularizoval Jeff Atwood (zakladatel StackOverflow), která zněla: „Každá aplikace, kterou lze napsat v JavaScriptu, bude nakonec napsána v JavaScriptu.“ — Jeff Atwood

V té době nám to připadalo jako odvaha skutečně jít a vytvořit tyto aplikace. Připadalo mi to jako všeobecný souhlas dělat všechno s JS. Takže jsme dělali všechno s JS a opravdu jsme si neudělali čas na zkoumání jiných způsobů, jak věci dělat. Opravdu jsme necítili pobídku pořádně se naučit, co HTML a CSS umí. Ve skutečnosti jsme web nevnímali jako vyvíjející se aplikační platformu jako celek. Většinou jsme to viděli jako něco, co musíme obejít, zejména pokud jde o podporu prohlížeče. Mohli bychom na to hodit více JS, abychom věci dotáhli do konce. Pomohlo by mi, kdybych si udělal čas a dozvěděl se více o tom, jak web fungoval a co bylo na platformě k dispozici? Jistě, pravděpodobně jsem mohl oholit spoustu kódu, který nebyl skutečně potřeba. Ale v té době možná ne tolik. Víte, rozdíly v prohlížečích byly tehdy docela významné. To byla doba, kdy byl Internet Explorer stále dominantním prohlížečem, přičemž Firefox byl těsně druhý, ale začal ztrácet podíl na trhu, protože Chrome rychle získával na popularitě. Přestože se Chrome a Firefox docela dobře shodovaly na webových standardech, prostředí, ve kterých naše aplikace běžely, znamenalo, že jsme museli IE6 podporovat po dlouhou dobu. I když jsme měli povolenou podporu IE8, stále jsme se museli vypořádat s mnoha rozdíly mezi prohlížeči. Nejen to, ale web té doby prostě neměl tolik funkcí zabudovaných přímo do platformy.

Rychle vpřed k dnešku. Věci se ohromně změnily. Nejenže máme více těchto schopností než kdykoli předtím, ale také se zvýšila rychlost, s jakou jsou dostupné. Dovolte mi znovu položit otázku: Pomohlo by vám, když si uděláte čas a dozvíte se více o tom, jak web funguje a co je na platformě k dispozici? Naprosto ano. Naučit se porozumět a používat webovou platformu dnes vám dává obrovskou výhodu oproti ostatním vývojářům. Ať už pracujete na výkonu, přístupnosti, responzivitě, to vše dohromady nebo jen dodáváte funkce uživatelského rozhraní, pokud to chcete dělat jako odpovědný inženýr, znalost nástrojů, které máte k dispozici, vám pomůže dosáhnout vašich cílů rychleji a lépe. Některé věci, na které už možná nebudete potřebovat knihovnu Když víme, jaké prohlížeče dnes podporují, otázka tedy zní: Co můžeme zavrhnout? Potřebujeme komponent div k vytvoření zaoblených rohů v roce 2025? Samozřejmě, že ne. Vlastnost border-radius je v tuto chvíli podporována všemi aktuálně používanými prohlížeči již více než 15 let. A brzy také přijde tvar rohů pro ještě luxusnější rohy. Pojďme se podívat na relativně nedávné funkce, které jsou nyní dostupné ve všech hlavních prohlížečích a které můžete použít k nahrazení stávajících závislostí ve vaší kódové základně. Nejde o to okamžitě zahodit všechny své milované knihovny a přepsat svou kódovou základnu. Stejně jako u všeho ostatního budete muset nejprve vzít v úvahu podporu prohlížeče a rozhodnout se na základě dalších faktorů specifických pro váš projekt. Následující funkce jsou implementovány ve třech hlavních prohlížečích (Chromium, WebKit a Gecko), ale můžete mít různé požadavky na podporu prohlížeče, které vám brání v jejich okamžitém použití. Nyní je však stále vhodná doba se o těchto funkcích dozvědět a možná je v určitém okamžiku naplánovat. Popovers A Dialogy Popover API, HTML element

a pseudoelement ::backdrop vám mohou pomoci zbavit se závislostí na vyskakovacích oknech,tooltip a dialogové knihovny, jako je Floating UI, Tippy.js, Tether nebo React Tooltip. Zvládají přístupnost a správu zaměření za vás, ihned po vybalení, jsou vysoce přizpůsobitelné pomocí CSS a lze je snadno animovat. Akordeony Element
, jeho atribut name pro vzájemně se vylučující prvky a pseudoelement ::details-content odstraňují potřebu akordeonových komponent, jako je Bootstrap Accordion nebo React Accordion. Pouhé používání této platformy znamená, že pro lidi, kteří znají HTML/CSS, je snazší porozumět vašemu kódu, aniž by se museli nejprve naučit používat konkrétní knihovnu. Znamená to také, že jste imunní vůči porušení změn v knihovně nebo zrušení této knihovny. A samozřejmě to znamená méně kódu ke stažení a spuštění. Vzájemně se vylučující prvky detailů nepotřebují JS k otevření, zavření nebo animaci. Syntaxe CSS Kaskádové vrstvy, pro organizovanější kódovou základnu CSS, vnořování CSS, pro kompaktnější CSS, nové barevné funkce, relativní barvy a mix barev, nové funkce Maths jako abs(), sign(), pow() a další pomáhají snížit závislosti na pre-procesorech CSS, knihovnách nástrojů jako Bootstrap a Tailwind nebo dokonce runtime knihovnách CSS-in-JS. Game changer :has(), jedna z dlouhodobě nejžádanějších funkcí, odstraňuje potřebu složitějších řešení založených na JS. JS Utility Moderní metody Array, jako je findLast() nebo at(), stejně jako metody Set, jako je rozdíl(), intersection(), union() a další, mohou snížit závislosti na knihovnách, jako je Lodash. Kontejnerové dotazy Kontejnerové dotazy způsobují, že komponenty uživatelského rozhraní reagují na jiné věci, než je velikost výřezu, a proto jsou více použitelné v různých kontextech. K tomu již není potřeba používat knihovnu uživatelského rozhraní s vysokým JS a není třeba používat ani polyfill. Rozložení Grid, subgrid, flexbox nebo multi-column existují již dlouhou dobu, ale při pohledu na výsledky průzkumů State of CSS je jasné, že vývojáři mají tendenci být velmi opatrní při přijímání nových věcí a čekají velmi dlouhou dobu, než to udělají. Tyto funkce jsou základní linií již dlouhou dobu a můžete je použít k odstranění závislostí na věcech, jako je mřížkový systém Bootstrapu, nástroje flexbox Foundation Framework, pevná mřížka Bulma, mřížka Materialize nebo sloupce Tailwind. Neříkám, že byste měli zahodit svůj rámec. Váš tým to z nějakého důvodu přijal a odstranění může být velký projekt. Ale když se podíváme na to, co může webová platforma nabídnout bez obalu třetí strany, přináší to spoustu výhod. Věci, které už v blízké budoucnosti možná nebudete potřebovat Nyní se pojďme rychle podívat na některé věci, na které v blízké budoucnosti nebudete potřebovat knihovnu. To znamená, že věci níže nejsou zcela připraveny na hromadné přijetí, ale být si jich vědom a naplánovat potenciální pozdější použití může být užitečné. Umístění kotvy Umístění kotvy CSS se stará o umístění vyskakovacích oken a popisků vzhledem k ostatním prvkům a stará se o jejich zobrazení, a to i při přesouvání, posouvání nebo změně velikosti stránky. Jedná se o skvělý doplněk k výše zmíněnému Popover API, který ještě více usnadní migraci od výkonově náročnějších JS řešení. Navigační API Navigační API lze použít ke zpracování navigace v jednostránkových aplikacích a může být skvělým doplňkem nebo dokonce náhradou úloh React Router, Next.js routing nebo Angular routing. Zobrazit rozhraní API pro přechody Rozhraní View Transitions API může animovat mezi různými stavy stránky. V jednostránkové aplikaci to velmi usnadňuje plynulé přechody mezi stavy a může vám pomoci zbavit se knihoven animací, jako jsou Anime.js, GSAP nebo Motion.dev. Ještě lepší je, že API lze použít také s vícestránkovými aplikacemi. Pamatujete si dříve, když jsem řekl, že důvodem, proč jsme ve společnosti, kde jsem před 15 lety pracoval, jsme vytvořili jednostránkové aplikace, bylo vyhnout se bílému záblesku opětovného načítání stránek při navigaci? Kdyby bylo toto API v té době k dispozici, byli bychom schopni dosáhnout krásných efektů přechodu stránek bez rámce jedné stránky a bez velkého počátečního stahování celé aplikace. Animace řízené rolováním Animace řízené posouváním běží na pozici posouvání uživatele, nikoli v průběhu času, což z nich dělá skvělé řešení pro vyprávění příběhů a prohlídky produktů. Někteří lidé to trochu přehnali, ale když se dobře používá, může to být velmi účinný nástroj pro návrh a může pomoci zbavit se knihoven jako: ScrollReveal, GSAP Scroll neboWOW.js. Přizpůsobitelné výběry Přizpůsobitelný výběr je normální prvek

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free