Prije otprilike 15 godina radio sam u kompaniji u kojoj smo pravili aplikacije za putničke agencije, aerodromske radnike i avio kompanije. Također smo izgradili vlastiti okvir za UI komponente i mogućnosti aplikacije za jednu stranicu. Imali smo komponente za sve: polja, dugmad, kartice, opsege, tabele podataka, menije, birače datuma, odabire i višestruke izbore. Čak smo imali i div komponentu. Usput, naša div komponenta je bila sjajna, omogućila nam je da napravimo zaobljene uglove na svim pretraživačima, što, vjerovali ili ne, nije bila laka stvar u to vrijeme.

Naš rad se odvijao u trenutku naše istorije kada su JS, Ajax i dinamički HTML viđeni kao revolucija koja nas je dovela u budućnost. Odjednom smo mogli dinamički ažurirati stranicu, dobiti podatke sa servera i izbjeći potrebu za navigacijom do drugih stranica, što se smatralo sporim i bljeskalo je velikim bijelim pravougaonikom na ekranu između dvije stranice. Postojala je fraza koju je popularizirao Jeff Atwood (osnivač StackOverflowa), a koja glasi: „Svaka aplikacija koja se može napisati u JavaScript-u će na kraju biti napisana u JavaScript-u.”— Jeff Atwood

Za nas je u to vrijeme ovo izgledalo kao usuđivanje da krenemo i kreiramo te aplikacije. Osjećao sam se kao opšte odobrenje da se sve radi sa JS-om. Dakle, sve smo radili sa JS-om i nismo baš odvojili vrijeme da istražimo druge načine za obavljanje stvari. Nismo baš osjećali poticaj da pravilno naučimo šta HTML i CSS mogu učiniti. Nismo zapravo percipirali web kao platformu aplikacija koja se razvija u cijelosti. Uglavnom smo to doživljavali kao nešto što moramo zaobići, posebno kada je u pitanju podrška pretraživača. Mogli bismo samo baciti više JS-a na to da stvari završimo. Da li bi mi pomoglo odvajanje vremena da saznam više o tome kako web radi i šta je bilo dostupno na platformi? Naravno, vjerovatno sam mogao obrijati gomilu koda koji nije bio zaista potreban. Ali, u to vrijeme, možda i ne toliko. Vidite, razlike u pretraživačima su tada bile prilično značajne. Ovo je bilo vrijeme kada je Internet Explorer još uvijek bio dominantan pretraživač, a Firefox je bio blizu drugog, ali je počeo gubiti tržišni udio zbog Chromea koji je brzo sticao popularnost. Iako su Chrome i Firefox bili prilično dobri u dogovoru oko web standarda, okruženja u kojima su naše aplikacije radile značile su da smo morali dugo vremena podržavati IE6. Čak i kada nam je bilo dozvoljeno da podržavamo IE8, i dalje smo morali da se nosimo sa mnogo razlika između pretraživača. I ne samo to, već tadašnji web jednostavno nije imao toliko mogućnosti ugrađenih u platformu.

Brzo naprijed do danas. Stvari su se strašno promijenile. Ne samo da imamo više ovih mogućnosti nego ikad prije, već se povećala i stopa po kojoj one postaju dostupne. Dozvolite mi da ponovo postavim pitanje: da li bi vam danas pomoglo odvajanje vremena da saznate više o tome kako veb funkcioniše i šta je dostupno na platformi? Apsolutno da. Učenje da razumete i koristite web platformu danas vas stavlja u ogromnu prednost u odnosu na druge programere. Bilo da radite na performansama, pristupačnosti, brzom odzivu, sve zajedno, ili samo isporučujete karakteristike korisničkog sučelja, ako to želite učiniti kao odgovoran inženjer, poznavanje alata koji su vam dostupni pomoći će vam da brže i bolje postignete svoje ciljeve. Neke stvari za koje vam možda više neće trebati biblioteka Znajući šta pretraživači podržavaju danas, postavlja se pitanje: Čega možemo odbaciti? Da li nam je potrebna div komponenta za zaobljene uglove 2025. godine? Naravno, ne radimo. Svojstvo radijusa granice podržavaju svi trenutno korišćeni pretraživači više od 15 godina u ovom trenutku. Uskoro dolazi i oblik uglova, za još elegantnije uglove. Pogledajmo relativno novije funkcije koje su sada dostupne u svim glavnim pretraživačima i koje možete koristiti da zamijenite postojeće ovisnosti u vašoj bazi kodova. Poenta nije u tome da odmah odbacite sve svoje omiljene biblioteke i prepišete svoju bazu kodova. Što se tiče svega ostalog, prvo ćete morati uzeti u obzir podršku preglednika i odlučiti na osnovu drugih faktora specifičnih za vaš projekat. Sljedeće funkcije su implementirane u tri glavna mehanizma pretraživača (Chromium, WebKit i Gecko), ali možda imate različite zahtjeve za podršku pretraživača koji vas sprečavaju da ih odmah koristite. Ipak, sada je još uvijek dobro vrijeme da naučite o ovim funkcijama i možda ih planirate koristiti u nekom trenutku. Popovers i dijalozi Popover API, HTML element

