Product Craft Bible
Composición, Contenido y Jerarquía
Inicio Fundamentos visuales Composición, Contenido y Jerarquía
Fundamentos visuales

Composición, Contenido y Jerarquía

30 reglas auditoria de producto · refactoring uiauditoria de productoauditoria de producto · design tokenshobday
6

Composición, Contenido y Jerarquía

30 reglas
68

Shadow O border, nunca ambos al mismo nivel

Cards con border: 1px + box-shadow producen "depth plana": el borde anula la ilusión de profundidad. Regla: cards primarias (KPIs, hero) = shadow sin borde; cards secundarias (filas, items) = borde sin shadow. Hover promueve un nivel.

auditoria de producto · refactoring ui
Preferir
Ingresos totales
$148,200
+12.4% vs mes anterior
Solo border, sin shadow
Ocupacion87%
Ticket prom.$2,400
Cancelaciones3
Evitar
Card KPI
Border + shadow juntos: depth plana
Card secundaria
Mismos depth conflictivos
69

Ratio mínimo 1.4x entre niveles de heading

Si H1 es 34px y un KPI value es 30px, el ojo procesa ambos como "grande oscuro" sin gradación. Forzar min 1.4x entre heading y siguiente nivel. H1 a 40px / KPI a 28px, o H1 a 28px / KPI a 36px. Declarar quien manda.

auditoria de producto
Preferir
Dashboard
$1,240,000
Evitar
Dashboard
$1,240,000
70

Eyebrow uppercase: max 1 por página

Cuando cada sección lleva el mismo eyebrow uppercase tracking-widest, ninguna llama la atención. Reservar eyebrow para UN nivel por página (el más importante). Los demas pasan a sentence-case ink-soft 14-16px. El silencio entre secciones viene del espacio, no del label.

auditoria de producto
Preferir
RESUMEN FINANCIERO
Propiedades
Actividad reciente
Evitar
RESUMEN FINANCIERO
PROPIEDADES
ACTIVIDAD RECIENTE
71

Gradiente decorativo: max 2-3 instancias por viewport

El mismo gradient violet en 9 archivos (orb, FAB, progress bars, CTAs, empty states, error pages) se vuelve wallpaper invisible. Designar UN punto canonico (orb del agente) y reemplazar el resto por violeta sólido o mesh propio. "Gradient = celebración", no fondo genérico.

auditoria de producto
Preferir
InicioPropiedades
Tu portafolio
Resumen de inversiones activas
Ingresos
$48k
ROI
12%
Evitar
InicioPropiedades
Tu portafolio
Resumen de inversiones activas
Ingresos
$48k
ROI
12%
72

Chrome debe tener al menos UN gesto de identidad

Sidebar y TopBar 100% del tiempo en pantalla. Si son genéricos (logo + links + íconos), el producto es indistinguible. Inyectar UNA ancla declarativa: mini-orb del agente en sidebar, divider de acento, avatar del workspace. El chrome debe ser humilde pero no invisible.

auditoria de producto
Preferir
Dashboard
Evitar
Dashboard
73

Squint test: max 3 datos visibles por fila de lista

Si una fila de propiedad condensa 9 elementos visuales (cover + chips + tipo + 3 metricas + kebab), nada se lee. Squint test a 2m: reducir a cover + título + precio + UN KPI (TIR). CAP/Cashflow en hover o tooltip. Densidad alta =/= todo visible.

auditoria de producto · refactoring ui
Preferir
Casa Norte
$2.1M
TIR 14%
Evitar
Casa Norte
Activa
Depto
$2.1M
TIR 14%
CAP 8%
CF $12k
Ocu 92%
...
74

Un solo patrón de filtro: filter pills uniformes

No mezclar custom multi-select + HTML select + checkbox inline en la misma barra. TODOS los filtros como pills identicas con dot indicator (vacia/llena) + popover al click. Mismo alto, mismo gesto al activarse. Cero <select> HTML en filter bars.

auditoria de producto
Preferir
Tipo
Status
Zona
Evitar
Tipo ▾
Multi-select
75

