10 KiB
InQ ROI — Sistema de Diseño
Documento de referencia visual para Sprint 2+. Fuente de verdad para la paleta, tipografía y componentes. Actualizar en cada sprint que modifique la identidad visual.
1. Identidad de Marca
Nombre del producto
InQ ROI — herramienta interna de InQuality para cuantificación de ROI de automatización.
Regla de ortografía (NO NEGOCIABLE)
✅ InQ ← I mayúscula, n minúscula, Q mayúscula
✅ InQuality ← nombre completo
❌ INQ / Inq / inq / inQ ← cualquiera es bug
Tagline en footers PDF
"Powered by InQuality" — obligatorio en todos los footers de PDF.
2. Paleta Cromática
2.1 InQ Orange — Color protagonista
| Token Tailwind | CSS Var | Hex | HSL | Uso |
|---|---|---|---|---|
bg-inq-orange |
--inq-orange |
#F59845 |
28° 90% 62% | Principal: logo, KPIs hero, CTAs primarios |
bg-inq-orange-dark |
--inq-orange-dark |
#B45309 |
34° 93% 37% | Texto sobre fondos claros, hover de CTAs |
bg-inq-orange-light |
--inq-orange-light |
#FEF3E2 |
36° 95% 88% | Fondos de KPI cards |
bg-inq-orange-lighter |
--inq-orange-lighter |
#FFF8ED |
36° 100% 94% | Fondos de banner narrativo, hover sutiles |
2.2 InQ Magenta — Gradiente identidad
| Token Tailwind | CSS Var | Hex | Uso |
|---|---|---|---|
bg-inq-magenta |
--inq-magenta |
#ED3E8F |
Segundo color del gradiente identidad |
Gradiente identidad
background: linear-gradient(135deg, #F59845 0%, #ED3E8F 100%);
Uso exclusivo: KPI Hero "Ahorro proyectado" en PDF y web. NUNCA en bordes, separadores ni fondos secundarios.
2.3 Semánticos
| Token Tailwind | CSS Var | Hex | Uso |
|---|---|---|---|
bg-success |
--color-success |
#16A34A |
Ahorros positivos, payback alcanzado |
bg-success-light |
--color-success-light |
#F0FDF4 |
Fondos de mensajes positivos |
bg-warning |
--color-warning |
#F59E0B |
Advertencias, sección transparencia |
bg-warning-bg |
--color-warning-bg |
#FFFBEB |
Fondo de sección transparencia |
bg-destructive / --color-danger |
— | #EF4444 |
Costos altos, valores negativos |
--color-danger-light |
— | #FEE2E2 |
Fondos de heatmap alto costo |
2.4 Heatmap — Paleta saturada (FIJA hasta Sprint 3-4)
| Token Tailwind | Hex | RGB | Uso |
|---|---|---|---|
bg-heatmap-low |
#10B981 |
(16, 185, 129) | Actividades de bajo costo |
bg-heatmap-mid |
#F59E0B |
(245, 158, 11) | Actividades de costo medio |
bg-heatmap-high |
#EF4444 |
(239, 68, 68) | Actividades de alto costo |
Decisión sobre paleta de heatmap
Se mantiene saturada (verde-ámbar-rojo) en lugar de la variante pastel del brief por dos razones:
-
Tests E2E calibrados: los análisis de píxeles del heatmap (
export-pdf.spec.ts,validate-dod-etapa4.spec.ts) tienen umbrales calibrados para estos colores. Cambiar la paleta requiere recalibrar todos esos umbrales. -
Visibilidad en pantallas grandes: el producto se usa en talleres y charlas InQuality proyectadas en pantalla. Los colores saturados mantienen contraste a distancia. Los pasteles se "lavan" a 3+ metros.
Revisión programada: Sprint 3-4 con feedback real de uso en talleres.
Invariante crítica: los valores de tailwind.config.js heatmap.* DEBEN coincidir con las constantes HEATMAP_LOW/MID/HIGH en src/lib/colors.ts. Si se modifica uno, debe actualizarse el otro.
2.5 Neutrales
| Hex | Tailwind equivalente | Uso |
|---|---|---|
#0F172A |
slate-900 |
Títulos, números importantes |
#475569 |
slate-600 |
Texto del cuerpo |
#64748B |
slate-500 |
Labels, metadatos |
#94A3B8 |
slate-400 |
Placeholders, texto muy secundario |
#E2E8F0 |
slate-200 |
Bordes generales |
#F1F5F9 |
slate-100 |
Separadores sutiles |
#F8FAFC |
slate-50 |
Fondo de la app, canvas BPMN |
2.6 Colores que NO usar
❌ #572FA2 Morado primario de CONCILIA — marca hermana, no mezclar
❌ #CB1889 Magenta de CONCILIA
❌ azul shadcn por defecto (221.2 83.2% 53.3%) — reemplazado por InQ orange
3. Tipografía
3.1 Familias
/* Primaria — web app y body de PDFs */
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
/* Mono — números en tablas, datos financieros */
font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
Tailwind: font-sans / font-mono
3.2 Escala PDF
| Elemento | Tamaño | Peso | Tracking |
|---|---|---|---|
| Logo "InQ ROI" en header | 22px | 700 | −0.8px |
| Título de sección | 16px | 500 | normal |
| KPI Hero (cifra) | 30px | 700 | −1px |
| KPI secundario (cifra) | 16px | 700 | normal |
| Body text | 11px | 400 | normal |
| Labels en cards | 8px | 500 | 1px uppercase |
| Tabla header | 10px | 500 | normal |
| Tabla body | 10px | 400 | normal |
| Footer | 9px | 400 | normal |
3.3 Escala Web App
| Elemento | Tamaño |
|---|---|
| Logo header | 18px / 700 |
| Page title | 16px / 500 |
| KPI Hero | 28px / 700 |
| KPI secundario | 16px / 700 |
| Nav / Tabs | 12px / 400-500 |
| Body | 12-13px / 400 |
| Labels en panels | 10-11px / 400-500 |
4. Componentes
4.1 KPI Hero (gradiente naranja → magenta)
Fondo: linear-gradient(135deg, #F59845 0%, #ED3E8F 100%)
Padding: 16-18px
Border-radius: 6-8px
Label: 9-10px / uppercase / letter-spacing 1.2px / white opacity 0.9
Cifra: 28-30px / 700 / letter-spacing −1px / white
Subtítulo: 10-11px / white opacity 0.85
Uso: el KPI "Ahorro proyectado a N años" — el más importante del reporte ROI.
4.2 KPI Card (secundario, fondo naranja claro)
Fondo: #FEF3E2 (inq-orange-light)
Padding: 10px 12px
Border-radius: 6px
Label: 8px / 500 / letter-spacing 1px / color #92400E / uppercase
Cifra: 16px / 700 / color #0F172A
Delta: 10px / 500 / color #B45309
4.3 Banner narrativo (resumen ejecutivo)
Fondo: #FFF8ED (inq-orange-lighter)
Border-left: 3px solid #F59845
Padding: 10-12px 14px
Border-radius: 0 4px 4px 0
Texto: 11px / 400 / line-height 1.55 / color #475569
4.4 Sección Transparencia Metodológica
Fondo: #FFFBEB (warning-bg)
Border: 0.5px solid #F59E0B
Padding: 12px 14px
Border-radius: 6px
Título: 11px / 500 / color #92400E / con ícono ⚠
Texto: 10px / 400 / line-height 1.6 / color #78350F
4 condiciones que activan la sección:
- Actividades
automatable=trueconautomatedCostFixed=0yautomatedTimeMinutes=0 automationInvestment=0roiAnnualPercent > 1000(finito)- (reservado para futuras reglas)
4.5 Tabla comparativa PDF
Header row:
Fondo: #FFF8ED
Border-bottom: 1px solid #F59845
Texto: 10px / 500 / #92400E
Body row — automatizable:
Fondo: white
Body row — no automatizable:
Fondo: #F8FAFC
Texto: color #64748B (más tenue)
Total row:
Fondo: #FFF8ED
Border-top: 1.5px solid #F59845
Texto: 10px / 500 / #0F172A
4.6 Header PDF
Layout: flex justify-between
Border-bottom: 3px solid #F59845 (pág. 1) / 2px (otras)
Padding-bottom: 10-12px
Margin-bottom: 14-16px
Izquierda:
"InQ ROI" 18-22px / 700 / #F59845
Tagline: 9px / letter-spacing 1.5px / #94A3B8 (solo pág. 1)
Derecha:
"UN PRODUCTO DE" 9px / letter-spacing 1px / #94A3B8
"InQ" 16px / 700 / #475569
"InQuality" 9px / #64748B
4.7 Footer PDF
Position: absolute bottom 14-16mm
Padding-top: 6-8px
Border-top: 0.5px solid #E2E8F0
Layout: flex justify-between
Font: 9px / 400 / #94A3B8
Izquierda: "InQ ROI" bold #F59845 " · Powered by InQuality · " cliente · fecha
Derecha: "Página X de Y"
4.8 Badge ⚡ (Automatizable)
En canvas BPMN overlay
Diámetro: 14px
Fondo: #F59845 (naranja sólido)
Border: 1.5px solid white
Posición: { top: -8, left: nodeWidth - 12 }
Símbolo: ⚡ blanco 8px
Nota: en Sprint 1 el badge usa fondo #fffbeb (ámbar-50) con ícono ámbar. La migración a naranja sólido se hace en Etapa 9 de Sprint 1.5.
En tablas y leyendas
Diámetro: 14px inline
Fondo: #F59845
Color: white
4.9 Layout híbrido de PDFs (portrait + landscape)
Los PDFs combinan orientaciones por página:
- Páginas SIN diagrama: A4 vertical (210×297mm) — texto, tablas, KPIs
- Página DEL diagrama BPMN: A4 horizontal (297×210mm) — para que el diagrama ocupe espacio real
Implementación jsPDF: doc.addPage([297, 210], 'landscape')
5. Tokens en código
Web (Tailwind)
// Colores de marca
<div className="bg-inq-orange"> // #F59845
<div className="bg-inq-orange-dark"> // #B45309
<div className="bg-inq-orange-light"> // #FEF3E2
<div className="text-inq-orange"> // texto naranja
<div className="border-inq-orange"> // borde naranja
// Gradiente identidad (como style prop — Tailwind no soporta gradientes dinámicos)
<div style={{ background: 'linear-gradient(135deg, #F59845 0%, #ED3E8F 100%)' }}>
// Semánticos
<div className="bg-success text-white"> // #16A34A
<div className="bg-warning-bg"> // #FFFBEB
PDF (jsPDF)
// Constante en pdf-sections.ts (a migrar en Etapas 4-8)
const PDF_ORANGE: [number, number, number] = [245, 152, 69] // #F59845
const PDF_ORANGE_LIGHT: [number, number, number] = [254, 243, 226] // #FEF3E2
const PDF_MAGENTA: [number, number, number] = [237, 62, 143] // #ED3E8F
// Gradiente en jsPDF se simula con pasos (ver pdf-sections-roi.ts)
6. Reglas de uso — DO / DON'T
DO ✅
- Usar
bg-primary/text-primarypara todos los CTAs — hereda el naranja de--primary - Usar gradiente identidad en exactamente 1 KPI Hero por página/vista
- Usar
font-monopara todos los números financieros - Escribir siempre InQ con I-n-Q
DON'T ❌
- Usar
bg-blue-*donde debería ir naranja InQ - Aplicar el gradiente en más de un elemento por vista
- Usar colores de CONCILIA (
#572FA2,#CB1889) - Cambiar los colores del heatmap sin recalibrar los tests E2E
Actualizado: Sprint 1.5 Etapa 1 — 2026-05-16