@cbpds/web-components
Version:
Web components for the CBP Design System.
92 lines (90 loc) • 3.41 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-app-header-color-background: var(--cbp-color-white)
* @prop --cbp-app-header-color-background-dark: var(--cbp-color-gray-cool-60);
* @prop --cbp-app-header-search-color-focus-outline: var(--cbp-color-interactive-focus-dark);
* @prop --cbp-app-header-search-color-focus-outline-dark: var(--cbp-color-interactive-focus-light);
* @prop --cbp-app-header-search-color-placeholder: var(--cbp-color-text-dark);
* @prop --cbp-app-header-search-color-placeholder-dark: var(--cbp-color-text-light);
*/
:root {
--cbp-app-header-color-background: var(--cbp-color-white);
--cbp-app-header-color-background-dark: var(--cbp-color-gray-cool-60);
--cbp-app-header-search-color-focus-outline: var(--cbp-color-interactive-focus-dark);
--cbp-app-header-search-color-focus-outline-dark: var(--cbp-color-interactive-focus-light);
--cbp-app-header-search-color-placeholder: var(--cbp-color-text-dark);
--cbp-app-header-search-color-placeholder-dark: var(--cbp-color-text-light);
}
/*
* Dark Mode - display dark design based on mode (no context).
* This toggle should have the highest specificity, so that what ever values were specified
* for the dark version get written to the light within the scope of this component.
*/
[data-cbp-theme=dark] cbp-app-header {
--cbp-app-header-color-background: var(--cbp-app-header-color-background-dark);
--cbp-app-header-search-color-focus-outline: var(--cbp-app-header-search-color-focus-outline-dark);
--cbp-app-header-search-color-placeholder: var(--cbp-app-header-search-color-placeholder-dark);
}
cbp-app-header {
min-height: var(--cbp-space-14x);
padding: 0 var(--cbp-responsive-spacing-outer);
background-color: var(--cbp-app-header-color-background);
box-shadow: var(--cbp-shadow-level-3-down);
z-index: var(--cbp-z-index-level-1);
position: sticky;
top: calc(-1 * var(--cbp-space-half-x));
display: flex;
align-items: center;
gap: var(--cbp-space-4x);
}
cbp-app-header nav {
display: flex;
align-items: center;
align-content: stretch;
width: max-content;
}
cbp-app-header cbp-resize-observer {
flex-grow: 1;
}
cbp-app-header .cbp-app-header-responsive {
align-items: center;
justify-content: space-between;
width: 100%;
}
cbp-app-header #cbp-app-header-search {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
display: flex;
width: 100%;
height: 100%;
padding: 0 var(--cbp-responsive-spacing-outer);
background-color: var(--cbp-app-header-color-background);
}
cbp-app-header #cbp-app-header-search:focus-within {
outline: var(--cbp-border-size-md) solid var(--cbp-app-header-search-color-focus-outline);
outline-offset: calc(-2 * var(--cbp-border-size-md));
}
cbp-app-header #cbp-app-header-search input {
flex-grow: 1;
border: none;
background-color: var(--cbp-app-header-color-background);
}
cbp-app-header #cbp-app-header-search input::placeholder {
font-style: italic;
color: var(--cbp-app-header-search-color-placeholder);
}
cbp-app-header #cbp-app-header-search input:focus-visible {
outline: none;
}
cbp-app-header #cbp-app-header-search div {
display: flex;
flex-direction: row-reverse;
gap: var(--cbp-space-4x);
align-items: center;
}