Estamos asistiendo a un momento histórico para el desarrollo web. Con la llegada de Chrome 135 y las últimas actualizaciones de Safari, HTML y CSS están alcanzando cosas impensables hace unos años. Lo que antes era exclusivo de JavaScript, hoy puede resolverse de forma nativa, declarativa y mucho más eficiente. Carruseles, selects estilizados, modales interactivos y notificaciones push ahora son posibles sin apenas tocar una línea de JS.
Carruseles nativos con CSS: por fin una solución elegante, completa y sin scripts
Durante años, los sliders en la web han sido sinónimo de JavaScript. Incluso cuando se podían montar estructuras con scroll-snap, el control de botones, la navegación o la lógica de activación/desactivación de elementos requerían lógica adicional. Eso se acabó.
Con Chrome 135, Google introduce el soporte para los scroll-buttons, un nuevo pseudo-elemento que permite agregar botones de navegación directamente sobre contenedores con scroll horizontal. Lo mejor: estos botones detectan automáticamente si el usuario está en el primer o último ítem, activándose o desactivándose sin ningún tipo de lógica extra.
Esto significa que se pueden construir carruseles 100% funcionales, con botones interactivos, sin tocar JavaScript. Y no es solo una teoría: Google ha publicado un configurador interactivo para personalizarlos y probar diferentes opciones. Puedes controlar el número de elementos visibles, añadir navegación por "dots", establecer scroll automático y hasta adaptar el diseño a móviles.
Los desarrolladores llevamos años pidiendo algo así, y no es para menos: esta solución reduce el peso de las páginas, mejora el rendimiento y abre nuevas puertas para la accesibilidad, ya que respeta el foco, el teclado y la navegación por tabulaciones.
Selects totalmente personalizables sin JS ni hacks
Otro gran avance que llega con Chrome 135 es la posibilidad de personalizar selects nativos sin depender de scripts externos ni soluciones hacky como overlays, position: absolute o recreaciones en React/Vue.
Gracias a la propiedad appearance: base-select, es posible aplicar estilos directamente sobre el componente <select> y sus hijos. Esto permite añadir botones, íconos, avatares e incluso imágenes dentro del propio menú desplegable.
Esta función no solo eleva el nivel estético de las interfaces, sino que además es retrocompatible. En navegadores que no soporten esta propiedad, el select funcionará como siempre, simplemente ignorando los estilos avanzados. Esto permite implementar mejoras progresivas sin comprometer la usabilidad.
El cambio es especialmente relevante para sitios que apuestan por la accesibilidad, ya que el <select> sigue siendo uno de los elementos más compatibles con lectores de pantalla y navegación con teclado.
Command For: di adiós a los event listeners para abrir modales
Una de las joyas ocultas de esta actualización es el soporte para el atributo command for, que introduce una nueva forma de declarar interacciones directamente en el HTML.
Hasta ahora, abrir un modal requería detectar eventos en botones, escuchar clics, llamar a dialog.showModal() y luego controlar su cierre con más lógica JavaScript. Con command for, todo esto se puede declarar directamente sobre el botón, que pasa comandos a otro elemento (por ejemplo, un <dialog>) para que se muestre.
La sintaxis es simple y elegante:

Este sistema también permite capturar el valor de retorno (por ejemplo, si se pulsó "Cancelar" o "Eliminar") con un mínimo de JavaScript, facilitando la interacción sin necesidad de formularios o APIs complejas. Una maravilla para quienes buscan mantener su código limpio y mantenible.

Declarative Web Push: Safari rediseña las notificaciones sin Service Workers
Pero la revolución no solo viene desde Google. Apple ha sorprendido a todos con Safari 18.4 y una propuesta que reimagina cómo deben enviarse las notificaciones push en la web. La nueva API, llamada Declarative Web Push, permite suscribir y enviar notificaciones sin necesidad de registrar un Service Worker.
Los Service Workers, aunque potentes, han sido una fuente constante de frustraciones: errores silenciosos, condiciones de carrera, dificultades de depuración y APIs poco intuitivas. Declarative Web Push elimina toda esa complejidad y la sustituye por una llamada limpia y sencilla.
Esta API está pensada para funcionar con apenas unas líneas de código, sin depender de procesos en segundo plano. Ya está disponible en iOS y iPadOS para apps PWA y se espera que se expanda a otras plataformas. Si otros navegadores adoptan el estándar, podríamos estar ante el principio del fin para los Service Workers en notificaciones.