UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

305 lines 11.2 kB
/* * Dropdown component * */ /* * Utilities */ .eufemia-scope--11_8_2 .dnb-dropdown { --dropdown-width: 16rem; --dropdown-height: 2rem; --dropdown-height--small: 1.5rem; --dropdown-height--medium: 2.5rem; --dropdown-height--large: 3rem; --dropdown-border-width--closed: 0.0625rem; --dropdown-border-width--open: 0.125rem; --dropdown-text-padding: 0.5rem; --dropdown-button-padding: 0 1rem; --dropdown-border-radius: var(--token-radius-sm); --dropdown-border-inset--open: inset; display: inline-flex; align-items: center; font-size: var(--font-size-small); line-height: var(--dropdown-height); } .eufemia-scope--11_8_2 .dnb-dropdown__inner { display: inline-flex; flex-direction: column; margin: 0; padding: 0; width: auto; color: inherit; } .eufemia-scope--11_8_2 .dnb-dropdown__shell { position: relative; width: var(--dropdown-width); height: var(--dropdown-height); margin: 0; padding: 0; color: inherit; } .eufemia-scope--11_8_2 .dnb-dropdown__row { display: inline-flex; } .eufemia-scope--11_8_2 .dnb-dropdown__icon { position: relative; order: 2; display: inline-flex; justify-content: center; pointer-events: none; } .eufemia-scope--11_8_2 .dnb-dropdown__trigger { position: relative; z-index: 1; -webkit-user-select: none; user-select: none; width: 100%; } .eufemia-scope--11_8_2 .dnb-dropdown__trigger.dnb-button { padding: var(--dropdown-button-padding); border-radius: var(--dropdown-border-radius); } .eufemia-scope--11_8_2 .dnb-dropdown__trigger.dnb-button--secondary.dnb-button__status--error { --button-color-bg--hover: var(--token-color-background-neutral); --button-color-bg--active: var(--token-color-background-neutral); --button-color-border--default: var(--token-color-stroke-error); --button-color-border--hover: var( --token-color-component-button-stroke-action-destructive ); --button-color-border--active: var( --token-color-component-button-stroke-action-destructive-pressed ); --button-color-icon--default: var(--token-color-icon-error); --button-color-icon--hover: var(--token-color-icon-error); --button-color-icon--active: var(--token-color-icon-error); --button-color-icon--focus: var(--token-color-icon-error); --button-color-text--default: var(--token-color-text-error); --button-color-text--hover: var(--token-color-text-error); --button-color-text--active: var(--token-color-text-error); --button-color-text--focus: var(--token-color-text-error); } .eufemia-scope--11_8_2 .dnb-dropdown__trigger.dnb-button--secondary, .eufemia-scope--11_8_2 .dnb-dropdown__trigger.dnb-button--secondary.dnb-button__status--error.dnb-dropdown__trigger--open { --button-color-bg--hover: var(--token-color-background-neutral); --button-color-bg--active: var(--token-color-background-neutral); --button-color-bg--disabled: var( --token-color-background-neutral-subtle ); --button-color-border--default: var(--token-color-stroke-action); --button-color-border--hover: var( --token-color-stroke-action-hover ); --button-color-border--active: var( --token-color-stroke-action-pressed ); --button-color-icon--default: var(--token-color-icon-action); --button-color-icon--hover: var(--token-color-icon-action-hover); --button-color-icon--active: var( --token-color-icon-action-pressed ); --button-color-text--default: var(--token-color-text-action); --button-color-text--hover: var(--token-color-text-action-hover); --button-color-text--active: var( --token-color-text-action-pressed ); } .eufemia-scope--11_8_2 .dnb-dropdown__trigger.dnb-button--secondary.dnb-dropdown__trigger--open { --button-border-inset--default: var(--dropdown-border-inset--open); --button-border-width--default: var(--dropdown-border-width--open); --button-border-width--active: var( --dropdown-border-width--closed ); } .eufemia-scope--11_8_2 .dnb-dropdown--is-popup .dnb-dropdown__trigger.dnb-button { padding: 0; border-radius: 50%; } .eufemia-scope--11_8_2 .dnb-dropdown__text { order: 1; position: relative; z-index: 4; display: inline-block; width: 100%; overflow: hidden; color: inherit; text-align: left; text-overflow: ellipsis; line-height: inherit; font-size: var(--font-size-basis); } .eufemia-scope--11_8_2 .dnb-dropdown__text__inner { display: inherit; overflow: hidden; white-space: nowrap; text-overflow: inherit; } .eufemia-scope--11_8_2 .dnb-dropdown > .dnb-form-status { transform: translateY(-0.4375rem); } .eufemia-scope--11_8_2 .dnb-dropdown--icon-position-left .dnb-dropdown__text { order: 2; padding-right: 0; padding-left: var(--dropdown-text-padding); } .eufemia-scope--11_8_2 .dnb-dropdown--icon-position-left .dnb-dropdown__icon { order: 1; } .eufemia-scope--11_8_2 .dnb-dropdown--icon-position-right .dnb-dropdown__text { padding-right: var(--dropdown-text-padding); } .eufemia-scope--11_8_2 .dnb-dropdown--independent-width .dnb-dropdown__shell { width: auto; } .eufemia-scope--11_8_2 .dnb-dropdown--icon-position-left .dnb-button--tertiary ~ .dnb-drawer-list__root--portal { left: -0.5rem; } .eufemia-scope--11_8_2 .dnb-dropdown--icon-position-right .dnb-button--tertiary ~ .dnb-drawer-list__root--portal { left: 0.5rem; } .eufemia-scope--11_8_2 .dnb-dropdown .dnb-button--tertiary .dnb-button__text { margin: 0 0.5rem; } .eufemia-scope--11_8_2 .dnb-dropdown .dnb-button--tertiary .dnb-button__text::after { bottom: 0; } .eufemia-scope--11_8_2 .dnb-dropdown--icon-position-left .dnb-button--tertiary .dnb-dropdown__text, .eufemia-scope--11_8_2 .dnb-dropdown--icon-position-right .dnb-button--tertiary .dnb-dropdown__text { padding: 0; } .eufemia-scope--11_8_2 .dnb-dropdown .dnb-button--tertiary { padding: 0; } .eufemia-scope--11_8_2 .dnb-dropdown__status--error .dnb-button--tertiary::before { content: ""; position: absolute; z-index: 1; top: 0; left: -0.5rem; bottom: 0; right: -0.5rem; height: inherit; border-radius: inherit; outline: none; --border-color: var(--token-color-stroke-action-focus); --border-width: var(--focus-ring-width); box-shadow: 0 0 0 var(--border-width) var(--border-color); border-color: transparent; --border-color: var(--token-color-stroke-error); --border-width: 0.0625rem; } .eufemia-scope--11_8_2 .dnb-dropdown__status--error .dnb-button--tertiary:disabled::before { --border-color: var(--token-color-stroke-action-disabled); } .eufemia-scope--11_8_2 .dnb-dropdown .dnb-button--tertiary[disabled] { --button-tertiary-focus-left: 0; --button-tertiary-focus-right: 0; } .eufemia-scope--11_8_2 .dnb-dropdown__status--error .dnb-button--tertiary:not([disabled]):hover::before { --border-width: var(--dropdown-border-width--open); } .eufemia-scope--11_8_2 .dnb-dropdown--default.dnb-dropdown--is-popup .dnb-dropdown__shell, .eufemia-scope--11_8_2 .dnb-dropdown--is-popup .dnb-dropdown__trigger { padding: 0; width: var(--dropdown-height); height: var(--dropdown-height); } .eufemia-scope--11_8_2 .dnb-dropdown--is-popup .dnb-dropdown__icon { width: 100%; } .eufemia-scope--11_8_2 .dnb-dropdown--is-popup.dnb-dropdown--scroll .dnb-dropdown__options { min-height: 1rem; } .eufemia-scope--11_8_2 .dnb-dropdown--is-popup .dnb-drawer-list__root { width: var(--dropdown-width); } .eufemia-scope--11_8_2 .dnb-dropdown--small.dnb-dropdown--is-popup .dnb-dropdown__shell, .eufemia-scope--11_8_2 .dnb-dropdown--small.dnb-dropdown--is-popup .dnb-dropdown__trigger { width: var(--dropdown-height--small); } .eufemia-scope--11_8_2 .dnb-dropdown--medium.dnb-dropdown--is-popup .dnb-dropdown__shell, .eufemia-scope--11_8_2 .dnb-dropdown--medium.dnb-dropdown--is-popup .dnb-dropdown__trigger { width: var(--dropdown-height--medium); } .eufemia-scope--11_8_2 .dnb-dropdown--large.dnb-dropdown--is-popup .dnb-dropdown__shell, .eufemia-scope--11_8_2 .dnb-dropdown--large.dnb-dropdown--is-popup .dnb-dropdown__trigger { width: var(--dropdown-height--large); } .eufemia-scope--11_8_2 .dnb-dropdown--small .dnb-dropdown__shell, .eufemia-scope--11_8_2 .dnb-dropdown--small .dnb-dropdown__trigger { height: var(--dropdown-height--small); } .eufemia-scope--11_8_2 .dnb-dropdown--small, .eufemia-scope--11_8_2 .dnb-dropdown--small .dnb-dropdown__trigger.dnb-button { line-height: var(--dropdown-height--small); } .eufemia-scope--11_8_2 .dnb-dropdown--medium .dnb-dropdown__shell, .eufemia-scope--11_8_2 .dnb-dropdown--medium .dnb-dropdown__trigger { height: var(--dropdown-height--medium); } .eufemia-scope--11_8_2 .dnb-dropdown--medium, .eufemia-scope--11_8_2 .dnb-dropdown--medium .dnb-dropdown__trigger.dnb-button { line-height: var(--dropdown-height--medium); } .eufemia-scope--11_8_2 .dnb-dropdown--large .dnb-dropdown__shell, .eufemia-scope--11_8_2 .dnb-dropdown--large .dnb-dropdown__trigger { height: var(--dropdown-height--large); } .eufemia-scope--11_8_2 .dnb-dropdown--large, .eufemia-scope--11_8_2 .dnb-dropdown--large .dnb-dropdown__trigger.dnb-button { line-height: var(--dropdown-height--large); } .eufemia-scope--11_8_2 .dnb-dropdown--large .dnb-dropdown__trigger.dnb-button .dnb-dropdown__text { line-height: var(--line-height-basis); } .eufemia-scope--11_8_2 .dnb-dropdown > .dnb-form-label { margin-right: 1rem; line-height: var(--line-height-basis); } @media screen and (max-width: 40em) { .eufemia-scope--11_8_2 .dnb-dropdown { flex-wrap: wrap; } .eufemia-scope--11_8_2 .dnb-dropdown > .dnb-form-label { margin-bottom: 0.5rem; margin-top: 0.5rem; } } .eufemia-scope--11_8_2 .dnb-dropdown--stretch { display: flex; flex-grow: 1; } .eufemia-scope--11_8_2 .dnb-dropdown--stretch .dnb-dropdown__inner { flex-grow: 1; } .eufemia-scope--11_8_2 .dnb-dropdown--stretch .dnb-dropdown__row, .eufemia-scope--11_8_2 .dnb-dropdown--stretch .dnb-dropdown__inner, .eufemia-scope--11_8_2 .dnb-dropdown--stretch .dnb-dropdown__shell { width: 100%; } .eufemia-scope--11_8_2 .dnb-dropdown--stretch .dnb-form-label + .dnb-dropdown__inner { width: auto; } .eufemia-scope--11_8_2 .dnb-dropdown--vertical.dnb-dropdown--stretch .dnb-dropdown__inner { width: 100%; } .eufemia-scope--11_8_2 label + .dnb-dropdown[class*=__form-status] { vertical-align: top; } .eufemia-scope--11_8_2 label + .dnb-dropdown[class*=__form-status] .dnb-dropdown__shell { top: -0.375rem; } .eufemia-scope--11_8_2 .dnb-dropdown__inner > .dnb-form-status { order: 2; margin-top: 0.5rem; } .eufemia-scope--11_8_2 .dnb-dropdown--vertical { display: flex; flex-direction: column; align-items: flex-start; } .eufemia-scope--11_8_2 .dnb-dropdown:not(.dnb-dropdown--vertical)[class*=__status] { align-items: flex-start; } .eufemia-scope--11_8_2 .dnb-dropdown:not(.dnb-dropdown--vertical)[class*=__status] > .dnb-form-label { margin-top: 0.25rem; } @media screen and (max-width: 40em) { .eufemia-scope--11_8_2 .dnb-responsive-component .dnb-dropdown { display: flex; flex-direction: column; align-items: flex-start; margin-bottom: 0.5rem; } .eufemia-scope--11_8_2 .dnb-responsive-component .dnb-dropdown > .dnb-form-label { margin-bottom: 0.5rem; } .eufemia-scope--11_8_2 .dnb-responsive-component .dnb-dropdown__helper { display: none; } }