UNPKG

@rhds/elements

Version:
416 lines (352 loc) 12.2 kB
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) !important; } /* 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) !important; /** 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 !important; 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 !important; color: var(--_nav-link-color) !important; } 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); } } }