Design System

Los 13 componentes shadcn directos (C-01 a C-13) y los 13 compuestos (C-14 a C-26) con el tema Todarela. Tipografía: Bricolage Grotesque en títulos, Inter en todo lo demás.

Tipografía

Bricolage Grotesque — títulos

Inter para el cuerpo: formularios, tablas, navegación. Peso 400 en texto, 500 en labels, 600 solo para microénfasis.

Números tabulares en datos: 1.234,56 · 89,00 · 107,50

Button — C-01

Badge — C-09 (+ anticipo de C-34 StatusBadge)

defaultsecondaryoutlinedestructive

Estados de dominio → tokens semánticos (spec C-34, variante sólida y suave):

ACTIVAPENDIENTEPROGRAMADAVENCIDAARCHIVADA
ACTIVAPENDIENTEPROGRAMADAVENCIDAARCHIVADA

Formulario — C-02 a C-05, C-13

Nueva materia
Los campos con * son obligatorios.

Ingresá un email válido.

Table — C-06 (base de las 37 tablas)

EstudianteCursoEstadoPromedio
VSValentina SuárezPiano I — Lunes 18:00ACTIVE92
MFMateo FernándezGuitarra II — Miércoles 19:30PENDING
LPLucía PereiraCanto — Sábado 10:00SCHEDULED
JSJoaquín SilvaBatería I — Jueves 17:00SUSPENDED45
ECEmilia CastroViolín III — Martes 16:00FINISHED88

Tabs — C-10 · Card — C-08 · Avatar — C-12

Estudiantes activos
128
+12%
Cursos en marcha
17
Pagos pendientes
6
revisar
VSMFLP
+9

Profesores de la academia (Avatar con iniciales, C-12).

Compuestos — C-14 a C-26

Componentes con estado e interacción: tabla de datos, overlays, formularios validados, navegación.

DataTable — C-14 (+ C-18 acciones por fila, C-21 paginación, C-26 skeleton)

Base de las 37 tablas: búsqueda, filtro por estado, orden por columna y paginación. Vacío real ≠ sin resultados de filtro (02 - Estados de UI).

CursoEstado
Valentina SuárezPiano I — Lunes 18:00ACTIVA
92
Mateo FernándezGuitarra II — Miércoles 19:30PENDIENTE
Lucía PereiraCanto — Sábado 10:00PROGRAMADA
Joaquín SilvaBatería I — Jueves 17:00SUSPENDIDA
45
Emilia CastroViolín III — Martes 16:00FINALIZADA
88

15 de 12

Filas
1 / 3

Combobox — C-15

Reemplaza al Select cuando la lista crece: cursos, materias, estudiantes, profesores.

AlertDialog — C-16 · Dialog — C-17 · Sheet — C-23

Sonner (Toast) — C-19

Date picker — C-20 (Calendar + Popover)

Pagination — C-21 (suelto)

Dentro del DataTable ya viene integrado; esta es la variante suelta para otros listados.

AM
Academia de Música
Personas
Oferta académica
Inscripciones
  • 3

Sidebar admin (doc 12 §5)

Área de contenido. En la app real el sidebar colapsa a iconos con Cmd/Ctrl+B y en móvil se vuelve un Sheet (C-23).

Form — C-24 (React Hook Form + Zod)

Infraestructura de validación de los ~20 formularios. Probá enviar vacío para ver los mensajes.

Como va a aparecer en el catálogo público.

Tooltip — C-25

UC

Skeleton — C-26

Carga con skeleton (no spinner) y delay de 150 ms para evitar parpadeo (02 - Estados de UI §carga).

Grillas a medida — C-27 a C-29

Los tres componentes más complejos del inventario, prototipados primero porque fijan densidad, tamaño de celda y paleta de estados.

WeeklyScheduleGrid — C-27

Día × hora para horarios recurrentes (Schedule). Solo lectura: la edición va por formulario. Colores categóricos por curso (no son estados de dominio). Los solapamientos comparten el ancho; en modo alta de curso se marcan como conflicto.

Lunes
Martes
Miércoles
Jueves
Viernes
Sábado
10:0011:0012:0013:0014:0015:0016:0017:0018:0019:0020:0021:0022:00
Piano I18:0019:30Sala 2
Piano II19:4521:15Sala 2
Violín III16:0017:30Sala 1
Guitarra II19:3021:00Sala 3
Batería I17:0018:30Sala insonorizada
Armonía moderna18:3020:00En línea
Canto10:0012:00Sala 1

