What each number does
A box shadow is described by up to five things, always in the same order: horizontal offset, vertical offset, blur, spread and colour. The offsets slide the shadow across and down from the box, and a negative number slides it the other way. Blur softens the edge, and spread grows or shrinks the shadow before the blur is applied. The colour carries the shadow’s opacity, which is why shadows are almost always written with rgba(): a solid black shadow is rarely what you want. The generator always writes all four numbers so the meaning of each is clear, using a bare 0 where a value is zero.
Blur and spread are different
They’re easy to mix up, because both make a shadow look bigger. Spread changes the shadow’s actual size, with an edge that stays sharp until you add blur. Blur leaves the size alone and fades the edge instead. A shadow with a blur of zero and a spread of 10px is a solid slab 10px larger than the box on every side. A shadow with a large blur and a small negative spread is soft and stays close underneath: the standard recipe for a card that appears to float just above the page.
Layering shadows
One shadow is a single flat gradient of darkness; real light doesn’t behave like that. Close to an object a shadow is small and sharp, and farther away it spreads out and fades. Stacking several shadows, each with a bigger offset and blur and a low opacity, reproduces that falloff much more convincingly than cranking up one shadow. The first shadow in the list is drawn on top of the ones after it. The presets include a two-layer card shadow and a five-layer stack so you can see how the layers add up, and each layer can be adjusted or removed on its own.
Inset shadows
Ticking Inset moves a shadow inside the box. It’s painted along the inner edge, above the background but beneath the content, so it reads as a recess. Inset shadows are how pressed buttons, text fields and sunken panels are usually drawn, and they can be combined with ordinary outer shadows in the same list: the Pressed preset does exactly that.
Box-shadow or drop-shadow
box-shadow traces the element’s rectangle, rounded by its border-radius, regardless of what’s inside it. If you put it on an icon with a transparent background you get a shadow of the whole square, not of the icon. The drop-shadow() filter traces the visible shape instead, so it’s the right choice for transparent images and SVG. The trade-off is that it can’t do spread or inset. For everyday interface elements (cards, buttons, panels, dialogs) box-shadow is the one to use.
Using the code
Copy the CSS into a rule, or switch to the Tailwind class to paste an arbitrary-value utility straight onto an element. A shadow takes up no space, so adding one never shifts the layout, but a parent with overflow: hidden will clip it. Very large blurs are also more work for the browser to paint, so if you’re animating shadows on many elements at once, keep the blur modest.
Nothing leaves your browser
There’s no server behind this tool. The shadow is rendered by your own browser and the code is assembled in the page as you edit, so nothing you design is sent, stored or logged.