Skip to content

Catálogo de Componentes UI ​

32 componentes del sistema de diseño, organizados por categoría. Todos usan exclusivamente CSS custom properties del sistema de tokens — sin dependencias de frameworks externos.

Layout ​

ComponenteDescripción
UiPageHeaderCabecera de página con título, subtítulo y slot #actions
UiCardContenedor de tarjeta con #header y #footer opcionales
UiDetailGridContenedor para grupos de UiInfoRow (vistas de detalle)
UiInfoRowPar label/valor con borde inferior

Datos ​

ComponenteDescripción
UiDataTableTabla TanStack con slots por columna, skeleton, empty state y error
UiTableFiltersBarra de filtros (search, select, date) con escape-hatch por slot
UiPaginationPaginación offset con selector de tamaño de página
UiCursorPaginationPaginación por cursor (para audit logs)
UiMetricCardTarjeta de KPI para dashboards

Formularios ​

ComponenteDescripción
UiButtonBotón con variantes, loading spinner y tamaños
UiInputInput de texto con label, error y toggle de contraseña
UiSelectSelect nativo con opciones tipadas
UiFormModalModal de formulario con footer por defecto y protección dirty
UiConfirmDialogDiálogo de confirmación con confirmación tipada opcional
UiDualListboxSelector dual (disponibles / asignados) para permisos
UiSearchInputInput de búsqueda con botón de limpiar
UiTimezoneSelectSelector de zona horaria IANA con búsqueda
UiPasswordStrengthIndicador visual de fortaleza de contraseña

Feedback ​

ComponenteDescripción
UiAlertAlerta de tipo error/success/warning/info con slots de icono y título
UiBadgeEtiqueta de estado con variantes de color
UiAvatarAvatar con imagen, iniciales o icono fallback
UiSkeletonPlaceholder de carga animado
UiEmptyStateEstado vacío con icono, título y acción
UiErrorStateEstado de error con reintentar
UiToastNotificaciones toast (usar via useToast())
UiOfflineBannerBanner automático cuando el navegador está offline
UiExportButtonBotón de descarga de archivos (CSV, etc.)
UiChartWrapper de ECharts para gráficas

Convenciones de componentes UI ​

  • Todos tienen prefijo Ui (PascalCase)
  • Sin lógica de dominio — completamente genéricos
  • Estilos via CSS custom properties (var(--bg-card), var(--border), etc.)
  • Accesibles: role, aria-*, aria-label, focus management donde aplica
  • Dark mode automático via tokens (no requieren cambios)
  • Props con withDefaults y tipos explícitos en TypeScript

Documentación de Kaleo — plataforma SaaS multi-tenant