Usage
.nebulashadow.TYPE
Parameters
TYPE
(Optional) (String) A variation of the shadow to use
Default: None
Parameter Notes
TYPE is simply a second class that is used to determine what type of shadow to apply.
These include:
- floating
- bulging
- curling
- hovering
- anchored-right
- anchored-left
Inner shadows can be used, too (with some types from above):
- inner-top
- inner-bottom
Examples
Regular shadow
<div class="nebulashadow curling">Example</div>
Regular inner shadow
<div class="nebulashadow inner-top inner-bottom">Example</div>
Demo
Nebula Frame and Nebula Shadow
Inner Nebula Shadow
Additional Notes
Shadows are pseudo :before and :after elements and their z-index is set to -1 so if they are applied on top of a background image, they will end up behind the background.
Source File
Located in /assets/scss/partials/_helpers.scss on line 9.
.nebulashadow {position: relative;
&.floating {
&::after {content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; box-shadow: 0 17px 25px -15px rgb(0 0 0 / 40%); z-index: -1; pointer-events: none;}
&.above {
&::before {content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; box-shadow: 0 -17px 25px -15px rgb(0 0 0 / 40%); z-index: -1; pointer-events: none;}
}
}
&.bulging {
&::after {content: ""; position: absolute; left: 0; right: 0; bottom: -13px; width: 96%; height: 30px; margin: 0 auto; background: rgb(0 0 0 / 40%); filter: blur(25px); border-radius: 50%; transform: scaleY(.3); z-index: -1; pointer-events: none;}
&.above {
&::before {content: ""; position: absolute; left: 0; right: 0; top: -13px; width: 96%; height: 30px; margin: 0 auto; background: rgb(0 0 0 / 40%); filter: blur(25px); border-radius: 50%; transform:scaleY(.3); z-index: -1; pointer-events: none;}
}
}
&.curling {//This can not appear above.
&::before {content: ""; position: absolute; bottom: 4px; left: 10px; height: 20px; width: 70%; background: rgb(0 0 0 / 40%); filter: blur(6px); transform: rotate(-3deg); z-index: -1; pointer-events: none;}
&::after {content: ""; position: absolute; bottom: 4px; right: 10px; height: 20px; width: 70%; background: rgb(0 0 0 / 40%); filter: blur(6px); transform: rotate(3deg); z-index: -1; pointer-events: none;}
}
&.hovering {
&::after {content: ""; position: absolute; left: 0; right: 0; bottom: -30px; width: 98%; height: 30px; margin: 0 auto; background: rgb(0 0 0 / 15%); filter: blur(15px); border-radius: 50%; transform:scaleY(.2); z-index: -1; pointer-events: none;}
&.above {
&::before {content: ""; position: absolute; left: 0; right: 0; top: -30px; width: 98%; height: 30px; margin: 0 auto; background: rgb(0 0 0 / 15%); filter: blur(15px); border-radius: 50%; transform:scaleY(.2); z-index: -1; pointer-events: none;}
}
}
&.anchored-right {
&::after {content: ""; position: absolute; bottom: 0; left: 10px; height: 20px; width: 92%; background: rgb(0 0 0 / 40%); filter: blur(6px); transform: rotate(-2deg); z-index: -1; pointer-events: none;}
&.above {
&::before {content: ""; position: absolute; top: 0; left: 10px; height: 20px; width: 92%; background: rgb(0 0 0 / 40%); filter: blur(6px); transform: rotate(2deg); z-index: -1; pointer-events: none;}
}
}
&.anchored-left {
&::after {content: ""; position: absolute; bottom: 0; right: 10px; height: 20px; width: 92%; background: rgb(0 0 0 / 40%); filter: blur(6px); transform: rotate(2deg); z-index: -1; pointer-events: none;}
&.above {
&::before {content: ""; position: absolute; top: 0; right: 10px; height: 20px; width: 92%; background: rgb(0 0 0 / 40%); filter: blur(6px); transform: rotate(-2deg); z-index: -1; pointer-events: none;}
}
}
&.above {
&::after {display: none;}
}
&.below {
&::after {display: block;}
}
&.inner-top {box-shadow: inset 0 17px 25px -15px rgb(0 0 0 / 40%);}
&.inner-bottom {box-shadow: inset 0 -17px 25px -15px rgb(0 0 0 / 40%);}
&.inner-top.inner-bottom {box-shadow: inset 0 17px 25px -15px rgb(0 0 0 / 40%), inset 0 -17px 25px -15px rgb(0 0 0 / 40%);}
}
Override
To override or disable this, simply write a more specific selector (or as a last resort use an inline style or an !important tag) with your own properties.
#more-specific .selector {border: 1px solid green;}