Hace unos 15 años, trabajaba en una empresa donde creamos aplicaciones para agentes de viajes, trabajadores de aeropuertos y compañías aéreas. También creamos nuestro propio marco interno para componentes de interfaz de usuario y capacidades de aplicaciones de una sola página. Teníamos componentes para todo: campos, botones, pestañas, rangos, tablas de datos, menús, selectores de fechas, selecciones y selecciones múltiples. Incluso teníamos un componente div. Por cierto, nuestro componente div fue excelente, nos permitió redondear esquinas en todos los navegadores, lo cual, lo creas o no, no era algo fácil de hacer en ese momento.

Nuestro trabajo tuvo lugar en un momento de nuestra historia en el que JS, Ajax y HTML dinámico fueron vistos como una revolución que nos llevó hacia el futuro. De repente, pudimos actualizar una página dinámicamente, obtener datos de un servidor y evitar tener que navegar a otras páginas, lo que se consideró lento y mostró un gran rectángulo blanco en la pantalla entre las dos páginas. Había una frase, popularizada por Jeff Atwood (el fundador de StackOverflow), que decía: "Cualquier aplicación que pueda escribirse en JavaScript eventualmente se escribirá en JavaScript".—Jeff Atwood

Para nosotros en ese momento, esto nos pareció un desafío: crear esas aplicaciones. Se sintió como una aprobación general hacer todo con JS. Así que hicimos todo con JS y realmente no nos tomamos el tiempo para investigar otras formas de hacer las cosas. Realmente no sentimos el incentivo de aprender adecuadamente lo que HTML y CSS podían hacer. Realmente no percibíamos la web como una plataforma de aplicaciones en evolución en su totalidad. Principalmente lo vimos como algo que necesitábamos solucionar, especialmente en lo que respecta a la compatibilidad con el navegador. Podríamos simplemente agregarle más JS para hacer las cosas. ¿Me habría ayudado tomarme el tiempo para aprender más sobre cómo funciona la web y qué estaba disponible en la plataforma? Claro, probablemente podría haber eliminado un montón de código que realmente no era necesario. Pero, en ese momento, tal vez no tanto. Verá, las diferencias entre navegadores eran bastante significativas en aquel entonces. Esta era una época en la que Internet Explorer seguía siendo el navegador dominante, seguido de cerca por Firefox, pero comenzaba a perder participación de mercado debido a que Chrome ganaba rápidamente popularidad. Aunque Chrome y Firefox fueron bastante buenos a la hora de acordar estándares web, los entornos en los que se ejecutaban nuestras aplicaciones significaron que tuvimos que soportar IE6 durante mucho tiempo. Incluso cuando se nos permitió admitir IE8, todavía tuvimos que lidiar con muchas diferencias entre los navegadores. No solo eso, sino que la web de la época simplemente no tenía tantas capacidades integradas en la plataforma.

Avance rápido hasta el día de hoy. Las cosas han cambiado enormemente. No sólo tenemos más de estas capacidades que nunca, sino que también ha aumentado el ritmo al que están disponibles. Entonces, permítanme hacer la pregunta nuevamente: ¿Le ayudaría hoy tomarse el tiempo para aprender más sobre cómo funciona la web y qué está disponible en la plataforma? Absolutamente sí. Aprender a comprender y utilizar la plataforma web actual le otorga una gran ventaja sobre otros desarrolladores. Ya sea que trabaje en el rendimiento, la accesibilidad, la capacidad de respuesta, todos ellos juntos o simplemente en el envío de funciones de interfaz de usuario, si desea hacerlo como ingeniero responsable, conocer las herramientas que están disponibles le ayudará a alcanzar sus objetivos más rápido y mejor. Algunas cosas para las que quizás ya no necesites una biblioteca Sabiendo qué navegadores soportan hoy en día, la pregunta es: ¿Qué podemos deshacernos? ¿Necesitamos un componente div para redondear esquinas en 2025? Por supuesto que no lo hacemos. La propiedad border-radius ha sido compatible con todos los navegadores utilizados actualmente durante más de 15 años. Y pronto también llegará la forma de esquina, para rincones aún más elegantes. Echemos un vistazo a las funciones relativamente recientes que ahora están disponibles en los principales navegadores y que puede utilizar para reemplazar las dependencias existentes en su código base. El punto no es deshacerse inmediatamente de todas sus queridas bibliotecas y reescribir su código base. En cuanto a todo lo demás, primero deberá tener en cuenta la compatibilidad del navegador y decidir en función de otros factores específicos de su proyecto. Las siguientes funciones están implementadas en los tres motores de navegador principales (Chromium, WebKit y Gecko), pero es posible que tenga diferentes requisitos de compatibilidad con el navegador que le impidan utilizarlas de inmediato. Sin embargo, todavía es un buen momento para conocer estas funciones y tal vez planear usarlas en algún momento. Ventanas emergentes y diálogos La API Popover, el elemento HTML

