@dialpad/dialtone-css
Version:
Dialpad's design system
157 lines (130 loc) • 4.89 kB
text/less
//
// DIALTONE
// COMPONENTS: SELECT MENUS
//
// These are select menu classes for Dialpad's design system Dialtone.
// For further documentation of these and other classes,
// visit https://dialtone.dialpad.com/components/select
//
// TABLE OF CONTENTS
// • SELECT MENUS
// - Sizes
// • SELECT MENU INPUTS
// - Validation States
//
// ============================================================================
// $ SELECT MENU (NATIVE)
// ----------------------------------------------------------------------------
.d-select {
// Component CSS Vars
// --------------------------------------------------------------------------
--select-color-border: var(--dt-inputs-color-border-default);
--select-notch-position-right: var(--dt-space-400);
position: relative;
width: stretch;
// -- Arrows
&::after {
--select-arrow-size: calc(var(--dt-size-300) * 3.5);
position: absolute;
top: 50%;
right: var(--select-notch-position-right);
z-index: var(--zi-selected);
width: var(--select-arrow-size);
height: var(--select-arrow-size);
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDEyIDEyIj4KICA8cGF0aCBmaWxsPSIjNTU1IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjE0NiA3LjE0NmEuNS41IDAgMCAxIC43MDggMEw2IDkuMjkzbDIuMTQ2LTIuMTQ3YS41LjUgMCAxIDEgLjcwOC43MDhsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNzA4IDBsLTIuNS0yLjVhLjUuNSAwIDAgMSAwLS43MDhabTIuNS01LjVhLjUuNSAwIDAgMSAuNzA4IDBsMi41IDIuNWEuNS41IDAgMSAxLS43MDguNzA4TDYgMi43MDcgMy44NTQgNC44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMi41LTIuNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgo8L3N2Zz4K');
background-repeat: no-repeat;
background-size: 100%;
transform: translateY(-50%);
content: '';
pointer-events: none;
.dialtone-theme-dark & {
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDEyIDEyIj4KICA8cGF0aCBmaWxsPSIjQUFBIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjE0NiA3LjE0NmEuNS41IDAgMCAxIC43MDggMEw2IDkuMjkzbDIuMTQ2LTIuMTQ3YS41LjUgMCAxIDEgLjcwOC43MDhsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNzA4IDBsLTIuNS0yLjVhLjUuNSAwIDAgMSAwLS43MDhabTIuNS01LjVhLjUuNSAwIDAgMSAuNzA4IDBsMi41IDIuNWEuNS41IDAgMSAxLS43MDguNzA4TDYgMi43MDcgMy44NTQgNC44NTRhLjUuNSAwIDAgMS0uNzA4LS43MDhsMi41LTIuNVoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgo8L3N2Zz4K');
}
}
}
// $ SELECT MENU INPUT
// ----------------------------------------------------------------------------
.d-select__input {
--select-color-border: var(--input-color-border);
--select-notch-padding-right: var(--dt-space-550);
// Use shared style properties of d-input (<input>, <textarea>)
.d-input();
// select options can be styled on windows
& option {
color: var(--dt-color-foreground-secondary);
background-color: var(--dt-color-surface-secondary);
}
// -- FOCUS STATE
&:focus {
--input-color-background: var(--dt-inputs-color-background-focus);
}
// Adjust space on right beneath arrows
padding-right: var(--select-notch-padding-right);
&[disabled],
&[read-only] {
color: var(--dt-inputs-color-foreground-disabled);
background: var(--dt-inputs-color-background-disabled);
border-color: transparent;
border-style: solid;
border-width: var(--input-border-width);
}
&::-moz-focus-inner {
outline: none ;
}
&:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 var(--dt-color-black-900);
}
&::-ms-expand {
display: none;
}
}
// $$ SIZES
// ----------------------------------------------------------------------------
.d-select--xs {
.d-select__input {
#d-internal__input-and-select-xs();
}
}
.d-select--sm {
.d-select__input {
#d-internal__input-and-select-sm();
}
}
.d-select--lg {
.d-select__input {
#d-internal__input-and-select-lg();
--select-notch-padding-right: calc(var(--dt-space-300) * 9);
}
&::after {
--select-arrow-size: calc(var(--dt-size-300) * 4.5);
--select-notch-position-right: var(--dt-space-450);
}
}
.d-select--xl {
.d-select__input {
#d-internal__input-and-select-xl();
--select-notch-padding-right: calc(var(--dt-space-300) * 9);
}
&::after {
--select-arrow-size: calc(var(--dt-size-300) * 4.5);
--select-notch-position-right: var(--dt-space-450);
}
}
// $$ VALIDATION STATES
// ------------------------------------------------------------------------
.d-select__input--success {
--input-color-border: var(--dt-inputs-color-border-success);
}
.d-select__input--error {
--input-color-border: var(--dt-inputs-color-border-critical);
}
.d-select__input--warning {
--input-color-border: var(--dt-inputs-color-border-warning);
}
.d-select--disabled {
&::before,
&::after {
opacity: 0.33;
}
}