Lección 2

px, rem y em

Elige la unidad adecuada para entrega de diseño, escalado de componentes y tipografía anidada.

Estas tres unidades aparecen en casi todo codebase frontend. Parecen intercambiables en ejemplos pequeños, pero se comportan distinto en componentes reales.

px: el valor por defecto de entrega de diseño

px es una unidad CSS absoluta. 16px significa dieciséis píxeles CSS independientemente del font-size del padre.

Usa px cuando:

  • Coincidas con un borde, sombra o divisor fijo
  • Trabajes con canvas, anchos de trazo SVG o assets pixel-perfect
  • Traduces una especificación puntual donde aún no hay tokens rem definidos

Evita usar px para toda la tipografía si tu design system espera escalado basado en rem.

rem: relativo al elemento raíz

1rem equivale al font-size calculado del elemento raíz (html), normalmente 16px por defecto.

html {
  font-size: 16px;
}

.title {
  font-size: 1.5rem; /* 24px */
}

Usa rem cuando:

  • Construyas tokens de diseño para font-size, espaciado y radio
  • Quieras que los tamaños escalen si el proyecto cambia el font-size raíz
  • Necesites valores consistentes entre componentes no relacionados

em: relativo al font-size del elemento actual

1em equivale al font-size calculado del propio elemento (o del padre para propiedades como padding en algunos casos de herencia).

.button {
  font-size: 1rem;
  padding: 0.75em 1.25em;
}

Aquí el padding escala con el font-size del botón automáticamente.

Usa em cuando:

  • El espaciado debe seguir la tipografía local dentro de un componente
  • Iconos o badges deben escalar con el texto cercano
  • Quieres intencionalmente comportamiento de tamaño anidado

Comparación rápida

UnidadMejor paraCuidado con
pxBordes, assets precisosNo escala con ajustes raíz
remTokens globales, tipografíaAsume font-size raíz estable
emRitmo interno del componenteSe compone en texto muy anidado

Error habitual: mezclar contextos

Un diseñador da texto de cuerpo 20px. Escribes 20px en CSS. Más tarde el equipo cambia a html { font-size: 62.5%; } para facilitar el cálculo rem, y tus valores px ya no alinean con tokens rem.

Mejor flujo: convierte px a rem una vez, almacena tokens y reutilízalos.

Conclusión clave

Usa px para detalles físicos fijos, rem para tokens de todo el sistema y em para tamaños que deben seguir el texto local.

Convierte px de diseño a rem con el Conversor de unidades CSS / Generador clamp y configura el font-size raíz para que coincida con tu proyecto antes de copiar valores.

Volver al resumen del curso