Files
cunningham/packages/react/src/components/Forms/Select/index.scss

183 lines
4.3 KiB
SCSS
Raw Normal View History

.c__select {
position: relative;
&__wrapper {
border-radius: var(--c--components--forms-select--border-radius);
border-width: var(--c--components--forms-select--border-width);
border-color: var(--c--components--forms-select--border-color);
border-style: var(--c--components--forms-select--border-style);
display: flex;
align-items: center;
transition: border var(--c--theme--transitions--duration) var(--c--theme--transitions--ease-out);
padding: 0 0.75rem;
gap: 1rem;
color: var(--c--components--forms-select--color);
box-sizing: border-box;
height: var(--c--components--forms-select--height);
cursor: pointer;
background-color: var(--c--components--forms-select--background-color);
position: relative;
overflow: hidden;
label {
cursor: pointer;
}
&:hover {
border-radius: var(--c--components--forms-select--border-radius--hover);
border-color: var(--c--components--forms-select--border-color--hover);
}
&:focus-within {
border-radius: var(--c--components--forms-select--border-radius--focus);
border-color: var(--c--components--forms-select--border-color--focus);
}
}
&__inner {
flex-grow: 1;
display: flex;
justify-content: space-between;
user-select: none;
min-width: 0;
&__value {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex-grow: 1;
font-size: var(--c--components--forms-select--font-size);
input {
outline: 0;
border: 0;
padding: 0;
margin: 0;
color: var(--c--components--forms-select--color);
font-size: var(--c--components--forms-select--font-size);
}
}
&__actions {
position: relative;
top: -14px;
display: flex;
align-items: center;
span {
font-size: 1.25rem;
transition: all var(--c--theme--transitions--duration) var(--c--theme--transitions--ease-out);
&.opened {
transform: rotate(180deg);
}
}
&__clear {
color: var(--c--theme--colors--greyscale-500);
}
&__separator {
background-color: var(--c--theme--colors--greyscale-400);
height: 24px;
width: 1px;
}
&__open {
color: var(--c--theme--colors--greyscale-900);
}
}
}
&__menu {
position: absolute;
overflow: auto;
width: calc(100% - 4px);
max-height: 10rem;
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.3);
background-color: var(--c--components--forms-select--menu-background-color);
transform: translate(2px, 0);
display: none;
z-index: 1;
&--opened {
display: block;
}
ul {
list-style-type: none;
padding: 0;
margin: 0;
padding-top: 3px;
}
&__item {
padding: 0.75rem;
font-size: var(--c--components--forms-select--item-font-size);
color: var(--c--components--forms-select--item-color);
cursor: pointer;
&--highlight {
background-color: var(--c--components--forms-select--item-background-color--hover);
}
&--selected {
background-color: var(--c--components--forms-select--item-background-color--selected);
}
}
}
/** Modifiers */
&--disabled {
.c__select__wrapper {
color: var(--c--theme--colors--greyscale-600);
border-color: var(--c--theme--colors--greyscale-200);
cursor: default;
label {
cursor: default;
}
input {
color: var(--c--theme--colors--greyscale-600);
background-color: white;
}
}
.c__input__inner {
.c__input, label {
color: var(--c--theme--colors--greyscale-600);
}
}
&:hover {
border-color: var(--c--theme--colors--greyscale-200);
}
}
&--error {
.c__select__wrapper {
border-color: var(--c--theme--colors--danger-600);
}
&:not(.c__select__wrapper--disabled) {
.c__select__wrapper:hover {
border-color: var(--c--theme--colors--danger-200);
}
}
}
&--success {
.c__select__wrapper {
border-color: var(--c--theme--colors--success-600);
}
&:not(.c__select__wrapper--disabled) {
.c__select__wrapper:hover {
border-color: var(--c--theme--colors--success-400);
}
}
}
}