Prije otprilike 15 godina radio sam u tvrtki u kojoj smo izrađivali aplikacije za putničke agente, radnike u zračnim lukama i zrakoplovne kompanije. Također smo izgradili vlastiti interni okvir za komponente korisničkog sučelja i mogućnosti aplikacije na jednoj stranici. Imali smo komponente za sve: polja, gumbe, kartice, raspone, podatkovne tablice, izbornike, birače datuma, odabire i višestruke odabire. Imali smo čak i div komponentu. Usput, naša div komponenta je bila izvrsna, omogućila nam je da radimo zaobljene kutove na svim preglednicima, što, vjerovali ili ne, nije bilo lako napraviti u to vrijeme.

Naš rad odvijao se u trenutku naše povijesti kada su se JS, Ajax i dinamički HTML smatrali revolucijom koja nas je dovela u budućnost. Odjednom smo mogli dinamički ažurirati stranicu, dobiti podatke s poslužitelja i izbjeći navigaciju na druge stranice, što se smatralo sporim i bljeskalo velikim bijelim pravokutnikom na ekranu između dviju stranica. Postojao je izraz koji je popularizirao Jeff Atwood (osnivač StackOverflowa), a koji je glasio: “Svaka aplikacija koja se može napisati u JavaScriptu na kraju će biti napisana u JavaScriptu.”— Jeff Atwood

Nama se u to vrijeme ovo činilo kao izazov da stvarno krenemo i kreiramo te aplikacije. Osjećao sam se poput općeg odobrenja raditi sve s JS-om. Dakle, sve smo radili s JS-om i nismo baš odvojili vrijeme za istraživanje drugih načina za obavljanje stvari. Nismo baš osjećali poticaj da ispravno naučimo što HTML i CSS mogu učiniti. Web zapravo nismo u cijelosti doživljavali kao platformu za aplikacije koja se razvija. Uglavnom smo to vidjeli kao nešto što trebamo zaobići, posebno kada je u pitanju podrška za preglednik. Mogli bismo jednostavno ubaciti još JS-a da obavimo stvari. Bi li mi pomoglo izdvajanje vremena da saznam više o tome kako web funkcionira i što je dostupno na platformi? Naravno, vjerojatno sam mogao obrijati hrpu koda koji uistinu nije bio potreban. Ali, u to vrijeme, možda ne toliko. Vidite, razlike u preglednicima tada su bile prilično značajne. To je bilo vrijeme kada je Internet Explorer još uvijek bio dominantan preglednik, s Firefoxom koji je bio drugi, ali je počeo gubiti tržišni udio zbog Chromea koji je brzo stjecao popularnost. Iako su se Chrome i Firefox prilično dobro složili oko web standarda, okruženja u kojima su se izvodile naše aplikacije značila su da smo morali podržavati IE6 dugo vremena. Čak i kad nam je bilo dopušteno podržavati IE8, morali smo se nositi s mnogo razlika između preglednika. I ne samo to, već web tog vremena jednostavno nije imao toliko mogućnosti ugrađenih izravno u platformu.

Brzo naprijed do danas. Stvari su se strahovito promijenile. Ne samo da imamo više ovih mogućnosti nego ikad prije, već se povećala i stopa kojom postaju dostupne. Dopustite mi da ponovno postavim pitanje: Bi li vam danas pomoglo izdvajanje vremena da saznate više o tome kako web funkcionira i što je dostupno na platformi? Apsolutno da. Naučiti razumjeti i koristiti web platformu danas vam daje veliku prednost u odnosu na druge programere. Bilo da radite na performansama, pristupačnosti, odzivu, svima njima zajedno, ili samo isporučujete značajke korisničkog sučelja, ako to želite učiniti kao odgovoran inženjer, poznavanje alata koji su vam dostupni pomaže vam da brže i bolje postignete svoje ciljeve. Za neke stvari možda više nećete trebati knjižnicu Znajući što preglednici danas podržavaju, pitanje je, dakle, što možemo odbaciti? Trebamo li div komponentu za izradu zaobljenih kutova u 2025.? Naravno, nemamo. Svojstvo border-radius u ovom trenutku podržavaju svi trenutno korišteni preglednici više od 15 godina. A kutni oblik također dolazi uskoro, za još ljepše kutove. Pogledajmo relativno nove značajke koje su sada dostupne u svim glavnim preglednicima i koje možete koristiti za zamjenu postojećih ovisnosti u svojoj bazi koda. Poanta nije odmah odbaciti sve svoje voljene biblioteke i ponovno napisati svoju bazu koda. Što se tiče svega ostalog, prvo ćete morati uzeti u obzir podršku preglednika i odlučiti na temelju drugih čimbenika specifičnih za vaš projekt. Sljedeće značajke implementirane su u tri glavna motora preglednika (Chromium, WebKit i Gecko), ali možda imate različite zahtjeve za podršku preglednika koji vas sprječavaju da ih odmah upotrijebite. Ipak, sada je još uvijek dobro vrijeme da naučite o tim značajkama i da ih možda planirate koristiti u nekom trenutku. Prozori i dijalozi Popover API, HTML element

