CSS generado
box-shadow: 5px 5px 15px 0px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 5px 5px 15px 0px rgba(0, 0, 0, 0.2);
Generador CSS Box Shadow — Editor Visual, Múltiples Sombras, Inset, Elevación Material
El generador de box-shadow de arriba produce el valor CSS box-shadow con vista previa en vivo. La propiedad está definida en el W3C CSS Backgrounds and Borders Module Level 3 (Candidate Recommendation Draft, última revisión 11 de marzo de 2024). Cada sombra acepta hasta seis componentes: desplazamiento horizontal, desplazamiento vertical, radio de desenfoque, radio de expansión, color y la palabra clave opcional inset. Múltiples sombras se separan por coma y se apilan de adelante hacia atrás, con la primera declaración pintada encima. La palabra clave inset cambia la sombra de exterior (dibujada fuera del border-box) a interior (dibujada dentro del padding-box) según la especificación CSS Backgrounds 3. Box-shadow es un efecto renderizado por CPU, no acelerado por GPU como transform u opacity. Cada sombra dispara una operación de pintado multi-pase con rasterización de splines en Skia (Chromium / Blink) o bibliotecas gráficas equivalentes en Firefox y Safari. Para animaciones, es preferible transform: translateY() combinado con opacity en vez de animar box-shadow directamente — esta última fuerza repintados por frame en CPU. Para una elevación estática única el coste es despreciable; para cincuenta tarjetas animadas en pantalla, domina el tiempo por fotograma.
Sobre esta herramienta
Usa los controles para ajustar offsets, desenfoque, expansión, color, opacidad e inset. El botón "+ Añadir sombra" apila múltiples declaraciones sobre el mismo elemento — útil para efectos en capas (p. ej., una sombra interior cerrada más un resplandor exterior suave). La salida incluye el prefijo -webkit-box-shadow para Safari < 5.1 y navegadores móviles antiguos, aunque todos los navegadores actuales (Chrome, Firefox, Safari, Edge, Opera) soportan box-shadow sin prefijo según el CR del W3C. Para contexto de sistema de diseño, Material Design 3 define seis niveles de elevación (Nivel 0 al Nivel 5), cada uno asociado a un rol funcional (tarjetas en Nivel 1, botones de acción flotantes o diálogos en Nivel 3; los Niveles 4 y 5 están reservados para estados hover y arrastrado). M3 combina un overlay de color tonal con una sombra — un cambio respecto a M1 (2014) que usaba solo sombras en una escala 0–24 dp. La especificación de tokens M3 (m3.material.io/styles/elevation/tokens) aporta los valores dp exactos y tokens de sombra por nivel. Los frameworks CSS populares (Tailwind, Bootstrap, Chakra) incluyen escalas de sombra ya definidas que aproximan la misma jerarquía. Dos consideraciones no obvias importan. Primero, accesibilidad: WCAG 2.2 Criterio de Éxito 1.4.11 (Contraste sin texto) exige que los componentes de interfaz tengan una ratio de contraste 3:1 contra los colores adyacentes, incluyendo sus límites visuales. Una sombra sutil 0 4px 6px rgba(0,0,0,0.06) que distingue una tarjeta de un fondo blanco falla 1.4.11 a menos que se refuerce con un borde 1px o un tono de superficie más marcado. Segundo, rendimiento: animar box-shadow en hover es aceptable para pocos elementos pero patológico en grids — una solución es animar la opacidad de un pseudo-elemento con sombra estática (el "truco de dos sombras").
- Vista previa visual mientras ajustas los controles
- Controles de desplazamiento horizontal y vertical (positivo = derecha/abajo según CSS Backgrounds 3)
- Controles deslizantes de desenfoque y expansión (radio de desenfoque negativo es inválido según la especificación)
- Selector de color con control de opacidad / alfa
- Botón de sombra interior (outer ↔ inner, según texto del CR §7)
- Apilado de múltiples sombras para efectos en capas (front-to-back)
- Incluye prefijo -webkit-box-shadow para Safari legacy / móvil
- Copia al portapapeles del CSS generado con un clic
- Pura en cliente — sin llamada API, sin subida
- Útil para tokens de sombra de design system, estados hover, jerarquía de profundidad/elevación
Gratis. Sin registro. Tus datos permanecen en tu navegador. Anuncios mediante Google AdSense (con consentimiento).
Preguntas frecuentes
¿Por qué mi sombra se ve pixelada en pantallas Retina?
El radio de desenfoque se especifica en píxeles CSS, no en píxeles de dispositivo. En una pantalla retina 2×, un desenfoque de 4 px se rasteriza a 8 píxeles de dispositivo, lo que puede mostrar banding si la superficie subyacente usa un búfer de baja profundidad de bits. Los navegadores modernos asumen sRGB / 8 bits por canal por defecto. Para gradientes más suaves, cambia la superficie de renderizado a un canvas con gamut más amplio o usa filter: drop-shadow, que compone de forma distinta. Para la mayoría de la interfaz, el valor por defecto está bien. Fuente: CSS Backgrounds and Borders Module Level 3 §7 más documentación de renderizado de Skia.
¿Qué diferencia hay entre box-shadow y filter: drop-shadow?
box-shadow sigue la caja CSS del elemento (el borde rectangular exterior), así que un PNG transparente dentro de un div produce una sombra rectangular alrededor del div, no de la imagen visible. filter: drop-shadow respeta el canal alfa del contenido del elemento, así que el mismo PNG produce una sombra con la forma de los píxeles visibles. Rendimiento: box-shadow se pinta en CPU en una operación multi-pase por Skia; drop-shadow compone de forma distinta y puede usar aceleración GPU en navegadores capaces. Usa drop-shadow para iconos y máscaras PNG; usa box-shadow para tarjetas y elevación rectangular.
¿Por qué animar box-shadow es lento pero animar transform es rápido?
transform y opacity se componen en GPU como parte del paso del compositor de capas, así que el navegador los interpola por frame sin repintar píxeles. box-shadow es parte de la fase de pintado: cada frame de la animación re-rasteriza los píxeles de la sombra en CPU vía Skia (Blink) o bibliotecas equivalentes en Firefox y Safari. El workaround estándar es el 'truco de dos sombras': renderizar dos elementos apilados (o pseudo-elementos) con sombras estáticas distintas, y luego animar la opacidad del superior. Fuente: McAnlis (2013) 'CSS paint times and page render weight' en web.dev.
¿Por qué existe -webkit-box-shadow y la necesito?
Las versiones de Safari anteriores a 2012 (móvil y escritorio) embarcaron box-shadow bajo el prefijo experimental -webkit-. Tras Safari 5.1 (julio 2011), la propiedad sin prefijo es la predeterminada. Añadir -webkit-box-shadow hoy tiene coste prácticamente cero y beneficio marginal de compatibilidad para la cola larga de navegadores Android atados a forks antiguos de WebKit (algunas operadoras, quioscos, webviews integrados). La mayoría de guías de estilo modernas lo eliminan. El generador emite ambos para seguridad pega-y-listo con targets legacy.
¿Cómo mapea la elevación de Material Design a valores box-shadow?
Material Design 3 (m3.material.io) define seis niveles de elevación (Nivel 0 al Nivel 5), cada uno asociado a un rol funcional: Nivel 0 es plano (sin sombra), Nivel 1 es una tarjeta apoyada en una superficie, Nivel 3 es un botón de acción flotante o diálogo, y los Niveles 4–5 están reservados para estados hover y de arrastre. M3 superpone un overlay de color tonal sobre la sombra, así que una superficie Nivel 1 en tema oscuro también recibe un matiz tonal ligeramente más claro. Los valores dp exactos y tokens de sombra por nivel se especifican en la referencia de tokens M3. M1 (2014) usaba una escala distinta 0–24 dp con sombras solas.
Fuentes (5)
- Bos, B., Çelik, T., Daggett, J., Dürst, M., Hyatt, D., Lilley, C., & Sapin, F. (2024). CSS Backgrounds and Borders Module Level 3. W3C Candidate Recommendation Draft, 11 March 2024.
- CSS Working Group (2025). CSS Borders and Box Decorations Module Level 4. W3C Working Draft, first published 22 July 2025 (next-generation revision of CSS Backgrounds 3).
- Google / Material Design (2024). Material Design 3 — Elevation Tokens (six levels, Level 0 through Level 5; tonal color overlays combined with shadows). m3.material.io/styles/elevation/tokens.
- McAnlis, C. (2013). CSS paint times and page render weight. web.dev / Google Chrome Developers (12 April 2013) — Skia rasterization, multi-pass shadow painting, GPU vs CPU compositing.
- W3C Web Accessibility Initiative (2023). Web Content Accessibility Guidelines (WCAG) 2.2 — Success Criterion 1.4.11 Non-text Contrast (3:1 ratio for UI components and graphical objects). W3C Recommendation, 5 October 2023.
Son las publicaciones originales en las que se basan las fórmulas de esta herramienta. Localízalas con el nombre de la revista y el año en Google Scholar o PubMed.
Por Marco B. ·