UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

308 lines 12.7 kB
/* * ToggleButton component * */ /* * Utilities */ .eufemia-scope--11_3_0 .dnb-toggle-button { display: inline-flex; align-items: center; font-size: var(--font-size-small); line-height: var(--line-height-basis); } .eufemia-scope--11_3_0 .dnb-toggle-button__inner { display: inline-flex; flex-direction: column; } .eufemia-scope--11_3_0 .dnb-toggle-button__shell { position: relative; left: 0; -webkit-user-select: none; user-select: none; } .eufemia-scope--11_3_0 .dnb-toggle-button--vertical { flex-direction: column; align-items: flex-start; } .eufemia-scope--11_3_0 .dnb-toggle-button__component { padding-right: 0.5rem; display: inline-flex; align-items: center; } .eufemia-scope--11_3_0 .dnb-toggle-button__button { --button-border-radius: var(--token-radius-md); --button-color-bg--default: var(--token-color-background-neutral); --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-neutral-bold); --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-neutral); --button-color-text--default: var(--token-color-text-neutral); --button-color-text--hover: var(--token-color-text-neutral); --button-color-text--active: var(--token-color-text-neutral); } .eufemia-scope--11_3_0 .dnb-toggle-button__button.dnb-button--has-text { padding-left: 1.5rem; padding-right: 1.5rem; } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-checkbox { margin-left: -0.5rem; } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-checkbox__input { pointer-events: none; } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-checkbox__button { display: unset; border-color: inherit; transition: none; } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-checkbox__focus, .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-checkbox__button { width: calc(var(--checkbox-width--medium) - 0.25rem); height: calc(var(--checkbox-height--medium) - 0.25rem); border-width: 0.0625rem; } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-checkbox__dot { width: calc(var(--checkbox-width--medium) - 1rem); height: calc(var(--checkbox-height--medium) - 1rem); } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-checkbox__gfx { width: calc(var(--checkbox-width--medium) - 0.625rem); height: calc(var(--checkbox-height--medium) - 0.625rem); } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-radio { margin-left: -0.5rem; } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-radio__input { pointer-events: none; } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-radio__button { width: calc(var(--radio-width--medium) - 0.5rem); height: calc(var(--radio-height--medium) - 0.5rem); border-width: 0.0625rem; } .eufemia-scope--11_3_0 .dnb-toggle-button__button .dnb-radio__dot { width: calc(var(--radio-dot--medium) - 0.125rem); height: calc(var(--radio-dot--medium) - 0.125rem); } html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:hover[disabled] { cursor: not-allowed; } html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:hover:not([disabled]) .dnb-radio .dnb-radio__button { --radio-border-inset--default: var(--radio-border-inset--hover); --radio-border-width--default: var(--radio-border-width--hover); --radio-color-border--default: var(--radio-color-border--hover); --radio-color-background--default: var( --radio-color-background--hover ); } html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:hover:not([disabled]) .dnb-radio .dnb-radio__dot { --radio-color-dot-on--default: var(--radio-color-dot-on--hover); } html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:hover:not([disabled]) .dnb-checkbox .dnb-checkbox__button { --checkbox-color-background-off: var( --checkbox-color-background-off--hover ); --checkbox-color-background-off--error: var( --checkbox-color-background-off--hover ); --checkbox-color-background-on: var( --checkbox-color-background-on--hover ); --checkbox-color-background-on--error: var( --checkbox-color-background-on--hover ); --checkbox-border-inset: var(--checkbox-border-inset--hover); --checkbox-border-width: var(--checkbox-border-width--hover); --checkbox-color-border: var(--checkbox-color-border--hover); } html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:hover:not([disabled]) .dnb-checkbox .dnb-checkbox__gfx { --checkbox-color-gfx-on: var(--checkbox-color-gfx--hover); } .eufemia-scope--11_3_0 .dnb-toggle-button__button:active[disabled], html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:active[disabled] { cursor: not-allowed; } .eufemia-scope--11_3_0 .dnb-toggle-button__button:active:not([disabled]) .dnb-radio .dnb-radio__button, html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:active:not([disabled]) .dnb-radio .dnb-radio__button { --radio-border-inset--default: var(--radio-border-inset--active); --radio-border-width--default: var(--radio-border-width--active); --radio-color-border--default: var(--radio-color-border--active); --radio-color-background--default: var( --radio-color-background--active ); } .eufemia-scope--11_3_0 .dnb-toggle-button__button:active:not([disabled]) .dnb-radio .dnb-radio__dot, html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:active:not([disabled]) .dnb-radio .dnb-radio__dot { --radio-color-dot-on--default: var(--radio-color-dot-on--active); } .eufemia-scope--11_3_0 .dnb-toggle-button__button:active:not([disabled]) .dnb-checkbox .dnb-checkbox__button, html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:active:not([disabled]) .dnb-checkbox .dnb-checkbox__button { --checkbox-color-background-off: var( --checkbox-color-background-off--active ); --checkbox-color-background-off--error: var( --checkbox-color-background-off--active ); --checkbox-color-background-on: var( --checkbox-color-background-on--active ); --checkbox-color-background-on--error: var( --checkbox-color-background-on--active ); --checkbox-border-inset: var(--checkbox-border-inset--active); --checkbox-border-width: var(--checkbox-border-width--default); --checkbox-color-border: var(--checkbox-color-border-on--active); } .eufemia-scope--11_3_0 .dnb-toggle-button__button:active:not([disabled]) .dnb-checkbox .dnb-checkbox__gfx, html:not([data-whatintent=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:active:not([disabled]) .dnb-checkbox .dnb-checkbox__gfx { --checkbox-color-gfx-on: var(--checkbox-color-gfx-on--active); } html:not([data-whatinput=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:focus-visible[disabled] { cursor: not-allowed; } html:not([data-whatinput=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:focus-visible:not([disabled]) .dnb-radio .dnb-radio__button { --radio-border-inset--default: var(--radio-border-inset--focus); --radio-border-width--default: var(--radio-border-width--focus); --radio-color-border--default: var(--radio-color-border--focus); --radio-color-background--default: var( --radio-color-background--focus ); } html:not([data-whatinput=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:focus-visible:not([disabled]) .dnb-radio .dnb-radio__dot { --radio-color-dot-on--default: var(--radio-color-dot-on--focus); } html:not([data-whatinput=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:focus-visible:not([disabled]) .dnb-checkbox .dnb-checkbox__button { --checkbox-color-background-off: var( --checkbox-color-background--focus ); --checkbox-color-background-off--error: var( --checkbox-color-background--focus ); --checkbox-color-background-on: var( --checkbox-color-background--focus ); --checkbox-color-background-on--error: var( --checkbox-color-background--focus ); --checkbox-border-inset: ; --checkbox-border-width: 0.25rem; --checkbox-color-border: var(--token-color-stroke-action-focus); } html:not([data-whatinput=touch]) .eufemia-scope--11_3_0 .dnb-toggle-button__button:focus-visible:not([disabled]) .dnb-checkbox .dnb-checkbox__gfx { --checkbox-color-gfx-on: var(--checkbox-color-gfx--focus); --checkbox-color-gfx--error: var(--checkbox-color-gfx--focus); } .eufemia-scope--11_3_0 .dnb-toggle-button--checked .dnb-toggle-button__button { --button-color-bg--default: var( --token-color-background-selected-subtle ); --button-color-bg--hover: var( --token-color-background-selected-subtle ); --button-color-bg--active: var( --token-color-background-selected-subtle ); --button-color-bg--disabled: var( --token-color-background-neutral-base ); --button-color-border--default: var( --token-color-component-button-stroke-selected ); --button-color-icon--default: var(--token-color-text-selected); --button-color-text--default: var(--token-color-text-selected); --button-color-text--hover: var(--token-color-text-selected); --button-color-text--active: var(--token-color-text-selected); } .eufemia-scope--11_3_0 .dnb-toggle-button__status--error .dnb-toggle-button__button { --button-color-bg--default: var(--token-color-background-neutral); --button-color-border--default: var( --token-color-component-button-stroke-action-destructive ); --button-color-icon--default: var( --token-color-component-button-icon-action-destructive ); --button-color-text--default: var( --token-color-component-button-text-action-destructive ); } .eufemia-scope--11_3_0 .dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button { --button-color-bg--default: var(--token-color-background-error-subtle); } .eufemia-scope--11_3_0 :not(.dnb-toggle-button-group) > .dnb-form-label + .dnb-toggle-button { vertical-align: top; } .eufemia-scope--11_3_0 .dnb-toggle-button .dnb-form-status { order: 2; margin-top: 0.5rem; } .eufemia-scope--11_3_0 .dnb-toggle-button .dnb-form-label { margin-right: 1rem; } .eufemia-scope--11_3_0 .dnb-toggle-button-group { --toggle-button-group-column-gap: 1rem; --toggle-button-group-row-gap: 1rem; display: inline-flex; } .eufemia-scope--11_3_0 .dnb-toggle-button-group, .eufemia-scope--11_3_0 .dnb-toggle-button-group__fieldset, .eufemia-scope--11_3_0 .dnb-toggle-button-group__shell { flex-grow: 1; } .eufemia-scope--11_3_0 .dnb-toggle-button-group fieldset:not([class*=space__top]) { margin-top: 0; } .eufemia-scope--11_3_0 .dnb-toggle-button-group fieldset:not([class*=space__bottom]) { margin-bottom: 0; } .eufemia-scope--11_3_0 .dnb-toggle-button-group fieldset:not([class*=space__left]) { margin-left: 0; } .eufemia-scope--11_3_0 .dnb-toggle-button-group fieldset:not([class*=space__right]) { margin-right: 0; } .eufemia-scope--11_3_0 .dnb-toggle-button-group fieldset { padding: 0; border: none; } .eufemia-scope--11_3_0 .dnb-toggle-button-group--column .dnb-toggle-button { display: flex; margin-right: 0; } .eufemia-scope--11_3_0 .dnb-toggle-button-group .dnb-toggle-button:last-of-type { margin-right: 0; } .eufemia-scope--11_3_0 .dnb-toggle-button-group__shell { display: flex; flex-direction: column; row-gap: var(--toggle-button-group-row-gap); } .eufemia-scope--11_3_0 .dnb-toggle-button-group__shell__children { display: flex; flex-wrap: wrap; align-items: flex-start; column-gap: var(--toggle-button-group-column-gap); row-gap: var(--toggle-button-group-row-gap); order: 1; } .eufemia-scope--11_3_0 .dnb-toggle-button-group__shell__children--row { flex-direction: row; } .eufemia-scope--11_3_0 .dnb-toggle-button-group__shell__children--column { flex-direction: column; } .eufemia-scope--11_3_0 .dnb-toggle-button-group__shell > .dnb-form-status { order: 2; transform: translateY(-0.5rem); } .eufemia-scope--11_3_0 .dnb-toggle-button-group .dnb-flex-container--direction-horizontal .dnb-form-label { margin-top: 0.5rem; align-self: flex-start; } .eufemia-scope--11_3_0 .dnb-toggle-button-group .dnb-alignment-helper { line-height: 2.5rem; } .eufemia-scope--11_3_0 .dnb-toggle-button-group__suffix { font-size: var(--font-size-basis); } @media screen and (min-width: 40.00625em) { .eufemia-scope--11_3_0 .dnb-form-label + .dnb-toggle-button { transform: translateY(-0.5rem); } }