Ongeveer vijftien jaar geleden werkte ik bij een bedrijf waar we apps bouwden voor reisbureaus, luchthavenpersoneel en luchtvaartmaatschappijen. We hebben ook ons ​​eigen interne raamwerk gebouwd voor UI-componenten en app-mogelijkheden voor één pagina. We hadden componenten voor alles: velden, knoppen, tabbladen, bereiken, gegevenstabellen, menu's, datumkiezers, selecties en multiselecties. We hadden zelfs een div-component. Onze div-component was trouwens geweldig, het stelde ons in staat om afgeronde hoeken te maken in alle browsers, wat, geloof het of niet, op dat moment niet eenvoudig was.

Ons werk vond plaats op een punt in onze geschiedenis waarin JS, Ajax en dynamische HTML werden gezien als een revolutie die ons naar de toekomst bracht. Plotseling konden we een pagina dynamisch bijwerken, gegevens van een server ophalen en voorkomen dat we naar andere pagina's moesten navigeren, wat als langzaam werd ervaren en er een grote witte rechthoek op het scherm tussen de twee pagina's flitste. Er was een zin, populair gemaakt door Jeff Atwood (de oprichter van StackOverflow), die luidde: “Elke applicatie die in JavaScript kan worden geschreven, zal uiteindelijk in JavaScript worden geschreven.” — Jeff Atwood

Voor ons destijds voelde dit als een uitdaging om die apps daadwerkelijk te gaan maken. Het voelde als een algemene goedkeuring om alles met JS te doen. Dus we deden alles met JS, en we namen niet echt de tijd om andere manieren te onderzoeken om dingen te doen. We voelden niet echt de prikkel om goed te leren wat HTML en CSS konden doen. We zagen het web niet echt als een evoluerend app-platform in zijn geheel. We zagen het vooral als iets waar we omheen moesten werken, vooral als het om browserondersteuning ging. We zouden er gewoon meer JS tegenaan kunnen gooien om dingen voor elkaar te krijgen. Zou het helpen om de tijd te nemen om meer te leren over hoe het internet werkte en wat er op het platform beschikbaar was? Natuurlijk had ik waarschijnlijk een heleboel code kunnen scheren die niet echt nodig was. Maar op dat moment misschien niet zo veel. Kijk, de browserverschillen waren toen behoorlijk groot. Dit was een tijd waarin Internet Explorer nog steeds de dominante browser was, met Firefox op de goede tweede plaats, maar marktaandeel begon te verliezen doordat Chrome snel aan populariteit won. Hoewel Chrome en Firefox het redelijk goed eens konden worden over webstandaarden, zorgden de omgevingen waarin onze apps draaiden ervoor dat we IE6 lange tijd moesten ondersteunen. Zelfs toen we IE8 mochten ondersteunen, hadden we nog steeds te maken met veel verschillen tussen browsers. Niet alleen dat, maar het web van die tijd had gewoon niet zoveel mogelijkheden die rechtstreeks in het platform waren ingebouwd.

Snel vooruit naar vandaag. De zaken zijn enorm veranderd. We beschikken niet alleen over meer van deze mogelijkheden dan ooit tevoren, maar de snelheid waarmee ze beschikbaar komen is ook toegenomen. Laat ik de vraag dan nog eens stellen: zou de tijd nemen om meer te leren over hoe het internet werkt en wat er op het platform beschikbaar is, u vandaag helpen? Absoluut ja. Als u het webplatform vandaag de dag leert begrijpen en gebruiken, heeft u een enorm voordeel ten opzichte van andere ontwikkelaars. Of u nu werkt aan prestaties, toegankelijkheid, reactievermogen, allemaal samen, of alleen maar UI-functies levert, als u het als verantwoordelijke ingenieur wilt doen, kunt u door te weten welke tools tot uw beschikking staan, uw doelen sneller en beter bereiken. Voor sommige dingen heb je misschien geen bibliotheek meer nodig Als we weten wat browsers tegenwoordig ondersteunen, is de vraag dus: wat kunnen we achterwege laten? Hebben we in 2025 een div-component nodig om afgeronde hoeken te maken? Natuurlijk niet. De eigenschap border-radius wordt inmiddels al meer dan 15 jaar door alle momenteel gebruikte browsers ondersteund. En binnenkort komt er ook corner-shape, voor nog mooiere hoeken. Laten we eens kijken naar relatief recente functies die nu beschikbaar zijn in alle grote browsers, en die u kunt gebruiken om bestaande afhankelijkheden in uw codebase te vervangen. Het gaat er niet om meteen al je geliefde bibliotheken te dumpen en je codebase te herschrijven. Wat al het andere betreft, moet u eerst rekening houden met browserondersteuning en beslissen op basis van andere factoren die specifiek zijn voor uw project. De volgende functies zijn geïmplementeerd in de drie belangrijkste browser-engines (Chromium, WebKit en Gecko), maar het kan zijn dat u andere browserondersteuningsvereisten heeft waardoor u ze niet meteen kunt gebruiken. Het is echter nog steeds een goed moment om deze functies te leren kennen, en misschien van plan te zijn ze ooit te gebruiken. Popovers en dialogen De Popover API, het

