Design System · Componentes

Librería de Componentes UI

Cada componente está construido sobre los tokens de Flow. Aquí encontrarás variantes, estados, tokens mapeados y código de referencia.

Botones

El sistema de botones de Flow usa 4 variantes jerárquicas, 3 tamaños y estados consistentes. El botón primario siempre usa green-500 con texto charcoal — oscuro sobre brillante.

Variantes

VarianteBackgroundTextoBordeUso
Primarygreen-500charcoalCTA principal, una por sección
Secondarytransparentcharcoalcharcoal 1.5pxAcción secundaria junto a primary
Ghosttransparentgreen-600Acciones terciarias, links en contexto
Danger#e84545#fffEliminar, cancelar — solo acciones destructivas

Tamaños

TamañoPaddingFont SizeRadius
Small8px 16px13px6px
Default12px 24px15px8px
Large16px 32px17px10px

Con íconos

Regla de ícono: Los íconos en botones usan 18px (default) con stroke-width 1.5px. Siempre del lado izquierdo excepto flechas de navegación (→ derecha).

Estados

EstadoCambio visualToken / valor
HoverBg → green-600, translateY(-1px), shadow-md--green-600 --shadow-md
FocusRing 3px green-500 α25%rgba(59,235,100,0.25)
ActivetranslateY(0), sin shadow
DisabledBg → border, texto → tertiary--border --tertiary

Sobre fondo oscuro

Nota: El botón primario no cambia en dark — green-500 con texto charcoal mantiene contraste AAA. El secundario invierte a borde offwhite.

Cards

Las cards son el contenedor principal de información. Siempre con borde sutil, fondo offwhite, y transición a green en hover. Nunca dependas del shadow para crear jerarquía — usa borde.

Card estándar

Employee XP
Diseñamos experiencias que transforman la relación empleado-empresa.
Leader XP
Líderes que inspiran desde la claridad, no desde la presión.
Sales XP
Procesos comerciales que se sienten naturales y generan resultados.
PropiedadTokenValor
Backgroundsurface.secondary#f0eee9
Borderborder.default#cfd5d3 1px
Border Hoverborder.active#3beb64
Radiusradius.medium12px
Paddingspacing.scale-424px
Shadow Hoverelevation.md0 4px 12px rgba(15,44,36,0.08)

Card de estadística

94%
Satisfacción
3.2x
ROI Promedio
+47
eNPS Lift

Card oscura

Metodología propia
No somos consultores genéricos. Cada solución nace del contexto real de tu empresa.
Data-driven
Medimos cada intervención. Si no mueve indicadores, no lo hacemos.

Formularios

Inputs claros, feedback inmediato, y focus ring verde. El fondo del input es cream (no blanco) para mantener la calidez de marca. El estado de error usa #e84545 sin ambigüedad.

Campos de texto

Usaremos este email para toda la comunicación.
Formato inválido. Usa: +52 55 1234 5678
EstadoBorderBackgroundExtra
Default#cfd5d3 1.5pxcream (#f7f5f3)
Focusgreen-500 1.5pxcreamRing: 0 0 0 3px rgba(59,235,100,0.12)
Error#e84545 1.5pxcreamRing: 0 0 0 3px rgba(232,69,69,0.12)
Disabled#cfd5d3 1.5pxoffwhitecolor: tertiary, cursor: not-allowed

Select & Textarea

Checkbox, Radio & Toggle



Modo oscuro
Notificaciones activas
Accent color: Tanto checkbox como radio usan accent-color: var(--green-500) para el color nativo del browser. El toggle es custom con transición de 150ms.

Tablas

Tablas limpias con header offwhite, row hover sutil en green α3%, y bordes de 1px. No usar zebra-striping — el hover es suficiente para tracking visual.

Tabla de datos

Programa Participantes Satisfacción Estado
Onboarding XP 342 96% Activo
Leader Sprint Q1 48 91% Activo
Sales Bootcamp 125 88% En revisión
Service Design Lab 67 Borrador
ElementoTokenValor
Header bgcomponent.table.header-bg#f0eee9
Header bordercomponent.table.border#cfd5d3 2px bottom
Row bordercomponent.table.border#cfd5d3 1px bottom
Row hovergreen-500 α3%rgba(59,235,100,0.03)
Paddingspacing.scale-312px 16px

Badges y Tags

Badges para estado y categorización. Tags para filtrado y etiquetas removibles. Ambos siempre con border-radius completo (pill shape).

Badges de estado

Activo Borrador En revisión Cancelado
VarianteBackgroundColorUso
Greengreen-500 α12%darkgreenActivo, completado, éxito
Charcoalcharcoal α8%charcoalNeutral, borrador, inactivo
Warning#f0a730 α12%#b07a1ePendiente, en revisión
Error#e84545 α10%#e84545Error, cancelado, rechazado

Tags removibles

Employee XP Liderazgo Q1 2026

Alertas y Feedback

Cuatro niveles semánticos. Cada alerta abre con un ícono Lucide de 20px. Los colores de feedback están definidos en color.semantic.feedback.

Programa guardado. Los cambios se publicarán en la próxima sincronización.
Error al procesar. Revisa los campos marcados e intenta nuevamente.
Atención: Este programa tiene participantes activos. Editar afectará sus métricas.
Nota: Los reportes se generan automáticamente cada lunes a las 8:00 AM.
TipoToken colorÍconoBackground α
Successfeedback.success (#2fd954)check-circle8%
Errorfeedback.error (#e84545)alert-circle6%
Warningfeedback.warning (#f0a730)alert-triangle8%
Infofeedback.info (secondary)info4%

Modales y Diálogos

Fondo con overlay charcoal α40%. El modal usa surface.primary (cream) con shadow-lg. Máximo 440px de ancho. Siempre incluir acción de cierre.

Modal de confirmación

¿Eliminar programa?
Esta acción eliminará "Onboarding XP" y todos sus datos asociados. No se puede deshacer.
ElementoTokenValor
Overlaycharcoal α40%rgba(15,44,36,0.4)
Backgroundsurface.primary#f7f5f3
Shadowelevation.lg0 8px 24px rgba(15,44,36,0.12)
Radiusradius.large16px
Max width440px
z-indexzIndex.modal400

Tooltip

Editar programa
Duplicar
Eliminar
Tooltip specs: Background charcoal, text offwhite, 12px/500, padding 6px 12px, radius 6px. Aparece 8px arriba del trigger. z-index: 600 (zIndex.tooltip).

Avatars

Iniciales sobre fondo offwhite con borde sutil. Tres tamaños. En grupo, se solapan con margin negativo y borde cream para separación visual.

Tamaños

PB
MG
JR
TamañoDimensiónFont size
Small32×32px12px
Default40×40px14px
Large56×56px20px

Grupo de avatars

PB
MG
JR
AL
+3
Overlap: margin-left: -10px para cada avatar después del primero. Border 2px con color cream para el recorte visual.

Barras de Progreso

Track en offwhite, fill en green-500. Altura 8px con radius 4px. Transición suave de 300ms en el ancho.

Onboarding completado 75%
Encuestas enviadas 42%
Resultado objetivo 100%

Loading Skeletons

Placeholder animado con shimmer offwhite→almostwhite→offwhite. Usa el mismo radius del componente que reemplaza. Animación de 1.5s infinita.

Card skeleton

Table skeleton

CSS /* Skeleton shimmer */ .flow-skeleton { background: linear-gradient(90deg, var(--offwhite) 25%, var(--almostwhite) 50%, var(--offwhite) 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; border-radius: var(--radius-md); } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }