Menu

Sombra de texto en CSS: text-shadow, brillo y contorno

text-shadow dibuja una o varias sombras detrás del texto. Aprende los cuatro valores (desplazamiento x, desplazamiento y, desenfoque, color), cómo apilar sombras para efectos de brillo, contorno y 3D, y cómo usar una sombra para que el texto se lea sobre fondos recargados.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

Cómo funciona text-shadow

text-shadow pinta detrás del texto una copia desplazada y desenfocada. Le das un desplazamiento horizontal, un desplazamiento vertical, un desenfoque opcional y un color.

3px 3px 0 #f59e0b significa 3px a la derecha (físicos, en cualquier dirección de escritura), 3px hacia abajo, sin desenfoque y en ámbar. La segunda sombra tiene un desenfoque de 6px y usa un negro semitransparente, la receta habitual para un efecto de profundidad sutil.

La sintaxis

text-shadow: <offset-x> <offset-y> <blur-radius>? <color>?;
ValorObligatorioSignificado
offset-xSíPositivo mueve la sombra a la derecha, negativo a la izquierda
offset-ySíPositivo la mueve hacia abajo, negativo hacia arriba
blur-radiusNo (0 por defecto)Qué tan suave es el borde; los valores negativos son inválidos
colorNo (por defecto, el color del texto)Puede ir al principio o al final

text-shadow: none quita una sombra heredada. Cambia los valores de abajo para ver el efecto de cada uno:

Prueba -4px -4px 0 #16a34a, 0 0 10px red y dos sombras separadas por una coma.

Varias sombras: brillo, contorno y 3D

Las comas apilan sombras; la primera se dibuja encima. De esa sola regla salen tres efectos:

  • Brillo: desplazamientos en cero, desenfoque creciente, sobre un fondo oscuro.
  • Contorno: cuatro sombras nítidas, una por diagonal. Sirve para contornos finos; para un contorno más grueso y uniforme, -webkit-text-stroke: 2px #111827 (compatible con todos los navegadores actuales a pesar del prefijo) dibuja un trazo en los bordes de las letras.
  • 3D: una serie de sombras nítidas, cada una 1px más lejos, para que las letras parezcan extruidas.

Texto legible sobre un fondo recargado

El texto blanco sobre una foto o un patrón pierde sus bordes donde el fondo es claro. Una sombra oscura y suave los recupera sin una caja visible:

Una sombra ayuda, pero no garantiza el contraste. Para un texto largo sobre una imagen, agrega además una capa sólida o un degradado detrás del texto.

text-shadow vs box-shadow

text-shadowbox-shadow
SigueLa forma de las letrasLa caja del elemento (y su border-radius)
Valor de expansiónNoSí
insetNoSí
Varias, separadas por comasSíSí

Para sombras en tarjetas y botones, consulta box-shadow.

Errores comunes

  • Sombras oscuras y pesadas en el texto del cuerpo. Desdibujan la forma de las letras. Deja las sombras para títulos y etiquetas cortas.
  • Olvidar el segundo desplazamiento. text-shadow: 2px #000 es inválido; los dos desplazamientos son obligatorios.
  • Un desenfoque negativo. Es inválido y se descarta toda la declaración.
  • Esperar que la sombra ocupe espacio. Solo se pinta; las sombras grandes pueden superponerse a la línea siguiente o quedar recortadas por overflow: hidden.
  • Efectos de brillo sobre fondos claros. Un brillo claro sobre blanco es invisible. Los brillos necesitan un fondo oscuro.

Preguntas frecuentes

¿Cuál es la sintaxis de text-shadow?

text-shadow: offset-x offset-y blur-radius color;, por ejemplo text-shadow: 2px 2px 4px rgb(0 0 0 / 40%);. Los dos desplazamientos son obligatorios; el desenfoque vale 0 por defecto y el color es el del texto.

¿Cómo agrego más de una sombra al texto?

Separa las sombras con comas: text-shadow: 0 0 4px #fff, 0 0 12px #2563eb;. La primera sombra se dibuja encima de las que vienen después.

¿Cómo hago un efecto de brillo en el texto?

Usa sombras sin desplazamiento y con desenfoque, a menudo varias con un desenfoque creciente: text-shadow: 0 0 4px #60a5fa, 0 0 12px #2563eb;. Sobre un fondo oscuro se ve como un brillo neón.

¿text-shadow tiene un valor de expansión como box-shadow?

No. text-shadow no tiene spread ni la palabra clave inset. Para engrosar la sombra alrededor de las letras, apila varias sombras o usa -webkit-text-stroke para un contorno.

¿text-shadow afecta el layout?

No. La sombra solo se pinta; no ocupa espacio ni mueve el contenido de alrededor, así que una sombra grande puede superponerse a los elementos cercanos.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR