Il y a environ 15 ans, je travaillais dans une entreprise où nous développions des applications pour les agents de voyages, les employés des aéroports et les compagnies aériennes. Nous avons également créé notre propre framework interne pour les composants d'interface utilisateur et les fonctionnalités d'application d'une seule page. Nous avions des composants pour tout : champs, boutons, onglets, plages, tables de données, menus, sélecteurs de date, sélections et sélections multiples. Nous avions même un composant div. Notre composant div était d'ailleurs génial, il nous permettait d'arrondir les coins sur tous les navigateurs, ce qui, croyez-le ou non, n'était pas une chose facile à faire à l'époque.

Notre travail a eu lieu à un moment de notre histoire où JS, Ajax et HTML dynamique étaient considérés comme une révolution qui nous propulsait vers le futur. Du coup, nous pouvions mettre à jour une page de manière dynamique, obtenir des données d'un serveur et éviter d'avoir à naviguer vers d'autres pages, ce qui était perçu comme lent et faisait clignoter un grand rectangle blanc sur l'écran entre les deux pages. Il y avait une phrase, rendue populaire par Jeff Atwood (le fondateur de StackOverflow), qui disait : « Toute application pouvant être écrite en JavaScript sera finalement écrite en JavaScript. » – Jeff Atwood

Pour nous à l’époque, cela ressemblait à un défi de créer ces applications. C'était comme une approbation générale de tout faire avec JS. Nous avons donc tout fait avec JS, et nous n’avons pas vraiment pris le temps de rechercher d’autres façons de faire. Nous n’avons pas vraiment ressenti l’intérêt d’apprendre correctement ce que HTML et CSS pouvaient faire. Nous ne percevions pas vraiment le Web comme une plateforme d’applications évolutive dans sa globalité. Nous avons surtout considéré cela comme quelque chose que nous devions contourner, en particulier en ce qui concerne la prise en charge des navigateurs. Nous pourrions simplement y ajouter plus de JS pour faire avancer les choses. Est-ce que prendre le temps d’en savoir plus sur le fonctionnement du Web et sur ce qui était disponible sur la plateforme m’aurait aidé ? Bien sûr, j’aurais probablement pu supprimer un tas de code qui n’était pas vraiment nécessaire. Mais, à l’époque, peut-être pas tant que ça. Vous voyez, les différences entre les navigateurs étaient assez importantes à l’époque. C’était une époque où Internet Explorer était encore le navigateur dominant, suivi de près par Firefox, mais commençait à perdre des parts de marché en raison de la popularité croissante de Chrome. Bien que Chrome et Firefox aient réussi à s'entendre sur les normes du Web, les environnements dans lesquels nos applications s'exécutaient signifiaient que nous devions prendre en charge IE6 pendant une longue période. Même lorsque nous étions autorisés à prendre en charge IE8, nous devions encore faire face à de nombreuses différences entre les navigateurs. De plus, le Web de l’époque ne disposait tout simplement pas de nombreuses fonctionnalités directement intégrées à la plate-forme.

Avance rapide jusqu’à aujourd’hui. Les choses ont énormément changé. Non seulement nous disposons d’un plus grand nombre de ces capacités que jamais auparavant, mais le rythme auquel elles deviennent disponibles a également augmenté. Permettez-moi alors de poser à nouveau la question : est-ce que prendre le temps d'en apprendre davantage sur le fonctionnement du Web et sur ce qui est disponible sur la plateforme vous aiderait aujourd'hui ? Absolument oui. Apprendre à comprendre et à utiliser la plateforme Web aujourd’hui vous donne un énorme avantage sur les autres développeurs. Que vous travailliez sur les performances, l'accessibilité, la réactivité, tous ensemble, ou que vous expédiiez simplement des fonctionnalités d'interface utilisateur, si vous souhaitez le faire en tant qu'ingénieur responsable, connaître les outils qui sont à votre disposition vous aide à atteindre vos objectifs plus rapidement et mieux. Certaines choses pour lesquelles vous n’aurez peut-être plus besoin d’une bibliothèque Sachant ce que les navigateurs prennent en charge aujourd'hui, la question est donc la suivante : que pouvons-nous abandonner ? Avons-nous besoin d’un composant div pour arrondir les coins en 2025 ? Bien sûr, ce n’est pas le cas. La propriété border-radius est actuellement prise en charge par tous les navigateurs actuellement utilisés depuis plus de 15 ans. Et la forme en coin sera également bientôt disponible, pour des coins encore plus raffinés. Jetons un coup d'œil aux fonctionnalités relativement récentes qui sont désormais disponibles dans tous les principaux navigateurs et que vous pouvez utiliser pour remplacer les dépendances existantes dans votre base de code. Le but n'est pas d'abandonner immédiatement toutes vos bibliothèques bien-aimées et de réécrire votre base de code. Pour tout le reste, vous devrez d’abord prendre en compte la prise en charge du navigateur et décider en fonction d’autres facteurs spécifiques à votre projet. Les fonctionnalités suivantes sont implémentées dans les trois principaux moteurs de navigateur (Chromium, WebKit et Gecko), mais vous pouvez avoir des exigences différentes en matière de prise en charge du navigateur qui vous empêchent de les utiliser immédiatement. Cependant, c’est encore le bon moment pour en savoir plus sur ces fonctionnalités et peut-être envisager de les utiliser à un moment donné. Popovers et boîtes de dialogue L'API Popover, l'élément HTML

