För ungefär 15 år sedan arbetade jag på ett företag där vi byggde appar för resebyråer, flygplatsarbetare och flygbolag. Vi byggde också vårt eget interna ramverk för UI-komponenter och ensidiga appfunktioner. Vi hade komponenter för allt: fält, knappar, flikar, intervall, datatabeller, menyer, datumväljare, markeringar och multival. Vi hade till och med en div-komponent. Vår div-komponent var bra förresten, den tillät oss att göra rundade hörn på alla webbläsare, vilket, tro det eller ej, inte var en lätt sak att göra på den tiden.

Vårt arbete ägde rum vid en tidpunkt i vår historia då JS, Ajax och dynamisk HTML sågs som en revolution som förde oss in i framtiden. Plötsligt kunde vi uppdatera en sida dynamiskt, hämta data från en server och undvika att behöva navigera till andra sidor, vilket sågs som långsamt och blinkade med en stor vit rektangel på skärmen mellan de två sidorna. Det fanns en fras, som blev populär av Jeff Atwood (grundaren av StackOverflow), som löd: "Alla program som kan skrivas i JavaScript kommer så småningom att skrivas i JavaScript." - Jeff Atwood

För oss då kändes det som att våga gå och skapa de där apparna. Det kändes som ett heltäckande godkännande att göra allt med JS. Så vi gjorde allt med JS, och vi tog oss inte riktigt tid att undersöka andra sätt att göra saker på. Vi kände inte riktigt incitamentet att lära oss vad HTML och CSS kunde göra. Vi uppfattade inte riktigt webben som en appplattform i utveckling i sin helhet. Vi såg det mest som något vi behövde komma runt, särskilt när det kom till webbläsarstöd. Vi kunde bara kasta mer JS på det för att få saker gjorda. Skulle ta mig tid att lära mig mer om hur webben fungerade och vad som fanns tillgängligt på plattformen ha hjälpt mig? Visst, jag kunde förmodligen ha rakat en massa kod som inte verkligen behövdes. Men just då, kanske inte så mycket. Du förstår, webbläsarskillnaderna var ganska betydande då. Detta var en tid då Internet Explorer fortfarande var den dominerande webbläsaren, med Firefox som den närmaste andra, men började tappa marknadsandelar på grund av att Chrome snabbt blev populärt. Även om Chrome och Firefox var ganska bra på att komma överens om webbstandarder, innebar miljöerna där våra appar kördes att vi var tvungna att stödja IE6 under lång tid. Även när vi fick stödja IE8 var vi fortfarande tvungna att hantera en hel del skillnader mellan webbläsare. Inte bara det, utan dåtidens webb hade helt enkelt inte så många funktioner inbyggda direkt i plattformen.

Snabbspola fram till idag. Saker och ting har förändrats enormt. Vi har inte bara fler av dessa möjligheter än någonsin tidigare, utan takten med vilken de blir tillgängliga har också ökat. Låt mig ställa frågan igen, då: Skulle ta dig tid att lära dig mer om hur webben fungerar och vad som finns tillgängligt på plattformen hjälpa dig idag? Absolut ja. Att lära sig att förstå och använda webbplattformen idag ger dig en enorm fördel gentemot andra utvecklare. Oavsett om du arbetar med prestanda, tillgänglighet, lyhördhet, allt tillsammans, eller bara skickar UI-funktioner, om du vill göra det som en ansvarsfull ingenjör, kan du genom att känna till verktygen som är tillgängliga för dig nå dina mål snabbare och bättre. Vissa saker du kanske inte behöver ett bibliotek för längre När vi vet vad webbläsare stöder idag är frågan: Vad kan vi avstå från? Behöver vi en div-komponent för att göra rundade hörn 2025? Självklart gör vi inte det. Egenskapen border-radius har stöds av alla för närvarande använda webbläsare i mer än 15 år vid denna tidpunkt. Och hörnform kommer också snart, för ännu snyggare hörn. Låt oss ta en titt på relativt nya funktioner som nu är tillgängliga i alla större webbläsare, och som du kan använda för att ersätta befintliga beroenden i din kodbas. Poängen är inte att omedelbart ta bort alla dina älskade bibliotek och skriva om din kodbas. När det gäller allt annat måste du först ta hänsyn till webbläsarstöd och bestämma dig utifrån andra faktorer som är specifika för ditt projekt. Följande funktioner är implementerade i de tre huvudsakliga webbläsarmotorerna (Chromium, WebKit och Gecko), men du kan ha olika webbläsarsupportkrav som hindrar dig från att använda dem direkt. Nu är det dock ett bra tillfälle att lära sig om dessa funktioner och kanske planera att använda dem någon gång. Popovers och dialoger Popover API, HTML-elementet

