mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2026-01-20 20:01:25 +00:00
168 lines
3.1 KiB
SCSS
168 lines
3.1 KiB
SCSS
@use '../shared/input.scss' as *;
|
|
@use "@@/styles/shared" as *;
|
|
@use "@@/styles/tokens/tokens" as *;
|
|
|
|
@include input(ds-select);
|
|
|
|
.ds-select {
|
|
user-select: none;
|
|
|
|
.ds-select-is-open & {
|
|
border-bottom-left-radius: 0;
|
|
border-bottom-right-radius: 0;
|
|
border-bottom: none;
|
|
}
|
|
}
|
|
|
|
.ds-select-multiple {
|
|
display: flex;
|
|
align-items: center;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.ds-select-search, .ds-select-value {
|
|
box-sizing: border-box;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
border: $input-border-size solid transparent;
|
|
padding: $input-padding-vertical $space-x-small;
|
|
line-height: $line-height-base;
|
|
|
|
.ds-input-size-small & {
|
|
padding: $input-padding-vertical-small $space-x-small;
|
|
}
|
|
|
|
.ds-input-size-large & {
|
|
padding: $input-padding-vertical-large $space-x-small;
|
|
}
|
|
|
|
.ds-select-has-icon & {
|
|
padding-left: $input-height;
|
|
|
|
.ds-input-size-small & {
|
|
padding-left: $input-height-small;
|
|
}
|
|
|
|
.ds-input-size-large & {
|
|
padding-left: $input-height-large;
|
|
}
|
|
}
|
|
|
|
.ds-select-has-icon-right & {
|
|
padding-right: $input-height;
|
|
|
|
.ds-input-size-small & {
|
|
padding-right: $input-height-small;
|
|
}
|
|
|
|
.ds-input-size-large & {
|
|
padding-right: $input-height-large;
|
|
}
|
|
}
|
|
}
|
|
|
|
.ds-select-search {
|
|
appearance: none;
|
|
font-size: inherit;
|
|
font-family: $font-family-text;
|
|
width: 100%;
|
|
background: transparent;
|
|
color: $text-color-base;
|
|
outline: none;
|
|
user-select: text;
|
|
|
|
opacity: 0;
|
|
|
|
&::placeholder {
|
|
color: $text-color-disabled;
|
|
}
|
|
|
|
.ds-select-is-open & {
|
|
opacity: 1;
|
|
}
|
|
|
|
.ds-select-multiple & {
|
|
position: relative;
|
|
display: inline-flex;
|
|
width: auto;
|
|
height: auto;
|
|
padding: 0;
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.ds-select-placeholder, .ds-select-value {
|
|
pointer-events: none;
|
|
|
|
.ds-select-is-open & {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.ds-select-placeholder {
|
|
color: $text-color-disabled;
|
|
}
|
|
|
|
.ds-selected-options {
|
|
display: flex;
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.ds-selected-option {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
margin-right: $space-xx-small;
|
|
}
|
|
|
|
.ds-select-dropdown {
|
|
position: absolute;
|
|
z-index: $z-index-dropdown;
|
|
top: 100%;
|
|
left: 0;
|
|
width: 100%;
|
|
background-color: $background-color-base;
|
|
border: $input-border-size solid $border-color-active;
|
|
border-top: 0;
|
|
border-bottom-left-radius: $border-radius-base;
|
|
border-bottom-right-radius: $border-radius-base;
|
|
visibility: hidden;
|
|
opacity: 0;
|
|
transition: all $duration-short $ease-out, border-bottom 0ms;
|
|
max-height: 240px;
|
|
overflow: auto;
|
|
|
|
.ds-select-is-open & {
|
|
visibility: visible;
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.ds-select-dropdown-message {
|
|
padding: $input-padding-vertical $space-x-small;
|
|
color: $text-color-disabled;
|
|
}
|
|
|
|
.ds-select-options {
|
|
@include reset-list;
|
|
}
|
|
|
|
.ds-select-option {
|
|
padding: $input-padding-vertical $space-x-small;
|
|
cursor: pointer;
|
|
transition: all $duration-short $ease-out, border-bottom 0ms;
|
|
|
|
&.ds-select-option-hover {
|
|
background-color: $background-color-softer;
|
|
color: $text-color-base;
|
|
}
|
|
}
|
|
|
|
.ds-select-option-is-selected {
|
|
background-color: $background-color-soft;
|
|
color: $text-color-primary;
|
|
}
|