mirror of
https://github.com/jgthms/bulma.git
synced 2024-11-14 11:14:24 +00:00
154 lines
2.3 KiB
SCSS
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;
|
|
}
|
|
}
|
|
}
|