@cbpds/web-components
Version:
Web components for the CBP Design System.
157 lines (150 loc) • 7.77 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
*/
/**
* @prop --cbp-subnav-item-color: var(--cbp-color-interactive-secondary-darker);
* @prop --cbp-subnav-item-color-dark: var(--cbp-color-interactive-secondary-lighter);
* @prop --cbp-subnav-item-color-bg: transparent;
* @prop --cbp-subnav-item-color-bg-dark: var(--cbp-color-gray-cool-70);
* @prop --cbp-subnav-item-current-color:var(--cbp-color-interactive-active-dark);
* @prop --cbp-subnav-item-current-color-bg: var(--cbp-color-interactive-active-light);
* @prop --cbp-subnav-item-current-border-color: var(--cbp-color-interactive-active-dark);
* @prop --cbp-subnav-item-current-border-color-dark: var(--cbp-color-interactive-active-light);
* @prop --cbp-subnav-item-indent: var(--cbp-space-4x);
* @prop --cbp-subnav-item-font-size: var(--cbp-font-size-heading-md);
*/
:root {
--cbp-subnav-item-color: var(--cbp-color-interactive-secondary-darker);
--cbp-subnav-item-color-dark: var(--cbp-color-interactive-secondary-lighter);
--cbp-subnav-item-color-bg: transparent;
--cbp-subnav-item-color-bg-dark: var(--cbp-color-gray-cool-70);
--cbp-subnav-item-current-color:var(--cbp-color-interactive-active-dark);
--cbp-subnav-item-current-color-dark:var(--cbp-color-interactive-active-lighter);
--cbp-subnav-item-current-color-bg: var(--cbp-color-interactive-active-light);
--cbp-subnav-item-current-color-bg-dark: var(--cbp-color-interactive-active-dark);
--cbp-subnav-item-current-border-color: var(--cbp-color-interactive-active-dark);
--cbp-subnav-item-current-border-color-dark: var(--cbp-color-interactive-active-light);
--cbp-subnav-item-border-color: red;
--cbp-subnav-item-hover-border-color: var(--cbp-color-interactive-secondary-darker);
--cbp-subnav-item-hover-border-color-dark: var(--cbp-color-interactive-secondary-lighter);
--cbp-subnav-item-indent: var(--cbp-space-4x);
--cbp-subnav-item-font-size: var(--cbp-font-size-heading-md);
}
[data-cbp-theme=light] cbp-subnav[context*=dark]:not([context=light-always]),
[data-cbp-theme=dark] cbp-subnav:not([context=dark-inverts]):not([context=light-always]) {
--cbp-subnav-item-color: var(--cbp-subnav-item-color-dark);
--cbp-subnav-item-color-bg: var(--cbp-subnav-item-color-bg-dark);
--cbp-subnav-item-current-border-color: var(--cbp-subnav-item-current-border-color-dark);
--cbp-subnav-item-current-color-bg: var(--cbp-subnav-item-current-color-bg-dark);
--cbp-subnav-item-hover-border-color: var(--cbp-subnav-item-hover-border-color-dark);
}
cbp-subnav-item {
color: var(--cbp-subnav-item-color);
background-color: var(--cbp-subnav-item-color-bg);
--cbp-subnav-item-rotate-icon: rotate(90deg);
}
cbp-subnav-item section {
display: none;
}
cbp-subnav-item[current] > div, cbp-subnav-item:has(cbp-subnav-item[current]) > div {
--cbp-subnav-item-border-color: var(--cbp-subnav-item-current-border-color) ;
}
cbp-subnav-item[current] > div > cbp-button[fill=outline][color=primary]:first-of-type {
--cbp-button-color: var(--cbp-subnav-item-current-color);
--cbp-button-color-dark: var(--cbp-subnav-item-current-color-dark);
--cbp-button-color-bg: var(--cbp-subnav-item-current-color-bg);
--cbp-button-color-bg-dark: var(--cbp-subnav-item-current-color-bg-dark);
font-style: italic;
}
cbp-subnav-item[current] > div > cbp-button[fill=outline][color=primary]:first-of-type > a {
font-weight: var(--cbp-font-weight-bold);
}
cbp-subnav-item > div {
--cbp-subnav-item-border-color: var(--cbp-subnav-item-color-bg);
display: flex;
border-left: var(--cbp-border-size-xl) solid var(--cbp-subnav-item-border-color);
}
cbp-subnav-item:hover > div {
--cbp-subnav-item-border-color: var(--cbp-subnav-item-hover-border-color);
}
cbp-subnav-item cbp-button[fill=outline][color=primary] {
--cbp-button-min-height: 3.5rem;
--cbp-button-width: 100%;
--cbp-button-border-radius: var(--cbp-border-radius-sharp);
--cbp-button-border-width: var(--cbp-border-size-sm);
--cbp-button-color: var(--cbp-subnav-item-color);
--cbp-button-color-dark: var(--cbp-subnav-item-color);
--cbp-button-color-hover: var(--cbp-color-interactive-secondary-darker);
--cbp-button-color-hover-dark: var(--cbp-color-interactive-secondary-lighter);
--cbp-button-color-focus: var(--cbp-color-text-lightest);
--cbp-button-color-focus-dark: var(--cbp-color-text-darkest);
--cbp-button-color-active: var(--cbp-color-text-lightest);
--cbp-button-color-active-dark: var(--cbp-color-text-darkest);
--cbp-button-color-bg: var(--cbp-subnav-item-color-bg);
--cbp-button-color-bg-dark: var(--cbp-subnav-item-color-bg-dark);
--cbp-button-color-bg-hover: var(--cbp-color-interactive-secondary-lighter);
--cbp-button-color-bg-hover-dark: var(--cbp-color-interactive-secondary-darker);
--cbp-button-color-bg-focus: var(--cbp-color-interactive-focus-dark);
--cbp-button-color-bg-focus-dark: var(--cbp-color-interactive-focus-light);
--cbp-button-color-bg-active: var(--cbp-color-interactive-active-dark);
--cbp-button-color-bg-active-dark: var(--cbp-color-interactive-active-light);
--cbp-button-color-border: var(--cbp-color-gray-cool-40);
--cbp-button-color-border-dark: var(--cbp-color-gray-cool-40);
--cbp-button-color-border-hover: var(--cbp-color-gray-cool-40);
--cbp-button-color-border-hover-dark: var(--cbp-color-gray-cool-40);
--cbp-button-color-border-focus: var(--cbp-color-gray-cool-40);
--cbp-button-color-border-focus-dark: var(--cbp-color-gray-cool-40);
--cbp-button-color-border-active: var(--cbp-color-gray-cool-40);
--cbp-button-color-border-active-dark: var(--cbp-color-gray-cool-40);
}
cbp-subnav-item cbp-button[fill=outline][color=primary] a {
letter-spacing: var(--cbp-letter-spacing-regular);
text-transform: unset;
}
cbp-subnav-item cbp-button[fill=outline][color=primary] [slot=cbp-subnav-item-label] {
display: inline-flex;
gap: var(--cbp-space-2x);
align-items: center;
}
cbp-subnav-item cbp-button[fill=outline][color=primary]:first-of-type button, cbp-subnav-item cbp-button[fill=outline][color=primary]:first-of-type a {
justify-content: start;
font-weight: var(--cbp-font-weight-medium);
padding-left: calc(var(--cbp-subnav-item-indent));
font-size: var(--cbp-subnav-item-font-size);
border-left: none;
border-right: none;
}
cbp-subnav-item cbp-button[fill=outline][color=primary] + cbp-button {
--cbp-button-width: 3.5rem;
--cbp-icon-size: var(--cbp-space-5x);
transform: var(--cbp-subnav-item-rotate-icon);
}
cbp-subnav-item[open] {
--cbp-subnav-item-rotate-icon: rotate(270deg);
}
cbp-subnav-item[open] > section {
display: block;
}
cbp-subnav:not([flat]) cbp-subnav-item cbp-subnav-item {
--cbp-subnav-item-indent: var(--cbp-space-7x);
--cbp-subnav-item-font-size: var(--cbp-font-size-heading-sm);
}
cbp-subnav:not([flat]) cbp-subnav-item cbp-subnav-item cbp-subnav-item {
--cbp-subnav-item-indent: var(--cbp-space-10x);
--cbp-subnav-item-font-size: var(--cbp-font-size-heading-xs);
--cbp-subnav-item-rotate-icon: rotate(0deg);
}
cbp-subnav:not([flat]) cbp-subnav-item cbp-subnav-item cbp-subnav-item[open] {
--cbp-subnav-item-rotate-icon: rotate(180deg);
}
cbp-subnav:not([flat]) cbp-subnav-item cbp-subnav-item cbp-subnav-item cbp-subnav-item {
--cbp-subnav-item-indent: var(--cbp-space-14x);
--cbp-subnav-item-font-size: var(--cbp-font-size-body);
}
cbp-subnav[flat] cbp-subnav-item cbp-subnav-item cbp-subnav-item cbp-button + cbp-button {
--cbp-subnav-item-rotate-icon: rotate(0deg);
}
cbp-subnav[flat] cbp-subnav-item cbp-subnav-item cbp-subnav-item[open] cbp-button + cbp-button {
--cbp-subnav-item-rotate-icon: rotate(180deg);
}