HTML-element en het ::backdrop pseudo-element kunnen u helpen de afhankelijkheden van pop-ups te verwijderen,tooltip en dialoogbibliotheken, zoals Floating UI, Tippy.js, Tether of React Tooltip. Ze verzorgen de toegankelijkheid en het focusbeheer kant-en-klaar voor u, zijn in hoge mate aanpasbaar met behulp van CSS en kunnen eenvoudig worden geanimeerd. Accordeons Het
element, het naamattribuut voor elkaar uitsluitende elementen, en het ::details-content pseudo-element verwijderen de noodzaak voor accordeoncomponenten zoals de Bootstrap Accordion of de React Accordion component. Alleen al het gebruik van het platform hier betekent dat het voor mensen die HTML/CSS kennen gemakkelijker is om uw code te begrijpen zonder eerst een specifieke bibliotheek te hoeven leren gebruiken. Het betekent ook dat u immuun bent voor het doorbreken van wijzigingen in de bibliotheek of het beëindigen van die bibliotheek. En het betekent natuurlijk dat er minder code hoeft te worden gedownload en uitgevoerd. Wederzijds exclusieve detailelementen hebben geen JS nodig om te openen, sluiten of animeren. CSS-syntaxis Cascadelagen, voor een beter georganiseerde CSS-codebasis, CSS-nesten, voor compactere CSS, nieuwe kleurfuncties, relatieve kleuren en kleurmix, nieuwe wiskundefuncties zoals abs(), sign(), pow() en andere helpen de afhankelijkheid van CSS-preprocessors, hulpprogrammabibliotheken zoals Bootstrap en Tailwind, of zelfs runtime CSS-in-JS-bibliotheken te verminderen. De gamechanger :has(), een van de meest gevraagde functies sinds lange tijd, maakt de behoefte aan ingewikkeldere JS-gebaseerde oplossingen overbodig. JS-hulpprogramma's Moderne Array-methoden zoals findLast() of at(), evenals Set-methoden zoals Difference(), intersection(), union() en andere kunnen de afhankelijkheden van bibliotheken zoals Lodash verminderen. Containerquery's Containerquery's zorgen ervoor dat UI-componenten reageren op andere zaken dan de viewportgrootte, en maken ze daardoor beter herbruikbaar in verschillende contexten. Je hoeft hiervoor geen JS-zware UI-bibliotheek meer te gebruiken, en ook geen polyfill. Indeling Grid, subgrid, flexbox of multi-kolom bestaan al een hele tijd, maar als we naar de resultaten van de State of CSS-enquêtes kijken, is het duidelijk dat ontwikkelaars de neiging hebben erg voorzichtig te zijn met het adopteren van nieuwe dingen, en heel lang wachten voordat ze dat doen. Deze functies zijn lange tijd Baseline geweest en je zou ze kunnen gebruiken om afhankelijkheden van zaken als het Bootstrap-rastersysteem, de flexbox-hulpprogramma's van Foundation Framework, het vaste Bulma-raster, het Materialise-raster of de Tailwind-kolommen weg te nemen. Ik zeg niet dat je je raamwerk moet laten vallen. Je team heeft het met een reden overgenomen, en het verwijderen ervan kan een groot project zijn. Maar kijken naar wat het webplatform te bieden heeft zonder een externe wrapper erbovenop, levert veel voordelen op. Dingen die u in de nabije toekomst misschien niet meer nodig heeft Laten we nu eens kort kijken naar enkele dingen waarvoor u in de nabije toekomst geen bibliotheek nodig zult hebben. Dat wil zeggen dat de onderstaande dingen nog niet helemaal klaar zijn voor massale acceptatie, maar het kan nuttig zijn om je ervan bewust te zijn en plannen te maken voor mogelijk later gebruik. Anker positionering CSS-ankerpositionering zorgt voor de positionering van popovers en tooltips ten opzichte van andere elementen, en zorgt ervoor dat ze in beeld blijven, zelfs wanneer de pagina wordt verplaatst, gescrolld of vergroot of verkleind. Dit is een geweldige aanvulling op de eerder genoemde Popover API, waardoor het nog eenvoudiger wordt om weg te migreren van prestatie-intensievere JS-oplossingen. Navigatie-API De navigatie-API kan worden gebruikt voor het afhandelen van navigatie in apps met één pagina en kan een geweldige aanvulling zijn op of zelfs een vervanging voor React Router-, Next.js-routerings- of Angular-routeringstaken. Bekijk Transitions-API De View Transitions API kan animeren tussen de verschillende statussen van een pagina. In een applicatie met één pagina maakt dit vloeiende overgangen tussen statussen zeer eenvoudig en kunt u zich ontdoen van animatiebibliotheken zoals Anime.js, GSAP of Motion.dev. Nog beter: de API kan ook worden gebruikt met applicaties met meerdere pagina's. Weet je nog dat ik eerder zei dat de reden dat we apps van één pagina bouwden bij het bedrijf waar ik 15 jaar geleden werkte, was om de witte flits van het opnieuw laden van pagina's tijdens het navigeren te vermijden? Als die API destijds beschikbaar was geweest, hadden we prachtige pagina-overgangseffecten kunnen bereiken zonder een raamwerk van één pagina en zonder een enorme initiële download van de hele app. Scrollgestuurde animaties Scrollgestuurde animaties draaien op de scrollpositie van de gebruiker, in plaats van in de loop van de tijd, waardoor ze een geweldige oplossing zijn voor storytelling en productrondleidingen. Sommige mensen zijn er een beetje over de top mee gegaan, maar als het goed wordt gebruikt, kan dit een zeer effectief ontwerphulpmiddel zijn en helpen bij het wegwerken van bibliotheken zoals: ScrollReveal, GSAP Scroll ofWOW.js. Aanpasbare selecties Een aanpasbare selectie is een normaal

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free