AttendanceGrid — C-28

Estudiante × sesión. Click cicla presente → ausente → tarde → justificado (colores del mapeo C-34). Guardado optimista por celda: pinta al instante, revierte con error y reintento si falla. La sesión futura queda readonly con tooltip. % de asistencia = presente + tarde sobre lo registrado; debajo de 75% se destaca.

Estudiante04/0511/0518/0525/0501/0608/06% asist.
Valentina Suárez100%
Benjamín Rodríguez60%
Josefina Acosta100%
Mateo Fernández40%
Martina López100%
PresenteAusenteTardeJustificadoClick en la celda para cambiar el estado

GradeEntryTable — C-29

Estudiante × evaluación, edición inline. Valida la escala de la academia al confirmar (RN-EVA-10, acepta coma o punto); Parcial 1 está fuera de la ventana de 24 h (RN-EVA-09) y queda readonly. La nota final es la suma ponderada (RN-EVA-04) y colorea aprobado / no aprobado contra la nota de aprobación (RN-EVA-05).

EstudianteParcial 130%Parcial 230%Final40%Nota final
Valentina Suárez9292
Benjamín Rodríguez74
Josefina Acosta8588,4
Mateo Fernández5558,3
Martina López96
Escala 0100 · aprueba con 70Enter o click afuera guarda · Esc cancela

A medida — C-30 a C-42

Los 13 componentes propios restantes: con esto queda cubierto el inventario completo del doc 10.

StatusBadge — C-34

Resuelve (entidad, estado) → token + etiqueta (01 - Tokens §3). Ningún otro componente mapea estados a colores por su cuenta; la columna Estado de las 37 tablas usa esto.

ActivaPendienteProgramadaJustificadaSuspendidaFinalizada

El mapeo va por (entidad, estado) — la prueba es CANCELLED:

Suscripción:Cancelada· Curso:Cancelada
Variante sólida:ActivaPendienteCancelada

StatCard — C-33

Estudiantes activos
128
+12%
vs. periodo anterior
Pagos pendientes
6
3 por vencer

La tercera muestra el estado de carga (skeleton por card, doc 02 §4).

EmptyState — C-41 · ConfirmDialog — C-42

Todavía no tenés cursos

Creá el primero para empezar a recibir inscripciones. Necesitás al menos una materia y un periodo activos.

MultiSelect — C-30 · SlugInput — C-31 · FileUpload — C-32

sga.app/

Probá mi academia (normaliza y está ocupado) o cualquier otro nombre (disponible).

IV

Cuadrada, mín. 200 px · máx. 2 MB

PricingCard — C-35

Free
Para empezar

Gratis

  • 1 academia
  • Hasta 50 estudiantes
  • 5 cursos
  • Soporte por la comunidad
Recomendado
Pro
Para academias en crecimiento

US$ 29 por mes

  • 3 academias
  • Hasta 500 estudiantes
  • Cursos ilimitados
  • Notificaciones por email
  • Soporte prioritario
Premium
Para redes de academias

US$ 79 por mes

  • Academias ilimitadas
  • Estudiantes ilimitados
  • Reportes avanzados
  • Auditoría completa
  • Soporte dedicado

CourseCard — C-36

Piano
Piano I
Presencial

Prof. Álvarez

Lunes 18:00–19:30

Sala 2

Cupo9 de 12
$U 2.400/mes
Canto
Canto
Presencial

Prof. Camejo

Sábado 10:00–12:00

Sala 1

Cupo10 de 12 — ¡últimos lugares!
$U 2.800/mes
Teoría
Armonía moderna
En línea

Prof. Fagúndez

Viernes 18:30–20:00

CupoCompleto
$U 1.900/mes

ImpersonationBanner — C-37

En la app va fijo encima del topbar con z-40 (--z-impersonation); acá está incrustado. Tono warning: excepcional, no un error.

Estás viendo como Academia de Música del Este — actuando en nombre del cliente. Todo queda auditado.

Contenido normal de la cuenta impersonada debajo.

NotificationCenter — C-38

Campana del topbar con contador de no leídas. Click en un aviso lo marca como leído y navega al recurso.

AcademySwitcher — C-39

Pantalla de entrada cuando la persona pertenece a más de una academia (P-29).

Stepper — C-40

Inventario completo: 13 directos + 13 compuestos + 16 a medida (3 grillas y estos 13) — los 42 componentes del doc 10 tienen referencia viva en esta página.