Build beautiful layered box shadows visually. Adjust offset, blur, spread, color, and inset — then copy the CSS instantly.
Shadows
CSS Output
Preview
What is the CSS Box Shadow Generator?
The CSS box-shadow generator lets you visually design shadow effects for any HTML element. Instead of manually writing and tweaking CSS values, you see live updates as you adjust controls — making shadow design fast and intuitive.
CSS box shadows add depth, elevation, and visual hierarchy to your designs. From subtle card shadows to dramatic glows and neumorphic effects, box-shadow is one of the most powerful tools in a CSS designer's toolkit.
Multiple Shadows
Stack unlimited shadow layers for complex, realistic depth effects.
Inset Shadows
Create pressed or recessed elements with the inset keyword.
Full Color Control
Pick any color with opacity for soft, colored, or glowing shadows.
Live Preview
See your shadow update in real-time on a neutral background.
CSS Box Shadow Syntax
The box-shadow property accepts these values in order:
inset: Optional keyword to make shadow appear inside
Frequently Asked Questions
The box-shadow property adds one or more shadow effects around an element's frame. It does not affect layout — shadows can overlap adjacent elements. Values include horizontal offset, vertical offset, blur radius, spread radius, and color.
Separate shadow definitions with commas. The first shadow in the list renders on top. Example: box-shadow: 0 2px 8px rgba(0,0,0,.15), 0 20px 40px rgba(0,0,0,.08). Layering creates more realistic depth.
Adding "inset" at the start makes the shadow appear inside the element's border, creating a pressed or engraved effect. Example: box-shadow: inset 0 2px 6px rgba(0,0,0,.15). Common in neumorphism and pressed-button effects.
Use a spread radius and zero offset with a saturated color: box-shadow: 0 0 20px 4px rgba(124,58,237,.5). Adjust blur and spread for intensity. Colored glows work best on dark backgrounds.
box-shadow can trigger repaints. For animations, use will-change: box-shadow or transition it between two defined values. Avoid animating from "none". For best performance, layer shadows on composited elements (those with transform or opacity applied).