CodeForge

Maquetación Web Dinámica / Pseudo-clases y pseudo-elementos: el arsenal secreto

Reto: checklist interactivo sin una línea de JS

Reto45 min60 XP

El cierre del módulo es una demostración de poder: una lista de tareas interactiva — ítems que se tachan, contador de progreso, estado de "completado" con celebración — construida SOLO con HTML y CSS. Hace tres años esto requería JavaScript; hoy es :checked + :has() bien combinados.

Reto

Checklist interactivo: cero JavaScript

Media40 min60 XP(×2 sin mirar la solución)

Qué debes construir

Una lista de preparación de viaje (o el tema que quieras) con esta conducta:

Requisitos:

  1. 4+ ítems, cada uno un label que envuelve su checkbox y su texto (el clic en TODO el ítem marca/desmarca — módulo 2, la pareja inseparable).
  2. Ítem marcado: texto tachado y atenuado, fondo sutil del acento — vía :has(:checked) en el label.
  3. El checkbox con accent-color de la casa (¡una línea — investígala, es nueva para ti!).
  4. Foco visible: el ÍTEM entero se resalta cuando su checkbox recibe foco de teclado (:has(:focus-visible)).
  5. El gran final: cuando TODOS están marcados, aparece un mensaje de celebración — la sección entera reacciona al estado de todos sus hijos.
  6. Bonus: contador "N de 4" junto al título usando contadores CSS... o la honestidad de descubrir su límite (lee la Solución al terminar).

Reglas

  • Cero JavaScript. Ni una línea. Todo es HTML semántico + CSS.
  • Debe funcionar con teclado: Tab entre ítems, Espacio para marcar, foco siempre visible.
  • Nada de ocultar los checkboxes nativos con opacity 0 y redibujarlos — esta vez estilízalos de verdad (accent-color) y que la accesibilidad quede intacta gratis.

40:00

Cuando estés listo, arranca el reloj.

Qué sigue

Módulo 9 cerrado: seleccionas por estado, posición, contenido y parentesco, decoras y dibujas con fantasmas — el arsenal secreto completo. El módulo 10 enciende el MOVIMIENTO: transformaciones y transiciones, la puerta de entrada a la animación profesional.