@cbpds/web-components
Version:
Web components for the CBP Design System.
82 lines (81 loc) • 3.67 kB
CSS
/*
* 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
*/
/*
* Dark Mode - display dark design based on mode or context
* CSS API originates in parent cbp-tabs component; dark mode override happens here due to color=danger variant.
*/
[data-cbp-theme=light] cbp-tabs[context*=dark] cbp-tab,
[data-cbp-theme=dark] cbp-tabs:not([context=dark-inverts]):not([context=light-always]) cbp-tab {
--cbp-tab-color: var(--cbp-tab-color-dark);
--cbp-tab-color-hover: var(--cbp-tab-color-hover-dark);
--cbp-tab-color-focus: var(--cbp-tab-color-focus-dark);
--cbp-tab-color-active: var(--cbp-tab-color-active-dark);
--cbp-tab-color-selected: var(--cbp-tab-color-selected-dark);
--cbp-tab-color-bg: var(--cbp-tab-color-bg-dark);
--cbp-tab-color-bg-hover: var(--cbp-tab-color-bg-hover-dark);
--cbp-tab-color-bg-focus: var(--cbp-tab-color-bg-focus-dark);
--cbp-tab-color-bg-active: var(--cbp-tab-color-bg-active-dark);
--cbp-tab-color-bg-selected: var(--cbp-tab-color-bg-selected-dark);
--cbp-tab-color-border: var(--cbp-tab-color-border-dark);
--cbp-tab-color-border-hover: var(--cbp-tab-color-border-hover-dark);
--cbp-tab-color-border-focus: var(--cbp-tab-color-border-focus-dark);
--cbp-tab-color-border-active: var(--cbp-tab-color-border-active-dark);
--cbp-tab-color-border-selected: var(--cbp-tab-color-border-selected-dark);
--cbp-tab-color-outline-focus: var(--cbp-tab-color-outline-focus-dark);
}
cbp-tab button {
all: unset;
display: inline-flex;
gap: var(--cbp-space-2x);
align-items: center;
color: var(--cbp-tab-color);
background-color: var(--cbp-tab-color-bg);
box-sizing: border-box;
min-height: var(--cbp-space-14x);
padding: 0 var(--cbp-space-3x);
font-size: var(--cbp-font-size-heading-xs);
font-weight: var(--cbp-font-weight-medium);
white-space: nowrap;
border-bottom: var(--cbp-border-size-xl) solid var(--cbp-tab-color-border);
border-radius: var(--cbp-tab-border-radius);
outline-width: var(--cbp-border-size-md);
outline-style: none;
outline-color: var(--cbp-button-color-outline-focus);
outline-offset: calc(-1 * var(--cbp-space-1x));
}
cbp-tab button:hover {
--cbp-tab-color: var(--cbp-tab-color-hover);
--cbp-tab-color-bg: var(--cbp-tab-color-bg-hover);
--cbp-tab-color-border: var(--cbp-tab-color-border-hover);
}
cbp-tab button[aria-selected=true] {
--cbp-tab-color: var(--cbp-tab-color-selected);
--cbp-tab-color-bg: var(--cbp-tab-color-bg-selected);
--cbp-tab-color-border: var(--cbp-tab-color-border-selected);
font-style: italic;
}
cbp-tab button:focus {
--cbp-tab-color: var(--cbp-tab-color-focus);
--cbp-tab-color-bg: var(--cbp-tab-color-bg-focus);
--cbp-tab-color-border: var(--cbp-tab-color-border-focus);
--cbp-button-color-outline-focus: var(--cbp-tab-color-outline-focus);
outline-style: solid;
}
cbp-tab button:active {
--cbp-tab-color: var(--cbp-tab-color-active);
--cbp-tab-color-bg: var(--cbp-tab-color-bg-active);
--cbp-tab-color-border: var(--cbp-tab-color-border-active);
outline: none;
}
cbp-tab[color=danger] {
--cbp-tab-color: var(--cbp-color-danger-dark);
--cbp-tab-color-dark: var(--cbp-color-danger-light);
--cbp-tab-color-hover: var(--cbp-color-danger-base);
--cbp-tab-color-hover-dark: var(--cbp-color-danger-lighter);
--cbp-tab-color-bg-hover: var(--cbp-color-danger-lighter);
--cbp-tab-color-bg-hover-dark: var(--cbp-color-danger-darker);
--cbp-tab-color-border-hover: var(--cbp-color-danger-dark);
--cbp-tab-color-border-hover-dark: var(--cbp-color-danger-lighter);
}