Radii por tipo de componente, no ad-hoc

Contenedores grandes (>=320px): xl. Cards medianos, filas: lg. Controles (chips, opt-boxes, skeletons-text): sm=6. Pills y avatares: full=999px. Eliminar valores fuera de escala. grep "border-radius:" src/ solo devuelve var(--radius-*).

auditoria de producto · design tokens
Preferir
sm=6
md=8
lg=12
full
Evitar
3px
11px
7px
18px
76

Ningún box-shadow literal en componentes

Si el sistema declara 4 tokens de sombra pero los componentes inventan sombras locales, la promesa de "un theme toggle toca :root" se rompe. Politica: si una sombra local se justifica, ascenderla a token nombrado. Lint contra box-shadow: literal.

auditoria de producto
Preferir
Card A
var(--shadow-md)
Card B
var(--shadow-md)
Evitar
Card A
box-shadow: 0 2px 8px...
Card B
box-shadow: 0 6px 20px...
77

Un solo PageHeader canonico con slots

No duplicar el header de página con estilos divergentes. Un PageHeader con slots: right (acciones), meta (línea informativa), tabs, coachmark. Eliminar headers locales. Mismo H1, misma baseline, misma posición de acciones en TODA la app.

auditoria de producto
Preferir
Propiedades
12 activas · 3 en proceso
Exportar+ Nueva
ActivasArchivadasBorradores
Evitar
Propiedades+ Nueva
Dashboardotro header local
78

3 chips canonicos: status, counter, flag

Status pill: rounded-full, 2/8 padding, 11.5px regular, soft-bg + on-soft. Counter: numérico tabular, mist-bg, muted color, 1/6 padding. Flag/tag: uppercase 0.06em, 10px weight 600, violet-tint o status-tint. Borrar y migrar todos los chips locales.

auditoria de producto
Preferir
Casa Norte
Col. Centro, Mérida
$12,500
Activa
3
Premium
+ Crear
Status pill round
Counter tabular
Flag uppercase
Evitar
Casa Norte
Col. Centro, Mérida
$12,500
ACTIVA
3
Premium
+ Crear
3 estilos locales: distinto padding, radius, peso
79

Dos calidades de empty state documentadas

Empty inicial primera-vez (sin datos jamás): hero ilustrado con SVG + ripples + bullets + doble CTA. Empty contextual (filtros vacios, busqueda sin resultados): ícono 48px tint, título 16px, sub 13px, CTA primaria + "Limpiar filtros" secundaria. El .prop-empty necesita el cariño del EmptyKpiHero.

auditoria de producto
Preferir
Agrega tu primera propiedad
Te guiamos paso a paso para construir tu portafolio.
+ CrearImportar
Sin resultados para "Norte"
Intenta con otros filtros o limpia la busqueda
Evitar
No hay datos disponibles.
80

Dashboard con jerarquía espacial: hero > main > footer

Cuando todo tiene el mismo gap, fondo y eyebrow, el dashboard se lee como 4 bloques democraticos sin dirección de lectura. Crear cadencia: primera sección (KPIs) full-bleed o violet-soft. Zona principal con chart a mayor altura. EBITDA al final como footer analitico. Variar mb entre secciones.

auditoria de producto
Preferir
KPIs hero
$1.2M
Ingresos
84%
Ocupación
Chart principal
Evitar
KPIs
$1.2M
Ingresos
84%
Ocupación
Chart
Lista
EBITDA
81

Error pages (404/500) con el mismo lenguaje de marca

Las páginas de error son "el peor momento posible de la marca". Deben usar la misma tipografía (PageHeader), color vía token (no hardcoded), CTA "Volver al inicio" como .btn-primary. Microcopy con tono de la marca, no genérico.

auditoria de producto
Preferir
Página no encontrada
Parece que esta ruta no existe o fue movida.
Volver al inicio
Evitar
404
Page not found
82

Scrollbar tematizado en global.css

