Principios de diseño
- Consistencia: mismos patrones de colores, tipografías y espaciamiento en todo el sistema.
- Claridad: jerarquía visual con buen contraste y tipografías legibles.
- Accesibilidad: orientado a WCAG AAA. Enlaces y controles con foco visible, etiquetas de formularios, y textos alternativos.
- Escalabilidad: clases reutilizables, variantes claras y sin dependencias implícitas.
- Responsividad: diseño adaptable a diferentes dispositivos y tamaños de pantalla.
Tokens de diseño
Colores principales (variables CSS)
Definidas en:root de estilos.css:
Colores de estado
Colores neutrales
Tipografía
- Familia:
'Segoe UI', system-ui, -apple-system, sans-serif - Tamaño base:
16px - Línea base:
1.5
Espaciado (variables CSS)
Bordes y radios
Sombras
Transiciones
Dimensiones
Componentes UI
Botones
Alertas
- Contenedor:
.alerta - Modificadores:
.exito,.error
Formularios
Agrupa etiquetas e inputs con.grupo-form. Formularios en línea: .formulario-inline.
Checkboxes modernos
Tablas
Usa.tabla para tablas estándar. Envolver en .tabla-responsive para scroll horizontal:
Tarjetas y Bloques
Tarjetas de Estadísticas
Grid de estadísticas para dashboards:.info, .exito, .advertencia
Etiquetas (Tags)
Avatar
Modales
.modal-pequeno, .modal-cabecera-peligro
Buscador
Layout y Navegación
- Estructura principal:
.layouto.layout-principal - Sidebar:
.sidebar - Área de contenido:
.contenidoo.area-contenido - Enlaces activos:
.activo
Utilidades
Accesibilidad (A11y)
Requisitos WCAG AAA
- Foco visible: Todos los elementos interactivos muestran
:focus-visiblecon contorno visible. - Contraste: Ratio mínimo de 7:1 para texto normal, 4.5:1 para texto grande.
- Etiquetas: Todos los
inputcon sulabel forcorrespondiente. - ARIA:
role="alert"/role="status"en alertasaria-current="page"en navegación activaaria-labelen botones con solo iconos
- Texto alternativo: Imágenes con
altdescriptivo. - Navegación por teclado: Todos los elementos accesibles con Tab.
- Tamaño de fuente: Mínimo 16px para texto principal.
Estados de foco
Antonio Gat Fernández | [email protected]