bulma/sass/form/select.scss
2022-11-23 23:42:03 +00:00

154 lines
2.3 KiB
SCSS

$select-colors: $form-colors !default;
.#{$class-prefix}select {
display: inline-block;
max-width: 100%;
position: relative;
vertical-align: top;
&:not(.is-multiple) {
height: $input-height;
}
&:not(.is-multiple):not(.is-loading) {
&::after {
@extend %arrow;
border-color: $input-arrow;
@include ltr-position(1.125em);
z-index: 4;
}
}
&.is-rounded {
select {
border-radius: $radius-rounded;
@include ltr-property("padding", 1em, false);
}
}
select {
@extend %input;
cursor: pointer;
display: block;
font-size: 1em;
max-width: 100%;
outline: none;
&::-ms-expand {
display: none;
}
&[disabled]:hover,
fieldset[disabled] &:hover {
border-color: $input-disabled-border-color;
}
&:not([multiple]) {
@include ltr-property("padding", 2.5em);
}
&[multiple] {
height: auto;
padding: 0;
option {
padding: 0.5em 1em;
}
}
}
// States
&:not(.is-multiple):not(.is-loading):hover {
&::after {
border-color: $input-hover-color;
}
}
// Colors
@each $name, $pair in $select-colors {
$color: nth($pair, 1);
&.is-#{$name} {
&:not(:hover)::after {
border-color: $color;
}
select {
border-color: $color;
&:hover,
&.is-hovered {
border-color: bulmaDarken($color, 5%);
}
&:focus,
&.is-focused,
&:active,
&.is-active {
box-shadow: $input-focus-box-shadow-size bulmaRgba($color, 0.25);
}
}
}
}
// Sizes
&.is-small {
@include control-small;
}
&.is-medium {
@include control-medium;
}
&.is-large {
@include control-large;
}
// Modifiers
&.is-disabled {
&::after {
border-color: $input-disabled-color !important;
opacity: 0.5;
}
}
&.is-fullwidth {
width: 100%;
select {
width: 100%;
}
}
&.is-loading {
&::after {
@extend %loader;
margin-top: 0;
position: absolute;
@include ltr-position(0.625em);
top: 0.625em;
transform: none;
}
&.is-small:after {
font-size: $size-small;
}
&.is-medium:after {
font-size: $size-medium;
}
&.is-large:after {
font-size: $size-large;
}
}
}