och pseudoelementet ::backdrop kan hjälpa dig att bli av med beroenden av popup,verktygstips och dialogbibliotek, som flytande användargränssnitt, Tippy.js, Tether eller React Tooltip. De hanterar tillgänglighet och fokushantering åt dig, ur lådan, är mycket anpassningsbara med hjälp av CSS och kan enkelt animeras. Dragspel Elementet
, dess namnattribut för ömsesidigt uteslutande element och ::details-content pseudoelementet tar bort behovet av dragspelskomponenter som Bootstrap Accordion eller React Accordion-komponenten. Att bara använda plattformen här innebär att det är lättare för personer som kan HTML/CSS att förstå din kod utan att först behöva lära sig att använda ett specifikt bibliotek. Det betyder också att du är immun mot att bryta förändringar i biblioteket eller att det biblioteket avbryts. Och naturligtvis betyder det mindre kod att ladda ner och köra. Ömsesidigt exklusiva detaljelement behöver inte JS för att öppna, stänga eller animera. CSS-syntax Kaskadlager, för en mer organiserad CSS-kodbas, CSS-kapsling, för mer kompakt CSS, nya färgfunktioner, relativa färger och färgmix, nya Maths-funktioner som abs(), sign(), pow() och andra hjälper till att minska beroendet av CSS-förprocessorer, verktygsbibliotek som Bootstrap och Tailwind, eller till och med runtime CSS-in. Spelväxlaren :has(), en av de mest efterfrågade funktionerna på länge, tar bort behovet av mer komplicerade JS-baserade lösningar. JS Utilities Moderna Array-metoder som findLast(), eller at(), samt Set-metoder som difference(), intersection(), union() och andra kan minska beroenden av bibliotek som Lodash. Containerfrågor Behållarfrågor får UI-komponenter att svara på andra saker än visningsportstorleken och gör dem därför mer återanvändbara i olika sammanhang. Inget behov av att använda ett JS-tungt UI-bibliotek för detta längre, och inget behov av att använda en polyfill heller. Layout Grid, subgrid, flexbox eller multi-column har funnits länge nu, men om man tittar på resultaten av State of CSS-undersökningar är det tydligt att utvecklare tenderar att vara väldigt försiktiga med att ta till sig nya saker och vänta väldigt länge innan de gör det. Dessa funktioner har varit Baseline under lång tid och du kan använda dem för att bli av med beroenden av saker som Bootstraps rutsystem, Foundation Frameworks flexbox-verktyg, Bulma fast rutnät, Materialize grid eller Tailwind-kolumner. Jag säger inte att du ska släppa ditt ramverk. Ditt team antog det av en anledning, och att ta bort det kan vara ett stort projekt. Men att titta på vad webbplattformen kan erbjuda utan en tredje parts wrapper på toppen kommer med många fördelar. Saker du kanske inte behöver längre inom en snar framtid Låt oss nu ta en snabb titt på några av de saker du inte kommer att behöva ett bibliotek för inom en snar framtid. Det vill säga, sakerna nedan är inte riktigt redo för massadoption, men att vara medveten om dem och planera för eventuell senare användning kan vara till hjälp. Ankarpositionering CSS-ankarpositionering hanterar placeringen av popovers och verktygstips i förhållande till andra element, och tar hand om att hålla dem synliga, även när du flyttar, rullar eller ändrar storlek på sidan. Detta är ett utmärkt komplement till Popover API som nämnts tidigare, vilket kommer att göra det ännu lättare att migrera bort från mer prestandaintensiva JS-lösningar. Navigations-API Navigation API kan användas för att hantera navigering i ensidiga appar och kan vara ett utmärkt komplement, eller till och med en ersättning, till React Router, Next.js routing eller Angular routing uppgifter. Visa Transitions API View Transitions API kan animera mellan de olika tillstånden på en sida. På en ensidig applikation gör detta smidiga övergångar mellan tillstånd mycket enkla och kan hjälpa dig att bli av med animationsbibliotek som Anime.js, GSAP eller Motion.dev. Ännu bättre, API kan också användas med flersidiga applikationer. Kommer du ihåg tidigare, när jag sa att anledningen till att vi byggde ensidiga appar på företaget där jag arbetade för 15 år sedan var för att undvika den vita blixten av sidåterladdningar när vi navigerade? Hade det API:t varit tillgängligt vid den tiden hade vi kunnat uppnå vackra sidövergångseffekter utan ett ramverk på en sida och utan en enorm första nedladdning av hela appen. Scrolldrivna animationer Scrolldrivna animationer körs på användarens rullningsposition, snarare än över tid, vilket gör dem till en utmärkt lösning för storytelling och produktturer. Vissa människor har gått lite överdrivet med det, men när det används väl kan det vara ett mycket effektivt designverktyg och kan hjälpa till att bli av med bibliotek som: ScrollReveal, GSAP Scroll ellerWOW.js. Anpassningsbara val Ett anpassningsbart urval är ett normalt

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free