Hard Shadow

Hard Shadow Generator

Create sharp, graphic shadows with zero blur

Card Surface

Shadow Preview

Test the shadow on a more realistic card surface before you export it to production.

Preview Surface
Shadow Stack
0px 10px 30px -12px rgba(0, 0, 0, 0.14), 0px 3px 8px -4px rgba(0, 0, 0, 0.08)
Guidance
This stack is in a healthy range for everyday UI work. Test it on the real component before shipping.

Export

Copy the current multi-layer stack as CSS, Tailwind, SCSS, React, HTML, or CSS variables.

box-shadow: 0px 10px 30px -12px rgba(0, 0, 0, 0.14), 0px 3px 8px -4px rgba(0, 0, 0, 0.08);

Other Shadow Styles

What are Hard Shadows?

Hard shadows use zero blur with defined offset, creating sharp, graphic edges that feel bold and intentional. This anti-trend to soft shadows embraces brutalist and retro aesthetics—perfect for designs that prioritize personality over polish.

The effect recalls print design, comic books, and bold graphic art. Elements appear cut out and placed rather than floating—a deliberate, confident design choice.

Why Use Hard Shadows?

Hard shadows make statements. When every other site uses soft, diffused shadows, hard shadows instantly differentiate. They work brilliantly for portfolio sites, creative agencies, and brands that embrace boldness.

They're also easier to see on complex backgrounds. Where soft shadows disappear, hard shadows remain visible—useful for accessibility and readability on varied surfaces.

How It Works

Set blur to zero, increase offset:

box-shadow: 4px 4px 0 #000;

The shadow becomes a solid offset copy. For colored shadows, use any color instead of black. Multiple hard shadows at different offsets create stacking effects.

Our generator includes presets for common hard shadow styles: offset solid, colored, and stacked variations.

Common Use Cases

  • Brutalist web design
  • Retro and vintage aesthetics
  • Comic book and pop art styles
  • Strong graphic emphasis

CSS Example

box-shadow: 6px 6px 0px #000000;

Pro Tip

Combine with border for extra definition: border: 2px solid #000; box-shadow: 4px 4px 0 #000;