Design System · Visión general
Empezar

Sistema de diseño

Documentación viva de los componentes, tokens y patrones usados en los flujos de alta de cliente. Cada componente incluye anatomía, estados, specs en pixeles y nombres de token listos para llevar a Figma o producción.

Tokens
52
Componentes
17
Patrones
4
Estados
7

Principios

Claridad sobre densidad. Etiquetas siempre arriba del campo, asterisco rojo opcional para requeridos, validación visible al lado del input.

Rojo de marca como acento. El primario se reserva para acciones, headers de sección y enlaces. Nunca como fondo de bloques largos.

Confirmación verde inmediata. Cada vez que un valor se valida, aparece el check verde a la derecha del campo. No hay duda de qué sigue.

Foundations

Color #color

Tres familias: marca, neutros e indicadores semánticos. Los nombres siguen familia/escala y son directamente compatibles con Figma Variables.

Brand · Primary

Neutrals · Ink

Semantic

i
El primario brand/600 (#E60012) tiene contraste AAA contra blanco a 14px+. Para textos pequeños sobre rojo, usa siempre blanco puro.
Foundations

Tipografía #typography

DM Sans para todo el producto · JetBrains Mono para tokens, código y specs. Cargar pesos 400, 500, 600 y 700.

DM Sans
Aa
JetBrains Mono
Aa

Escala tipográfica

Family · Body
DM Sans
Family · Mono
JetBrains Mono
Pesos
400 / 500 / 600 / 700
Min size
12px (caption)
Foundations

Espaciado #spacing

Grid base 4 px. Usa sp/2sp/4 dentro de componentes; sp/6+ entre secciones de página.

Foundations

Radios #radius

Cinco escalones. radius/md es el default para inputs y botones; radius/lg para botones grandes y cards.

Foundations

Elevación #elevation

Cinco niveles, de pop sutil a modal. Las sombras usan negro RGBA con dos capas para un degradado natural.

Foundations

Iconografía #iconography

24×24 px, stroke 2 px, terminaciones round. Heredan color con currentColor.

Componentes · Acciones

Button #button

Cuatro variantes (primary, secondary, ghost, destructive) en tres tamaños (SM 32 · MD 40 · LG 48). El primary es la única acción de continuar — máximo uno por vista.

Variantes
// Variantes
<button class="btn btn-primary">Siguiente</button>
<button class="btn btn-secondary">Cancelar</button>
<button class="btn btn-ghost">Saltar</button>
<button class="btn btn-destructive">Eliminar</button>

Estados

DefaultHoverFocusDisabled
Primarybtn-primary
Secondarybtn-secondary
Ghostbtn-ghost
Destructivebtn-destructive

Tamaños

SM · MD · LG
<button class="btn btn-primary btn-sm">Botón SM</button>
<button class="btn btn-primary">Botón MD</button>
<button class="btn btn-primary btn-lg">Botón LG</button>

Specs

Height SM / MD / LG
32 / 40 / 48 px
Padding (MD)
sp/3 · sp/5
Radius
radius/md · 6 px
Font
14 / 600 / 1.0
Focus ring
3 px brand/600 @ 25%
Transición
120 ms ease
Componentes · Forms

Input #input

Campo base. El asterisco rojo indica requerido; el check verde a la derecha aparece cuando el valor pasa validación.

Anatomía
<label class="field-label">
  <span class="req">*</span>Apellido Paterno
</label>
<input class="input" value="CORONEL"/>
<span class="valid-icon">✓</span>

Estados

7 estados
CURP debe tener 18 caracteres.

Specs

Height
40 px
Padding
10px 12px
Border
1px ink/300
Radius
radius/md · 6px
Label
13 / 400 · ink/700
Valid icon
22 px · success/600
Componentes · Forms

Select #select

Mismo chasis que Input. Caret a la derecha; cuando hay valor mostramos opcionalmente clear (×) y separador (|).

Default · Selected · Open
Ciudad de México
Aguascalientes
Baja California
Ciudad de México
Jalisco
Componentes · Forms

Date picker #datepicker

Tres campos numéricos separados por /. Auto-avance al completar cada par, validación al perder foco.

Empty · Filled
DD/MM/AAAA
12/10/1991
Componentes · Forms

Checkbox #checkbox

Selección múltiple. Caja 18×18 px, radio 4 px. El estado activo usa el rojo de marca.

Estados
Componentes · Forms

Radio #radio

Selección única en un grupo. Mismo tamaño que checkbox; punto interior 8 px.

Estados
Componentes · Forms

Toggle / Sí–No #toggle

El switch para preferencias persistentes; el grupo Sí/No para decisiones binarias dentro de un formulario.

Switch
Recibir notificaciones — Off
Recibir notificaciones — On
Yes / No group
* ¿Te atendió algún empleado?
Aceptar términos
Componentes · Display

Badge & Tag #badge

Badges para estado (no interactivos), tags para filtros (removibles).

Badges
Aprobado Pendiente Rechazado En revisión Borrador Nuevo
Tags
CDMX × Crédito personal × 12 meses × Filtro activo ×
Componentes · Feedback

Alert #alert

Mensaje inline persistente. Borde izquierdo 4 px en el tono semántico, fondo en versión 100, texto en 800.

Variantes
i
InformaciónAntes de enviar, revisa que los datos estén completos.
Validación correctaTu identidad fue validada.
!
PrecauciónEl código SMS expira en 30 segundos.
×
ErrorEl CURP no corresponde con los datos del cliente.
Componentes · Feedback

Toast #toast

Confirmación temporal en esquina inferior derecha. Auto-dismiss 4 s para success/info, manual para errores.

Variantes
Guardado exitosamente
Tus referencias se actualizaron.
×
×
No se pudo enviar
Verifica tu conexión.
×
i
Código enviado
Revisa tus mensajes SMS.
×
Componentes · Navegación

Tabs #tabs

Para alternar vistas hermanas dentro de la misma pantalla. Indicador inferior 2 px en el tono primario.

Default
Datos personales
Domicilio
Referencias
Términos
Validación
Contenido de la pestaña activa
Componentes · Navegación

Stepper #stepper

Para procesos lineales obligatorios. Pasos completados con check, paso actual con número en marca, futuros en gris.

5 pasos · paso 3 activo
Aviso
Datos
3
Referencias
4
Términos
5
Validar
Componentes · Navegación

Progress #progress

Barra horizontal lineal. 6 px de alto, radio completo. Para indeterminada usar gradiente animado.

3 ejemplos
Paso 3 de 560%
Validando documento…15%
Completado100%
Componentes · Display

Card #card

Contenedor genérico. Border 1 px, radius 10 px, padding sp/5 default; sombra shadow/sm opcional.

3 ejemplos
product · 16:9
Nuevo
Pantalla Smart 55"
4K · UHD · HDR10
$12,499
José Coronel
Cliente desde 2019
Línea de crédito disponible: $45,000
PROMOCIÓN
20% en electrónica
Solo este fin de semana.
Componentes · Display

Table #table

Headers en mayúsculas + mono, filas con divisor sutil. Estado en columna dedicada con badge.

Solicitudes de crédito
ClienteCURPSolicitudMontoEstado
José CoronelCODJ911012HDFRGS09#A-1041$25,000AprobadoVer →
Mariana MottaMOMM850314MDFXNN03#A-1042$12,500PendienteVer →
Roberto HidalgoHIPR760822HDFXRR07#A-1043$80,000En revisiónVer →
Lucía VázquezVANL920501MDFXLU05#A-1044$5,000RechazadoVer →
Patrones

Formulario de alta · Datos personales #pat-form

Composición de Input + Select + Date + botón primario. Grid de 2 columnas en desktop, 1 en móvil.

Pattern
Datos Personales
Ingresa y valida que tu información sea correcta
Patrones

Aviso de privacidad #pat-aviso

Layout centrado: título en rojo, cuerpo justificado, dos checkboxes alineados a la izquierda dentro de un bloque centrado, CTA primario.

Pattern
Aviso de privacidad

Es importante que leas y aceptes nuestro Aviso de Privacidad, donde encontrarás información detallada sobre cómo manejamos tus datos personales: la forma en que los recopilamos, utilizamos, protegemos y compartimos.

Patrones

Términos & código SMS #pat-terms

Combinación de toggle Sí/No + campo telefónico + código SMS con botón "Solicitar código" alineado al input.

Pattern
Términos y Condiciones
Revisa los términos y condiciones y confirma que estás de acuerdo para continuar.
* ¿Te atendió algún empleado?
* Aceptar Términos y Condiciones — Cláusula para utilizar medios electrónicos de autenticación.
Patrones

Validación de identidad por QR #pat-id

Bloque QR + lista de instrucciones, separador con dot, fallback de SMS, CTA primario.

Pattern
Valida tu identidad
Escanee el código QR para acceder desde su dispositivo móvil
  • Para escanear el código QR, utilice la cámara de su dispositivo móvil.
  • Para abrir el QR escaneado recomendamos utilizar Safari en iOS y Chrome en Android.
  • Si utiliza una aplicación para escanear el QR, copie la URL y péguela en los navegadores recomendados.
Enviar enlace de verificación a mi teléfono