Design glowing, 3D and outlined text with a text shadow generator
The Text Shadow Generator turns the CSS text-shadow property into something you can see and shape. Type your own headline, stack as many shadow layers as you like, and adjust each one’s offset, blur, colour and opacity while a live preview updates on a light, dark, checkerboard or custom background.
Most eye-catching text effects are simply several shadows on top of each other: a neon sign is a white core with widening coloured glows, retro 3D lettering is a stack of 1px steps, and an outline is eight hard shadows pointing in every direction. Start from one of six presets — subtle, neon glow, 3D retro, outline, emboss and fire — and then make it your own. When you are happy, copy clean CSS with one click.
How to use the Text Shadow Generator
- Type the words you want to style in “Preview text”.
- Choose a preset such as Neon glow or 3D retro as a starting point.
- Select a layer in the list and change Offset X, Offset Y, Blur, Opacity and Shadow colour. Add, duplicate, reorder or remove layers with the buttons.
- Set the font size, weight, family, text colour and background colour so the preview matches your design.
- Press “Copy CSS”. Untick “Include text colour and font” if you only want the
text-shadowdeclaration.
Text Shadow Generator features
Up to 16 layers
Stack up to 16 shadows — enough for long 3D extrusions and multi-colour glows — and reorder them with the arrow buttons.
Six effect presets
Subtle lift, neon glow, 3D retro, outline, emboss and fire, each with matching text and background colours.
Real typography controls
Preview at any size from 8 to 300px in sans-serif, serif, monospace or Impact at weights from 300 to 900.
Readable output
One layer per line, zero values written as 0, solid colours as hex and transparent ones as rgba().
Safe and private
Your preview text is shown as plain text and never leaves your browser.
How the text-shadow property works
Each layer is written as offset-x offset-y blur-radius colour, for example 2px 2px 4px rgba(0, 0, 0, 0.4). Positive X moves the shadow right, positive Y moves it down, and the blur radius softens it (it cannot be negative). Unlike box-shadow, text shadows have no spread value and no inset keyword.
Separate layers with commas. The first layer is painted on top, closest to the text, which is why glow effects list the tight white glow first and the wide coloured glow last. Text shadows never affect layout, so they will not push other elements around.
Recipes behind the presets
- Neon glow: zero offsets, increasing blur (4, 12, 24, 48px), a white core and a saturated colour. Use it on a very dark background.
- 3D retro: a series of hard shadows (blur 0) stepping 1px down and right each time, finished with one blurred dark shadow for depth.
- Outline: eight hard shadows at ±2px in every direction. For thin, even strokes in modern browsers you can also use
-webkit-text-stroke, but the shadow method lets the outline sit outside the letters. - Emboss: text the same colour as its background, a light shadow up-left and a dark shadow down-right — the light appears to come from the top-left.
- Fire: zero-to-negative Y offsets so warm glows rise upwards, moving from pale yellow near the text to deep red-brown at the edges.
Readability and accessibility
A shadow can rescue text placed over a photo, but heavy effects make body text tiring to read. Keep neon, fire and 3D styles for short headings and logos, and use a subtle 1–2px shadow for captions over images.
Shadows do not count toward colour contrast in the WCAG guidelines, so the text colour itself must still contrast with the background. Check the pair with the Contrast Checker. For shadows on cards and buttons, use the Box Shadow Generator; for frosted panels behind text, try the Glassmorphism Generator.
Text Shadow Generator FAQ
How do I add a shadow to text in CSS?
Use the text-shadow property: text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4);. The values are horizontal offset, vertical offset, blur and colour. This text shadow generator writes it for you as you drag the sliders.
Can I use more than one text shadow?
Yes. Separate shadows with commas; the first one is drawn on top. Glow, 3D and outline effects all rely on multiple layers.
How do I make neon glowing text with CSS?
Use several shadows with zero offset and increasing blur — for example a white 4px glow followed by coloured 12px, 24px and 48px glows — on a dark background. Click the “Neon glow” preset to start from that recipe.
How do I outline text with text-shadow?
Add eight hard shadows (blur 0) offset by the outline width in every direction: up, down, left, right and the four diagonals. The Outline preset does exactly this.
Does text-shadow work in all browsers?
Yes. text-shadow with multiple layers is supported by every modern browser on desktop and mobile.
Why can’t I add spread or inset to a text shadow?
The CSS specification only defines offset, blur and colour for text-shadow. To fake spread, stack several hard shadows around the text as the outline preset does.