Sistema de Diseno Corporativo

NexusFlow Design System

Guia definitiva de diseno enterprise para el producto web. Tokens, componentes, accesibilidad WCAG 2.2 AA y criterios de calidad listos para implementar en React + Tailwind CSS.

Version1.0.0
EstandarWCAG 2.2 AA
StackReact + Tailwind
Grid base8pt
Touch min44px
ClienteNexusFlow SaaS
01

Design Tokens & Paleta de Color

Los tokens son la fuente de verdad del sistema. Todos los valores deben referenciarse a traves de tokens semanticos, nunca valores raw. Esto garantiza consistencia en el producto y simplifica el mantenimiento del dark mode en Fase 2.

Color
--color-primary
#3B82F6
Accion principal
--color-primary-dark
#2563EB
Hover / activo
--color-secondary
#8B5CF6
Accion secundaria
--color-success
#16A34A
Exito / positivo
--color-warning
#D97706
Advertencia
--color-danger
#DC2626
Error / destructivo
--color-text
#111827
Texto principal
--color-text-secondary
#6B7280
Texto secundario
/* tokens.css */ :root { --color-primary: #3B82F6; /* blue-500 */ --color-primary-dark: #2563EB; /* blue-600 - hover */ --color-secondary: #8B5CF6; /* violet-500 */ --color-success: #16A34A; /* green-600 */ --color-warning: #D97706; /* amber-600 */ --color-danger: #DC2626; /* red-600 */ --space-1: 8px; /* 8pt baseline */ --space-2: 16px; --space-3: 24px; --space-4: 32px; --radius-md: 8px; }
02

Tipografia

Escala desktop-first con 3 familias: Poppins para headings y display, Open Sans para cuerpo e interfaz, IBM Plex Mono para datos, codigos y etiquetas tecnicas. Todos los pesos del 100 al 900 estan disponibles.

display / h1 Poppins · 800 · 3rem / 1.15
Automatiza. Conecta.
h2 / section Poppins · 700 · 1.75rem / 1.25
Gestion de flujos de trabajo
h3 / card title Poppins · 600 · 1.125rem / 1.4
Automatizacion de aprobaciones
body-md Open Sans · 400 · 1rem / 1.65
Los flujos de aprobacion de NexusFlow permiten reducir el tiempo de procesamiento en un 67% sin necesidad de codigo.
body-sm / label Open Sans · 500 · 0.875rem / 1.5
Nombre del flujo de trabajo
label-caps / meta IBM Plex Mono · 600 · 0.68rem · CAPS
ESTADO DEL WORKFLOW · ID-4829
03

Espaciado — Grid 8pt

Sistema de espaciado basado en multiplos de 8px. Todos los margenes, paddings y gaps deben ser multiplos de 8. No usar valores arbitrarios (11px, 13px, 17px). Esto garantiza alineacion visual consistente en todos los dispositivos.

--space-1
8px · XS (gap interno, icon padding)
--space-2
16px · SM (padding componente, gap filas)
--space-3
24px · MD (padding card, gap secciones)
--space-4
32px · LG (margin entre grupos)
--space-5
40px · XL (separacion de bloques)
--space-6
48px · 2XL (padding de pagina)
--space-8
64px · 3XL (separacion de secciones)
04

Botones

Los botones son el elemento de accion principal. Usar exactamente una variante primaria por pantalla. Las demas acciones deben usar secondary, ghost o danger. Min-height: 44px en todos los estados para cumplir WCAG touch target.

btn-primaryAccion principal
btn-secondaryAccion alternativa
btn-ghostAccion terciaria
btn-dangerAccion destructiva
EstadoComportamientoToken usadoNivel
defaultColor de fondo = token de variante--color-primaryMUST
hoverFondo oscurece 1 nivel; anillo de foco opcional--color-primary-darkMUST
focus-visibleAnillo de 3px offset 2px, color del token--color-primary · 20%MUST
disabledopacity: 0.4; cursor: not-allowed; pointer-events: noneSin token propioMUST
loadingSpinner centrado; texto invisible (no ocultar)border-top: whiteSHOULD
05

Formularios

Los formularios son la interfaz critica de NexusFlow para configurar automatizaciones. Cada campo must tener label visible, estado de error explicito y mensaje de ayuda cuando el campo es complejo. No depender solo del color para indicar error.

input / defaultTexto
Maximo 80 caracteres. Sera visible para todo el equipo.
input / error stateValidacion
⚠ Email invalido. Formato esperado: nombre@empresa.com
selectSelector
checkboxSeleccion multiple
Notificar al responsable
Registrar en auditoria
Enviar resumen semanal
06

Badges & Status Indicators

Los badges comunican el estado de flujos, tareas y aprobaciones. Nunca usar solo color para transmitir estado: incluir siempre el dot indicator + texto. El color refuerza el mensaje pero no es el unico canal.

Status badgesEstados de flujo
Activo Pendiente Error En revision Borrador
TokenUsoCuando NO usar
successFlujo activo, aprobacion completada, pago procesadoProgreso en curso (no es exito aun)
warningAprobacion pendiente, accion requerida, SLA en riesgoErrores criticos (usar danger)
dangerFlujo fallido, error de integracion, acceso denegadoAdvertencias leves (usar warning)
primaryEn revision, procesando, estado intermedio activoExito definitivo o error
neutralBorrador, archivado, inactivo por eleccion del usuarioEstados que requieren atencion
07

Cards KPI

Las cards de KPI son el elemento central del dashboard de operaciones. Deben mostrar valor, tendencia y contexto en menos de 3 segundos de lectura. El valor numerico usa font-display para jerarquia visual inmediata.

Flujos activos
247
⬆ +18% vs mes anterior
Tasa de aprobacion
94,2%
⬆ +2,1pp este trimestre
Tiempo medio proceso
1,3h
⬇ -67% vs proceso manual
08

Tablas de Datos

Las tablas son el componente de mayor densidad informativa en NexusFlow. Header fijo en scroll largo, zebra striping desactivado por default (usar hover), y alineacion numerica a la derecha con font-mono para comparabilidad.

Flujo de trabajo Responsable Departamento Estado Ejecuciones SLA
Aprobacion facturas Q3
WF-1829
MR
Maria Rodriguez
Finanzas Activo 1.247 Cumplido
Onboarding empleados
WF-0934
CL
Carlos Lopez
RRHH Activo 389 Cumplido
Revision de contratos
WF-2201
AP
Ana Perez
Legal Pendiente 52 En riesgo
Sincronizacion ERP
WF-0411
JM
Jorge Mora
IT Error 0 Incumplido
09

Accesibilidad WCAG 2.2 AA

La accesibilidad no es opcional en NexusFlow: los usuarios enterprise incluyen IT Admins con diversidad funcional y entornos corporativos con politicas de accesibilidad. Cumplir WCAG 2.2 AA es requisito contractual.

🔍
Focus visible
Todos los elementos interactivos must mostrar anillo de foco 3px con offset 2px. No usar outline:none sin alternativa visible.
SC 2.4.11 - Enhanced Focus
🎯
Contraste de color
Texto normal: ratio minimo 4.5:1. Texto grande (+18px bold): 3:1. Componentes UI: 3:1 frente al fondo.
SC 1.4.3 - Contrast (AA)
Navegacion por teclado
Todos los flujos criticos (crear, aprobar, rechazar) deben completarse sin raton. Tab order logico y coherente con el flujo visual.
SC 2.1.1 - Keyboard
💬
HTML semantico
Usar elementos HTML nativos antes que ARIA. button en vez de div[role=button]. nav, main, header obligatorios como landmarks.
SC 4.1.2 - Name, Role, Value
📱
Touch targets
Min 44x44px para todos los elementos interactivos en tablet (iPad). Respetar en versiones movil de la aplicacion.
SC 2.5.8 - Target Size (AA)
🎥
Reduced motion
Respetar prefers-reduced-motion. Animaciones de entrada (skeleton, spinners) deben desactivarse o reducirse drasticamente.
SC 2.3.3 - Animation
Ratios de contraste verificados
Texto blanco sobre primary (#3B82F6) 3.0:1 — UI grandes
Texto blanco sobre primary-dark (#2563EB) 4.8:1 — AA ✔
Texto oscuro sobre superficie (#111827 / #FFF) 19.1:1 — AAA ✔
Texto secundario sobre superficie (#6B7280 / #FFF) 4.6:1 — AA ✔
10

Anti-patrones Prohibidos

Los anti-patrones son errores recurrentes detectados en revisiones de codigo que degradan la consistencia visual y la accesibilidad. Este listado es vinculante en code review.

X
No hacer
Usar colores raw en lugar de tokens
color: #3B82F6; /* PROHIBIDO */
Hacer
Referenciar siempre el token semantico
color: var(--color-primary);
X
No hacer
Mostrar errores solo con color rojo
<input style="border:red"> sin icono ni texto
Hacer
Error = color + icono + texto explicativo
aria-invalid + aria-describedby + mensaje
X
No hacer
Espaciado arbitrario fuera del grid
margin-top: 13px; padding: 11px 17px;
Hacer
Multiplos de 8pt siempre
margin-top: var(--space-2); /* 16px */
X
No hacer
Multiple botones primary en la misma pantalla
<btn-primary> Guardar </> <btn-primary> Publicar </>
Hacer
Una sola accion primaria por contexto
<btn-primary> Guardar </> <btn-ghost> Cancelar </>
X
No hacer
outline:none en elementos con foco
:focus { outline: none; } /* PROHIBIDO */
Hacer
Foco visible siempre presente
:focus-visible { box-shadow: 0 0 0 3px ... }
X
No hacer
Labels flotantes sin fallback accesible
placeholder como unico label del campo
Hacer
Label visible siempre encima del input
<label for="id"> + <input id="id">
11

Checklist QA — Code Review

Este checklist must ejecutarse en todo Pull Request que modifique componentes UI. Los items CRITICO bloquean el merge. Los HIGH deben resolverse en el mismo PR. Los MEDIUM pueden quedar como tech-debt trackeado.

🟥 Accesibilidad — bloqueante
Todos los botones y controles tienen label accesible (aria-label o texto visible) CRITICO
Focus-visible implementado en todos los elementos interactivos. Sin outline:none sin alternativa. CRITICO
Ratio de contraste verificado con herramienta (axe DevTools o similar). Min 4.5:1 texto normal. CRITICO
Errores de formulario comunicados por aria-invalid + aria-describedby + mensaje de texto visible. CRITICO
🟧 Tokens & Diseno — alta prioridad
Ningun valor de color hardcodeado. 100% referencias a tokens CSS (--color-*, --space-*). HIGH
Todos los espaciados son multiplos de 8px (verificar padding/margin/gap en DevTools). HIGH
Solo un btn-primary por pantalla o seccion de formulario. Resto usar secondary/ghost. HIGH
Tipografia usa exclusivamente Poppins (headings) / Open Sans (body) / IBM Plex Mono (data). HIGH
🟦 Comportamiento & UX
Botones tienen estado loading implementado para operaciones async (+500ms). MEDIUM
Tablas con mas de 10 filas tienen paginacion o scroll virtualizado implementado. MEDIUM
Estados vacios (empty state) diseñados con ilustracion + CTA para componentes de lista y tabla. MEDIUM
Componentes respetan prefers-reduced-motion (animaciones se desactivan o reducen). MEDIUM
📌
Generado con CULTIVA IA · Sistema de Diseno Corporativo v1.0
Guia de design system enterprise para NexusFlow SaaS. Stack: React + Tailwind CSS. Estandar: WCAG 2.2 AA. Proximo: dark mode tokens (Fase 2) + Storybook export.