Diseño

Generador de box-shadow CSS

Ajustá offset, desenfoque, expansión, color y opacidad con vista previa en vivo. Apilá varias sombras, activá el modo inset y copiá el código box-shadow listo para tu hoja de estilos.

Instantáneo🔒En tu navegadorSin registro
En vivo
Presets:

Para qué sirve el generador de box-shadow

La propiedad box-shadow agrega una o varias sombras alrededor de cualquier elemento HTML y es la herramienta principal para dar sensación de profundidad y elevación en una interfaz. Con ella creás las cards que parecen flotar sobre el fondo, los botones con relieve, los modales que se despegan de la página y los menús desplegables que se apoyan por encima del contenido. Una sombra combina cinco ingredientes: cuánto se desplaza en horizontal (offset-x) y vertical (offset-y), qué tan difusa es (blur), cuánto se expande antes de difuminarse (spread) y de qué color y opacidad es. Este generador te deja mover cada valor con sliders o escribirlo a mano, ver el resultado en vivo sobre un fondo cuadriculado —para notar las transparencias— y copiar el código box-shadow listo para pegar. Además podés apilar varias capas y activar el modo inset para sombras internas.

Los parámetros de box-shadow, uno por uno

La sintaxis es box-shadow: offset-x offset-y blur spread color; (más la palabra inset opcional al principio). Esta tabla resume qué hace cada valor, qué rango suele usarse y qué pasa cuando es negativo:

ParámetroQué haceValores típicosSi es negativo
offset-xDesplaza la sombra en horizontal.0 en cards; ±2–10px para luz lateral.La sombra se corre hacia la izquierda.
offset-yDesplaza la sombra en vertical.4–20px (simula luz cenital).La sombra sube, como luz desde abajo.
blur-radiusDifumina el borde de la sombra.0 = dura; 8–30px = suave y moderna.No se permite: se ignora, mínimo 0.
spread-radiusExpande o contrae la sombra antes del blur.0 en la mayoría de los casos.Contrae la sombra: queda más chica que el elemento.
colorColor y opacidad (idealmente rgba).rgba negro con 4–15% de alfa.No aplica (no hay color negativo).
insetProyecta la sombra hacia adentro.Inputs presionados, drop zones, neumorphism.No aplica (es una palabra clave, no un número).

box-shadow vs drop-shadow vs text-shadow

Tres propiedades distintas hacen sombras en CSS y conviene no confundirlas:

PropiedadSobre qué proyectaSoporta inset / spreadCuándo usarla
box-shadowLa caja del elemento (respeta border-radius).Sí a ambos.Cards, botones, modales, elevación de UI.
filter: drop-shadow()Los píxeles reales, incluida la transparencia de PNG/SVG.No a ninguno; va por GPU.Íconos, imágenes recortadas, formas irregulares.
text-shadowLos glifos del texto.No (sin spread ni inset).Legibilidad de texto sobre imágenes, títulos.

El truco de apilar varias sombras

Las sombras "premium" que ves en Stripe, Vercel o Linear no son una sola: son dos o tres capas apiladas. Una corta y nítida pegada al elemento (offset-y de 1–2px, blur bajo, opacidad media) y otra larga y difusa más abajo (offset-y de 8–24px, blur alto, opacidad baja). Así se imita la luz real, que proyecta una sombra directa y otra indirecta. Con el botón "+ agregar sombra" apilás capas y el generador las une con coma:

box-shadow:
  0 1px 2px rgba(15, 23, 42, 0.06),
  0 8px 24px rgba(15, 23, 42, 0.10);

Sombras internas (inset) y neumorphism

La palabra clave inset lleva la sombra hacia adentro del elemento y simula una superficie hundida. Casos legítimos: inputs en estado presionado, contenedores que parecen excavados en la página y zonas de arrastre activas. El efecto neumorphism combina dos sombras: una clara arriba-izquierda y otra oscura abajo-derecha, para que el elemento parezca del mismo material que el fondo, apenas relevado. Probá el preset "Neumorphism" para ver el patrón.

Sombras y dark mode

Sobre fondos oscuros las sombras negras casi desaparecen: negro sobre negro no contrasta. Tres soluciones prácticas:

  1. Bordes claros en lugar de sombra: border: 1px solid rgba(255,255,255,0.08).
  2. Sombras más opacas (20–40% en vez de 8–12%) y con más blur.
  3. Sombras de color: una sombra teñida con el color de marca a baja opacidad da un efecto de glow en vez de profundidad.

Rendimiento: cuándo puede romperse el frame rate

A diferencia de filter: drop-shadow(), que va por GPU, box-shadow se calcula en CPU. Un blur grande sobre decenas de elementos, o animar el blur en tiempo real, puede tirar la fluidez. Si necesitás animar una sombra al pasar el mouse, animá transform o hacé una transición de opacidad sobre una capa de sombra ya renderizada, en lugar de recalcular el blur en cada frame.

Preguntas frecuentes

¿Qué es box-shadow?

La propiedad CSS que dibuja una o varias sombras alrededor de un elemento. Da profundidad a cards, botones, modales y menús.

¿Cómo hago varias sombras?

Separá cada sombra con coma en la misma propiedad. El botón "+ agregar sombra" apila capas y une el CSS por vos. Apilar 2–3 da un efecto realista.

¿box-shadow o filter: drop-shadow()?

box-shadow sigue la caja del elemento y admite spread e inset. drop-shadow sigue los píxeles reales (útil en PNG/SVG), va por GPU y no admite spread ni inset.

¿Qué hace inset?

Proyecta la sombra hacia adentro, simulando una superficie hundida. Útil para inputs presionados, drop zones y neumorphism.

¿Por qué usar rgba?

Para controlar la opacidad. Las sombras realistas usan 4–15% de alfa; una sombra opaca al 100% se ve dura y artificial. El generador convierte color + opacidad a rgba.

¿Las sombras grandes son lentas?

box-shadow se calcula en CPU. Un blur enorme sobre muchos elementos, o animar el blur, puede bajar el frame rate. Para animar, mejor transform u opacidad.

¿Para qué sirve el spread?

Expande (positivo) o contrae (negativo) la sombra antes del blur. En la mayoría de las cards se deja en 0.

¿Necesito -webkit-box-shadow?

No en navegadores modernos: box-shadow tiene soporte universal. El toggle -webkit- está sólo por si querés compatibilidad con navegadores muy viejos.

¿Te sirvió este generador?