Product Craft Bible
Espaciado y Layout
Inicio Fundamentos visuales Espaciado y Layout
Fundamentos visuales

Espaciado y Layout

8 reglas hobday · refactoring ui · rauno.mehobdayrefactoring uihobday · refactoring ui
3

Espaciado y Layout

8 reglas
47

Sistema de spacing en multiplos

Definir una escala base (4px o 8px) y derivar todo de ella: 4, 8, 12, 16, 24, 32, 48, 64, 96. Cada margin, padding, gap y tamano debe venir de esta escala. Elimina la duda de "13px o 15px?".

hobday · refactoring ui · rauno.me
Preferir
Nuevo proyecto
Nombre
Mi proyecto
Descripcion
Opcional
Cancelar
Crear
p 16
p 16
m 12
m 4
p 12
g 8
padding 16 · 16 · 12 · 16
margin 12 · 4
gap 8
4 valores unicos, todos multiplo de 4
Evitar
Nuevo proyecto
Nombre
Mi proyecto
Descripcion
Opcional
Cancelar
Crear
p 18
p 13
m 7
m 11
p 9
g 5
padding 18 · 15 · 10 · 13 · 17 · 9 · 15 · 13
margin 7 · 5 · 11 · 3
gap 5
sin patron: 14 valores distintos
48

Padding externo >= padding interno

En contenedores, el espacio entre elementos y el borde del contenedor debe ser igual o mayor al espacio entre los elementos internos. Principio Gestalt: los items internos estan mas relacionados entre si que con el contenedor.

hobday
Preferir
Item
Item
Item
Evitar
Item
Item
Item
49

Spacing entre puntos de alto contraste

El ojo encuentra bordes de elementos por contraste. Medir spacing desde un punto de alto contraste al siguiente. Si un bloque tiene fondo de color, el spacing se mide desde el borde del fondo, no desde el texto.

hobday
Preferir
Bloque con fondo
32px
Heading siguiente
borde
32px
desde borde
distancia 32px (medida desde borde del fondo)
punto de alto contraste = referencia correcta
Evitar
Bloque con fondo
24px
Heading siguiente
p 12
24px
desde texto
distancia 24px (medida desde texto interior)
el padding del bloque no se cuenta: referencia incorrecta
50

No llenar todo el viewport

Un formulario no necesita ser de 800px de ancho. Un parrafo debe ser 45-75ch. Dejar que el contenido dicte el ancho, no el viewport. Contenido estirado luce sparse y es dificil de leer.

refactoring ui
Preferir
Crear cuenta max-width: 320px
Ana Martinez
ana@empresa.com
............
Cancelar
Crear cuenta
Evitar
Crear cuenta width: 100%
Ana Martinez
ana@empresa.com
............
Cancelar
Crear cuenta
51

Evitar spacing ambiguo

Cuando el espacio alrededor de un elemento es igual por todos lados, no queda claro a que grupo pertenece. Un heading de seccion debe tener mas espacio arriba (separando de la anterior) que abajo (conectando con su contenido).

refactoring ui
Preferir
Parrafo de la seccion anterior que termina aqui.
Seccion Nueva
Contenido de esta seccion que empieza aqui.
m-top 32
m-bot 8
margin-top 32px > margin-bottom 8px
asimetrico: heading conecta con su contenido
Evitar
Parrafo de la seccion anterior que termina aqui.
Seccion Nueva
Contenido de esta seccion que empieza aqui.
m-top 16
m-bot 16
margin-top 16px = margin-bottom 16px
simetrico: heading no pertenece a ninguna seccion
52

Empezar con mas white space, luego comprimir

Es mas facil identificar que esta demasiado separado que demasiado junto. Disenos dense-first terminan apretados porque nunca se reconsidero el spacing.

refactoring ui
Preferir
DashboardHoy
Resumen de actividad semanal
12 tareas
3 alertas
72% completado, generous spacing: padding 24px, gap 20px
Evitar
DashboardHoy
Resumen de actividad semanal
12 tareas
3 alertas
dense-first: padding 8px, gap 4px, todo apretado
53

12 columnas si usas grid horizontal

12 es altamente divisible: 1, 2, 3, 4, 6 columnas. Otros conteos (10, 5) limitan opciones de layout. Pero no forzar todo a un grid de 12 columnas; muchos elementos UI tienen tamanos naturales.

hobday · refactoring ui
Preferir
1
2
3
4
5
6
7
8
9
10
11
12
4 cols
4 cols
4 cols
12 cols
gap 3
4+4+4
columnas 12 (divide en 2, 3, 4, 6)
maximo de combinaciones posibles
Evitar
1
2
3
4
5
5 cols
gap 4
columnas 5 (no divide en 2, 3, 4 ni 6)
pocas combinaciones posibles de layout
54

Relative sizing no escala proporcionalmente

Un headline que es 4x el body en desktop no debe ser 4x en movil. Elementos grandes se encogen desproporcionadamente en pantallas chicas. Botones y inputs apenas cambian. La relacion entre tamanos depende del viewport.

refactoring ui
Preferir
Desktop
Bienvenido
Tu siguiente paso es completar el perfil
Continuar
Movil (adaptado)
Bienvenido
Tu siguiente paso
Continuar
heading 16px (-33%)
body 13px (-7%)
button 13px (=)
Evitar
Desktop
Bienvenido
Tu siguiente paso es completar el perfil
Continuar
Movil (25%)
Bienvenido
Tu siguiente paso es completar el perfil
Continuar
heading 6px
body 3.5px
button 3px