08 — Design system — VOLTA
1. Fundamentos
| Capa | Valor |
|---|
| Nombre DS | VOLTA UI (L1 vertical slice) |
| Principio | Energía de cancha + claridad operativa del inbox |
| Plataformas | Web responsive 360–1280+ |
| Implementación | Tailwind tokens + componentes de página (no lib publicada) |
2. Color tokens
Marca (fuente de verdad del caso)
| Token | Hex | Uso |
|---|
color.bg.chalk | #F7F7F2 | Background app/marketing |
color.surface | #FFFFFF | Cards, header |
color.ink | #0B0B0B | Texto fuerte, CTAs dark |
color.ink.muted | #5C5C58 | Secundario |
color.lime | #C6F23A | Acento, highlights, CTA lime |
color.lime.soft | #EAF8B8 | Badges soft, fondos suaves |
color.lime.strong | #A8D420 | Hover lime |
color.border | #E2E2DC | Bordes |
color.danger | aprox red-700 | Errores de form / red |
Mapeo Tailwind app
| Clase | Valor implementado |
|---|
bg-bg | #F7F7F2 |
bg-surface | #FFFFFF |
text-ink / ink-muted | #0B0B0B / #5C5C58 |
primary / primary-soft / primary-strong | #0B0B0B / #EFEFEA / #000000 |
lime / lime-soft / lime-strong | #C6F23A / #EAF8B8 / #A8D420 |
border-border | #E2E2DC |
3. Tipografía
| Token | Familia | Fallback |
|---|
font.display | Syne | system-ui, sans-serif |
font.sans | Work Sans | system-ui, sans-serif |
| Estilo | Spec |
|---|
| Display xl | Syne 36–60/800, leading ~1.05 |
| Title | Syne 28–32/700–800 |
| Body | Work Sans 16/400–500, leading relaxed |
| Label | Work Sans 11–12/700 uppercase o tracking wide |
| Button | Work Sans 14/700 |
4. Espaciado y radio
| Token | Valor |
|---|
| page padding x | 16–24px |
| section y | 40–56px |
| card padding | 16–24px |
| gap grid | 12–16px |
| radius.card | 16–20px (rounded-2xl) |
| radius.pill | 9999px (rounded-full) |
| header height | ~72px |
5. Componentes
5.1 Botones
| Variante | Estilo | Uso |
|---|
| Primary dark | bg ink, text lime, pill | Nav “Apuntarme” |
| Primary lime | bg lime, text ink, pill | Hero CTA principal |
| Secondary | border border, bg surface, pill | “Ver clases” |
| Ghost/text | text muted, hover ink | Enlaces nav, salir |
Estados: default · hover (strong) · disabled (opacidad) · focus visible ring.
5.2 Badges de estado
| Status | Label | Estilo sugerido |
|---|
| NEW | Nueva | lime soft / ink |
| CONTACTED | Contactada | primary soft / muted |
| CONFIRMED | Confirmada | lime o soft positivo |
| CANCELLED | Cancelada | muted / borde dashed opcional |
Regla a11y: no codificar solo con color; siempre texto del label.
5.3 Badges de ClassType
| Tipo | Label | Notas |
|---|
| HIIT | HIIT | tracking bold |
| YOGA | Yoga | |
| BASKET | Basket | |
| KIDS | Kids | |
| OPEN | Cancha abierta | |
5.4 Cards de solicitud (inbox)
Estructura:
- Meta:
code · classType (xs bold, muted o lime)
- Nombre completo (lg semibold)
- Día preferido · franja
- Email / teléfono
- Badge status (trailing)
5.5 Stats summary
| Métrica | Fuente |
|---|
| Total | stats.total |
| Abiertas | stats.open (NEW+CONTACTED) |
| Por estado | stats.byStatus.* |
Layout: grid 2–4 cards compactas sobre la lista.
| Elemento | Spec |
|---|
| Label | Work Sans 12–14/600 |
| Input | border border, rounded-xl, bg surface, focus ring ink/lime |
| Select ClassType | mismos tokens |
| Error | text danger, bajo el campo |
| Submit | full-width en móvil, pill |
| Zona | Contenido |
|---|
| Pública | Logo · nav · CTA Apuntarme |
| Coach | Logo · badge COACH · nombre · Salir |
6. Layout patterns
| Pattern | Uso |
|---|
| Marketing split | Home: copy + hero image 2 col |
| Dark band | Sección clases sobre ink |
| App shell simple | Inbox full-width max-w-6xl |
| Detail stack | Meta → contacto → preferencias → acciones |
7. Iconografía
L1: preferir tipografía y badges; iconos mínimos si se usan (stroke 1.5–2, ink). No librería obligatoria.
8. Motion
| Interacción | Spec |
|---|
| Hover CTA | color strong, 150ms |
| Page transitions | router default (sin lib motion) |
| Feedback submit | disabled + label “Enviando…” opcional |
9. Do / Don’t
| Do | Don’t |
|---|
| Lime como acento | Fondos enteros lime sin contraste |
| Syne solo display | Syne en párrafos largos |
| Datos seed reales en mockups | Lorem ipsum |
| Empty/error con copy | Pantallas en blanco |