Setting box-shadow blur-radius to 0 produces a hard, sharp-edged shadow with no feathering at all along its outline.
Loading Shadow Effect Builder…
Zero-blur shadow builder with live preview
Precise offset and colour controls for hard shadows
Works on buttons, cards, and containers
One-click CSS output ready to copy
Drop the Shadow Effect Builder into any page — blog post, product docs, intranet, school portal — with a single line of HTML. Your visitors get the full tool, processed entirely in their browser. No backend, no uploads, no signup.
Embed code
<iframe
src="https://www.fixtools.io/css-tool/shadow-effect-builder?embed=1"
width="100%"
height="780"
frameborder="0"
style="border:0;border-radius:16px;max-width:900px;"
title="Shadow Effect Builder by FixTools"
loading="lazy"
allow="clipboard-write"
></iframe>Attribution-friendly: a small "Powered by FixTools" link appears in the embed footer.
A box-shadow with blur-radius of 0 produces a shadow that is a precise, sharp-edged copy of the element silhouette displaced by the offset distance. There is no gradation, no feathering, and no diffusion at the edge. The shadow and element together create the impression of a thick cardboard cutout or a layer of paper offset from a second layer beneath it. This aesthetic has its roots in screen printing, letterpress, and hand-cut collage, where physical constraints meant shadows were always hard-edged. Neo-brutalist web design from the mid-2010s onward has consistently used this technique to create interfaces that feel bold, handcrafted, and deliberately non-digital.
The most recognisable use of hard shadows is on buttons and cards in brutalist UI. A button with a 4px black hard shadow at the lower-right creates an immediately tactile appearance. On :active, reducing the offset to 1px and adding a 3px translateX(3px) translateY(3px) transform simulates the button physically pressing into the surface, eliminating the visible offset gap. This active state, where the button appears to move into the shadow position and close the gap, is one of the most satisfying click animations in the brutalist design vocabulary. It requires no blur, no transition between shadow types, only an offset and transform change.
Hard shadows on retro designs are most effective with high-contrast colour choices that emphasise the deliberate flatness of the shadow shape rather than trying to disguise it. Black shadow on a white or pastel card is the most common and recognisable combination across neo-brutalist work today. Equally effective is a bright background colour paired with a same-hue-darker shadow, which creates a more sophisticated retro look than generic black on every component. At present, several major consumer-facing apps and the landing pages for design tools deliberately use hard-shadow cards as an identity signal. The style pairs well with bold sans-serif typography, monospaced labels, and dense, grid-based layouts that emphasise structural geometry over photographic depth.
Hard shadow design also benefits from disciplined use of spacing because the lack of blur leaves no soft edge to mask layout errors that softer shadows would gracefully diffuse. A 4 pixel hard shadow on a card pushes the perceived bottom and right edges of the card outward by exactly 4 pixels, so adjacent components need at least that much breathing room to avoid visual collisions. Plan grid gaps with the shadow extent in mind and prefer slightly more generous gutters than you would for soft-shadow layouts. The discipline is part of what gives well-executed brutalist design its distinctive sense of intentional, almost typographic spatial precision. Sloppy spacing immediately breaks the look in a way that softer shadow systems can paper over.
Set blur to 0 in the builder and increase horizontal and vertical offset to taste. Choose a contrasting colour for the shadow, typically dark or black, to create the characteristic hard offset look. Copy the CSS to apply to your component.
Step-by-step guide to css shadow without blur:
Set blur radius to 0
In the builder, set blur-radius explicitly to 0 pixels. This immediately produces a hard, sharp-edged shadow in the preview area, instantly switching the visual character from soft elevation to flat brutalist offset. Confirm the shadow looks crisp at every preview zoom level rather than blurry or partially feathered, which can happen if the builder retains a non-zero blur from a previous experiment that needs to be explicitly zeroed before the hard shadow look becomes available.
Adjust horizontal and vertical offset
Increase the X and Y offset values together, typically in the 3 to 6 pixel range for buttons and 4 to 8 pixels for cards, to create the diagonal hard shadow characteristic of brutalist design. Keep the horizontal and vertical offsets equal for a symmetrical 45-degree shadow direction that reads as the dominant style convention. Unequal offsets are also valid but feel less archetypal and may make the shadow look slightly off-balance to viewers accustomed to the standard symmetry.
Select a contrasting shadow colour
Choose black for the most classic brutalist treatment, or pick a dark version of the element fill colour for a richer, more designed retro look. Hard shadows rely on strong contrast against the underlying background to read clearly, because there is no blur to fall back on. Test the shadow colour against the actual page background rather than relying on the default white preview, which often flatters dark shadows in ways that production conditions do not match perfectly.
Copy the CSS and add an :active state
Click Copy CSS to copy the box-shadow declaration. Then add a matching :active state in your stylesheet that reduces the box-shadow value to none and applies a transform: translate() in the same direction and distance as the original offset values. This press feedback animation closes the visible offset gap on click, simulating the button being pushed into the surface and producing the satisfying tactile response that defines the brutalist click interaction pattern.
Common situations where this approach makes a real difference:
Neo-brutalist landing page for a design tool
A startup builds a landing page with a deliberate neo-brutalist aesthetic. Every card and button uses a 4px black hard shadow with no blur on a white background. The pressed button animation moves the element 4px into the shadow position on click. The overall effect immediately signals the brand's design-aware identity and stands out in a sea of soft-shadow material-style layouts.
Retro game leaderboard card
A developer builds a browser game leaderboard styled after 1980s arcade interfaces. Score cards use a 6px hard shadow in bright red on a dark background, with no blur and a pixel-grid border. The hard shadows reinforce the retro game aesthetic without requiring any custom graphics, using pure CSS throughout.
Interactive pricing card with press animation
A SaaS pricing page uses hard-shadow cards for each tier. On hover, the shadow deepens by 2px. On click (selecting a plan), the card animates with translate(6px, 6px) and the shadow disappears for 200ms before the page transitions. The press animation makes the selection feel satisfying and confirms the click clearly.
Newsletter sign-up callout block
A content site adds a newsletter sign-up section styled as a torn-paper note with a 5px hard shadow in dark navy. The sharp shadow edge makes the callout look like it is physically placed on top of the article content, drawing attention without using background colours or borders that might conflict with the article design.
Use this when building retro, brutalist, or flat-design UI elements that need a hard offset shadow rather than a soft, diffused elevation shadow.
Get better results with these expert suggestions:
Use the same value for offset and the matching transform on :active
If your hard shadow is offset 4 pixels right and 4 pixels down, the :active state should add transform: translate(4px, 4px) and reduce box-shadow to none at exactly the same moment. The element moves precisely into the shadow position and the shadow disappears, completing the press illusion without any blur transition or other softening trick. The match between offset distance and transform distance is what makes the press feel physically correct. Mismatched values look broken, because the gap fails to close cleanly when the button is pressed down.
Pair hard shadows with border for a complete brutalist card
A fully brutalist card typically combines four reinforcing visual elements: a 2 pixel solid border matching the shadow colour exactly, zero border-radius for sharp corners, a large hard shadow at 4 to 6 pixels of offset, and bold monospace or geometric type inside the card body. The border is what cleanly separates the card edge from the shadow, making both elements visible as distinct components rather than blending into a single muddy outline. Without the matching border, hard shadows on lightly coloured cards can read as visually weaker than intended at typical screen viewing distances.
Coloured hard shadows create richer retro effects
Instead of always defaulting to black, try a dark version of the element's own fill colour as the shadow colour for a more cohesive treatment. A yellow card with a dark amber hard shadow has a more intentional retro look than the same yellow card with a pure black shadow underneath it. The colour echo between fill and shadow makes the shadow feel integral to the design rather than a generic darkness applied uniformly across every component on the page. The same principle holds for pink with deep magenta and mint with forest green, which both read as deliberate stylistic choices.
Hard shadows at large offsets need extra element padding
A 12 pixel hard shadow on a card visually shifts the perceived bottom and right edges of the card outward by exactly 12 pixels, even though the underlying box model dimensions remain unchanged. Add equivalent padding or margin to the card container to prevent the shadow from being clipped by parent overflow rules or colliding visually with adjacent elements in a tight grid layout. Account for the shadow extent in your layout grid spacing calculations as well, otherwise the visual rhythm of the page will feel off without any single component looking obviously wrong on its own.
Match offset direction to establish a light source
Even hard shadows benefit from a consistent offset direction across all components. Lower-right offset (positive X and Y) is the most common, suggesting light from the upper-left. Mixing directions across components in the same page makes the layout feel incoherent.
Animate the offset on :active for press feedback
On :active, reduce the offset to 1px and add a matching translate() transform so the element moves into the shadow position. The gap closes visually, simulating a physical press. No blur change is required.
Use spread to add a framed effect
Adding a small spread (1-2px) alongside 0 blur creates a slightly larger shadow than the element, making the shadow appear as a thick border or frame rather than a displaced copy. This adds weight to the element at the cost of a slightly cartoonish look.
More use-case guides for the same tool:
Open the full Shadow Effect Builder — free, no account needed, works on any device.
Open Shadow Effect Builder →Free · No account needed · Works on any device