@rhds/elements
Version:
Red Hat Design System Elements
416 lines (352 loc) • 12.2 kB
CSS
rh-navigation-secondary {
--_max-height: max-content;
--_min-height: 80px;
/** Navigation link text color */
--_nav-link-color: var(--rh-color-text-primary);
/** Navigation logo link text color */
--_logo-link-color: var(--rh-color-text-primary);
/** Navigation dropdown chevron indicators */
--_nav-chevron-color: var(--rh-color-text-primary);
--rh-color-surface:
light-dark(
/** Navigation bar surface in light mode */
var(--rh-color-surface-lighter, #f2f2f2),
/** Navigation bar surface in dark mode */
var(--rh-color-surface-dark, #383838)
);
display: block;
position: sticky;
top: 0;
/** Navigation bar background */
background-color: var(--rh-color-surface);
border-block-end:
/** Navigation bar block-end border width */
var(--rh-border-width-sm, 1px)
solid
transparent;
/** Navigation elevation shadow */
box-shadow: var(--rh-box-shadow-sm, 0 2px 4px 0 rgba(21, 21, 21, 0.2));
height: var(--_max-height);
min-height: var(--_min-height);
/** Navigation typeface */
font-family: var(--rh-font-family-body-text, RedHatText, 'Red Hat Text', Helvetica, Arial, sans-serif);
&:not(:defined) {
display: grid;
position: relative;
gap:
0
/** Navigation bar grid column gap */
var(--rh-space-2xl, 32px);
grid-template-rows: minmax(var(--_min-height), var(--_max-height)) max-content max-content;
grid-template-columns: 1fr max-content;
grid-template-areas:
'logo logo'
'nav nav'
'cta cta';
}
& > [slot='logo'] {
grid-area: logo;
display: flex;
align-items: center;
height: 100%;
color: var(--_logo-link-color);
/** Navigation logo maximum width */
max-width: var(--rh-navigation-secondary-logo-max-width, 10em);
text-decoration: none;
/** Navigation logo text size */
font-size: var(--rh-font-size-body-text-md, 1rem);
letter-spacing: 0.01125em;
/** Navigation logo inline-start margin */
margin-inline-start: var(--rh-space-lg, 16px);
/** Navigation logo typeface */
font-family: var(--rh-font-family-heading, RedHatDisplay, 'Red Hat Display', Helvetica, Arial, sans-serif);
/** Navigation logo font weight */
font-weight: var(--rh-font-weight-heading-medium, 500);
/** Navigation logo vertical spacing */
padding-block: var(--rh-space-lg, 16px);
border-block-start:
/** Navigation logo block-start border width */
var(--rh-border-width-lg, 3px)
solid
transparent;
width: max-content;
&:hover {
text-decoration: none;
color: var(--_nav-link-color);
}
&[aria-current='page'] {
/** Navigation logo current-page block-start accent color */
border-block-start-color: var(--rh-color-brand-red);
}
}
& > [slot='nav'] {
grid-area: nav;
display: none;
flex-direction: column;
list-style: none;
/** Navigation navigation slot background */
background-color: var(--rh-color-surface-lightest, #ffffff);
margin: 0;
padding:
/** Navigation nav slot top padding */
var(--rh-space-2xl, 32px)
/** Navigation nav slot inline padding */
var(--rh-space-lg, 16px)
/** Navigation nav slot bottom padding */
var(--rh-space-lg, 16px);
}
& > :is([slot='logo'], [slot='nav']) {
/** Navigation logo and navigation slots line height */
line-height: var(--rh-line-height-heading, 1.3);
}
& > [slot='cta'] {
grid-area: cta;
display: none;
height: 100%;
align-items: center;
/** Navigation cta slot background */
background-color: var(--rh-color-surface-lightest, #ffffff);
padding:
/** Navigation CTA slot top padding */
var(--rh-space-lg, 16px)
/** Navigation CTA slot inline padding */
var(--rh-space-lg, 16px)
/** Navigation CTA slot bottom padding */
var(--rh-space-2xl, 32px);
margin: 0;
max-width: 100%;
}
&[color-palette^='light'] {
color-scheme: only light;
}
&[color-palette^='dark'] {
/** Navigation dark variant bar bottom border color */
border-block-end-color: var(--rh-color-border-subtle-on-dark, #707070);
box-shadow: none;
color-scheme: only dark;
& > [slot='logo']:hover {
color: var(--_logo-link-color);
}
}
* {
box-sizing: border-box;
}
}
rh-navigation-secondary-menu a {
/** Navigation menu link text color */
color: var(--rh-color-interactive-primary-default-on-light, #0066cc);
}
rh-navigation-secondary-menu a:hover {
/** Navigation menu hovered link text color */
color: var(--rh-color-interactive-primary-hover-on-light, #003366) ;
}
/* If the component isn't defined display top level links */
rh-navigation-secondary:not(:defined) > [slot='nav'],
rh-navigation-secondary:not(:defined) > [slot='cta'] {
display: flex;
}
rh-navigation-secondary-menu {
/** Navigation menu text color */
color: var(--rh-color-text-primary-on-light, #151515);
}
/* If the component isn't defined hide any sub menus */
rh-navigation-secondary-menu:not(:defined) {
display: none;
}
/* Top level links, styles are owned by lightdom elements */
rh-navigation-secondary > [slot='nav'] > li > a,
rh-navigation-secondary-dropdown > a {
display: flex;
align-items: center;
height: max-content;
color: var(--_nav-link-color) ;
/** Navigation slotted link text size */
font-size: var(--rh-font-size-body-text-md, 1rem);
font-weight: 500;
padding:
/** Navigation slotted link block padding */
var(--rh-space-lg, 16px)
/** Navigation slotted link inline padding */
var(--rh-space-xl, 24px);
text-decoration: none ;
text-align: center;
border-block-start:
/** Navigation slotted link block-start border width */
var(--rh-border-width-lg, 3px)
solid
transparent;
}
rh-navigation-secondary [slot='nav'] > li > a[aria-current='page'] {
/** Navigation current-page link block-start accent color */
border-block-start-color: var(--rh-color-brand-red);
}
rh-navigation-secondary [slot='nav'] > li > rh-navigation-link[current-page],
rh-navigation-secondary [slot='nav'] > li > rh-navigation-link:has(a[aria-current='page']) {
/** Navigation current-page link block-start accent color */
border-block-start-color: var(--rh-color-brand-red);
}
rh-navigation-secondary > [slot='nav'] > li > a:hover,
rh-navigation-secondary-dropdown > a:hover {
text-decoration: none ;
color: var(--_nav-link-color) ;
}
rh-navigation-secondary > [slot='nav'] > li > a:focus,
rh-navigation-secondary-dropdown > a:focus {
position: relative;
z-index: 1;
}
rh-navigation-secondary > [slot='nav'] > li {
border-block-start:
/** Navigation slotted listitem block-start border width */
var(--rh-border-width-sm, 1px)
solid
/** Navigation slotted listitem block-start border color */
var(--rh-color-border-subtle-on-light, #c7c7c7);
}
rh-navigation-secondary > [slot='nav'] > li:last-of-type {
border-block-end:
/** Navigation slotted last listitem block-end border width */
var(--rh-border-width-sm, 1px)
solid
/** Navigation slotted last listitem block-end border color */
var(--rh-color-border-subtle-on-light, #c7c7c7);
}
rh-navigation-secondary > [slot='nav'] a[aria-expanded='false'],
rh-navigation-secondary > [slot='nav'] > [slot='nav'] > li > a {
color: var(--_nav-link-color);
}
rh-navigation-secondary-menu-section > [slot='header'] {
/** Navigation menu section header slot text size */
font-size: var(--rh-font-size-body-text-md, 1rem);
font-weight: 500;
margin:
0
0
/** Navigation menu section header block-end margin */
var(--rh-space-lg, 16px);
}
rh-navigation-secondary > [slot='nav'] > li > rh-navigation-link {
--_navigation-link-container-align-items: center;
--_navigation-link-container-display: flex;
--_navigation-link-container-block-size: 100%;
--_navigation-link-container-inline-size: 100%;
--_navigation-link-display: flex;
--_navigation-link-inline-size: 100%;
--_navigation-link-align-items: start;
--_navigation-link-padding:
/** Navigation slotted rh-navigation-link block padding */
var(--rh-space-lg, 16px)
/** Navigation slotted rh-navigation-link inline padding */
var(--rh-space-xl, 24px);
--_navigation-link-font-weight: 500;
--_navigation-link-text-decoration-line: none;
/** Navigation slotted rh-navigation-link color */
--_navigation-link-color-hover: var(--rh-color-text-primary);
display: flex;
block-size: 100%;
align-items: center;
@media screen and (min-width: 992px) {
--_navigation-link-font-weight: 400;
--_navigation-link-block-size: 100%;
--_navigation-link-align-items: center;
--_navigation-link-padding:
0
/** Navigation link inline padding at viewport >= lg */
var(--rh-space-lg, 16px);
border-block-start:
/** Navigation link block-start border width at viewport >= lg */
var(--rh-border-width-lg, 3px)
solid
transparent;
&:hover {
/** Navigation link hovered block-start accent color at viewport >= lg */
border-block-start-color: var(--rh-color-text-brand);
}
}
}
@media screen and (min-width: 768px) {
rh-navigation-secondary > [slot='logo'] {
/** Navigation logo inline-start margin at viewport >= md */
margin-inline-start: var(--rh-space-2xl, 32px);
}
}
@media screen and (min-width: 992px) {
rh-navigation-secondary {
--_min-height: 86px;
}
rh-navigation-secondary:not(:defined) {
display: grid;
grid-template-areas: 'logo nav cta';
grid-template-rows: minmax(var(--_min-height), var(--_max-height)) max-content max-content;
grid-template-columns: max-content 1fr max-content;
}
rh-navigation-secondary-dropdown > a[aria-expanded='true'] {
color-scheme: only light;
}
rh-navigation-secondary > [slot='logo'] {
/** Navigation logo slot text size at viewport >= lg */
font-size: var(--rh-font-size-body-text-lg, 1.125rem);
margin-inline-start: 2rem;
}
rh-navigation-secondary > [slot='mobile-menu'] {
display: none;
}
rh-navigation-secondary > [slot='nav'] {
grid-area: nav;
display: flex;
flex-direction: row;
height: 100%;
align-items: center;
list-style: none;
padding: 0;
margin: 0;
background-color: transparent;
}
rh-navigation-secondary > [slot='nav'] > li {
border-block-start-width: 0;
}
rh-navigation-secondary > [slot='nav'] > li:last-of-type {
border-bottom-width: 0;
}
rh-navigation-secondary > ul > li,
rh-navigation-secondary-dropdown {
height: 100%;
}
rh-navigation-secondary > [slot='nav'] > li > a,
rh-navigation-secondary-dropdown > a {
height: 100%;
font-weight: 400;
padding:
0
/** Navigation link inline spacing at viewport >= lg */
var(--rh-space-lg, 16px);
}
rh-navigation-secondary > [slot='nav'] > li > a:focus,
rh-navigation-secondary > [slot='nav'] > li > a:hover,
rh-navigation-secondary-dropdown > a[aria-expanded='true'],
rh-navigation-secondary-dropdown > a:focus,
rh-navigation-secondary-dropdown > a:hover {
/** Navigation link and dropdown block-start accent color at viewport >= lg */
border-block-start-color: var(--rh-color-text-brand-on-light, #ee0000);
}
rh-navigation-secondary > [slot='cta'] {
display: flex;
flex-direction: row-reverse;
background-color: transparent;
/** Navigation CTA slot inline-end margin at viewport >= lg */
margin-inline-end: var(--rh-space-2xl, 32px);
padding: unset;
}
@media screen and (min-width: 1440px) {
rh-navigation-secondary:not(:defined) > [slot='logo'],
rh-navigation-secondary > [slot='logo'] {
/** Navigation logo slot inline-start margin at viewport >= 2xl */
margin-inline-start: var(--rh-space-4xl, 64px);
}
rh-navigation-secondary:not(:defined) > [slot='cta'],
rh-navigation-secondary > [slot='cta'] {
/** Navigation CTA slot inline-end margin at viewport >= 2xl */
margin-inline-end: var(--rh-space-4xl, 64px);
}
}
}