| name | design-consistency |
| description | Mantiene consistencia visual en apps iOS/PWA. Define paleta de colores, tipografía, espaciado, y componentes siguiendo un Design Token System. Evita inconsistencias de colores, fuentes y estilos. Usar cuando se detecten problemas de consistencia visual o al iniciar un nuevo proyecto. |
| allowed-tools | Read, Write, Glob, Grep, Bash |
| metadata | {"version":"1.0.0","tags":["design-system","colors","typography","consistency","ios","pwa","tokens"]} |
Design Consistency System
Problema que resuelve: Inconsistencias visuales en apps (diferentes tonos de verde, tipografías mezcladas, espaciados irregulares).
Solución: Un sistema de Design Tokens centralizado que garantiza coherencia.
Use this skill when
- Se detectan inconsistencias de colores en la app
- Se usan diferentes tonos del mismo color sin criterio
- La tipografía no es consistente
- Se inicia un nuevo proyecto y necesita un design system
- Se quiere profesionalizar la apariencia visual
Do not use this skill when
- Solo se necesita un componente específico (usar mobile-first-ui-library)
- El proyecto ya tiene un design system consolidado y documentado
Design Token System
Estructura de Tokens
tokens/
├── colors.ts # Paleta completa con variantes
├── typography.ts # Fuentes, tamaños, pesos
├── spacing.ts # Espaciado consistente
├── shadows.ts # Sombras y elevación
├── borders.ts # Bordes y radios
└── index.ts # Export unificado
1. Sistema de Colores
Regla fundamental: Cada color tiene un PROPÓSITO, no un nombre de color.
const colors = {
green: '#34C759',
lightGreen: '#4CD964',
darkGreen: '#248A3D'
}
const colors = {
positive: '#34C759',
negative: '#FF3B30',
warning: '#FF9500',
info: '#007AFF',
primary: '#5B6CF0',
primaryLight: '#8B96F5',
primaryDark: '#3A4AD4',
background: '#F2F2F7',
surface: '#FFFFFF',
surfaceElevated: '#FFFFFF',
textPrimary: '#1C1C1E',
textSecondary: '#8E8E93',
textMuted: '#AEAEB2',
textInverse: '#FFFFFF',
border: '#E5E5EA',
borderFocused: '#5B6CF0',
separator: '#C6C6C8'
}
2. Sistema de Tipografía
Fuentes recomendadas para iOS/PWA:
| Fuente | Uso | Características |
|---|
| SF Pro (sistema) | Default iOS | Nativa, 0 carga |
| Inter | Alternativa moderna | Legible, variantes |
| Plus Jakarta Sans | Premium, amigable | Geométrica, cálida |
| DM Sans | Minimalista | Limpia, moderna |
| Nunito | Friendly, casual | Redondeada, amigable |
Escala tipográfica consistente:
const typography = {
displayLarge: { size: 34, weight: 700, lineHeight: 1.2 },
displayMedium: { size: 28, weight: 700, lineHeight: 1.2 },
headlineLarge: { size: 22, weight: 600, lineHeight: 1.3 },
headlineMedium: { size: 20, weight: 600, lineHeight: 1.3 },
headlineSmall: { size: 17, weight: 600, lineHeight: 1.3 },
bodyLarge: { size: 17, weight: 400, lineHeight: 1.5 },
bodyMedium: { size: 15, weight: 400, lineHeight: 1.5 },
bodySmall: { size: 13, weight: 400, lineHeight: 1.4 },
labelLarge: { size: 15, weight: 500, lineHeight: 1.3 },
labelMedium: { size: 13, weight: 500, lineHeight: 1.3 },
labelSmall: { size: 11, weight: 500, lineHeight: 1.2 },
mono: { family: 'SF Mono, monospace', size: 17, weight: 500 }
}
3. Espaciado
Escala de 4px base:
const spacing = {
xs: 4,
sm: 8,
md: 12,
lg: 16,
xl: 20,
'2xl': 24,
'3xl': 32,
'4xl': 48
}
4. Validación de Consistencia
Checklist antes de commit:
Implementación en Next.js + Tailwind
1. Definir tokens
Crear src/styles/tokens.ts:
export const tokens = {
colors: { ... },
typography: { ... },
spacing: { ... }
}
2. Aplicar en Tailwind
En tailwind.config.ts:
import { tokens } from './src/styles/tokens'
export default {
theme: {
extend: {
colors: tokens.colors,
fontFamily: {
sans: [tokens.typography.fontFamily, 'system-ui', 'sans-serif'],
mono: [tokens.typography.monoFamily, 'monospace']
},
fontSize: {
}
}
}
}
3. CSS Variables
En globals.css:
:root {
--color-primary: theme('colors.primary');
--color-positive: theme('colors.positive');
}
Resources
resources/color-palettes.md — Paletas predefinidas por tipo de app
resources/typography-guide.md — Guía de tipografía con ejemplos
resources/consistency-checklist.md — Checklist de revisión