forked from a64f7bb4-7358-4778-9fbe-3b882c34cc1d/v1
171 lines
3.7 KiB
SCSS
171 lines
3.7 KiB
SCSS
// Default variables
|
|
$font_size: 14px !default;
|
|
$font_size_small: 12px !default;
|
|
|
|
$input_border_radius: 5px !default;
|
|
$input_height: 42px !default;
|
|
$input_height_small: 36px !default;
|
|
$dropdown_padding: 18px !default;
|
|
|
|
$gray_dark: #444 !default;
|
|
$gray: #999 !default;
|
|
$gray_light: #e8e8e8 !default;
|
|
$gray_lighter: #f6f6f6 !default;
|
|
$primary_light: $gray !default;
|
|
$arrow_color: $gray !default;
|
|
|
|
// Style the dropdown
|
|
.nice-select {
|
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
background-color: #fff;
|
|
border-radius: $input_border_radius;
|
|
border: solid 1px $gray_light;
|
|
box-sizing: border-box;
|
|
clear: both;
|
|
cursor: pointer;
|
|
display: block;
|
|
float: left;
|
|
font-family: inherit;
|
|
font-size: $font_size;
|
|
font-weight: normal;
|
|
height: $input_height;
|
|
line-height: $input_height - 2;
|
|
outline: none;
|
|
padding-left: $dropdown_padding;
|
|
padding-right: $dropdown_padding + 12;
|
|
position: relative;
|
|
text-align: left !important;
|
|
transition: all 0.2s ease-in-out;
|
|
user-select: none;
|
|
white-space: nowrap;
|
|
width: auto;
|
|
&:hover {
|
|
border-color: darken($gray_light, 5%);
|
|
}
|
|
&:active, &:focus {
|
|
border-color: $primary_light;
|
|
}
|
|
// Arrow
|
|
&:after {
|
|
border-bottom: 2px solid $arrow_color;
|
|
border-right: 2px solid $arrow_color;
|
|
content: '';
|
|
display: block;
|
|
height: 5px;
|
|
margin-top: -4px;
|
|
pointer-events: none;
|
|
position: absolute;
|
|
right: 12px;
|
|
top: 50%;
|
|
transform-origin: 66% 66%;
|
|
transform: rotate(45deg);
|
|
transition: all 0.15s ease-in-out;
|
|
width: 5px;
|
|
}
|
|
|
|
&.open {
|
|
@extend :active;
|
|
&:after {
|
|
transform: rotate(-135deg);
|
|
}
|
|
.list {
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
transform: scale(1) translateY(0);
|
|
}
|
|
}
|
|
&.disabled {
|
|
border-color: lighten($gray_light, 2%);
|
|
color: $gray;
|
|
pointer-events: none;
|
|
&:after {
|
|
border-color: lighten($arrow_color, 20%);
|
|
}
|
|
}
|
|
|
|
// Modifiers
|
|
&.wide {
|
|
width: 100%;
|
|
.list {
|
|
left: 0 !important;
|
|
right: 0 !important;
|
|
}
|
|
}
|
|
&.right {
|
|
float: right;
|
|
.list {
|
|
left: auto;
|
|
right: 0;
|
|
}
|
|
}
|
|
&.small {
|
|
font-size: $font_size_small;
|
|
height: $input_height_small;
|
|
line-height: $input_height_small - 2;
|
|
&:after {
|
|
height: 4px;
|
|
width: 4px;
|
|
}
|
|
.option {
|
|
line-height: $input_height_small - 2;
|
|
min-height: $input_height_small - 2;
|
|
}
|
|
}
|
|
|
|
// List and options
|
|
.list {
|
|
background-color: #fff;
|
|
border-radius: $input_border_radius;
|
|
box-shadow: 0 0 0 1px rgba($gray_dark, .11);
|
|
box-sizing: border-box;
|
|
margin-top: 4px;
|
|
opacity: 0;
|
|
overflow: hidden;
|
|
padding: 0;
|
|
pointer-events: none;
|
|
position: absolute;
|
|
top: 100%; left: 0;
|
|
transform-origin: 50% 0;
|
|
transform: scale(.75) translateY(- $input_height / 2);
|
|
transition: all .2s cubic-bezier(0.5, 0, 0, 1.25), opacity .15s ease-out;
|
|
z-index: 9;
|
|
&:hover .option:not(:hover) {
|
|
background-color: transparent !important;
|
|
}
|
|
}
|
|
.option {
|
|
cursor: pointer;
|
|
font-weight: 400;
|
|
line-height: $input_height - 2;
|
|
list-style: none;
|
|
min-height: $input_height - 2;
|
|
outline: none;
|
|
padding-left: $dropdown_padding;
|
|
padding-right: $dropdown_padding + 11;
|
|
text-align: left;
|
|
transition: all 0.2s;
|
|
&:hover, &.focus, &.selected.focus {
|
|
background-color: $gray_lighter;
|
|
}
|
|
&.selected {
|
|
font-weight: bold;
|
|
}
|
|
&.disabled {
|
|
background-color: transparent;
|
|
color: $gray;
|
|
cursor: default;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Use display instead of opacity for IE <= 10
|
|
.no-csspointerevents .nice-select {
|
|
.list {
|
|
display: none;
|
|
}
|
|
&.open {
|
|
.list {
|
|
display: block;
|
|
}
|
|
}
|
|
} |