En Windows/Linux el scrollbar nativo gris pesado rompe la calma visual de un producto cuidado. Tematizar en global: ancho 6-8px, thumb var(--color-line-2) con :hover soft, track transparente. Aplicado a body y superficies internas (sidebar, popovers).

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
background: var(--color-line-2);
border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--color-accent-200);
}
auditoria de producto
Preferir
Contenido 1
Contenido 2
Contenido 3
Contenido 4
Contenido 5
Contenido 6
Evitar
Contenido 1
Contenido 2
Contenido 3
Contenido 4
Contenido 5
Contenido 6
83

Mobile con paridad de polish al desktop

El BottomNav (mobile 100% del tiempo en pantalla) debe recibir el mismo nivel de detalle que el sidebar desktop. Item activo: dot + pill background (no solo color). FAB: fill gradient o orb (no sólido plano). Press feedback: scale 0.96 + ring accent 3px transitorio en :active.

auditoria de producto
Preferir
Dashboard
3 propiedades activas
Villa Serena - $2.4M
Home
Props
Stats
Evitar
Dashboard
3 propiedades activas
Villa Serena - $2.4M
Home
Props
Stats
84

Simple sobre complejo o complejo sobre simple

Fondo complejo (gradiente, textura) + foreground simple (texto limpio). O foreground complejo (ilustración densa) + fondo sólido. Nunca complejo sobre complejo: el ojo no puede procesarlo.

hobday
Preferir
Texto limpio sobre gradiente simple
Evitar
Texto sobre gradiente con textura
85

Empty states diseñados

El estado "sin datos" es la primera cosa que ven usuarios nuevos. Diseñar con ilustración/ícono, mensaje amigable, y CTA para crear el primer item. Tratar empty states como onboarding.

refactoring ui · littlebigdetails
Preferir
Aún no tienes proyectos
Crea tu primer proyecto para empezar a organizar tu trabajo.
+ Crear proyecto
Evitar
No hay datos disponibles.
86

Defensive CSS para contenido de usuario

object-fit: cover para mantener aspect ratios. Inner borders/shadows en avatares para que los blancos no se mezclen con fondos blancos. Background color detras de imagenes por si tienen transparencia.

refactoring ui
Preferir
Avatar
Inner shadow semitransparente: definido en light y dark
Evitar
Avatar
Avatar sin borde: se funde con el fondo en cualquier tema
87

No escalar íconos fuera de su tamaño

Íconos de 16px escalados a 64px se ven crudos. Si se necesita un ícono grande, buscar uno diseñado para ese tamaño. Si hay que usar uno chico en espacio grande, envolverlo en un shape (circulo, rectangulo redondeado).

refactoring ui
Preferir
Nativo 20px
20px + shape
Evitar
Ícono 16px escalado a 56px: borroso
88

Texto sobre imagen: overlay siempre

Nunca confiar en que la imagen será "suficientemente oscura". Agregar overlay semi-transparente oscuro, colorizar la imagen, o poner texto en caja opaca. El contraste debe ser consistente sin importar el contenido de la foto.

refactoring ui
Preferir
Foto
Título con overlay gradient
Evitar
FotoTítulo sobre foto sin overlay
89

Color + weight antes que size

No depender solo del tamaño para jerarquía. Usar color oscuro para primario, gris para secundario, gris claro para terciario. Font-weight 600-700 para énfasis, 400-500 para body. Nunca bajar de 400.

refactoring ui
Preferir
Villa Serena
Nueva
Tulum, Quintana Roo
3 rec · 2 banos · 180 m2
$4,200,000 MXN
Evitar
Villa Serena
Tulum, Quintana Roo
3 rec, 2 banos, 180 m2
$4,200,000
90

De-emphasize para enfatizar

En vez de hacer algo más grande/ruidoso, bajar el volumen de todo lo que lo rodea. Aclarar texto circundante, reducir peso, achicar meta-info. El énfasis es relativo.

refactoring ui
Preferir
$2,450,000
Precio de venta
14.2%
Tasa interna de retorno
Evitar
$2,450,000
Precio de venta del inmueble
TIR 14.2%
Tasa interna de retorno
91

