Shadows
Add or remove shadows to elements with box-shadow utilities.
On this page
Box-shadow styles are referred to as ’elevation’ within the design system.
ExamplesLink to this section: Examples
You can quickly add or remove a shadow with our box-shadow
utility classes. Includes support for .shadow-none
and new semantic helpers.
<div class="shadow-none p-lg mb-4xl bg-secondary">No shadow</div>
<div class="shadow-default p-lg mb-4xl bg-secondary">Default shadow</div>
<div class="shadow-drag p-lg mb-4xl bg-secondary">Drag shadow</div>
<div class="shadow-emphasized p-lg mb-4xl bg-secondary">Emphasized shadow</div>
<div class="shadow-raised p-lg mb-4xl bg-secondary">Raised shadow</div>
<div class="shadow-sticky-default p-lg mb-4xl bg-secondary">Sticky default shadow</div>
<div class="shadow-sticky-emphasized p-lg mb-4xl bg-secondary">Sticky emphasized shadow</div>
<div class="shadow-sticky-navigation-scrolled p-lg mb-4xl bg-secondary">Sticky navigation shadow</div>
Bootstrap
$enable-bootstrap-compatibility: true
This part is enabled only when $enable-bootstrap-compatibility
is set to true
. Read more
about Bootstrap compatibility.
Includes support for three default sizes (which have associated variables to match).
<div class="shadow-none p-3 mb-5 bg-body-tertiary">No shadow</div>
<div class="shadow-sm p-3 mb-5 bg-body-tertiary">Small shadow</div>
<div class="shadow p-3 mb-5 bg-body-tertiary">Regular shadow</div>
<div class="shadow-lg p-3 mb-5 bg-body-tertiary">Larger shadow</div>
CSSLink to this section: CSS
Sass tokensLink to this section: Sass tokens
Semantic tokensLink to this section: Semantic tokens
Shadow semantic tokens as Sass variables.
$ouds-elevation-blur-default: $core-ouds-elevation-blur-300;
$ouds-elevation-blur-drag: $core-ouds-elevation-blur-400;
$ouds-elevation-blur-emphasized: $core-ouds-elevation-blur-600;
$ouds-elevation-blur-none: $core-ouds-elevation-blur-0;
$ouds-elevation-blur-raised: $core-ouds-elevation-blur-200;
$ouds-elevation-blur-sticky-default: $core-ouds-elevation-blur-400;
$ouds-elevation-blur-sticky-emphasized: $core-ouds-elevation-blur-400;
$ouds-elevation-blur-sticky-navigation-scrolled: $core-ouds-elevation-blur-400;
$ouds-elevation-color-default: $core-ouds-color-opacity-black-240;
$ouds-elevation-color-drag: $core-ouds-color-opacity-black-320;
$ouds-elevation-color-emphasized: $core-ouds-color-opacity-black-160;
$ouds-elevation-color-none: $core-ouds-color-opacity-black-0;
$ouds-elevation-color-raised: $core-ouds-color-opacity-black-320;
$ouds-elevation-color-sticky-default: $core-ouds-color-opacity-black-160;
$ouds-elevation-color-sticky-emphasized: $core-ouds-color-opacity-black-160;
$ouds-elevation-color-sticky-navigation-scrolled: $core-ouds-color-opacity-black-160;
$ouds-elevation-spread-default: $core-ouds-elevation-spread-n100;
$ouds-elevation-spread-drag: $core-ouds-elevation-spread-n100;
$ouds-elevation-spread-emphasized: $core-ouds-elevation-spread-n300;
$ouds-elevation-spread-none: $core-ouds-elevation-spread-0;
$ouds-elevation-spread-raised: $core-ouds-elevation-spread-0;
$ouds-elevation-spread-sticky-default: $core-ouds-elevation-spread-n100;
$ouds-elevation-spread-sticky-emphasized: $core-ouds-elevation-spread-n100;
$ouds-elevation-spread-sticky-navigation-scrolled: $core-ouds-elevation-spread-n100;
$ouds-elevation-x-default: $core-ouds-elevation-x-0;
$ouds-elevation-x-drag: $core-ouds-elevation-x-0;
$ouds-elevation-x-emphasized: $core-ouds-elevation-x-0;
$ouds-elevation-x-none: $core-ouds-elevation-x-0;
$ouds-elevation-x-raised: $core-ouds-elevation-x-0;
$ouds-elevation-x-sticky-default: $core-ouds-elevation-x-0;
$ouds-elevation-x-sticky-emphasized: $core-ouds-elevation-x-0;
$ouds-elevation-x-sticky-navigation-scrolled: $core-ouds-elevation-x-0;
$ouds-elevation-y-default: $core-ouds-elevation-y-200;
$ouds-elevation-y-drag: $core-ouds-elevation-y-300;
$ouds-elevation-y-emphasized: $core-ouds-elevation-y-500;
$ouds-elevation-y-none: $core-ouds-elevation-y-0;
$ouds-elevation-y-raised: $core-ouds-elevation-y-100;
$ouds-elevation-y-sticky-default: $core-ouds-elevation-y-300;
$ouds-elevation-y-sticky-emphasized: $core-ouds-elevation-y-300;
$ouds-elevation-y-sticky-navigation-scrolled: $core-ouds-elevation-y-300;
Composite tokensLink to this section: Composite tokens
Shadow composite tokens are defined as Sass variables.
$ouds-elevation-default: $ouds-elevation-x-default $ouds-elevation-y-default $ouds-elevation-blur-default $ouds-elevation-spread-default var(--#{$prefix}elevation-color-default);
$ouds-elevation-drag: $ouds-elevation-x-drag $ouds-elevation-y-drag $ouds-elevation-blur-drag $ouds-elevation-spread-drag var(--#{$prefix}elevation-color-drag);
$ouds-elevation-emphasized: $ouds-elevation-x-emphasized $ouds-elevation-y-emphasized $ouds-elevation-blur-emphasized $ouds-elevation-spread-emphasized var(--#{$prefix}elevation-color-emphasized);
$ouds-elevation-none: $ouds-elevation-x-none $ouds-elevation-y-none $ouds-elevation-blur-none $ouds-elevation-spread-none var(--#{$prefix}elevation-color-none);
$ouds-elevation-raised: $ouds-elevation-x-raised $ouds-elevation-y-raised $ouds-elevation-blur-raised $ouds-elevation-spread-raised var(--#{$prefix}elevation-color-raised);
$ouds-elevation-sticky-default: $ouds-elevation-x-sticky-default $ouds-elevation-y-sticky-default $ouds-elevation-blur-sticky-default $ouds-elevation-spread-sticky-default var(--#{$prefix}elevation-color-sticky-default);
$ouds-elevation-sticky-emphasized: $ouds-elevation-x-sticky-emphasized $ouds-elevation-y-sticky-emphasized $ouds-elevation-blur-sticky-emphasized $ouds-elevation-spread-sticky-emphasized var(--#{$prefix}elevation-color-sticky-emphasized);
$ouds-elevation-sticky-navigation-scrolled: $ouds-elevation-x-sticky-navigation-scrolled $ouds-elevation-y-sticky-navigation-scrolled $ouds-elevation-blur-sticky-navigation-scrolled $ouds-elevation-spread-sticky-navigation-scrolled var(--#{$prefix}elevation-color-sticky-navigation-scrolled);
Sass variablesLink to this section: Sass variables
$box-shadow: $ouds-elevation-default; // OUDS mod: instead of `0 .5rem 1rem rgba($black, .15)`
$box-shadow-sm: $ouds-elevation-default; // OUDS mod: instead of `0 .125rem .25rem rgba($black, .075)`
$box-shadow-lg: $ouds-elevation-emphasized; // OUDS mod: instead of `0 1rem 3rem rgba($black, .175)`
$box-shadow-inset: null; // OUDS mod: instead of `inset 0 1px 2px rgba($black, .075)`
Sass mapsLink to this section: Sass maps
$ouds-elevations: (
"default": $ouds-elevation-default,
"drag": $ouds-elevation-drag,
"emphasized": $ouds-elevation-emphasized,
"none": $ouds-elevation-none,
"raised": $ouds-elevation-raised,
"sticky-default": $ouds-elevation-sticky-default,
"sticky-emphasized": $ouds-elevation-sticky-emphasized,
"sticky-navigation-scrolled": $ouds-elevation-sticky-navigation-scrolled
);
Sass utilities APILink to this section: Sass utilities API
Shadow utilities are declared in our utilities API in scss/_utilities.scss
. Learn how to use the utilities API.
"shadow-ouds": (
property: box-shadow,
class: shadow,
values: $ouds-elevations
),
Bootstrap
$enable-bootstrap-compatibility: true
This part is enabled only when $enable-bootstrap-compatibility
is set to true
. Read more
about Bootstrap compatibility.
"shadow": (
property: box-shadow,
class: shadow,
values: (
null: var(--#{$prefix}box-shadow),
sm: var(--#{$prefix}box-shadow-sm),
lg: var(--#{$prefix}box-shadow-lg),
// OUDS mod: `none` value handled by `shadow-ouds`
),
bootstrap-compatibility: true
),
// scss-docs-end utils-shadow
// OUDS mod
// scss-docs-start utils-shadow-ouds
"shadow-ouds": (
property: box-shadow,
class: shadow,
values: $ouds-elevations
),