A little help goes a long way. Find a tool/

Design

CSS Text Shadow Generator

Free CSS text-shadow generator: set offset, blur and color, or start from a preset (classic soft, hard offset, subtle lift, neon glow, retro double), preview it live and copy the ready-to-paste declaration.

YOUR WORKSPACEFree to use. No sign-up.
—
Adjust the values above.

Deep dive guides

A LITTLE CONTEXT · 4 MIN READText-Shadow Presets, Explained: From Subtle Lift to Neon Glow

How css text shadow generator works

The CSS text-shadow property draws a shadow behind text using up to four values: a horizontal offset, a vertical offset, an optional blur radius, and a color. Positive offsets push the shadow right and down, negative offsets pull it left and up, and the blur radius softens the edges — 0 gives a hard-edged shadow. A declaration looks like text-shadow: 2px 2px 2px rgba(0,0,0,0.35); and can hold several comma-separated shadows at once.

This generator gives you two ways to work. Start from a preset — classic soft, hard offset, subtle lift, neon glow or retro double — to get a finished look instantly, or switch to Custom and tune the offsets, blur and color yourself. The preview shows the effect on sample text the moment anything changes, and the resulting declaration is always valid CSS you can paste straight into a stylesheet or a style attribute.

The neon preset stacks three blurred layers of the same color at increasing radii, which is the standard trick for a glow that reads well on dark backgrounds; the retro preset layers two hard shadows in opposite directions for a classic misregistered-print look. When choosing colors, remember the shadow should support the text, not replace contrast: keep enough difference between text, shadow and background for readability, and check the result with the site's color contrast checker if in doubt.

Frequently asked questions

What is the CSS syntax for text-shadow?
text-shadow: offsetX offsetY blur color; for example text-shadow: 2px 2px 4px rgba(0,0,0,0.5);. The blur value is optional (it defaults to 0), and the color can be a hex, rgb(), rgba() or named color.
Can text-shadow have multiple shadows?
Yes. List them comma-separated, for example text-shadow: 1px 1px 0 #000, 2px 2px 0 #555;. The first shadow in the list is painted on top, so order matters when layers overlap — the neon and retro presets here both use stacked layers.
What is the difference between text-shadow and box-shadow?
text-shadow applies to the glyphs of a text element, while box-shadow draws a shadow around an element's entire box including its padding and border. box-shadow also supports a spread value and an inset keyword, which text-shadow does not.
Why does my text-shadow not show up?
The three usual causes: the shadow color equals or is too close to the text or background color, all offsets and blur are 0 (which hides the shadow directly behind the glyphs), or the property is being overridden by a later text-shadow declaration. Use rgba colors with some transparency for soft, layered effects.