Labels como último recurso

"alex@example.com" no necesita un label "Email:". Fechas, precios, nombres son obvios. Cuando los labels son necesarios, hacerlos secundarios (más chicos, más claros) y dejar que el dato sea primario.

refactoring ui
Preferir
AM
Ana Martinez
Product Designer
ana@ejemplo.com
15 ene 2024
12 proyectos
CDMX, Mexico
Evitar
AM
Ana Martinez
Product Designer
Email: ana@ejemplo.com
Fecha ingreso: 15 ene 2024
Proyectos: 12
Ubicacion: CDMX
92

Orden de peso visual

Elementos en serie van del más pesado al más ligero, como un triangulo. En un grupo de botones alineado a la derecha: primary (filled) más a la derecha, secondary (outline) después, text links al final.

hobday
Preferir
Guardar cambios
Se modificaron 3 campos.
Evitar
Guardar cambios
Se modificaron 3 campos.
93

Tres niveles de botón

Primary: fondo sólido, alto contraste, bold. Secondary: outline o fondo muted. Tertiary: text link sin fondo ni borde. Styling destructivo según importancia en contexto, no por "delete = rojo".

refactoring ui
Preferir
Eliminar proyecto
Esta accion no se puede deshacer. Se eliminaran todas las tareas y archivos.
Evitar
Eliminar proyecto
Esta accion no se puede deshacer. Se eliminaran todas las tareas y archivos.
94

Empezar por el feature, no por el layout

Diseñar la funcionalidad central antes de pensar en navigation, sidebars o headers. El chrome se ajusta al feature, no al reves. Diseñar la pantalla completa con toda la UI alrededor desde el inicio produce layouts donde el feature principal queda subordinado a la estructura. Cuando empiezas por el sidebar, el header y los breadcrumbs, el área de contenido queda como un afterthought rectangular que obliga al feature a encajar en lo que sobra. Invierte el orden: resuelve primero la tabla, el dashboard o el kanban, y después agrega solo la navegación que ese feature necesita.

refactoring ui
Preferir
Projects
Sprint Backlog
Filter
+ Task
24Total
8Done
5In progress
11Pending
TaskStatusAssigneePoints
Auth flow redesignDone
Ana M.
5
Dashboard chartsIn progress
Carlos R.
8
Notification centerIn progress
Laura P.
3
Settings pagePending
Diego F.
5
Export to CSVPending
Ana M.
2
Onboarding wizardDone
Carlos R.
13
Evitar
Acme Corp
Home / Projects / Sprint 14 / Backlog
Dashboard
Projects
Teams
Calendar
Reports
Settings
Billing
Integrations
Content área Feature goes here...
95

Diseñar en escala de grises primero

Resolver jerarquía, espaciado y peso tipografico sin color elimina la muleta del tinte. Si la jerarquía no funciona en grises, el color no la rescatara. El color se agrega al final como capa de personalidad sobre una estructura sólida.

refactoring ui
Preferir
Título de la card
Descripción secundaria con menor peso
Acción terciaria
Evitar
Título de la card
descripción secundaria que se ve igual de importante
Acción
96

Escala de sombras por elevación (5 niveles)

Las sombras comunican elevación: sm para cards sutiles, md para dropdowns, lg para modales, xl para drawers, 2xl para elementos flotantes criticos. No mezclar niveles arbitrariamente. La consistencia en la escala construye un modelo mental del espacio Z del producto.

refactoring ui · hobday
Preferir
sm
card sutil
md
dropdown
lg
modal
xl
drawer
2xl
flotante
97

Iconos en shapes para tamaños grandes

Un icono de 16px escalado a 48px pierde definición porque el trazo se hace proporcional al área pero el peso visual no. La solución es encerrar el icono en una forma con color de fondo tintado. El shape escala correctamente y el icono mantiene su tamaño óptimo dentro.

refactoring ui
Preferir
icono 22px en shape
peso correcto
Evitar
stroke-width 1 a 48px
se ve flaco