Elevación

Usa elevación para separar superficies sin romper la calma de la interfaz.

Profundidad, sombra y luz

La elevación combina sombra y luz para sugerir la distancia entre dos superficies. En el producto trabajamos casi siempre en valores bajos: una sombra discreta es suficiente para que un componente se reconozca como temporal o transitorio.

Antes de elevar un elemento conviene revisar si el contraste y el espacio ya resuelven la jerarquía. La sombra reserva su presencia para los momentos en que un objeto realmente se despega del fondo.

Dirección de la sombra

Una dirección consistente de la sombra comunica una fuente de luz coherente en toda la interfaz.

Tres superficies elevadas con la misma fuente de luz: sombra desplazada hacia abajo y simétrica al eje horizontal.

Tamaño de la sombra

Como en el mundo físico, las sombras nítidas y compactas indican cercanía a la superficie, mientras que las sombras grandes y difusas sugieren mayor distancia.

Cerca de la superficieSombra nítida y compacta — $shadow2
Lejos de la superficieSombra grande y difusa — $shadow28

Sistema de sombras

La rampa toma el valor de blur como referencia: la sombra 2 tiene 2px de blur, la sombra 64 tiene 64px. La curva está calibrada para que los pasos pequeños cubran la mayoría de los casos del producto y los pasos altos queden disponibles para situaciones puntuales.

Cada sombra se construye combinando una capa direccional y nítida (key) que define los bordes del elemento, con una capa suave y difusa (ambient) que sugiere distancia. La opacidad de ambas se mantiene baja para que la sombra acompañe al componente sin atraer atención por sí misma.

Key shadowDireccional y nítida — define los bordes
Ambient shadowSuave y difusa — sugiere distancia
Key + ambientCombinación final — $shadow8

Rampa de elevación baja

Es donde vive la elevación cotidiana del producto. Los niveles 2 y 4 cubren la mayor parte de los componentes flotantes — hover cards, dropdowns, tooltips o command bars — y dejan que la interfaz se sienta plana y tranquila. 8 y 16 quedan disponibles cuando un componente necesita un peso visual ligeramente mayor. Tokens:$shadow2,$shadow4,$shadow8,$shadow16.

$shadow22px blur
$shadow44px blur
$shadow88px blur
$shadow1616px blur

Rampa de elevación alta

Aparece de forma puntual, en superficies que cubren contenido detrás suyo: diálogos modales, drawers o bottom sheets en mobile. La separación visual debe estar justificada por la función — si un panel no interrumpe el flujo, no necesita esta rampa. Tokens:$shadow28,$shadow64.

$shadow2828px blur
$shadow6464px blur

Sombras sobre superficies de color

Las superficies de marca rara vez se elevan: su peso visual ya proviene del color. Cuando un componente sí necesita despegarse sobre fondo de color, usamos los tokens de sombra de marca, que ajustan la opacidad para que la sombra siga leyéndose sin ensuciar el indigo.

$shadow4Brand4px blur
$shadow8Brand8px blur

Tokens

Tokens canónicos de sombra. La rampa numérica (2/4/8/16/28/64) corresponde al desplazamiento Y; los *Brand refuerzan opacidad para superficies de color.
TokenValorUso
--shadow20 0 2px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.14)Reposo: cards y tarjetas pegadas a la superficie.
--shadow40 0 2px rgba(0,0,0,.12), 0 2px 4px rgba(0,0,0,.14)Hover en elementos clicables.
--shadow80 0 2px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.14)Popovers, tooltips, menús flotantes.
--shadow160 0 2px rgba(0,0,0,.12), 0 8px 16px rgba(0,0,0,.14)Drawers laterales y paneles.
--shadow280 0 8px rgba(0,0,0,.12), 0 14px 28px rgba(0,0,0,.14)Modales y dialogs centrales.
--shadow640 0 8px rgba(0,0,0,.12), 0 32px 64px rgba(0,0,0,.14)Foco máximo: lightbox, focus mode.
--shadow2Brand0 0 2px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.25)Sobre fondo de marca: opacidad reforzada.
--shadow8Brand0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.25)Popovers sobre superficie de color.
--shadow28Brand0 0 8px rgba(0,0,0,.3), 0 14px 28px rgba(0,0,0,.25)Modal sobre fondo brand.