@penaprieto/design-system
Version:
Multi-brand React design system with design tokens from Figma
138 lines (118 loc) • 3.17 kB
CSS
/* Base Select */
.ds-select {
display: inline-flex;
flex-direction: column;
gap: var(--size1, 4px);
min-width: 320px;
font-family: var(--body-regular-fontFamily, var(--font-family, 'Satoshi', sans-serif));
position: relative;
}
.ds-select--disabled {
cursor: not-allowed;
}
.ds-select--error .ds-select__trigger {
box-shadow: inset 0 0 0 1px var(--text-field-border-error);
}
.ds-select__label {
font: var(--text-field-label, 400 14px/150% Satoshi);
color: var(--semantic-text-corp-primary);
}
/* Trigger */
.ds-select__trigger {
width: 100%;
display: inline-flex;
align-items: center;
justify-content: space-between;
padding: var(--size3, 12px) var(--size4, 16px);
background-color: var(--text-field-bg-default);
box-shadow: inset 0 0 0 1px var(--text-field-border-default);
border-radius: var(--br-xs, 4px);
border: none;
cursor: pointer;
color: var(--semantic-text-corp-primary);
text-align: left;
transition: box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.ds-select__trigger:disabled {
background-color: var(--text-field-bg-disabled);
box-shadow: inset 0 0 0 1px var(--text-field-border-default);
color: var(--semantic-text-corp-disabled);
cursor: not-allowed;
}
.ds-select__trigger:hover:not(:disabled) {
box-shadow: inset 0 0 0 1px var(--text-field-border-hover);
}
.ds-select__trigger:focus-visible {
box-shadow:
inset 0 0 0 1px var(--text-field-border-focus),
var(--semantic-focus-corp);
outline: none;
}
.ds-select__value {
flex: 1;
min-width: 0;
font-size: var(--body-regular-fontSize, 16px);
line-height: var(--body-regular-lineHeight, 150%);
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.ds-select__value--placeholder {
color: var(--semantic-text-corp-secondary, #6f7175);
}
.ds-select__icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
flex-shrink: 0;
color: var(--semantic-icon-default-default, #5a5d7b);
}
.ds-select__icon--right {
margin-left: var(--size2, 8px);
}
.ds-select__icon svg {
width: 100%;
height: 100%;
display: block;
}
.ds-select__icon--right svg {
transition: transform 0.2s cubic-bezier(0.25,0.46,0.45,0.94);
}
.ds-select--open .ds-select__icon--right svg {
transform: rotate(180deg);
}
/* Content inside trigger */
.ds-select__content {
display: flex;
flex-direction: column;
flex: 1 1 auto;
min-width: 0;
align-items: flex-start;
}
.ds-select__description {
font: var(--text-field-assistive-text, 400 14px/150% Satoshi);
color: var(--semantic-text-corp-secondary, #6f7175);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Helper text */
.ds-select__helper {
font: var(--text-field-assistive-text, 400 14px/150% Satoshi);
color: var(--semantic-text-corp-secondary, #6f7175);
margin-top: var(--size2, 8px);
}
.ds-select--error .ds-select__helper {
color: var(--semantic-text-error);
}
/* Dropdown container (positioned under trigger) */
.ds-select__dropdown {
position: absolute;
left: 0;
right: 0;
top: 100%;
margin-top: var(--size2, 8px);
z-index: 10;
}