281 lines
5.2 KiB
SCSS
Executable File
281 lines
5.2 KiB
SCSS
Executable File
@import "../../stylesheets/variables/_all";
|
|
@import "../../stylesheets/mixins/_scrollable";
|
|
|
|
$dropdown-bg: $color-white;
|
|
$dropdown-color: $color-text;
|
|
$caret-shadow-color: $color-gray;
|
|
|
|
$dropdown-caret-width: 12px;
|
|
$dropdown-caret-height: 8px;
|
|
|
|
.dropdown {
|
|
position: relative;
|
|
}
|
|
|
|
.content {
|
|
position: absolute;
|
|
background: $dropdown-bg;
|
|
border-radius: $border-radius;
|
|
box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
|
|
border: 1px solid rgba(0, 0, 0, .15);
|
|
padding: $line-height-computed / 2;
|
|
z-index: 1000;
|
|
|
|
&:after, &:before {
|
|
content: '';
|
|
position: absolute;
|
|
width: 0;
|
|
height: 0;
|
|
}
|
|
|
|
&[aria-expanded="false"] {
|
|
display: none;
|
|
}
|
|
|
|
&[aria-expanded="true"] {
|
|
display: block;
|
|
}
|
|
|
|
@include mq($small-only) {
|
|
z-index: 1015;
|
|
border-radius: 0;
|
|
background-color: #fff;
|
|
box-shadow: none;
|
|
position: fixed;
|
|
top: 0 !important;
|
|
left: 0 !important;
|
|
right: 0 !important;
|
|
bottom: 0 !important;
|
|
border: 0 !important;
|
|
padding: 0 !important;
|
|
margin: 0 0 $line-height-computed * 5.25 0 !important;
|
|
transform: translateX(0) translateY(0) !important;
|
|
|
|
&:after, &:before {
|
|
display: none !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
.scrollable {
|
|
@include mq($small-only) {
|
|
@include scrollbox-vertical();
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
}
|
|
}
|
|
|
|
.trigger {}
|
|
|
|
.close {
|
|
display: none;
|
|
position: fixed;
|
|
bottom: 1rem;
|
|
z-index: 1011;
|
|
font-size: $font-size-large * 1.1;
|
|
width: calc(100% - #{($line-height-computed * 2)});
|
|
left: $line-height-computed;
|
|
box-shadow: 0 0 0 2rem #fff;
|
|
|
|
@include mq($small-only) {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
/* Placements
|
|
* ==========
|
|
*/
|
|
|
|
%down-caret {
|
|
bottom: 100%;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
margin-bottom: $dropdown-caret-height * 1.25;
|
|
|
|
&:before, &:after {
|
|
border-left: $dropdown-caret-width solid transparent;
|
|
border-right: $dropdown-caret-width solid transparent;
|
|
border-top: $dropdown-caret-height solid $dropdown-bg;
|
|
bottom: 0;
|
|
margin-bottom: -($dropdown-caret-height);
|
|
}
|
|
|
|
&:before {
|
|
border-top: $dropdown-caret-height solid $caret-shadow-color;
|
|
}
|
|
}
|
|
|
|
%up-caret {
|
|
top: 100%;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
margin-top: $dropdown-caret-height * 1.25;
|
|
|
|
&:before, &:after {
|
|
border-left: $dropdown-caret-width solid transparent;
|
|
border-right: $dropdown-caret-width solid transparent;
|
|
border-bottom: $dropdown-caret-height solid $dropdown-bg;
|
|
margin-top: -($dropdown-caret-height);
|
|
top: 0;
|
|
}
|
|
|
|
&:before {
|
|
border-bottom: $dropdown-caret-height solid $caret-shadow-color;
|
|
}
|
|
}
|
|
|
|
%right-caret {
|
|
top: 50%;
|
|
transform: translateX(-100%) translateY(-50%);
|
|
left: -($dropdown-caret-height * 1.25);
|
|
|
|
&:before, &:after{
|
|
border-top: $dropdown-caret-width solid transparent;
|
|
border-bottom: $dropdown-caret-width solid transparent;
|
|
border-left: $dropdown-caret-height solid $dropdown-bg;
|
|
margin-right: -($dropdown-caret-height);
|
|
top: 50%;
|
|
right: 0;
|
|
}
|
|
|
|
&:before {
|
|
border-left: $dropdown-caret-height solid $caret-shadow-color;
|
|
}
|
|
}
|
|
|
|
%left-caret {
|
|
top: 50%;
|
|
transform: translateX(100%) translateY(-50%);
|
|
right: -($dropdown-caret-height * 1.25);
|
|
|
|
&:before, &:after {
|
|
border-top: $dropdown-caret-width solid transparent;
|
|
border-bottom: $dropdown-caret-width solid transparent;
|
|
border-right: $dropdown-caret-height solid $dropdown-bg;
|
|
margin-left: -($dropdown-caret-height);
|
|
top: 50%;
|
|
left: 0;
|
|
}
|
|
|
|
&:before {
|
|
border-right: $dropdown-caret-height solid $caret-shadow-color;
|
|
}
|
|
}
|
|
|
|
%horz-center-caret {
|
|
&:after, &:before {
|
|
margin-left: -($dropdown-caret-width);
|
|
}
|
|
}
|
|
|
|
%horz-left-caret {
|
|
transform: translateX(-100%);
|
|
left: 100%;
|
|
|
|
&:after, &:before {
|
|
right: $dropdown-caret-width / 2;
|
|
}
|
|
}
|
|
|
|
%horz-right-caret {
|
|
transform: translateX(100%);
|
|
right: 100%;
|
|
left: auto;
|
|
|
|
&:after, &:before {
|
|
left: $dropdown-caret-width / 2;
|
|
}
|
|
}
|
|
|
|
%vert-center-caret {
|
|
&:after, &:before {
|
|
margin-top: -($dropdown-caret-width);
|
|
}
|
|
}
|
|
|
|
%vert-top-caret {
|
|
top: 0;
|
|
|
|
&:after, &:before {
|
|
top: 0;
|
|
margin-top: $dropdown-caret-width / 2;
|
|
}
|
|
}
|
|
|
|
%vert-bottom-caret {
|
|
top: auto;
|
|
bottom: 0;
|
|
|
|
&:after, &:before {
|
|
top: auto;
|
|
bottom: $dropdown-caret-width / 2;
|
|
}
|
|
}
|
|
|
|
.top {
|
|
@extend %down-caret;
|
|
@extend %horz-center-caret;
|
|
}
|
|
|
|
.top-left {
|
|
@extend %down-caret;
|
|
@extend %horz-right-caret;
|
|
}
|
|
|
|
.top-right {
|
|
@extend %down-caret;
|
|
@extend %horz-left-caret;
|
|
}
|
|
|
|
.bottom {
|
|
@extend %up-caret;
|
|
@extend %horz-center-caret;
|
|
}
|
|
|
|
.bottom-left {
|
|
@extend %up-caret;
|
|
@extend %horz-right-caret;
|
|
}
|
|
|
|
.bottom-right {
|
|
@extend %up-caret;
|
|
@extend %horz-left-caret;
|
|
}
|
|
|
|
.left {
|
|
@extend %right-caret;
|
|
@extend %vert-center-caret;
|
|
}
|
|
|
|
.left-top {
|
|
@extend %right-caret;
|
|
@extend %vert-top-caret;
|
|
transform: translateX(-100%) translateY(0);
|
|
}
|
|
|
|
.left-bottom {
|
|
@extend %right-caret;
|
|
@extend %vert-bottom-caret;
|
|
transform: translateX(-100%) translateY(0);
|
|
}
|
|
|
|
.right {
|
|
@extend %left-caret;
|
|
@extend %vert-center-caret;
|
|
}
|
|
|
|
.right-top {
|
|
@extend %left-caret;
|
|
@extend %vert-top-caret;
|
|
transform: translateX(100%) translateY(0);
|
|
}
|
|
|
|
.right-bottom {
|
|
@extend %left-caret;
|
|
@extend %vert-bottom-caret;
|
|
transform: translateX(100%) translateY(0);
|
|
}
|