UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

398 lines 15.1 kB
/* * Accordion component * */ /* * Utilities */ .eufemia-scope--11_8_2 .dnb-accordion { --accordion-color-text: var(--accordion-color-text--default); --accordion-color-description: var( --accordion-color-description--default ); --accordion-color-bg: var(--accordion-color-bg--default); --accordion-color-border: var(--accordion-color-border--default); --accordion-border-width: var( --accordion-border-width--default, 0.0625rem ); --accordion-border-radius: var(--token-radius-md); --accordion-easing: var(--easing-default); --accordion-border-inset: var(--accordion-border-inset--default, inset); --accordion-header-margin-vertical: 1.25rem; --accordion-header-margin-vertical--description: 0.75rem; --accordion-header-wrapper-margin: 1rem; --accordion-header-wrapper-margin--icon-right: 1rem; --accordion-header-icon-gutter: 1rem; --accordion-header-icon-margin: 1rem; --accordion-header-icon-alignment: flex-start; --accordion-title-font-weight: var(--font-weight-basis); --accordion-title-font-weight--expanded: var(--font-weight-medium); --accordion-content-margin: 1rem 0 0 0; --accordion-content-padding: 0; position: relative; display: flex; flex-direction: column; font-size: var(--font-size-small); line-height: var(--line-height-basis); } .eufemia-scope--11_8_2 .dnb-accordion__header { display: flex; align-items: center; cursor: pointer; outline: none; color: var(--accordion-color-text, var(--accordion-color-text--default)); background-color: var(--accordion-color-bg); box-shadow: var(--ui-accordion-box-shadow); border: none; border-radius: var(--accordion-border-radius); } html:not([data-whatintent=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header:hover[disabled] { cursor: not-allowed; } html:not([data-whatintent=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header:hover:not([disabled]) { --accordion-color-text: var(--accordion-color-text--hover); --accordion-color-description: var( --accordion-color-description--hover ); --accordion-color-bg: var(--accordion-color-bg--hover); --accordion-color-border: var(--accordion-color-border--hover); --accordion-border-width: var(--accordion-border-width--hover); --accordion-border-inset: var(--accordion-border-inset--hover); } html:not([data-whatintent=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header--after-click:hover[disabled] { cursor: not-allowed; } html:not([data-whatintent=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header--after-click:hover:not([disabled]) { --accordion-color-text: var(--accordion-color-text--after-click); --accordion-color-description: var( --accordion-color-description--after-click ); --accordion-color-bg: var(--accordion-color-bg--after-click); --accordion-color-border: var( --accordion-color-border--after-click ); } .eufemia-scope--11_8_2 .dnb-accordion__header:active[disabled], html:not([data-whatintent=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header:active[disabled] { cursor: not-allowed; } .eufemia-scope--11_8_2 .dnb-accordion__header:active:not([disabled]), html:not([data-whatintent=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header:active:not([disabled]) { --accordion-color-text: var(--accordion-color-text--active); --accordion-color-description: var( --accordion-color-description--active ); --accordion-color-bg: var(--accordion-color-bg--active); --accordion-color-border: var(--accordion-color-border--active); --accordion-border-width: var(--accordion-border-width--active); --accordion-border-inset: var(--accordion-border-inset--active); } html:not([data-whatinput=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header:focus-visible[disabled] { cursor: not-allowed; } html:not([data-whatinput=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header:focus-visible:not([disabled]) { --accordion-color-text: var(--accordion-color-text--focus); --accordion-color-description: var( --accordion-color-description--focus ); --accordion-color-bg: var(--accordion-color-bg--focus); --accordion-color-border: var(--accordion-color-border--focus); --accordion-border-width: var(--accordion-border-width--focus); --accordion-border-inset: var(--accordion-border-inset--focus); } .eufemia-scope--11_8_2 .dnb-accordion__header[disabled] { --accordion-color-text: var(--accordion-color-text--disabled); --accordion-color-bg: var(--accordion-color-bg--disabled); --accordion-color-border: var(--accordion-color-border--disabled); --accordion-color-description: var( --accordion-color-description--disabled ); } .eufemia-scope--11_8_2 .dnb-accordion__header * { pointer-events: none; } .eufemia-scope--11_8_2 .dnb-accordion__header--prevent-click { pointer-events: none; } .eufemia-scope--11_8_2 .dnb-accordion__header__wrapper { display: flex; flex-direction: column; width: 100%; margin: var(--accordion-header-margin-vertical) var(--accordion-header-wrapper-margin) var(--accordion-header-margin-vertical) 0; } .eufemia-scope--11_8_2 .dnb-accordion__header--description .dnb-accordion__header__wrapper { margin-top: var(--accordion-header-margin-vertical--description); margin-bottom: var(--accordion-header-margin-vertical--description); } .eufemia-scope--11_8_2 .dnb-accordion__header__container { margin: 0 1rem; } .eufemia-scope--11_8_2 .dnb-accordion__header__icon { align-self: var(--accordion-header-icon-alignment); margin: var(--accordion-header-margin-vertical) var(--accordion-header-icon-gutter) var(--accordion-header-margin-vertical) var(--accordion-header-icon-margin); font-size: var(--font-size-small); line-height: var(--line-height-small); } .eufemia-scope--11_8_2 .dnb-accordion__header--description .dnb-accordion__header__icon { margin-top: var(--accordion-header-margin-vertical--description); } .eufemia-scope--11_8_2 .dnb-accordion__header--icon-right { justify-content: space-between; } .eufemia-scope--11_8_2 .dnb-accordion__header--icon-right .dnb-accordion__header__icon { margin-right: var(--accordion-header-icon-margin); margin-left: var(--accordion-header-icon-gutter); order: 3; } .eufemia-scope--11_8_2 .dnb-accordion__header--icon-right .dnb-accordion__header__container { order: 1; } .eufemia-scope--11_8_2 .dnb-accordion__header--icon-right .dnb-accordion__header__wrapper { order: 2; margin-right: 0; margin-left: var(--accordion-header-wrapper-margin--icon-right); } .eufemia-scope--11_8_2 .dnb-accordion__header--icon-right .dnb-accordion__header__wrapper + .dnb-accordion__header__container { margin-right: 0; } .eufemia-scope--11_8_2 .dnb-accordion__header--icon-right .dnb-accordion__header__container + .dnb-accordion__header__wrapper { margin-left: 0; } html:not([data-whatintent=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header--outlined:hover[disabled] { cursor: not-allowed; } html:not([data-whatintent=touch]) .eufemia-scope--11_8_2 .dnb-accordion__header--outlined:hover:not([disabled]) { z-index: 1; } .eufemia-scope--11_8_2 .dnb-accordion__header--outlined, .eufemia-scope--11_8_2 .dnb-accordion__header--filled { --ui-accordion-box-shadow: var( --accordion-border-inset, var(--accordion-border-inset--default) ) 0 0 0 var( --accordion-border-width, var(--accordion-border-width--default) ) var( --accordion-color-border, var(--accordion-color-border--default) ); } .eufemia-scope--11_8_2 .dnb-accordion__header--expanded { --accordion-title-font-weight: var( --accordion-title-font-weight--expanded ); } .eufemia-scope--11_8_2 .dnb-accordion__header__title { font-size: var(--font-size-basis); line-height: var(--line-height-basis); font-weight: var(--accordion-title-font-weight); } .eufemia-scope--11_8_2 .dnb-accordion__header__description { color: var(--accordion-color-description, var(--accordion-color-description--default)); font-size: var(--font-size-small); line-height: var(--line-height-small); font-weight: var(--font-weight-basis); } .eufemia-scope--11_8_2 .dnb-accordion__header__title + .dnb-accordion__header__description { margin-top: 0.25rem; } .eufemia-scope--11_8_2 .dnb-accordion__header__description + .dnb-accordion__header__title { margin-top: 0.25rem; } .eufemia-scope--11_8_2 .dnb-accordion__content { display: flex; width: 100%; will-change: height; transition: height 400ms var(--accordion-easing), opacity 600ms var(--accordion-easing); } @media (prefers-reduced-motion: reduce) { .eufemia-scope--11_8_2 .dnb-accordion__content { transition-duration: 0.01ms; } } .eufemia-scope--11_8_2 .dnb-accordion__content__inner { width: 100%; margin: var(--accordion-content-margin); padding: var(--accordion-content-padding); } .eufemia-scope--11_8_2 .dnb-accordion-group--single-container { transition: min-height 1s var(--accordion-easing); } @media (prefers-reduced-motion: reduce) { .eufemia-scope--11_8_2 .dnb-accordion-group--single-container { transition-duration: 0.01ms; } } .eufemia-scope--11_8_2 .dnb-accordion-group--single-container .dnb-accordion { position: static; max-width: 60rem; } @media screen and (min-width: 40.00625em) { .eufemia-scope--11_8_2 .dnb-accordion-group--single-container .dnb-accordion__header { width: 40%; } .eufemia-scope--11_8_2 .dnb-accordion-group--single-container .dnb-accordion__content { margin-left: 1rem; transition: opacity 1s var(--accordion-easing); } } @media screen and (min-width: 40.00625em) and (prefers-reduced-motion: reduce) { .eufemia-scope--11_8_2 .dnb-accordion-group--single-container .dnb-accordion__content { transition-duration: 0.01ms; } } @media screen and (min-width: 40.00625em) { .eufemia-scope--11_8_2 .dnb-accordion-group--single-container .dnb-accordion__content__inner { margin-top: 0; } } .eufemia-scope--11_8_2 .dnb-accordion-group--single-container .dnb-accordion-group__children { max-width: 60rem; } @media screen and (min-width: 40.00625em) { .eufemia-scope--11_8_2 .dnb-accordion-group--single-container .dnb-accordion-group__children { position: relative; display: flex; flex-direction: column; } .eufemia-scope--11_8_2 .dnb-accordion-group--single-container .dnb-accordion-group__children .dnb-accordion__content { position: absolute; z-index: 10; top: 0; right: 0; width: 60%; } } .eufemia-scope--11_8_2 .dnb-accordion { /* stylelint-disable-next-line no-descending-specificity */ } .eufemia-scope--11_8_2 .dnb-accordion > .dnb-accordion__header--no-animation .dnb-accordion__header__icon { transition: none; } .eufemia-scope--11_8_2 .dnb-accordion__variant--outlined { --accordion-color-text--default: var( --token-color-text-action ); --accordion-color-text--hover: var(--token-color-text-action); --accordion-color-text--after-click: var( --token-color-text-neutral-inverse ); --accordion-color-bg--default: var(--token-color-background-neutral); --accordion-color-bg--after-click: var( --token-color-background-action ); --accordion-color-bg--hover: var(--token-color-background-neutral); --accordion-color-bg--active: var( --token-color-background-action-pressed-subtle ); --accordion-color-bg--disabled: var(--token-color-background-neutral); --accordion-color-border--default: var( --token-color-stroke-neutral-bold ); --accordion-color-border--hover: var( --token-color-stroke-action-hover ); --accordion-color-border--active: var( --token-color-stroke-action-pressed ); --accordion-color-border--after-click: var( --token-color-stroke-action ); --accordion-border-width--hover: 0.125rem; --accordion-border-width--active: 0.125rem; } .eufemia-scope--11_8_2 .dnb-accordion__variant--outlined.dnb-accordion--expanded { --accordion-color-text--default: var( --token-color-text-neutral-inverse ); --accordion-color-text--active: var(--token-color-text-action); --accordion-color-bg--default: var(--token-color-background-action); --accordion-color-border--default: var(--accordion-color-bg); } .eufemia-scope--11_8_2 .dnb-accordion__variant--filled { --accordion-color-text--default: var(--token-color-text-action); --accordion-color-text--hover: var(--token-color-text-action-hover); --accordion-color-text--active: var( --token-color-text-neutral-inverse ); --accordion-color-text--disabled: var( --token-color-text-action-disabled ); --accordion-color-bg--default: var( --token-color-decorative-third-muted ); --accordion-color-bg--hover: var(--token-color-background-neutral); --accordion-color-bg--active: var( --token-color-background-action-pressed ); --accordion-color-border--default: var( --token-color-decorative-third-muted ); --accordion-color-border--active: var( --token-color-stroke-action-pressed ); --accordion-border-width--default: 0.125rem; } .eufemia-scope--11_8_2 .dnb-accordion__variant--outlined, .eufemia-scope--11_8_2 .dnb-accordion__variant--filled { --accordion-color-text--disabled: var( --token-color-text-action-disabled ); --accordion-color-text--focus: var(--token-color-text-action-focus); --accordion-color-description--default: var( --token-color-text-neutral-alternative ); --accordion-color-description--hover: var( --token-color-text-neutral-alternative ); --accordion-color-description--active: var( --token-color-text-neutral-alternative ); --accordion-color-description--focus: var( --token-color-text-neutral-alternative ); --accordion-color-description--after-click: var( --accordion-color-text ); --accordion-color-description--disabled: var( --token-color-text-action-disabled ); --accordion-color-bg--focus: var( --token-color-background-action-focus-subtle ); --accordion-color-border--focus: var( --token-color-stroke-action-focus ); --accordion-color-border--disabled: var( --token-color-stroke-action-disabled ); --accordion-border-width--focus: 0.25rem; --accordion-border-inset--default: inset; --accordion-border-inset--hover: ; --accordion-border-inset--active: inset; --accordion-border-inset--focus: ; } .eufemia-scope--11_8_2 .dnb-accordion__variant--outlined.dnb-accordion--expanded, .eufemia-scope--11_8_2 .dnb-accordion__variant--filled.dnb-accordion--expanded { --accordion-color-text--disabled: var( --token-color-text-neutral-inverse ); --accordion-color-description--default: var(--accordion-color-text); --accordion-color-description--disabled: var( --token-color-text-neutral-inverse ); --accordion-color-bg--disabled: var( --token-color-background-action-disabled ); --accordion-color-border--disabled: var( --accordion-color-bg--disabled ); } .eufemia-scope--11_8_2 .dnb-accordion__variant--tertiary { display: inline-flex; border: none; background: none; box-shadow: none; } .eufemia-scope--11_8_2 .dnb-accordion__tertiary-button { align-self: flex-start; }