Compass Box Shadow
The box-shadow mixins are used to apply an inset or drop shadow to a block element.
This file can be imported using:
@import "compass/css3/box-shadow"
Examples
- Box-shadow
- css3 mixin for box-shadow
Imports
- Browser Support – Provides configuration options for the Compass Browser Support Matrix.
Configurable Variables help
$box-shadow-support-threshold
$graceful-usage-threshold
The prefixed support threshold for box-shadow. Defaults to the $graceful-usage-threshold.
$default-box-shadow-color
#333333
The default color for box shadows
$default-box-shadow-h-offset
0px
The default horizontal offset. Positive is to the right.
$default-box-shadow-v-offset
0px
The default vertical offset. Positive is down.
$default-box-shadow-blur
5px
The default blur length.
$default-box-shadow-spread
null
The default spread length.
$default-box-shadow-inset
null
The default shadow inset: inset or null (for standard shadow).
Functions
view sourcedefault-box-shadow
@function default-box-shadow() @return compact(if($default-box-shadow-inset, inset, null) $default-box-shadow-h-offset $default-box-shadow-v-offset $default-box-shadow-blur $default-box-shadow-spread $default-box-shadow-color)
@function default-box-shadow() {
@return compact(if($default-box-shadow-inset, inset, null) $default-box-shadow-h-offset $default-box-shadow-v-offset $default-box-shadow-blur $default-box-shadow-spread $default-box-shadow-color);
}
Mixins
view sourcebox-shadow
=box-shadow($shadow...) $shadow: set-arglist-default($shadow, default-box-shadow()) +prefixed-properties(css-boxshadow, $box-shadow-support-threshold, (box-shadow: $shadow))
@mixin box-shadow($shadow...) {
$shadow: set-arglist-default($shadow, default-box-shadow());
@include prefixed-properties(css-boxshadow, $box-shadow-support-threshold, (box-shadow: $shadow));
}
Provides cross-browser for Webkit, Gecko, and CSS3 box shadows when one or more box shadows are needed. Each shadow argument should adhere to the standard css3 syntax for the box-shadow property.
single-box-shadow($hoff, $voff, $blur, $spread, $color, $inset)
=single-box-shadow($hoff: null, $voff: null, $blur: null, $spread: null, $color: null, $inset: $default-box-shadow-inset)
// Handle legacy argument order
@if not ($hoff == none or $hoff == null) and type-of($hoff) != number
@warn "The $color argument for single-box-shadow is now the 5th argument instead of the 1st."
$tmp-color: $color
$color: $hoff
$hoff: $voff
$voff: $blur
$blur: $spread
$spread: $tmp-color
// Need to set these defaults here instead of the arglist to support the above backwards compat handling
@if $hoff == null
$hoff: $default-box-shadow-h-offset
@if $voff == null
$hoff: $default-box-shadow-v-offset
@if $blur == null
$blur: $default-box-shadow-blur
@if $spread == null
$spread: $default-box-shadow-spread
@if $color == null
$color: $default-box-shadow-color
@if not ($inset == true or $inset == false or $inset == null or $inset == inset)
@warn "$inset expected to be true or the inset keyword. Got #{$inset} instead. Using: inset"
@if $hoff == none
+box-shadow(none)
@else
$full: $hoff $voff
@if $blur
$full: $full $blur
@if $spread
$full: $full $spread
@if $color
$full: $full $color
@if $inset
$full: inset $full
+box-shadow($full)
@mixin single-box-shadow($hoff: null, $voff: null, $blur: null, $spread: null, $color: null, $inset: $default-box-shadow-inset) {
// Handle legacy argument order
@if not ($hoff == none or $hoff == null) and type-of($hoff) != number {
@warn "The $color argument for single-box-shadow is now the 5th argument instead of the 1st.";
$tmp-color: $color;
$color: $hoff;
$hoff: $voff;
$voff: $blur;
$blur: $spread;
$spread: $tmp-color;
}
// Need to set these defaults here instead of the arglist to support the above backwards compat handling
@if $hoff == null {
$hoff: $default-box-shadow-h-offset;
}
@if $voff == null {
$hoff: $default-box-shadow-v-offset;
}
@if $blur == null {
$blur: $default-box-shadow-blur;
}
@if $spread == null {
$spread: $default-box-shadow-spread;
}
@if $color == null {
$color: $default-box-shadow-color;
}
@if not ($inset == true or $inset == false or $inset == null or $inset == inset) {
@warn "$inset expected to be true or the inset keyword. Got #{$inset} instead. Using: inset";
}
@if $hoff == none {
@include box-shadow(none);
}
@else {
$full: $hoff $voff;
@if $blur {
$full: $full $blur;
}
@if $spread {
$full: $full $spread;
}
@if $color {
$full: $full $color;
}
@if $inset {
$full: inset $full;
}
@include box-shadow($full);
}
}
Provides a single cross-browser CSS box shadow for Webkit, Gecko, and CSS3. Includes default arguments for color, horizontal offset, vertical offset, blur length, spread length, and inset.