Tailwind CSS v1.0 is here! Learn more →

Box Shadows

Utilities for controlling the box shadow of an element.

Class reference

Class Properties
.shadow box-shadow: 0 2px 4px 0 rgba(0,0,0,0.10);
.shadow-md box-shadow: 0 4px 8px 0 rgba(0,0,0,0.12), 0 2px 4px 0 rgba(0,0,0,0.08);
.shadow-lg box-shadow: 0 15px 30px 0 rgba(0,0,0,0.11), 0 5px 15px 0 rgba(0,0,0,0.08);
.shadow-inner box-shadow: inset 0 2px 4px 0 rgba(0,0,0,0.06);
.shadow-outline box-shadow: 0 0 0 3px rgba(52,144,220,0.5);
.shadow-none box-shadow: none;

Outer shadow

Use the .shadow, .shadow-md, or .shadow-lg utilities to apply different sized outer box shadows to an element.

.shadow
.shadow-md
.shadow-lg
<div class="shadow"></div>
<div class="shadow-md"></div>
<div class="shadow-lg"></div>

Inner shadow

Use the .shadow-inner utility to apply a subtle inset box shadow to an element. This can be useful for things like form controls or wells.

.shadow-inner
<div class="shadow-inner"></div>

Outline shadow

Use the .shadow-outline utility to apply a focus-ring-style shadow to an element. This can be useful when combined with .focus:outline-none to create a better looking focus style that follows an element's border radius.

<button class="focus:outline-none focus:shadow-outline ...">
  Button
</button>

No shadow

Use .shadow-none to remove an existing box shadow from an element. This is most commonly used to remove a shadow that was applied at a smaller breakpoint.

.shadow-none
<div class="shadow-none"></div>

Responsive

To control the shadow of an element at a specific breakpoint, add a {screen}: prefix to any existing shadow utility. For example, use md:shadow-lg to apply the shadow-lg utility at only medium screen sizes and above.

For more information about Tailwind's responsive design features, check out the Responsive Design documentation.

Customizing

Box Shadows

By default Tailwind provides three drop shadow utilities, one inner shadow utility, and a utility for removing existing shadows. You can change, add, or remove these by editing the shadows section of your Tailwind config.

If a default shadow is provided, it will be used for the non-suffixed .shadow utility. Any other keys will be used as suffixes, for example the key '2' will create a corresponding .shadow-2 utility.

{
// ...
shadows: {
-   default: '0 2px 4px 0 rgba(0,0,0,0.10)',
-   'md': '0 4px 8px 0 rgba(0,0,0,0.12), 0 2px 4px 0 rgba(0,0,0,0.08)',
-   'lg': '0 15px 30px 0 rgba(0,0,0,0.11), 0 5px 15px 0 rgba(0,0,0,0.08)',
-   'inner': 'inset 0 2px 4px 0 rgba(0,0,0,0.06)',
-   'outline': '0 0 0 3px rgba(52,144,220,0.5)',
+   '1': '0 2px 4px rgba(0,0,0,0.05)',
+   '2': '0 4px 8px rgba(0,0,0,0.1)',
+   '3': '0 8px 16px rgba(0,0,0,0.15)',
    'none': 'none',
}
}

Responsive and State Variants

By default, only responsive, hover and focus variants are generated for shadow utilities.

You can control which variants are generated for the shadow utilities by modifying the shadows property in the modules section of your Tailwind config file.

For example, this config will also generate variants:

{
// ...
modules: {
    // ...
-   shadows: ['responsive', 'hover', 'focus'],
+   shadows: ['responsive', 'hover', 'focus', 'active', 'group-hover'],
}
}

Disabling

If you don't plan to use the shadow utilities in your project, you can disable them entirely by setting the shadows property to false in the modules section of your config file:

{
// ...
modules: {
    // ...
-   shadows: ['responsive', 'hover', 'focus'],
+   shadows: false,
}
}