i pseudoelement ::backdrop mogu vam pomoći da se riješite ovisnosti o popup-u,opis alata i biblioteke dijaloga, kao što su plutajući korisnički interfejs, Tippy.js, Tether ili React Tooltip. Oni upravljaju pristupačnošću i upravljanjem fokusom za vas, izvan kutije, vrlo su prilagodljivi korištenjem 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 React Accordion komponenta. 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 na 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 CSS kodnu bazu, CSS ugniježđenje, za kompaktniji CSS, nove funkcije boja, relativne boje i mješavinu boja, nove matematičke funkcije kao što su abs(), sign(), pow() i druge pomažu u smanjenju ovisnosti o CSS predprocesorima, uslužnim bibliotekama kao što su Bootstrap i Tailwind CSS, ili čak u runtime library CSS. Izmjenjivač igre :has(), jedna od najtraženijih funkcija već duže vrijeme, uklanja potrebu za složenijim JS-baziranim rješenjima. JS Utilities Moderne metode niza kao što su findLast() ili at(), kao i metode Seta poput razlike(), intersection(), union() i druge mogu smanjiti ovisnosti o bibliotekama kao što je Lodash. Container Queries Kontejnerski upiti čine da komponente korisničkog sučelja reagiraju na stvari koje nisu veličine okvira za prikaz i stoga ih čine više upotrebljivim u različitim kontekstima. Za ovo više nema potrebe da koristite JS-tešku UI biblioteku, kao ni polifil. Layout Grid, subgrid, flexbox ili multi-kolumn postoje već duže vrijeme, ali gledajući rezultate anketa o stanju CSS-a, jasno je da su programeri skloni biti vrlo oprezni s usvajanjem novih stvari i čekaju jako dugo prije nego što to učine. Ove karakteristike su dugo bile osnovne i mogli biste ih koristiti da biste se riješili ovisnosti o stvarima kao što su Bootstrap-ov grid sistem, Foundation Frameworkovi flexbox uslužni programi, Bulma fiksna mreža, Materialize grid ili Tailwind kolone. Ne kažem da treba da napustiš svoj okvir. Vaš tim ga je usvojio s razlogom, a njegovo uklanjanje može biti veliki projekat. Ali gledanje šta web platforma može ponuditi bez omota treće strane na vrhu dolazi sa mnogo prednosti. Stvari koje vam možda više neće trebati u bliskoj budućnosti Sada, hajde da na brzinu pogledamo neke od stvari za koje vam biblioteka neće trebati u bliskoj budućnosti. Odnosno, stvari u nastavku nisu sasvim spremne za masovno usvajanje, ali svjesnost o njima i planiranje za potencijalnu kasniju upotrebu mogu biti od pomoći. Anchor Positioning Pozicioniranje CSS sidra upravlja pozicioniranjem iskačućih prozora i opisa alata u odnosu na druge elemente i vodi računa o tome da budu u vidokrugu, čak i kada se pomiče, pomiče ili mijenja veličinu stranice. Ovo je sjajna nadopuna Popover API-ju koji je ranije spomenut, što će dodatno olakšati prelazak sa JS rješenja s intenzivnijim performansama. API za navigaciju Navigacijski API se može koristiti za rukovanje navigacijom u aplikacijama na jednoj stranici i može biti odlična dopuna ili čak zamjena za React Router, Next.js usmjeravanje ili Angular rutiranje. Prikaži API prijelaza View Transitions API može animirati između različitih stanja stranice. U aplikaciji na jednoj stranici, ovo čini glatke prijelaze između stanja vrlo lakim 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 može koristiti i sa aplikacijama na više stranica. Sjećate se ranije, kada sam rekao da je razlog zašto smo napravili aplikacije za jednu stranicu u kompaniji 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, mogli bismo postići prekrasne efekte prijelaza stranice bez okvira na jednoj stranici i bez ogromnog početnog preuzimanja cijele aplikacije. Animacije vođene pomicanjem Animacije vođene pomicanjem pokreću se na korisnikovoj poziciji pomicanja, a ne tokom vremena, što ih čini odličnim rješenjem za pripovijedanje i obilaske proizvoda. Neki ljudi su malo pretjerali s tim, ali kada se dobro koristi, ovo može biti vrlo efikasan 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 element

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free