i pseudoelement ::backdrop mogu vam pomoći da se riješite ovisnosti o skočnim prozorima,opis alata i dijaloške biblioteke, kao što su Floating UI, Tippy.js, Tether ili React Tooltip. Oni upravljaju pristupačnošću i upravljanjem fokusom za vas, izvan kutije, vrlo su prilagodljivi pomoću CSS-a i lako se mogu animirati. Harmonike Element
, njegov atribut name za međusobno isključive elemente i pseudoelement ::details-content uklanjaju potrebu za komponentama harmonike kao što su Bootstrap Accordion ili komponenta React Accordion. Samo korištenje platforme ovdje znači da je ljudima koji poznaju HTML/CSS lakše razumjeti vaš kod bez potrebe da prvo nauče koristiti određenu biblioteku. To također znači da ste imuni na promjene u biblioteci ili ukidanje te biblioteke. I, naravno, to znači manje koda za preuzimanje i pokretanje. Međusobno isključivi elementi detalja ne trebaju JS za otvaranje, zatvaranje ili animiranje. CSS sintaksa Kaskadni slojevi, za organiziraniju bazu CSS koda, CSS ugniježđenje, za kompaktniji CSS, nove funkcije boja, relativne boje i miješanje boja, nove matematičke funkcije kao što su abs(), sign(), pow() i druge pomažu u smanjenju ovisnosti o CSS pretprocesorima, bibliotekama pomoćnih programa kao što su Bootstrap i Tailwind ili čak CSS-in-JS bibliotekama za vrijeme izvođenja. Promjena igre :has(), jedna od najtraženijih značajki dugo vremena, uklanja potrebu za kompliciranijim rješenjima temeljenim na JS-u. JS pomoćni programi Moderne Array metode poput findLast(), ili at(), kao i Set metode kao što su razlika(), intersection(), union() i druge mogu smanjiti ovisnosti o bibliotekama kao što je Lodash. Upiti spremnika Upiti spremnika čine da komponente korisničkog sučelja reagiraju na stvari koje nisu veličina okvira za prikaz, što ih čini višekratno upotrebljivim u različitim kontekstima. Nema više potrebe za korištenjem biblioteke korisničkog sučelja koja je opterećena JS-om, a nema potrebe ni za upotrebom polifila. Izgled Mreža, podmreža, flexbox ili multi-column prisutni su već duže vrijeme, ali gledajući rezultate istraživanja o stanju CSS-a, jasno je da programeri imaju tendenciju da budu vrlo oprezni s usvajanjem novih stvari i da čekaju jako dugo prije nego što to učine. Ove su značajke dugo bile osnovne i možete ih koristiti da biste se riješili ovisnosti o stvarima kao što su Bootstrapov grid sustav, flexbox pomoćni programi Foundation Frameworka, Bulma fiksna mreža, Materialize grid ili Tailwind stupci. Ne kažem da biste trebali odustati od svog okvira. Vaš ga je tim usvojio s razlogom, a njegovo bi uklanjanje moglo biti velik projekt. No gledajući što web platforma može ponuditi bez omota treće strane na vrhu dolazi s puno prednosti. Stvari koje vam možda više neće trebati u bliskoj budućnosti Sada, pogledajmo na brzinu neke od stvari za koje vam knjižnica neće trebati u bliskoj budućnosti. Drugim riječima, stvari u nastavku još nisu sasvim spremne za masovno usvajanje, ali biti svjestan njih i planirati potencijalnu kasniju upotrebu može biti od pomoći. Pozicioniranje sidra Pozicioniranje CSS sidra upravlja pozicioniranjem skočnih prozora i opisa alata u odnosu na druge elemente i brine se za njihovo držanje u pogledu, čak i kada se pomiče, pomiče ili mijenja veličinu stranice. Ovo je sjajna nadopuna prethodno spomenutom Popover API-ju, što će još lakše učiniti prelazak s JS rješenja koja zahtijevaju više performansi. API za navigaciju API za navigaciju može se koristiti za rukovanje navigacijom u aplikacijama s jednom stranicom i može biti izvrsna nadopuna ili čak zamjena za zadatke usmjeravanja React Router, Next.js ili Angular. View Transitions API View Transitions API može animirati između različitih stanja stranice. Na aplikaciji od jedne stranice ovo čini glatke prijelaze između stanja vrlo lakima i može vam pomoći da se riješite biblioteka animacija kao što su Anime.js, GSAP ili Motion.dev. Još bolje, API se također može koristiti s aplikacijama s više stranica. Sjećate li se ranije, kad sam rekao da je razlog zašto smo izradili jednostrane aplikacije u tvrtki u kojoj sam radio prije 15 godina bio izbjegavanje bijelog bljeska ponovnog učitavanja stranica prilikom navigacije? Da je taj API bio dostupan u to vrijeme, bili bismo u mogućnosti postići prekrasne efekte prijelaza stranica bez okvira jedne stranice i bez velikog početnog preuzimanja cijele aplikacije. Animacije pokretane pomicanjem Animacije vođene pomicanjem pokreću se na mjestu pomicanja korisnika, a ne tijekom vremena, što ih čini izvrsnim rješenjem za pripovijedanje priča i obilaske proizvoda. Neki ljudi su malo pretjerali s njim, ali kada se dobro koristi, ovo može biti vrlo učinkovit alat za dizajn i može pomoći da se riješite biblioteka kao što su: ScrollReveal, GSAP Scroll iliWOW.js. Prilagodljivi odabiri Prilagodljivi odabir je normalan

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free