et le pseudo-élément ::backdrop peuvent vous aider à vous débarrasser des dépendances sur les popups,des info-bulles et des bibliothèques de boîtes de dialogue, telles que Floating UI, Tippy.js, Tether ou React Tooltip. Ils gèrent l'accessibilité et la gestion de la mise au point pour vous, prêts à l'emploi, sont hautement personnalisables à l'aide de CSS et peuvent facilement être animés. Accordéons L'élément
, son attribut name pour les éléments mutuellement exclusifs et le pseudo-élément ::details-content suppriment le besoin de composants accordéon comme le composant Bootstrap Accordion ou le composant React Accordion. Le simple fait d'utiliser la plate-forme ici signifie qu'il est plus facile pour les personnes connaissant HTML/CSS de comprendre votre code sans avoir à apprendre au préalable à utiliser une bibliothèque spécifique. Cela signifie également que vous êtes à l’abri des modifications importantes apportées à la bibliothèque ou de l’arrêt de cette bibliothèque. Et bien sûr, cela signifie moins de code à télécharger et à exécuter. Les éléments de détails mutuellement exclusifs n'ont pas besoin de JS pour s'ouvrir, se fermer ou s'animer. Syntaxe CSS Couches en cascade, pour une base de code CSS plus organisée, imbrication CSS, pour un CSS plus compact, de nouvelles fonctions de couleur, couleurs relatives et mélange de couleurs, de nouvelles fonctions mathématiques comme abs(), sign(), pow() et d'autres aident à réduire les dépendances sur les préprocesseurs CSS, les bibliothèques utilitaires comme Bootstrap et Tailwind, ou même les bibliothèques d'exécution CSS-in-JS. Le changeur de jeu :has(), l'une des fonctionnalités les plus demandées depuis longtemps, supprime le besoin de solutions plus compliquées basées sur JS. Utilitaires JS Les méthodes Array modernes comme findLast() ou at(), ainsi que les méthodes Set comme Difference(), intersection(), union() et d'autres peuvent réduire les dépendances envers des bibliothèques comme Lodash. Requêtes de conteneur Les requêtes de conteneur permettent aux composants de l'interface utilisateur de répondre à des éléments autres que la taille de la fenêtre d'affichage, et les rendent donc plus réutilisables dans différents contextes. Plus besoin d'utiliser une bibliothèque d'interface utilisateur lourde en JS pour cela, et pas non plus besoin d'utiliser un polyfill. Disposition Les grilles, sous-grilles, flexbox ou multi-colonnes existent depuis longtemps maintenant, mais en regardant les résultats des enquêtes sur l'état du CSS, il est clair que les développeurs ont tendance à être très prudents lorsqu'ils adoptent de nouvelles choses et à attendre très longtemps avant de le faire. Ces fonctionnalités sont de base depuis longtemps et vous pouvez les utiliser pour vous débarrasser des dépendances sur des éléments tels que le système de grille de Bootstrap, les utilitaires flexbox de Foundation Framework, la grille fixe Bulma, la grille Materialise ou les colonnes Tailwind. Je ne dis pas que vous devriez abandonner votre framework. Votre équipe l’a adopté pour une raison, et sa suppression pourrait être un gros projet. Mais examiner ce que la plate-forme Web peut offrir sans un wrapper tiers présente de nombreux avantages. Choses dont vous n’aurez peut-être plus besoin dans un avenir proche Jetons maintenant un coup d’œil rapide à certaines des choses pour lesquelles vous n’aurez pas besoin d’une bibliothèque dans un avenir proche. Autrement dit, les éléments ci-dessous ne sont pas tout à fait prêts pour une adoption massive, mais en être conscient et planifier une éventuelle utilisation ultérieure peut être utile. Positionnement de l'ancre Le positionnement des ancres CSS gère le positionnement des popovers et des info-bulles par rapport à d'autres éléments et prend soin de les garder visibles, même lors du déplacement, du défilement ou du redimensionnement de la page. Il s'agit d'un excellent complément à l'API Popover mentionnée précédemment, qui facilitera encore plus la migration des solutions JS plus gourmandes en performances. API de navigation L'API de navigation peut être utilisée pour gérer la navigation dans des applications à page unique et peut constituer un excellent complément, voire un remplacement, aux tâches de routage React Router, Next.js ou de routage angulaire. Afficher l'API des transitions L'API View Transitions peut animer entre les différents états d'une page. Sur une application d'une seule page, cela facilite très facilement les transitions fluides entre les états et peut vous aider à vous débarrasser des bibliothèques d'animation telles que Anime.js, GSAP ou Motion.dev. Mieux encore, l'API peut également être utilisée avec des applications multipages. Vous vous souvenez plus tôt, lorsque j'ai dit que la raison pour laquelle nous avons créé des applications à page unique dans l'entreprise où je travaillais il y a 15 ans était d'éviter le flash blanc des rechargements de pages lors de la navigation ? Si cette API avait été disponible à l'époque, nous aurions pu obtenir de superbes effets de transition de page sans un cadre d'une seule page et sans un énorme téléchargement initial de l'intégralité de l'application. Animations pilotées par défilement Les animations pilotées par défilement s'exécutent en fonction de la position de défilement de l'utilisateur, plutôt que dans le temps, ce qui en fait une excellente solution pour la narration et les visites de produits. Certaines personnes en ont fait un peu trop, mais lorsqu'il est bien utilisé, cela peut être un outil de conception très efficace et peut aider à se débarrasser de bibliothèques telles que : ScrollReveal, GSAP Scroll ouWOW.js. Sélections personnalisables Une sélection personnalisable est un élément

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free