CodeForge

Maquetación Web Dinámica / JavaScript para maquetadores: darle vida al DOM

classList: el interruptor de estilos

Teoría18 min20 XP

Si tuvieras que aprender UN solo patrón de interactividad, sería este: JavaScript agrega o quita una CLASE, y el CSS hace todo lo visual. Un menú que se abre, un tema oscuro, una pestaña activa, un modal que aparece — casi todos son "poner o quitar una clase". classList es ese interruptor, y dominarlo es dominar el 80% de la interfaz.

El llavero de etiquetas

Los cuatro métodos

classlist.js

toggle es la estrella: una sola línea abre y cierra, enciende y apaga. Y DEVUELVE si la clase quedó puesta (true) o quitada (false) — perfecto para actualizar el texto de un botón o un atributo aria en el mismo paso.

La regla de oro: estado en JS, pintura en CSS

tema.css

JavaScript nunca decide colores; solo pone o quita .oscuro. Toda la apariencia — incluida la transición suave del módulo 10 — vive en el CSS. Esta separación es la misma que sembraste en el menú hamburguesa del módulo 8 ("JS cambia el estado, CSS pinta") y es la clave de un código que no se convierte en espagueti.

Enciende y apaga

Fíjate en dos cosas: JavaScript no menciona ni un color (todos viven en CSS), y el aria-pressed se actualiza junto con la clase — un lector de pantalla anuncia "activado/desactivado" correctamente. El estado visual y el estado accesible siempre en sincronía.

Quieres un botón que abra y cierre un menú con un solo clic cada vez. ¿Cuál es la forma más limpia?

Mini-reto

Añade a "El Observador" una barra de "temas de lectura": tres botones — Claro, Sepia, Oscuro — que pongan la clase correspondiente en el <article> (define .tema-sepia, .tema-oscuro en tu CSS). Truco: antes de agregar la nueva, quita las otras dos (o el tema se apila). Vas a descubrir por qué a veces conviene remove explícito antes de add: cuando las clases son mutuamente excluyentes.

Qué sigue

Hasta ahora reaccionaste al click, pero las páginas responden a mucho más: escribir en un input, enviar un formulario, presionar una tecla. La próxima lección abre el mundo completo de los EVENTOS y del objeto event — la información de "qué acaba de pasar" que hace posible reaccionar con precisión.