VOLTA · 16-interaction-specs.md · 18 de 22

En esta página 1. Convenciones 0%

16 — Especificaciones de interacción — VOLTA

1. Convenciones

TokenValor
Duración hover~150ms ease
Focusring 2px ink o lime
Disabledopacity 0.5, cursor not-allowed
Touch min44×44 px

2. Home

ElementoInteracción
Nav anchorsSmooth scroll opcional a #clases / #horarios
CTA “Quiero una plaza”Navigate /apuntarme
CTA “Ver clases”Scroll #clases
CTA “Apuntarme” headerNavigate /apuntarme
“Coach”Navigate /login
Hero imageEstática; no lightbox v1
Cards de claseInformativas; CTA global a join

Estados: solo estáticos (marketing).

3. Join form

PasoComportamiento
Input focusBorder/ring énfasis
ValidaciónOn submit (mínimo L1); campos required bloquean
Submit loadingBotón disabled + “Enviando…” opcional
Success pathNavigate /ok con code en state/query
Error pathBanner/texto error; form permanece
CampoInput type / control
fullNametext
emailemail
phonetel
classTypeselect enum
preferredDaydate o text date
preferredSlottext o select horas
notestextarea

4. Success

ElementoInteracción
CódigoSeleccionable; copy-to-clipboard L1+ opcional
CTA homeNavigate /
RefreshDebe seguir mostrando mensaje (state o re-fetch no aplica)

5. Login

PasoComportamiento
SubmitPOST login
SuccessGuardar token/user → /inbox
ErrorMensaje bajo form; password no se limpia necesariamente
EnterSubmit form

6. Inbox

ElementoInteracción
LoadParallel GET list + stats
Card clickNavigate /inbox/:id
Pull refreshN/A web; botón reintentar en error
EmptyMensaje centrado; sin CTA create (create es público)
ErrorMensaje + control reintentar (re-fetch)
SalirClear storage → /login

Stats chips

Solo lectura en v1; click no filtra (filtro = L1+).

7. Request detail

ElementoInteracción
Volver/inbox
Botones estadoPATCH inmediato; optimistic opcional; al 200 actualizar badge
Loading patchDisable botones de acción
Error patchToast/texto; estado UI no miente
Email/telmailto: / tel: si se implementa (recomendado)

Mapa de acciones sugerido

BotónTarget statusVisible si
Marcar contactadaCONTACTEDstatus ≠ CONTACTED (o siempre)
Confirmar plazaCONFIRMEDstatus ≠ CONFIRMED
CancelarCANCELLEDstatus ≠ CANCELLED

[DECISIÓN DE DISEÑO]: L1 puede mostrar las tres acciones siempre; el PATCH acepta el enum completo.

8. Responsive

BreakpointComportamiento
< mdNav colapsada; CTA header visible; grids 1 col
≥ mdNav links; home 2 col; inbox stats en fila

9. Feedback y errores (copy interactivo)

SituaciónFeedback
Join OKNavegación success (no solo alert)
Join failInline error
Login failInline error
Inbox failPanel error
Status OKBadge actualiza

10. Accesibilidad de interacción

  • No usar solo hover para info crítica.
  • Botones reales (button / a), no div clickable sin role.
  • Mantener orden de tab natural en form y detail.