UNPKG

@cbpds/web-components

Version:
237 lines (233 loc) 13.4 kB
/* * Caution: "global styles" get injected into every component and can cause file size bloat. * These should only include SASS variables and mixins that are not written out to CSS directly */ /** * @prop --cbp-accordion-item-color: var(--cbp-color-text-darker); * @prop --cbp-accordion-item-color-background: var(--cbp-color-gray-cool-10); * @prop --cbp-accordion-item-border-width: var(--cbp-border-width-xs); * @prop --cbp-accordion-item-border-style: solid; * @prop --cbp-accordion-item-color-hover: var(--cbp-color-text-darker); * @prop --cbp-accordion-item-color-background-hover: var(--cbp-color-interactive-secondary-light); * @prop --cbp-accordion-item-color-open-hover: var(--cbp-color-text-lightest); * @prop --cbp-accordion-item-color-background-open-hover: var(--cbp-color-interactive-secondary-darker); * @prop --cbp-accordion-item-color-focus: var(--cbp-color-text-lightest); * @prop --cbp-accordion-item-color-background-focus: var(--cbp-color-interactive-focus-dark); * @prop --cbp-accordion-item-color-outline-focus: var(--cbp-color-white); * @prop --cbp-accordion-item-color-active: var(--cbp-color-text-lightest); * @prop --cbp-accordion-item-color-background-active: var(--cbp-color-interactive-active-dark); * @prop --cbp-accordion-item-border-radius: var(--cbp-border-radius-sharp, 0); * @prop --cbp-accordion-item-control-font-size: var(--cbp-font-size-heading-sm); * @prop --cbp-accordion-item-control-font-weight: var(--cbp-font-weight-semibold); * @prop --cbp-accordion-item-control-gap: var(--cbp-space-3x); * @prop --cbp-accordion-item-control-padding: var(--cbp-space-3x); * @prop --cbp-accordion-item-control-direction: row; * @prop --cbp-accordion-item-color-content: var(--cbp-color-text-darkest); * @prop --cbp-accordion-item-color-background-content: var(--cbp-color-white); * @prop --cbp-accordion-item-content-font-size: var(--cbp-font-size-md); * @prop --cbp-accordion-item-content-font-family: inherit; * @prop --cbp-accordion-item-content-font-weight: var(--cbp-font-weight-regular); * @prop --cbp-accordion-item-content-padding: var(--cbp-space-3x); * @prop --cbp-accordion-item-danger-color: var(--cbp-color-white); * @prop --cbp-accordion-item-danger-color-dark: var(--cbp-color-text-darkest); * @prop --cbp-accordion-item-danger-color-background: var(--cbp-color-danger-base); * @prop --cbp-accordion-item-danger-color-background-dark: var(--cbp-color-danger-light); * @prop --cbp-accordion-item-danger-color-background-hover: var(--cbp-color-danger-dark); * @prop --cbp-accordion-item-danger-color-background-hover-dark: var(--cbp-color-danger-lighter); */ :root { --cbp-accordion-item-color: var(--cbp-color-text-darker); --cbp-accordion-item-color-background: var(--cbp-color-gray-cool-10); --cbp-accordion-item-color-open: var(--cbp-color-text-lighter); --cbp-accordion-item-color-background-open: var(--cbp-color-gray-cool-60); --cbp-accordion-item-color-hover: var(--cbp-color-text-darker); --cbp-accordion-item-color-background-hover: var(--cbp-color-interactive-secondary-light); --cbp-accordion-item-color-open-hover: var(--cbp-color-text-lightest); --cbp-accordion-item-color-background-open-hover: var(--cbp-color-interactive-secondary-darker); --cbp-accordion-item-color-focus: var(--cbp-color-text-lightest); --cbp-accordion-item-color-background-focus: var(--cbp-color-interactive-focus-dark); --cbp-accordion-item-color-outline-focus: var(--cbp-color-white); --cbp-accordion-item-color-active: var(--cbp-color-text-lightest); --cbp-accordion-item-color-background-active: var(--cbp-color-interactive-active-dark); --cbp-accordion-item-border-width: var(--cbp-border-width-xs); --cbp-accordion-item-border-style: solid; --cbp-accordion-item-border-radius: var(--cbp-border-radius-sharp, 0); --cbp-accordion-item-control-font-size: var(--cbp-font-size-heading-sm); --cbp-accordion-item-control-font-weight: var(--cbp-font-weight-semibold); --cbp-accordion-item-control-gap: var(--cbp-space-3x); --cbp-accordion-item-control-padding: var(--cbp-space-3x); --cbp-accordion-item-control-direction: row; --cbp-accordion-item-color-content: var(--cbp-color-text-darkest); --cbp-accordion-item-color-background-content: var(--cbp-color-white); --cbp-accordion-item-content-font-size: var(--cbp-font-size-md); --cbp-accordion-item-content-font-family: inherit; --cbp-accordion-item-content-font-weight: var(--cbp-font-weight-regular); --cbp-accordion-item-content-padding: var(--cbp-space-3x); --cbp-accordion-item-heading-gap: var(--cbp-space-2x); --cbp-accordion-item-danger-color: var(--cbp-color-white); --cbp-accordion-item-danger-color-dark: var(--cbp-color-text-darkest); --cbp-accordion-item-danger-color-background: var(--cbp-color-danger-base); --cbp-accordion-item-danger-color-background-dark: var(--cbp-color-danger-light); --cbp-accordion-item-danger-color-background-hover: var(--cbp-color-danger-dark); --cbp-accordion-item-danger-color-background-hover-dark: var(--cbp-color-danger-lighter); } [data-cbp-theme=light] cbp-accordion[context*=dark], [data-cbp-theme=dark] cbp-accordion:not([context=dark-inverts]):not([context=light-always]) { --cbp-accordion-item-color: var(--cbp-color-white); --cbp-accordion-item-color-background: var(--cbp-color-gray-cool-50); --cbp-accordion-item-color-open: var(--cbp-color-white); --cbp-accordion-item-color-background-open: var(--cbp-color-gray-cool-60); --cbp-accordion-item-color-hover: var(--cbp-color-text-darkest); --cbp-accordion-item-color-background-hover: var(--cbp-color-interactive-secondary-lighter); --cbp-accordion-item-color-open-hover: var(--cbp-color-text-darkest); --cbp-accordion-item-color-background-open-hover: var(--cbp-color-interactive-secondary-light); --cbp-accordion-item-color-focus: var(--cbp-color-text-darkest); --cbp-accordion-item-color-background-focus: var(--cbp-color-interactive-focus-light); --cbp-accordion-item-color-outline-focus: var(--cbp-color-black); --cbp-accordion-item-color-active: var(--cbp-color-text-darkest); --cbp-accordion-item-color-background-active: var(--cbp-color-interactive-active-light); --cbp-accordion-item-color-content: var(--cbp-color-text-lightest); --cbp-accordion-item-color-background-content: var(--cbp-color-gray-cool-90); --cbp-accordion-item-danger-color: var(--cbp-accordion-item-danger-color-dark); --cbp-accordion-item-danger-color-background: var(--cbp-accordion-item-danger-color-background-dark); --cbp-accordion-item-danger-color-background-hover: var(--cbp-accordion-item-danger-color-background-hover-dark); } cbp-accordion-item { display: flex; flex-direction: column; } cbp-accordion-item[open] { --cbp-accordion-item-color: var(--cbp-accordion-item-color-open); --cbp-accordion-item-color-background: var(--cbp-accordion-item-color-background-open); } cbp-accordion-item[open] .cbp-accordion-item--control { --cbp-accordion-rotate-icon: rotate(270deg); --cbp-accordion-toggle: expandTo 500ms; } cbp-accordion-item[open] .cbp-accordion-item--control:hover:not(:focus-within):not(:active) { --cbp-accordion-item-color: var(--cbp-accordion-item-color-open-hover); --cbp-accordion-item-color-background: var(--cbp-accordion-item-color-background-open-hover); } cbp-accordion-item[open] .cbp-accordion-item--control:hover:not(:focus-within):not(:active) + .cbp-accordion-item--content { --cbp-accordion-item-color-background: var(--cbp-accordion-item-color-background-open-hover); } cbp-accordion-item .cbp-accordion-item--control { display: flex; flex-direction: var(--cbp-accordion-item-control-direction, row); align-items: center; gap: var(--cbp-accordion-item-control-gap); min-height: var(--cbp-space-13x); color: var(--cbp-accordion-item-color); --cbp-button-color: var(--cbp-accordion-item-color); background-color: var(--cbp-accordion-item-color-background); font-size: var(--cbp-accordion-item-control-font-size); font-weight: var(--cbp-accordion-item-control-font-weight); padding: var(--cbp-accordion-item-control-padding); outline-style: solid; outline-color: var(--cbp-accordion-item-color-outline-focus); outline-width: 0; outline-offset: calc(-1 * var(--cbp-space-1x)); cursor: pointer; } cbp-accordion-item .cbp-accordion-item--control .cbp-accordion-item--heading { display: flex; flex-grow: 1; justify-content: space-between; } cbp-accordion-item .cbp-accordion-item--control .cbp-accordion-item--heading :first-child { flex-grow: 1; } cbp-accordion-item .cbp-accordion-item--control .cbp-accordion-item--heading [slot=cbp-accordion-item-label] { display: flex; align-items: center; gap: var(--cbp-accordion-item-heading-gap); } cbp-accordion-item .cbp-accordion-item--control cbp-typography, cbp-accordion-item .cbp-accordion-item--control cbp-typography > * { color: var(--cbp-accordion-item-color); } cbp-accordion-item .cbp-accordion-item--control:hover { --cbp-accordion-item-color: var(--cbp-accordion-item-color-hover); --cbp-accordion-item-color-background: var(--cbp-accordion-item-color-background-hover); } cbp-accordion-item .cbp-accordion-item--control:focus-within { --cbp-accordion-item-color: var(--cbp-accordion-item-color-focus); --cbp-accordion-item-color-background: var(--cbp-accordion-item-color-background-focus); outline-width: var(--cbp-border-size-md); } cbp-accordion-item .cbp-accordion-item--control:focus-within .cbp-accordion-item--toggle { --cbp-button-color: var(--cbp-accordion-item-color-focus) !important; } cbp-accordion-item .cbp-accordion-item--control:focus-within + .cbp-accordion-item--content { --cbp-accordion-item-color-background: var(--cbp-accordion-item-color-background-focus); } cbp-accordion-item .cbp-accordion-item--control:active { --cbp-accordion-item-color: var(--cbp-accordion-item-color-active); --cbp-accordion-item-color-background: var(--cbp-accordion-item-color-background-active); } cbp-accordion-item .cbp-accordion-item--control:active .cbp-accordion-item--toggle { --cbp-button-color: var(--cbp-accordion-item-color-active) !important; } cbp-accordion-item .cbp-accordion-item--control:active + .cbp-accordion-item--content { --cbp-accordion-item-color-background: var(--cbp-accordion-item-color-background-active); } cbp-accordion-item .cbp-accordion-item--control .cbp-accordion-item--toggle { --cbp-button-padding: 0; --cbp-button-border-width: 0; --cbp-button-focus-outline-width: 0; --cbp-button-color: var(--cbp-accordion-item-color) !important; --cbp-button-color-hover: var(--cbp-accordion-item-color) !important; --cbp-button-color-focus: var(--cbp-accordion-item-color) !important; --cbp-button-color-active: var(--cbp-accordion-item-color) !important; --cbp-button-color-bg: transparent !important; --cbp-button-color-bg-hover: transparent !important; --cbp-button-color-bg-focus: transparent !important; --cbp-button-color-bg-active: transparent !important; } cbp-accordion-item .cbp-accordion-item--control .cbp-accordion-item--toggle cbp-icon svg { transition: transform 150ms; transform: var(--cbp-accordion-rotate-icon); } cbp-accordion-item .cbp-accordion-item--content { color: var(--cbp-accordion-item-color-content); background-color: var(--cbp-accordion-item-color-background-content); padding: var(--cbp-space-4x) var(--cbp-space-3x); border-width: var(--cbp-border-size-xl); border-style: var(--cbp-accordion-item-border-style); border-color: var(--cbp-accordion-item-color-background); border-top: 0; animation: var(--cbp-accordion-toggle); animation-timing-function: cubic-bezier(0.4, 0, 0.2, 10); animation-iteration-count: revert; animation-fill-mode: forwards; } cbp-accordion-item:not([open]) { --cbp-accordion-rotate-icon: rotate(90deg); } cbp-accordion-item:not([open]) .cbp-accordion-item--content { display: none; } cbp-accordion-item[color=danger], cbp-accordion-item[color=danger][open] { --cbp-accordion-item-color: var(--cbp-accordion-item-danger-color); --cbp-accordion-item-color-background: var(--cbp-accordion-item-danger-color-background); } cbp-accordion-item[color=danger] .cbp-accordion-item--control:hover:not(:focus-within):not(:active), cbp-accordion-item[color=danger][open] .cbp-accordion-item--control:hover:not(:focus-within):not(:active) { --cbp-accordion-item-color: var(--cbp-accordion-item-danger-color); --cbp-accordion-item-color-background: var(--cbp-accordion-item-danger-color-background-hover); } cbp-accordion-item[color=danger] .cbp-accordion-item--control:hover:not(:focus-within):not(:active) + .cbp-accordion-item--content, cbp-accordion-item[color=danger][open] .cbp-accordion-item--control:hover:not(:focus-within):not(:active) + .cbp-accordion-item--content { --cbp-accordion-item-color-background: var(--cbp-accordion-item-danger-color-background-hover); } cbp-accordion-item[color=danger] .cbp-accordion-item--control cbp-typography, cbp-accordion-item[color=danger] .cbp-accordion-item--control cbp-typography > *, cbp-accordion-item[color=danger][open] .cbp-accordion-item--control cbp-typography, cbp-accordion-item[color=danger][open] .cbp-accordion-item--control cbp-typography > * { --cbp-accordion-item-color: var(--cbp-accordion-item-danger-color); } @keyframes expandTo { from { max-height: 0px; } to { max-height: 5000px; } }