y el pseudoelemento ::backdrop pueden ayudarle a deshacerse de las dependencias de las ventanas emergentes.información sobre herramientas y bibliotecas de diálogo, como UI flotante, Tippy.js, Tether o React Tooltip. Se encargan de la accesibilidad y la gestión del enfoque por usted, de forma inmediata, son altamente personalizables mediante CSS y se pueden animar fácilmente. acordeones El elemento
, su atributo de nombre para elementos mutuamente excluyentes y el pseudoelemento ::details-content eliminan la necesidad de componentes de acordeón como Bootstrap Accordion o React Accordion. El simple hecho de usar la plataforma aquí significa que es más fácil para las personas que conocen HTML/CSS comprender su código sin tener que aprender primero a usar una biblioteca específica. También significa que es inmune a cambios importantes en la biblioteca o a la interrupción de esa biblioteca. Y, por supuesto, significa menos código para descargar y ejecutar. Los elementos de detalles mutuamente excluyentes no necesitan JS para abrirse, cerrarse o animarse. Sintaxis CSS Capas en cascada, para una base de código CSS más organizada, anidamiento de CSS, para CSS más compacto, nuevas funciones de color, colores relativos y mezcla de colores, nuevas funciones matemáticas como abs(), sign(), pow() y otras ayudan a reducir las dependencias de los preprocesadores CSS, bibliotecas de utilidades como Bootstrap y Tailwind, o incluso bibliotecas CSS-in-JS en tiempo de ejecución. El elemento revolucionario :has(), una de las funciones más solicitadas durante mucho tiempo, elimina la necesidad de soluciones basadas en JS más complicadas. Utilidades JS Los métodos de matriz modernos como findLast() o at(), así como los métodos Set como diferencia(), intersección(), unión() y otros, pueden reducir las dependencias de bibliotecas como Lodash. Consultas de contenedores Las consultas de contenedor hacen que los componentes de la interfaz de usuario respondan a cosas distintas al tamaño de la ventana gráfica y, por lo tanto, los hacen más reutilizables en diferentes contextos. Ya no es necesario utilizar una biblioteca de interfaz de usuario con mucho JS para esto, y tampoco es necesario utilizar un polyfill. Diseño Grid, subgrid, flexbox o multicolumna existen desde hace mucho tiempo, pero al observar los resultados de las encuestas sobre el estado de CSS, está claro que los desarrolladores tienden a ser muy cautelosos al adoptar cosas nuevas y esperan mucho tiempo antes de hacerlo. Estas características han sido Baseline durante mucho tiempo y puede usarlas para deshacerse de las dependencias en cosas como el sistema de cuadrícula de Bootstrap, las utilidades flexbox de Foundation Framework, la cuadrícula fija de Bulma, la cuadrícula de Materialise o las columnas Tailwind. No estoy diciendo que debas abandonar tu marco. Su equipo lo adoptó por una razón y eliminarlo podría ser un gran proyecto. Pero observar lo que la plataforma web puede ofrecer sin un contenedor de terceros conlleva muchos beneficios. Cosas que quizás ya no necesites en un futuro próximo Ahora, echemos un vistazo rápido a algunas de las cosas para las que no necesitará una biblioteca en un futuro próximo. Es decir, los elementos que se detallan a continuación aún no están listos para una adopción masiva, pero conocerlos y planificar su posible uso posterior puede resultar útil. Posicionamiento del anclaje El posicionamiento de anclaje CSS maneja el posicionamiento de ventanas emergentes e información sobre herramientas en relación con otros elementos, y se encarga de mantenerlos a la vista, incluso al mover, desplazarse o cambiar el tamaño de la página. Este es un gran complemento a la API Popover mencionada anteriormente, lo que hará que sea aún más fácil migrar desde soluciones JS con mayor rendimiento. API de navegación La API de navegación se puede utilizar para manejar la navegación en aplicaciones de una sola página y podría ser un gran complemento, o incluso un reemplazo, para las tareas de enrutamiento React Router, Next.js o Angular. Ver API de transiciones La API View Transitions puede animar entre los diferentes estados de una página. En una aplicación de una sola página, esto facilita las transiciones fluidas entre estados y puede ayudarlo a deshacerse de bibliotecas de animación como Anime.js, GSAP o Motion.dev. Aún mejor, la API también se puede utilizar con aplicaciones de varias páginas. ¿Recuerda antes, cuando dije que la razón por la que creamos aplicaciones de una sola página en la empresa donde trabajé hace 15 años fue para evitar el destello blanco de las recargas de páginas al navegar? Si esa API hubiera estado disponible en ese momento, habríamos podido lograr hermosos efectos de transición de página sin un marco de trabajo de una sola página y sin una gran descarga inicial de toda la aplicación. Animaciones basadas en desplazamiento Las animaciones basadas en desplazamiento se ejecutan en la posición de desplazamiento del usuario, en lugar de a lo largo del tiempo, lo que las convierte en una excelente solución para narraciones y recorridos de productos. Algunas personas se han excedido un poco, pero cuando se usa bien, puede ser una herramienta de diseño muy eficaz y puede ayudar a deshacerse de bibliotecas como: ScrollReveal, GSAP Scroll oWOW.js. Selecciones personalizables Una selección personalizable es un elemento

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free