Soft Whisper
Softbox-shadow: 0 1px 2px rgba(0,0,0,0.04);shadow-smA hand-picked library of ready-made CSS shadows and Tailwind shadows — soft shadows, card shadows, material shadows, glassmorphism, neumorphism and more. Preview every shadow live and copy the CSS or Tailwind class in one click. No CSS shadow generator needed.
Showing 100 of 100 CSS box shadows
box-shadow: 0 1px 2px rgba(0,0,0,0.04);shadow-smbox-shadow: 0 2px 4px rgba(0,0,0,0.05);shadow-[0_2px_4px_rgba(0,0,0,0.05)]box-shadow: 0 4px 8px rgba(0,0,0,0.06);shadow-[0_4px_8px_rgba(0,0,0,0.06)]box-shadow: 0 6px 12px rgba(0,0,0,0.07);shadow-[0_6px_12px_rgba(0,0,0,0.07)]box-shadow: 0 8px 16px rgba(0,0,0,0.06);shadow-[0_8px_16px_rgba(0,0,0,0.06)]box-shadow: 0 3px 10px rgba(0,0,0,0.08);shadow-[0_3px_10px_rgba(0,0,0,0.08)]box-shadow: 0 10px 20px rgba(0,0,0,0.05);shadow-[0_10px_20px_rgba(0,0,0,0.05)]box-shadow: 0 2px 6px rgba(0,0,0,0.06);shadow-[0_2px_6px_rgba(0,0,0,0.06)]box-shadow: 0 5px 14px rgba(0,0,0,0.09);shadow-[0_5px_14px_rgba(0,0,0,0.09)]box-shadow: 0 4px 10px rgba(0,0,0,0.05);shadow-[0_4px_10px_rgba(0,0,0,0.05)]box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.03);shadowbox-shadow: 0 12px 24px rgba(0,0,0,0.06);shadow-[0_12px_24px_rgba(0,0,0,0.06)]box-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);shadow-mdbox-shadow: 0 4px 6px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.06);shadow-lgbox-shadow: 0 10px 15px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05);shadow-xlbox-shadow: 0 20px 25px rgba(0,0,0,0.1), 0 8px 10px rgba(0,0,0,0.04);shadow-2xlbox-shadow: 0 1px 2px rgba(0,0,0,0.08);shadow-smbox-shadow: 0 2px 8px rgba(0,0,0,0.09);shadow-[0_2px_8px_rgba(0,0,0,0.09)]box-shadow: 0 6px 16px rgba(0,0,0,0.1);shadow-[0_6px_16px_rgba(0,0,0,0.1)]box-shadow: 0 8px 20px rgba(0,0,0,0.08);shadow-[0_8px_20px_rgba(0,0,0,0.08)]box-shadow: 0 3px 12px rgba(0,0,0,0.07);shadow-[0_3px_12px_rgba(0,0,0,0.07)]box-shadow: 0 4px 14px rgba(0,0,0,0.09);shadow-[0_4px_14px_rgba(0,0,0,0.09)]box-shadow: 0 5px 18px rgba(0,0,0,0.08);shadow-[0_5px_18px_rgba(0,0,0,0.08)]box-shadow: 0 2px 10px rgba(0,0,0,0.1);shadow-[0_2px_10px_rgba(0,0,0,0.1)]box-shadow: 0 1px 1px rgba(0,0,0,0.11), 0 2px 2px rgba(0,0,0,0.11);shadow-[0_1px_1px_rgba(0,0,0,0.11),0_2px_2px_rgba(0,0,0,0.11)]box-shadow: 0 2px 2px rgba(0,0,0,0.12), 0 3px 4px rgba(0,0,0,0.1);shadow-[0_2px_2px_rgba(0,0,0,0.12),0_3px_4px_rgba(0,0,0,0.1)]box-shadow: 0 3px 4px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.1);shadow-[0_3px_4px_rgba(0,0,0,0.12),0_4px_8px_rgba(0,0,0,0.1)]box-shadow: 0 4px 5px rgba(0,0,0,0.14), 0 6px 10px rgba(0,0,0,0.12);shadow-[0_4px_5px_rgba(0,0,0,0.14),0_6px_10px_rgba(0,0,0,0.12)]box-shadow: 0 6px 10px rgba(0,0,0,0.14), 0 8px 14px rgba(0,0,0,0.12);shadow-[0_6px_10px_rgba(0,0,0,0.14),0_8px_14px_rgba(0,0,0,0.12)]box-shadow: 0 8px 10px rgba(0,0,0,0.14), 0 10px 18px rgba(0,0,0,0.12);shadow-[0_8px_10px_rgba(0,0,0,0.14),0_10px_18px_rgba(0,0,0,0.12)]box-shadow: 0 12px 17px rgba(0,0,0,0.14), 0 16px 24px rgba(0,0,0,0.12);shadow-[0_12px_17px_rgba(0,0,0,0.14),0_16px_24px_rgba(0,0,0,0.12)]box-shadow: 0 16px 24px rgba(0,0,0,0.14), 0 20px 31px rgba(0,0,0,0.12);shadow-[0_16px_24px_rgba(0,0,0,0.14),0_20px_31px_rgba(0,0,0,0.12)]box-shadow: 0 24px 38px rgba(0,0,0,0.14), 0 28px 45px rgba(0,0,0,0.12);shadow-[0_24px_38px_rgba(0,0,0,0.14),0_28px_45px_rgba(0,0,0,0.12)]box-shadow: 0 2px 4px -1px rgba(0,0,0,0.2), 0 4px 5px rgba(0,0,0,0.14);shadow-[0_2px_4px_-1px_rgba(0,0,0,0.2),0_4px_5px_rgba(0,0,0,0.14)]box-shadow: 0 15px 25px -5px rgba(0,0,0,0.1);shadow-[0_15px_25px_-5px_rgba(0,0,0,0.1)]box-shadow: 0 20px 30px -8px rgba(0,0,0,0.15);shadow-[0_20px_30px_-8px_rgba(0,0,0,0.15)]box-shadow: 0 25px 40px -10px rgba(0,0,0,0.2);shadow-[0_25px_40px_-10px_rgba(0,0,0,0.2)]box-shadow: 0 30px 50px -12px rgba(0,0,0,0.18);shadow-[0_30px_50px_-12px_rgba(0,0,0,0.18)]box-shadow: 0 18px 28px -6px rgba(0,0,0,0.16);shadow-[0_18px_28px_-6px_rgba(0,0,0,0.16)]box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25);shadow-2xlbox-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);shadow-lgbox-shadow: 0 12px 20px -4px rgba(0,0,0,0.14);shadow-[0_12px_20px_-4px_rgba(0,0,0,0.14)]box-shadow: 0 14px 24px -6px rgba(0,0,0,0.16);shadow-[0_14px_24px_-6px_rgba(0,0,0,0.16)]box-shadow: 0 8px 16px -4px rgba(0,0,0,0.12);shadow-[0_8px_16px_-4px_rgba(0,0,0,0.12)]box-shadow: 0 10px 25px rgba(59,130,246,0.35);shadow-[0_10px_25px_rgba(59,130,246,0.35)]box-shadow: 0 10px 25px rgba(99,102,241,0.35);shadow-[0_10px_25px_rgba(99,102,241,0.35)]box-shadow: 0 10px 25px rgba(168,85,247,0.35);shadow-[0_10px_25px_rgba(168,85,247,0.35)]box-shadow: 0 10px 25px rgba(236,72,153,0.35);shadow-[0_10px_25px_rgba(236,72,153,0.35)]box-shadow: 0 10px 25px rgba(239,68,68,0.35);shadow-[0_10px_25px_rgba(239,68,68,0.35)]box-shadow: 0 10px 25px rgba(249,115,22,0.35);shadow-[0_10px_25px_rgba(249,115,22,0.35)]box-shadow: 0 10px 25px rgba(245,158,11,0.35);shadow-[0_10px_25px_rgba(245,158,11,0.35)]box-shadow: 0 10px 25px rgba(34,197,94,0.35);shadow-[0_10px_25px_rgba(34,197,94,0.35)]box-shadow: 0 10px 25px rgba(20,184,166,0.35);shadow-[0_10px_25px_rgba(20,184,166,0.35)]box-shadow: 0 10px 25px rgba(6,182,212,0.35);shadow-[0_10px_25px_rgba(6,182,212,0.35)]box-shadow: 0 1px 2px rgba(0,0,0,0.1);shadow-smbox-shadow: 0 4px 6px rgba(0,0,0,0.15);shadow-mdbox-shadow: 0 2px 0 rgba(0,0,0,0.2);shadow-[0_2px_0_rgba(0,0,0,0.2)]box-shadow: 0 6px 14px rgba(59,130,246,0.4);shadow-[0_6px_14px_rgba(59,130,246,0.4)]box-shadow: 0 6px 14px rgba(239,68,68,0.4);shadow-[0_6px_14px_rgba(239,68,68,0.4)]box-shadow: 0 6px 14px rgba(34,197,94,0.4);shadow-[0_6px_14px_rgba(34,197,94,0.4)]box-shadow: 0 0 0 1px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.06);shadow-[0_0_0_1px_rgba(0,0,0,0.08),0_2px_4px_rgba(0,0,0,0.06)]box-shadow: 0 8px 18px rgba(0,0,0,0.12);shadow-[0_8px_18px_rgba(0,0,0,0.12)]box-shadow: 0 4px 0 rgba(0,0,0,0.25), 0 6px 10px rgba(0,0,0,0.15);shadow-[0_4px_0_rgba(0,0,0,0.25),0_6px_10px_rgba(0,0,0,0.15)]box-shadow: 0 1px 3px rgba(0,0,0,0.08);shadow-[0_1px_3px_rgba(0,0,0,0.08)]box-shadow: 0 4px 12px rgba(0,0,0,0.5);shadow-[0_4px_12px_rgba(0,0,0,0.5)]box-shadow: 0 8px 20px rgba(0,0,0,0.45);shadow-[0_8px_20px_rgba(0,0,0,0.45)]box-shadow: 0 20px 40px rgba(0,0,0,0.6);shadow-[0_20px_40px_rgba(0,0,0,0.6)]box-shadow: 4px 0 12px rgba(0,0,0,0.4);shadow-[4px_0_12px_rgba(0,0,0,0.4)]box-shadow: 0 2px 10px rgba(0,0,0,0.5);shadow-[0_2px_10px_rgba(0,0,0,0.5)]box-shadow: 0 0 20px rgba(59,130,246,0.5);shadow-[0_0_20px_rgba(59,130,246,0.5)]box-shadow: 0 0 20px rgba(168,85,247,0.5);shadow-[0_0_20px_rgba(168,85,247,0.5)]box-shadow: inset 0 2px 6px rgba(0,0,0,0.6);shadow-[inset_0_2px_6px_rgba(0,0,0,0.6)]box-shadow: 0 6px 16px rgba(0,0,0,0.55);shadow-[0_6px_16px_rgba(0,0,0,0.55)]box-shadow: 0 12px 28px rgba(0,0,0,0.5);shadow-[0_12px_28px_rgba(0,0,0,0.5)]box-shadow: 0 8px 32px rgba(31,38,135,0.15);shadow-[0_8px_32px_rgba(31,38,135,0.15)]box-shadow: 0 4px 30px rgba(0,0,0,0.1);shadow-[0_4px_30px_rgba(0,0,0,0.1)]box-shadow: 0 8px 32px rgba(31,38,135,0.2);shadow-[0_8px_32px_rgba(31,38,135,0.2)]box-shadow: 0 10px 40px rgba(31,38,135,0.18);shadow-[0_10px_40px_rgba(31,38,135,0.18)]box-shadow: 0 12px 48px rgba(31,38,135,0.22);shadow-[0_12px_48px_rgba(31,38,135,0.22)]box-shadow: 0 8px 32px rgba(59,130,246,0.15);shadow-[0_8px_32px_rgba(59,130,246,0.15)]box-shadow: 0 4px 24px rgba(31,38,135,0.12);shadow-[0_4px_24px_rgba(31,38,135,0.12)]box-shadow: 0 16px 48px rgba(31,38,135,0.25);shadow-[0_16px_48px_rgba(31,38,135,0.25)]box-shadow: 0 6px 20px rgba(31,38,135,0.1);shadow-[0_6px_20px_rgba(31,38,135,0.1)]box-shadow: 8px 8px 16px rgba(163,177,198,0.6), -8px -8px 16px rgba(255,255,255,0.8);shadow-[8px_8px_16px_rgba(163,177,198,0.6),-8px_-8px_16px_rgba(255,255,255,0.8)]box-shadow: inset 6px 6px 12px rgba(163,177,198,0.6), inset -6px -6px 12px rgba(255,255,255,0.8);shadow-[inset_6px_6px_12px_rgba(163,177,198,0.6),inset_-6px_-6px_12px_rgba(255,255,255,0.8)]box-shadow: 4px 4px 10px rgba(163,177,198,0.5), -4px -4px 10px rgba(255,255,255,0.7);shadow-[4px_4px_10px_rgba(163,177,198,0.5),-4px_-4px_10px_rgba(255,255,255,0.7)]box-shadow: 12px 12px 24px rgba(163,177,198,0.7), -12px -12px 24px rgba(255,255,255,0.9);shadow-[12px_12px_24px_rgba(163,177,198,0.7),-12px_-12px_24px_rgba(255,255,255,0.9)]box-shadow: 5px 5px 10px rgba(163,177,198,0.5), -5px -5px 10px rgba(255,255,255,0.75);shadow-[5px_5px_10px_rgba(163,177,198,0.5),-5px_-5px_10px_rgba(255,255,255,0.75)]box-shadow: 2px 2px 6px rgba(163,177,198,0.4), -2px -2px 6px rgba(255,255,255,0.6);shadow-[2px_2px_6px_rgba(163,177,198,0.4),-2px_-2px_6px_rgba(255,255,255,0.6)]box-shadow: 6px 6px 14px rgba(163,177,198,0.55), -6px -6px 14px rgba(255,255,255,0.8);shadow-[6px_6px_14px_rgba(163,177,198,0.55),-6px_-6px_14px_rgba(255,255,255,0.8)]box-shadow: inset 3px 3px 8px rgba(163,177,198,0.5), inset -3px -3px 8px rgba(255,255,255,0.7);shadow-[inset_3px_3px_8px_rgba(163,177,198,0.5),inset_-3px_-3px_8px_rgba(255,255,255,0.7)]box-shadow: 16px 16px 32px rgba(163,177,198,0.6), -16px -16px 32px rgba(255,255,255,0.85);shadow-[16px_16px_32px_rgba(163,177,198,0.6),-16px_-16px_32px_rgba(255,255,255,0.85)]box-shadow: 0 10px 30px rgba(202,138,4,0.3), 0 2px 6px rgba(0,0,0,0.1);shadow-[0_10px_30px_rgba(202,138,4,0.3),0_2px_6px_rgba(0,0,0,0.1)]box-shadow: 0 2px 4px rgba(0,0,0,0.06), 0 8px 16px rgba(0,0,0,0.08), 0 24px 32px rgba(0,0,0,0.06);shadow-[0_2px_4px_rgba(0,0,0,0.06),0_8px_16px_rgba(0,0,0,0.08),0_24px_32px_rgba(0,0,0,0.06)]box-shadow: 0 1px 2px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.07), 0 4px 8px rgba(0,0,0,0.07), 0 8px 16px rgba(0,0,0,0.07);shadow-[0_1px_2px_rgba(0,0,0,0.07),0_2px_4px_rgba(0,0,0,0.07),0_4px_8px_rgba(0,0,0,0.07),0_8px_16px_rgba(0,0,0,0.07)]box-shadow: 0 20px 60px rgba(59,130,246,0.25), 0 4px 12px rgba(0,0,0,0.08);shadow-[0_20px_60px_rgba(59,130,246,0.25),0_4px_12px_rgba(0,0,0,0.08)]box-shadow: 0 0 0 1px rgba(0,0,0,0.05), 0 12px 24px rgba(0,0,0,0.1);shadow-[0_0_0_1px_rgba(0,0,0,0.05),0_12px_24px_rgba(0,0,0,0.1)]box-shadow: 0 30px 60px -12px rgba(0,0,0,0.25), 0 18px 36px -18px rgba(0,0,0,0.3);shadow-[0_30px_60px_-12px_rgba(0,0,0,0.25),0_18px_36px_-18px_rgba(0,0,0,0.3)]box-shadow: 0 15px 35px rgba(0,0,0,0.15), 0 5px 15px rgba(0,0,0,0.1);shadow-[0_15px_35px_rgba(0,0,0,0.15),0_5px_15px_rgba(0,0,0,0.1)]box-shadow: 0 8px 10px rgba(0,0,0,0.06), 0 20px 25px rgba(0,0,0,0.1);shadow-[0_8px_10px_rgba(0,0,0,0.06),0_20px_25px_rgba(0,0,0,0.1)]Shadows are one of the simplest ways to add depth, hierarchy, and polish to a web interface. This guide walks through everything you need to know about CSS box shadows — from basic syntax to advanced techniques used in material shadows, glassmorphism shadows, and neumorphism shadows — so you can go beyond copy-pasting and actually understand what each value does.
The box-shadow property in CSS lets you attach one or more shadows to an element's box. Instead of relying on background images or extra markup, a single declaration can lift a button off the page, separate a card from its background, or simulate a soft ambient light source behind a modal. Because it's a native CSS property, box shadows are lightweight, easy to animate, and simple to theme with CSS variables.
The full syntax for box-shadow looks like this:
box-shadow: [inset] offsetX offsetY blurRadius spreadRadius color;Only offsetX, offsetY, and color are commonly required — blur radius and spread radius are optional and default to zero. You can also chain multiple shadows by separating them with commas, which is how many of the modern CSS shadows in this collection achieve their layered, realistic depth.
The first length value controls how far the shadow moves left or right. Positive values push the shadow to the right; negative values push it left. Most soft shadows for cards and buttons keep this value close to zero for a balanced, centered look.
The second length value controls how far the shadow moves up or down. Positive values push the shadow downward, which is the most common choice since it mimics light coming from above — a pattern used across nearly every modern UI shadow style, from floating cards to dropdown menus.
Blur radius controls how soft or sharp the shadow's edge appears. A value of 0 produces a solid, hard-edged shadow, while larger values spread the shadow into a soft gradient. Increasing blur is the fastest way to turn a harsh shadow into a soft shadow.
Spread radius expands or contracts the shadow's size before the blur is applied. Positive values make the shadow larger than the element; negative values shrink it. Spread is especially useful for glow effects and colored shadows around buttons.
Shadow color is usually defined with rgba() or hsla() so you can control opacity independently of hue. Low-opacity black is the default choice for neutral UI shadows, while brand-colored shadows with reduced opacity create the glowing, colored shadow effect popular in modern SaaS interfaces.
Adding the inset keyword flips the shadow to render inside the element's border instead of outside it. Inset shadows are the foundation of neumorphism shadows and pressed-button states, giving elements a carved-in, tactile appearance.
You're not limited to one shadow per element. Comma-separated shadows let you layer a tight, dark shadow with a wider, softer one — the exact technique material shadows use to simulate both a direct light source and ambient occlusion in a single element.
The gallery above includes 100 ready CSS box shadows across ten categories, so instead of tweaking values from scratch, you can browse soft shadows, colored shadows, and premium shadow examples, then copy the exact CSS or Tailwind class you need.
Modern interfaces tend to favor subtlety over drama. Keep opacity low, blur generous, and offsets small unless you're specifically designing a floating or premium shadow for a hero element. Consistent shadow direction across a page also reinforces a believable, unified light source.
Material Design shadows are built around elevation levels — the higher an element "floats," the larger and softer its shadow becomes. Two stacked shadow layers, one tight and dark, one wide and soft, are the classic recipe behind Google's Material shadow system.
Soft UI leans on gentle, low-contrast shadows with generous blur and minimal offset. This style works well for dashboards, SaaS onboarding flows, and any interface that wants to feel calm rather than punchy.
Glassmorphism pairs a translucent, blurred background (using backdrop-filter: blur()) with a soft, wide shadow underneath to make panels feel like frosted glass floating above the page. The shadow itself is usually a muted, slightly cool tone rather than pure black.
Neumorphism combines two shadows on the same element — a light shadow offset toward the light source and a dark shadow offset away from it — on a background that matches the element's own color. The result is a soft, extruded, almost physical look built entirely from CSS shadows.
Button shadows CSS typically use a small offset and moderate blur to suggest a raised, clickable surface, often paired with a colored glow on primary actions to draw the eye. On press or active states, reducing the shadow simulates the button being pushed down.
CSS card shadows should be just strong enough to separate the card from its background without competing with the content inside it. A soft, low-opacity shadow that intensifies slightly on hover is a reliable pattern for product cards, pricing tables, and blog previews.
Tailwind CSS ships a set of default shadow utilities — shadow-sm, shadow, shadow-md, shadow-lg, shadow-xl, and shadow-2xl — covering most common use cases out of the box. When a design calls for something more specific, Tailwind shadows can be extended with arbitrary values, such as shadow-[0_10px_25px_rgba(59,130,246,0.35)], which is exactly how the Tailwind classes in this collection are built for colored and premium shadow effects.
box-shadow draws a shadow based on an element's rectangular (or rounded) box, while filter: drop-shadow() follows the actual visible shape of the content, including transparent regions in PNGs and SVGs. Use drop-shadow for icons and irregularly shaped graphics, and box-shadow for cards, buttons, and standard UI containers.
box-shadow is supported in every modern browser, including Chrome, Firefox, Safari, and Edge, with no vendor prefixes required. It has been part of the CSS specification for well over a decade, making it one of the safest visual properties to rely on in production.
Shadows should never be the only signal for interactive states — pair them with color, underline, or border changes so the interface stays usable for people with low vision. Also ensure text sitting on top of a shadowed background maintains sufficient contrast against its surface.
Avoid animating box-shadow directly on hover or scroll, since browsers must repaint the shadow on every frame. Instead, animate opacity on a pseudo-element that already has the shadow applied, or use transform for movement and let the shadow stay static.
The most common mistake is using pure black at high opacity, which makes shadows look heavy and dated. Other frequent issues include stacking too many shadows on one element, ignoring a consistent light direction across the page, and forgetting that large blur radii can affect layout if not accounted for with padding or overflow rules.
Keep a small, consistent set of shadow tokens across your design system rather than inventing a new shadow for every component. Use low opacity, favor blur over hard offsets, and reserve stronger shadows for elements that truly need to command attention, like modals and floating action buttons.
CSS box shadows are a small property with an outsized impact on how polished an interface feels. Whether you need soft shadows, material shadows, glassmorphism shadows, or neumorphism shadows, understanding offset, blur, spread, and color gives you full control — and the 100 ready CSS shadows above give you a fast, copy-paste starting point for any project.
Answers to common questions about CSS box shadows, Tailwind shadows, and how to use this shadow gallery.
Explore more tools from DigitalDevTools to speed up your frontend workflow.