Skip to content

Componentes y marca ​

Las piezas visuales del producto viven como clases .cw-* en globals.css. Úsalas antes de inventar una variante nueva con utilidades sueltas.

Botones ​

Pincha aquíAcción secundariaFantasma
ClasePara qué
.cw-btn + .cw-btn-primaryCTA principal, naranja.
.cw-btn + .cw-btn-secondaryAcción secundaria, azul.
.cw-btn + .cw-btn-ghostFantasma, con borde de 2px.
.cw-btn-ghost-brandModificador del fantasma sobre la cabecera azul del alumno en móvil (borde blanco translúcido). Solo aplica <md.
.cw-btn-completeBarra «Marcar como completada» (52px, todo el ancho): sin hacer = blanco con borde azul · hecha = fondo cw-success-50 con texto cw-success · guardando = al 60 %.

Todos los botones miden mínimo 48px de alto y usan Poppins 700 a 16px.

Píldoras y etiquetas ​

PendienteEn revisiónRespondidoArchivado
ClasePara qué
.cw-fb-badge (+ .is-pending / .is-review / .is-responded / .is-closed)Píldora de estado de feedback.
.cw-stickerEtiqueta tipo pegatina, rotada -2°, en mayúsculas.
.cw-progress + > spanBarra de progreso azul sobre fondo blue-100.

Tarjetas, filas y estructura ​

ClasePara qué
.cw-cardCard blanca con borde line y radio 16.
.cw-lesson-row (+ .is-current)Fila de lección dentro de un módulo.
.cw-fb-row (+ .is-new)Fila de un ticket de feedback.
.cw-check (+ .is-current / .is-done)Check circular del temario (22px): pendiente = borde · en curso = anillo naranja con punto · hecha = relleno azul.
.cw-section-hCabecera de sección con dashline al lado.
.cw-empty + .cw-empty-iconEstado vacío centrado.
.cw-videoMarco de vídeo 16:9 con acento naranja superior.

Formularios ​

ClasePara qué
.cw-input + .cw-input-group (+ label, .hint)Input con label y pista; error con .is-error.

Grabación de audio ​

ClasePara qué
.cw-record-bigBotón circular naranja gigante para grabar (132×132).
.cw-audio-wavesContenedor de barras de onda azul.
.cw-wave-bar + @keyframes cwWaveBarra animada de grabación activa.
.cw-halo-pulseHalo pulsante del grabador mientras graba.

Marca de agua y líneas ​

ClasePara qué
.cw-dashline / .cw-dashline-orange / .cw-dashline-vertLínea discontinua de marca (horizontal y vertical).
.cw-rich-textEstilos del HTML renderizado (descripciones de lección).

Animaciones de entrada ​

ClasePara qué
.cw-riseEntrada de tarjeta (rise + fade), solo transform/opacity.
.cw-check-popPop del check al marcarse hecho.
.cw-drawer-overlay / .cw-drawer-contentDrawer móvil + scrim (temario en <md).

Logotipo ​

Assets oficiales del brand kit, en public/brand/. Se renderizan con el componente BrandLogo.

Regla de marca: no distorsionar, rotar, recolorear, añadir sombras/contornos ni reordenar elementos. Solo las dos versiones sancionadas (Azul Charly y Blanco).

ArchivoQué esUso
logo-completo-azul.svgWordmark completo, azulSobre fondo claro (sidebar expandido). Mín. 100px de ancho.
logo-completo-blanco.svgWordmark, negativoSobre fondo oscuro/azul (pantallas de acceso).
logo-cw-azul.svgMonograma «cw», azulMarca compacta (rail colapsado). Mín. 16px de ancho.
logo-cw-blanco.svgMonograma, negativoSobre fondo oscuro (reservado).

No uses la vieja caja «CW» en la fuente del cuerpo: era una aproximación, no el logo real.

Iconos de app ​

En src/app/ (convenciones de App Router): icon.svg (monograma «cw», principal) · icon.png (favicon 64×64) · favicon.ico. Next inyecta los <link rel="icon"> solo.

La regla de oro ​

Cuando el sistema visual tenga que evolucionar (consolidar una escala, tokenizar un color nuevo, renombrar una variable…), se actualiza primero design-system.md y, a partir de ahí, se ajustan globals.css, los componentes y esta guía. Esa es la única ruta válida.

Documentación interna · Uso exclusivo del equipo de Charly's Way Academy.