CONSTRUIR paneles densos en información, escaneables y eficientes en tareas. Priorizar la visibilidad de datos y la eficiencia de tareas sobre la estética. Hacer cumplir la paginación de tablas, uso significativo del color y ubicación consistente de acciones. Prevenir baja densidad de datos, desplazamiento sin límites y navegación oculta. Activadores: "build (a|a) dashboard", "create (an|a) admin panel", "design (a|a) user portal".
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
CONSTRUIR paneles densos en información, escaneables y eficientes en tareas. Priorizar la visibilidad de datos y la eficiencia de tareas sobre la estética. Hacer cumplir la paginación de tablas, uso significativo del color y ubicación consistente de acciones. Prevenir baja densidad de datos, desplazamiento sin límites y navegación oculta. Activadores: "build (a|a) dashboard", "create (an|a) admin panel", "design (a|a) user portal".
category
ui-ux
version
3.0.0
last_updated
2026-06-28T00:00:00.000Z
stacks
["React 19.2","Vue 3","Next.js 16","Nuxt"]
triggers
[{"pattern":"(build|create|design) (a|an) dashboard","action":"USAR diseño de shell de panel"},{"pattern":"(build|create|design) (an|a) admin panel","action":"USAR diseño de shell de panel"},{"pattern":"data display|metrics|kpi","action":"USAR reglas de visualización de datos"}]
Activar al construir cualquier interfaz donde los usuarios:
Gestionan datos (CRUD a escala)
Ven analíticas o métricas
Configuran ajustes
Monitorean el estado del sistema
Administran otros usuarios
PRINCIPIO FUNDAMENTAL
Los paneles son herramientas de trabajo, no galerías de arte. Prioriza la visibilidad de datos y la eficiencia de tareas. Los usuarios vienen a hacer cosas.
DECIDIR: Selección de Diseño
SI el usuario necesita comparación de datos en múltiples columnas →
USAR tabla (Paso 3)
SI el usuario necesita visión general de métricas de alto nivel →
USAR fila de tarjetas KPI (Paso 4)
SI el usuario necesita análisis de tendencias →
USAR gráfico simple (Paso 5)
SI el usuario gestiona registros (CRUD) →
USAR tabla + botones de acción (Pasos 3 + 6)
EJECUTAR: Instrucciones
Paso 1: Shell del Panel
┌─────────────────────────────────────────────┐
│ ENCABEZADO: [Logo] Ruta > [Búsqueda] │
├──────────┬──────────────────────────────────┤
│ NAV │ ÁREA DE CONTENIDO │
│ (max │ ┌───────────────────────────┐ │
│ 280px) │ │ Título Pág + Acciones │ │
│ │ ├───────────────────────────┤ │
│ Link 1 │ │ Área de Datos │ │
│ Link 2 │ │ (tabla, tarjetas, gráfico) │ │
│ Link 3 │ │ │ │
├──────────┴──────────────────────────────────┤
└─────────────────────────────────────────────┘
REGLAS:
Nav: 20% del viewport, max 280px
Contenido: 80% restante
Encabezado: fijo, ruta de navegación + búsqueda + menú de usuario
Móvil (<768px): nav colapsa a hamburguesa o pestañas inferiores
Paso 2: Diseño de Navegación
NAV PRINCIPAL:
5-8 elementos de nivel superior máximo. >8 = necesidad de grupos.
Paso 7: Sistema de Color: 90% Neutro, 10% Semántico
Color
Significado
Uso
Gris / Neutro
UI estructural
Fondos, bordes, deshabilitado
Verde
Éxito / Positivo
"Activo", "Completado", deltas positivos
Rojo
Error / Negativo
"Fallido", "Vencido", deltas negativos
Amarillo / Ámbar
Advertencia / Pendiente
"Pendiente", "En revisión"
Azul
Informativo / Principal
Enlaces, estados seleccionados, botones primarios
REGLA: 90% de la UI del panel = grises neutros. Color reservado solo para estado y acciones.
Paso 8: Manejo de Todos los Estados
Cargando → Esqueleto que coincida con la geometría del diseño final (NUNCA spinners para listas de contenido)
// ✅ El esqueleto refleja la forma de la cuadrículafunctionDashboardSkeleton() {
return (
<divclassName="grid gap-4 md:grid-cols-3">
{Array.from({ length: 6 }).map((_, i) => (
<divkey={i}className="h-32 rounded-lg bg-muted animate-pulse" />
))}
</div>
);
}
Vacío → Mensaje descriptivo + CTA (NUNCA tabla en blanco)
✅ "Aún no hay usuarios. [Añade tu primer usuario →]"
❌ "Sin datos."
❌ [tabla en blanco]
Error → Mensaje + botón de reintentar (NUNCA hacer fallar todo el panel)
El error reemplaza solo el área de datos, no el encabezado/filtros/shell
Paso 9: Apilamiento de Z-Index
Capa
z-index
Uso
Contenido
0-10
Contenido de página por defecto
Encabezado fijo
20
Encabezado de página
Desplegables / Popovers
30
Menús de selección, selectores de fecha
Modales / Diálogos
40
Confirmaciones, formularios
Notificaciones toast
50
Toasts de éxito/error
Paso 10: RBAC: Compartir Shell, Variar Contenido
Shell (compartido): encabezado, barra lateral, búsqueda, menú de usuario
├── Admin: Página de Usuarios (CRUD), Configuración, Analíticas
├── Manager: Página de Equipo (ver/editar), Informes
└── Miembro: Mi perfil, Mis tareas
Implementación: Grupos de rutas, NO renderizado condicional:
/app/(admin)/dashboard/
/app/(member)/dashboard/
Seguridad: El backend aplica los permisos. Ocultar en el cliente NO es seguridad.
Paso 11: Estrategia de Actualización de Datos
Estrategia
Caso de Uso
Implementación
Actualización manual
Datos estáticos, baja urgencia
"Actualizar" + "Última actualización: hace 2m"
Sondeo (30-60s)
Moderadamente dinámico
setInterval + fetch, o TanStack Query refetchInterval
Server-Sent Events
Tiempo real unidireccional (notificaciones)
API EventSource
WebSockets
Tiempo real bidireccional (chat, colaboración)
Socket.io, API WebSocket
SIEMPRE mostrar marca de tiempo "Última actualización".
VALIDAR: Puertas de Calidad
Shell del panel consistente: encabezado, nav lateral, área de contenido
Columnas de texto alineadas a la izquierda, columnas numéricas alineadas a la derecha
Estados de carga usan esqueletos que coinciden con el diseño final (nunca spinners/texto)
Estados de error incluyen botón de reintentar, error localizado al área de datos
Estados vacíos incluyen mensaje + CTA (nunca tabla en blanco/palabra "Vacío")
Acciones en ubicaciones consistentes (página: superior derecha, fila: columna más a la derecha)
Color usado significativamente: 90% neutro, 10% semántico
Navegación ≤ 8 elementos de nivel superior
Tablas paginadas (20 filas por defecto)
Móvil colapsa nav apropiadamente
Valores de z-index consistentes
ANTIPATRONES: SIEMPRE Evitar
Antipatrón
Por qué está mal
Solución
Cuadrícula de tarjetas para 50+ elementos
Imposible de escanear/comparar
Usar tabla
Desplazamiento infinito en tablas de administración
No se puede saltar a la página N, pierde el desplazamiento