Esta técnica avanzada utiliza un
checkbox oculto
con el
combinador de hermanos generales (~)
. ¡Es magia CSS pura—no se necesita JavaScript para el toggle! Este patrón elegante demuestra el poder de los
selectores CSS.
✨ Cómo Funciona
La Magia:
Un checkbox oculto almacena el estado (marcado/desmarcado). El label actúa como botón. Cuando está marcado, CSS usa
la pseudo-clase
:checked
con el combinador
~
para ¡estilizar TODOS los elementos hermanos!
🎓 Valor Educativo:
¡Esto enseña selectores CSS avanzados, HTML semántico y resolución creativa de problemas sin JavaScript! Es
elegante y mantenible.
Por Qué Esto es Elegante
✅ Semántico
El checkbox representa perfectamente el estado binario (claro/oscuro)
✅ Solo CSS
Cero JavaScript requerido para el mecanismo de toggle
✅ Creativo
Muestra dominio de selectores CSS avanzados y pseudo-clases
✅ Educativo
Enseña el poder de los combinadores CSS y la cascada
El Sistema de Colores Tirio
Esta demo usa
Púrpura Tirio
(modo claro) e
Índigo Tirio
(modo oscuro)— colores históricos del tinte de moluscos fenicios antiguos. ¡Nota cómo HSL con transparencia crea
profundidad!
¿Por qué HSL?
¡Fácil para crear variaciones de color ajustando valores!
🎨 Lección de Teoría del Color:
El Púrpura Tirio simbolizaba la realeza en tiempos antiguos. Aquí representa el estado "claro" por defecto. El
Índigo Tirio (azul profundo) proporciona excelente contraste para el modo oscuro manteniendo el tema histórico.
¡Inspecciona en DevTools!
Abre DevTools (F12) y prueba estos pasos:
Encuentra
<input id="theme-toggle-checkbox">
en Elements
Observa cómo se marca/desmarca al hacer clic en el botón arriba
Inspecciona
.tyrian-container
y ve cómo cambian las variables CSS
¡Experimenta con tus propios valores de color HSL!
¡Prueba el toggle arriba de nuevo!
Nota cómo el símbolo (◐/◑) cambia usando
content: var(--toggle-shape)
Pensamiento Crítico:
¿Es este enfoque de checkbox más elegante que JavaScript? Considera: HTML semántico, accesibilidad, mantenibilidad
y valor educativo. ¿Cuándo elegirías esto sobre el Camino A (CSS automático) o el Camino B (JavaScript)? ¿La
restricción de "solo CSS" te hace más creativo o más limitado?