| | |
| | | /********************************************************** |
| | | BASE NAV STYLES |
| | | **********************************************************/ |
| | | nav { |
| | | --py: .25rem; |
| | | --px: 1rem; |
| | | max-width: 100%; |
| | | font-family: var(--heading); |
| | | } |
| | | /************************************************************** |
| | | BASE NAVIGATION - Works for 80% of cases |
| | | **************************************************************/ |
| | | nav, |
| | | nav ol, |
| | | nav ul, |
| | | nav li, |
| | | nav a { |
| | | height: var(--height); |
| | | display: flex; |
| | | justify-content: var(--justify); |
| | | align-items: var(--align); |
| | | gap: var(--gap); |
| | | flex-wrap: var(--wrap); |
| | | flex-direction: var(--dir); |
| | | } |
| | | |
| | | ul.socials { |
| | | --w: 1.2em; |
| | | --height: fit-content; |
| | | gap: .5rem; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | flex-wrap: nowrap; |
| | | flex-direction: row; |
| | | overflow: auto hidden; |
| | | touch-action: pan-x; |
| | | list-style: none; |
| | | } |
| | | nav:not(:has(> ul)), |
| | | nav > ul { |
| | | --justify: flex-start; |
| | | --align: center; |
| | | nav ul { |
| | | --padding: 0 1rem; |
| | | --wrap: nowrap; |
| | | --w: 1em; |
| | | --dir: row; |
| | | position: relative; |
| | | overflow: auto hidden; |
| | | touch-action: pan-x; |
| | | display: flex; |
| | | flex-direction: var(--dir, row); |
| | | justify-content: var(--justify, flex-start); |
| | | align-items: var(--align, center); |
| | | gap: var(--gap, 0); |
| | | flex-wrap: var(--wrap, nowrap); |
| | | height: var(--btn, 3rem); |
| | | max-width: 100%; |
| | | font-family: var(--heading); |
| | | padding: 0; |
| | | margin: 0; |
| | | } |
| | | |
| | | nav a { |
| | | padding: 0 var(--px); |
| | | /* Items fill parent */ |
| | | nav li { |
| | | display: flex; |
| | | align-items: center; |
| | | height: max(var(--btn), max-content); |
| | | width: 100%; |
| | | max-inline-size: none; |
| | | padding: 0; |
| | | } |
| | | |
| | | /* Links fill parent */ |
| | | nav a, |
| | | nav button { |
| | | display: flex; |
| | | text-decoration: none; |
| | | align-items: center; |
| | | justify-content: center; |
| | | height: var(--btn); |
| | | width: 100%; |
| | | white-space: nowrap; |
| | | text-transform: uppercase; |
| | | transition: var(--trans-color); |
| | | border-radius: 0; |
| | | background-color: transparent; |
| | | } |
| | | nav .current a, |
| | | nav a.current, |
| | | nav a:hover, |
| | | nav a:focus, |
| | | nav a:hover:visited, |
| | | nav a:focus:visited { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | transition: background-color var(--transition-base), |
| | | color var(--transition-base); |
| | | nav a { |
| | | height: var(--btn); |
| | | padding: var(--padding); |
| | | } |
| | | |
| | | nav ol, |
| | | nav ul { |
| | | list-style: none; |
| | | margin: 0; |
| | | /* Buttons */ |
| | | nav button { |
| | | justify-content: center; |
| | | aspect-ratio: 1; |
| | | padding: 0; |
| | | } |
| | | |
| | | /************************************************************** |
| | | SUBMENU |
| | | **************************************************************/ |
| | | .has-submenu button:hover, |
| | | nav a:hover { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | } |
| | | .has-submenu button { |
| | | height: var(--height); |
| | | width: var(--height); |
| | | padding: 0; |
| | | /*background-color: var(--base);*/ |
| | | border: 2px solid var(--base); |
| | | color: var(--contrast); |
| | | border-radius: 0; |
| | | } |
| | | |
| | | .toggle .icon { |
| | | transform: rotate(0deg); |
| | | transition: transform var(--timing) var(--function); |
| | | transition-property: transform, background-color, color; |
| | | /************************************************************** |
| | | STATES - Apply to all navs |
| | | **************************************************************/ |
| | | |
| | | /* Active/Focus states */ |
| | | /* nav a:hover,*/ |
| | | nav .current a, |
| | | nav a.current, |
| | | nav a:focus, |
| | | nav a:focus:visited, |
| | | nav button:focus { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | } |
| | | .has-submenu.open > button:not(.notifications, .quick-help) .icon, |
| | | .has-submenu:hover > button:not(.notifications, .quick-help) .icon { |
| | | |
| | | |
| | | /* Icon rotation */ |
| | | .toggle .icon-caret-down { |
| | | transform: rotate(0deg); |
| | | transition: transform var(--trans-base); |
| | | } |
| | | |
| | | .has-submenu.open > button .icon-caret-down { |
| | | transform: rotate(900deg); |
| | | } |
| | | |
| | | /************************************************************** |
| | | SUBMENUS - Generic pattern |
| | | **************************************************************/ |
| | | .has-submenu { |
| | | position: relative; |
| | | } |
| | | |
| | | ul.submenu { |
| | | --dir: column; |
| | | --wrap: nowrap; |
| | | --gap: 0; |
| | | height: max-content; |
| | | position: absolute; |
| | | top: 100%; |
| | | left: 0; |
| | | right: 0; |
| | | max-height: 0; |
| | | transform: scaleY(0); |
| | | transform-origin: top; |
| | | width: max-content; |
| | | min-width: 100%; |
| | | background-color: var(--overlay-light); |
| | | border: 2px solid var(--overlay-light); |
| | | transition: all var(--timing) var(--function); |
| | | box-shadow: var(--shadow-none); |
| | | } |
| | | |
| | | .always ul.submenu { |
| | | position: relative; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | min-width: max-content; |
| | | background-color: rgba(var(--base-rgb),var(--op-3)); |
| | | border: 2px solid rgba(var(--base-rgb),var(--op-3)); |
| | | transition: all var(--trans-t) var(--trans-fn); |
| | | box-shadow: var(--shdw-none); |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .submenu li { |
| | | background-color: var(--overlay-heavy); |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | border: 1px solid var(--base-50); |
| | | } |
| | | .submenu li:hover { |
| | | --c: var(--action-rgb); |
| | | background-color: var(--overlay-heavy); |
| | | } |
| | | .submenu a:hover { |
| | | background-color: transparent; |
| | | } |
| | | .wp-site-blocks > header ul.submenu { |
| | | right: 0; |
| | | left: auto; |
| | | .submenu a { |
| | | height: var(--chipchip); |
| | | } |
| | | |
| | | /** |
| | | Opening Submenus |
| | | */ |
| | | .has-submenu.open > ul.submenu, |
| | | .has-submenu:hover > ul.submenu { |
| | | /* Open state */ |
| | | .open > ul.submenu { |
| | | transform: scaleY(1); |
| | | max-height: 1000%; |
| | | box-shadow: var(--shadow); |
| | | } |
| | | /************************************************************** |
| | | FIXED |
| | | **************************************************************/ |
| | | nav.on-this-page, |
| | | nav.fixed.bottom { |
| | | --dir: row; |
| | | --gap: 0; |
| | | width: calc(100% - var(--height)); |
| | | left: 0; |
| | | bottom: 0; |
| | | position: fixed; |
| | | box-shadow: var(--shadow); |
| | | z-index: var(--zz-top); |
| | | } |
| | | nav.fixed.bottom ul { |
| | | width: 100%; |
| | | --justify: space-between; |
| | | background-color: var(--base); |
| | | padding: 0 .25rem; |
| | | } |
| | | nav.fixed li, |
| | | nav.fixed a { |
| | | --justify: center; |
| | | width: 100%; |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | } |
| | | |
| | | nav.fixed.bottom a:visited, |
| | | nav.fixed.bottom a { |
| | | color: var(--contrast); |
| | | font-size: var(--small); |
| | | /************************************************************** |
| | | ACCESSIBILITY - Universal |
| | | **************************************************************/ |
| | | .screen-reader-text { |
| | | position: absolute; |
| | | width: 1px; |
| | | height: 1px; |
| | | padding: 0; |
| | | margin: -1px; |
| | | overflow: hidden; |
| | | clip: rect(0, 0, 0, 0); |
| | | white-space: nowrap; |
| | | border-width: 0; |
| | | } |
| | | @media (min-width:768px) { |
| | | nav.fixed.bottom a:visited, |
| | | nav.fixed.bottom a { |
| | | font-size: var(--medium); |
| | | } |
| | | |
| | | nav a:focus:not(:focus-visible) { |
| | | outline: none; |
| | | } |
| | | nav.fixed.bottom a:hover, |
| | | nav.fixed.bottom a:hover:visited, |
| | | nav.fixed.bottom a:focus, |
| | | nav.fixed.bottom a:focus:visited { |
| | | color: var(--action-contrast); |
| | | |
| | | nav a:focus-visible { |
| | | outline: 2px solid var(--action-0); |
| | | outline-offset: 2px; |
| | | } |
| | | .fixed.bottom li { |
| | | |
| | | /************************************************************** |
| | | VARIANT: MOBILE NAV (.always) |
| | | Only define what makes it different from base |
| | | **************************************************************/ |
| | | nav.always { |
| | | /* Different positioning */ |
| | | --dir: column; |
| | | --wrap: nowrap; |
| | | position: fixed; |
| | | bottom: 0; |
| | | right: 0; |
| | | width: var(--btn); |
| | | z-index: var(--z-10); |
| | | } |
| | | |
| | | nav.always.open { |
| | | --justify: flex-end; |
| | | width: 100vw; |
| | | height: 100vh; |
| | | padding-bottom: var(--btn_); |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | backdrop-filter: blur(5px); |
| | | } |
| | | |
| | | nav.always > ul { |
| | | --dir: column; |
| | | --align: center; |
| | | --justify: flex-start; |
| | | --gap: 0; |
| | | height: 100%; |
| | | position: relative; |
| | | right: -300vw; |
| | | width: 100vw; |
| | | max-height: 100%; |
| | | padding: 1rem 0 0; |
| | | overflow: hidden auto; |
| | | transition: right var(--trans-base); |
| | | } |
| | | |
| | | nav.always.open > ul { |
| | | right: 0; |
| | | } |
| | | |
| | | nav.always li { |
| | | flex-wrap: wrap; |
| | | background-color: rgba(var(--base-rgb), var(--op-6)); |
| | | } |
| | | |
| | | nav.always a { |
| | | padding: 1rem; |
| | | max-width: calc(100% - var(--btn)); |
| | | text-align: center; |
| | | } |
| | | |
| | | /* Split layout for items with submenus */ |
| | | nav.always .has-submenu { |
| | | display: flex; |
| | | } |
| | | |
| | | nav.always .has-submenu > a { |
| | | flex: 1; |
| | | } |
| | | |
| | | nav.always a { |
| | | padding: 0; |
| | | --justify: center; |
| | | } |
| | | nav.always .socials { |
| | | width: 100%; |
| | | } |
| | | nav.always .socials li { |
| | | width: 100%; |
| | | } |
| | | nav.always li { |
| | | gap: 0; |
| | | --justify:flex-start; |
| | | } |
| | | nav.always > ul > li > a { |
| | | width: 80%; |
| | | } |
| | | nav.always .submenu { |
| | | width: 80%; |
| | | min-width: 80%; |
| | | box-shadow: none!important; |
| | | border: 2px solid var(--action-0); |
| | | background-color: rgba(var(--contrast-rgb), var(--rgb-subtle)); |
| | | } |
| | | nav.always .submenu li { |
| | | background-color: var(--overlay-light); |
| | | } |
| | | nav.fixed .has-submenu > a, |
| | | nav.always .has-submenu > a { |
| | | width: 80%; |
| | | } |
| | | .has-submenu > button { |
| | | width: 20%; |
| | | } |
| | | /************************************************************** |
| | | BREADCRUMBS |
| | | **************************************************************/ |
| | | nav#breadcrumbs { |
| | | --height: 1.5em; |
| | | --w: 20px; |
| | | width: fit-content; |
| | | max-width: var(--full); |
| | | position: absolute; |
| | | background-color: var(--overlay-medium); |
| | | font-size: var(--small); |
| | | padding: .125em; |
| | | overflow:visible; |
| | | --gap: 0; |
| | | } |
| | | nav#breadcrumbs li + li::before { |
| | | content: '/'; |
| | | color: var(--contrast-200); |
| | | } |
| | | nav#breadcrumbs li:last-of-type { |
| | | margin-right: .5em; |
| | | } |
| | | nav#breadcrumbs span, |
| | | nav#breadcrumbs a { |
| | | padding: 0 .125rem; |
| | | white-space: nowrap; |
| | | height: 2em; |
| | | color: var(--contrast); |
| | | text-transform: none; |
| | | width: max-content; |
| | | } |
| | | nav#breadcrumbs span { |
| | | display: flex; |
| | | align-items: center; |
| | | padding-left: .5em; |
| | | } |
| | | nav#breadcrumbs a:focus:visited, |
| | | nav#breadcrumbs a:hover:visited, |
| | | nav#breadcrumbs a:focus, |
| | | nav#breadcrumbs a:hover { |
| | | background-color: transparent; |
| | | color: var(--action-0); |
| | | } |
| | | nav#breadcrumbs a:has(.icon) { |
| | | width: 2rem; |
| | | } |
| | | /************************************************************** |
| | | MOBILE |
| | | **************************************************************/ |
| | | nav.always { |
| | | z-index: var(--z-above); |
| | | position: fixed; |
| | | width: var(--height); |
| | | bottom: 0; |
| | | right: 0; |
| | | } |
| | | nav.always.open { |
| | | width: 100vw; |
| | | height: 100vh; |
| | | padding-bottom:var(--offHeight); |
| | | background-color: var(--overlay-heavy); |
| | | backdrop-filter: blur(5px); |
| | | justify-content: flex-end; |
| | | flex-direction: column; |
| | | z-index: var(--z-above); |
| | | } |
| | | nav.always > ul { |
| | | --dir: column; |
| | | --wrap: nowrap; |
| | | --justify: flex-start; |
| | | --align: center; |
| | | --gap: 0; |
| | | position: relative; |
| | | right: -300vw; |
| | | padding: 1rem 0 0; |
| | | width: 100vw; |
| | | height: fit-content; |
| | | max-height: 100%; |
| | | overflow:hidden auto; |
| | | transition: right var(--transition-base); |
| | | } |
| | | nav.always.open > ul { |
| | | right: 0; |
| | | transition: right var(--transition-base); |
| | | } |
| | | /*nav.always > ul li:hover,*/ |
| | | /*nav.always > ul li:focus-within,*/ |
| | | /*nav.always > ul li.active {*/ |
| | | /* background-color: var(--overlay-heavy);*/ |
| | | /*}*/ |
| | | nav.always li { |
| | | max-inline-size: none; |
| | | width: 100%; |
| | | height: fit-content; |
| | | --dir: row; |
| | | --wrap: wrap; |
| | | } |
| | | nav.always a { |
| | | --py: 1rem; |
| | | width: 100%; |
| | | min-height: var(--height); |
| | | nav.always .has-submenu > button { |
| | | flex: 0 0 var(--btn); |
| | | } |
| | | |
| | | /* Submenu adjustments */ |
| | | nav.always .submenu { |
| | | position: relative; |
| | | padding-right: 4rem; |
| | | height: max-content; |
| | | top: 0; |
| | | width: 100%; |
| | | border: 2px solid var(--action-0); |
| | | background-color: rgba(var(--contrast-rgb), var(--op-1)); |
| | | } |
| | | |
| | | nav.always .submenu li { |
| | | background-color: rgba(var(--base-rgb),var(--op-3)); |
| | | } |
| | | |
| | | /* Toggle button */ |
| | | nav.always > button { |
| | | position: fixed; |
| | | bottom: 0; |
| | | right: 0; |
| | | width: var(--height); |
| | | height: var(--height); |
| | | border-radius: 0; |
| | | width: var(--btn); |
| | | height: var(--btn); |
| | | background-color: var(--base); |
| | | color: var(--contrast); |
| | | transition: width var(--timing) var(--function); |
| | | transition-property: width, background-color; |
| | | box-shadow: var(--shadow); |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | transition: width var(--trans-base); |
| | | } |
| | | nav.always > button:hover { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | } |
| | | nav.always > button:hover { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | } |
| | | |
| | | nav.always.open > button { |
| | | --c: var(--action-rgb); |
| | | z-index: 1000000; |
| | | width: 100%; |
| | | background-color: var(--overlay-heavy); |
| | | color: var(--contrast); |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | backdrop-filter: blur(5px); |
| | | } |
| | | nav.always.open > button:hover, |
| | | nav.always.open > button:focus { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | } |
| | | nav.always.open > button .icon-list, |
| | | nav.always >button .icon-x { |
| | | transform: scale(0); |
| | | height: 0; |
| | | width: 0; |
| | | position: absolute; |
| | | } |
| | | nav.always > button .icon-list, |
| | | nav.always.open > button .icon-x { |
| | | transform: scale(1); |
| | | height: 32px; |
| | | width: 32px; |
| | | } |
| | | nav.always .has-submenu:hover > .submenu, |
| | | nav.always .has-submenu.open > .submenu { |
| | | height: max-content; |
| | | z-index: 1000000; |
| | | } |
| | | |
| | | nav.always .has-submenu:hover > a, |
| | | nav.always .submenu > li > a:hover, |
| | | nav.always .submenu > li > a:focus { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | /* Icon toggle */ |
| | | nav.always > button .icon-x, |
| | | nav.always.open > button .icon-list { |
| | | display: none; |
| | | } |
| | | |
| | | nav.always > button .icon-list, |
| | | nav.always.open > button .icon-x { |
| | | display: block; |
| | | width: 32px; |
| | | height: 32px; |
| | | } |
| | | |
| | | @media (min-width: 768px) { |
| | | /*nav.always a {*/ |
| | | /* padding: 2rem 0;*/ |
| | | /*}*/ |
| | | nav.always > ul { |
| | | padding: var(--height) 0 0; |
| | | padding-top: var(--btn); |
| | | } |
| | | } |
| | | |
| | | /************************************************************** |
| | | ON THIS PAGE |
| | | VARIANT: BREADCRUMBS (#breadcrumbs) |
| | | **************************************************************/ |
| | | nav#breadcrumbs { |
| | | /* Different sizing */ |
| | | height: max-content; |
| | | --wrap: wrap; |
| | | --gap: 0; |
| | | width: max-content; |
| | | max-width: var(--full); |
| | | position: absolute; |
| | | background-color: rgba(var(--base-rgb),var(--op-4)); |
| | | font-size: var(--txt-x-small); |
| | | padding: .125em; |
| | | z-index: var(--z-7); |
| | | } |
| | | #breadcrumbs ol { |
| | | height: max-content; |
| | | --wrap: wrap!important; |
| | | --justify: flex-start!important; |
| | | } |
| | | #breadcrumbs li { |
| | | width: max-content; |
| | | } |
| | | #breadcrumbs a { |
| | | height: var(--chip); |
| | | } |
| | | |
| | | #breadcrumbs li::after { |
| | | content: '/'; |
| | | color: var(--contrast-200); |
| | | padding: 0 .25rem; |
| | | } |
| | | #breadcrumbs li:last-of-type::after { |
| | | display: none; |
| | | } |
| | | |
| | | #breadcrumbs :is(a, span) { |
| | | padding: 0 .125rem; |
| | | color: var(--contrast); |
| | | text-transform: none; |
| | | } |
| | | |
| | | #breadcrumbs a:focus { |
| | | background-color: transparent; |
| | | color: var(--action-0); |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: FIXED BOTTOM (nav.fixed.bottom) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.fixed.bottom { |
| | | /* Different positioning */ |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: calc(100% - var(--btn)); |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | z-index: var(--z-9); |
| | | } |
| | | |
| | | nav.fixed.bottom ul { |
| | | --justify: space-between; |
| | | width: 100%; |
| | | background-color: var(--base); |
| | | padding: 0 .25rem; |
| | | } |
| | | |
| | | nav.fixed.bottom li { |
| | | flex: 1; |
| | | justify-content: center; |
| | | } |
| | | |
| | | nav.fixed.bottom a { |
| | | gap: 1rem; |
| | | --w: var(--chip_); |
| | | color: var(--contrast); |
| | | font-size: var(--txt-x-small); |
| | | } |
| | | |
| | | @media (min-width: 768px) { |
| | | nav.fixed.bottom a { |
| | | font-size: var(--txt-medium); |
| | | } |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: ON THIS PAGE (nav.on-this-page) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.on-this-page { |
| | | --justify: space-between; |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: calc(100% - var(--btn)); |
| | | max-width: none; |
| | | z-index: var(--z-6); |
| | | margin: 0; |
| | | padding: 0 .5rem; |
| | | background-color: var(--overlay-medium); |
| | | background-color: rgba(var(--base-rgb),var(--op-4)); |
| | | color: var(--base-200); |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | z-index: var(--z-6); |
| | | |
| | | } |
| | | body:has(nav.fixed) nav.on-this-page { |
| | | bottom: var(--offHeight); |
| | | } |
| | | .on-this-page ul { |
| | | --justify: flex-start; |
| | | gap: 0; |
| | | .on-this-page li, |
| | | .on-this-page a { |
| | | width: 100%; |
| | | } |
| | | .on-this-page li:not(.has) { |
| | | padding: 0; |
| | | } |
| | | nav.letters li { |
| | | width: 100%; |
| | | max-width: calc(7.69% - 2px); |
| | | } |
| | | .on-this-page .active a { |
| | | --c: var(--action-rgb); |
| | | background-color: var(--overlay-heavy); |
| | | color: var(--action-contrast); |
| | | height: 100%; |
| | | } |
| | | |
| | | body:has(nav.fixed) nav.on-this-page { |
| | | bottom: var(--btn); |
| | | } |
| | | body:has(.additional-actions button) nav.on-this-page{ |
| | | width: calc(100vw - var(--btn_) - 1rem); |
| | | } |
| | | .on-this-page button { |
| | | order: 3; |
| | | padding: 0 1rem; |
| | | width: max-content; |
| | | aspect-ratio: unset; |
| | | height: var(--btn); |
| | | } |
| | | .on-this-page.open button { |
| | | order: 0; |
| | | } |
| | | .on-this-page ul { |
| | | width: 100%; |
| | | gap: 0; |
| | | } |
| | | |
| | | .on-this-page li { |
| | | justify-content: center; |
| | | } |
| | | .on-this-page .active a { |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | color: var(--action-contrast); |
| | | } |
| | | .on-this-page a { |
| | | padding: 0; |
| | | } |
| | | .on-this-page #back-to-top span { |
| | | display: none; |
| | | } |
| | | .on-this-page.open #back-to-top span { |
| | | display: block; |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: LETTERS (nav.letters) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.letters li { |
| | | height: var(--chip); |
| | | max-width: calc(7.69% - 2px); /*Fit 26 letters over 2 rows) */ |
| | | } |
| | | nav.letters ul { |
| | | --wrap: wrap; |
| | | } |
| | | nav.letters, |
| | | nav.letters ul { |
| | | height: var(--chipchip); |
| | | } |
| | | @media (min-width: 768px) { |
| | | nav.letters, |
| | | nav.letters ul { |
| | | height: var(--chip); |
| | | } |
| | | nav.letters ul { |
| | | --wrap: nowrap; |
| | | } |
| | | nav.letters li { |
| | | max-width: none; |
| | | width: fit-content; |
| | | } |
| | | nav.letters a, |
| | | nav.letters li:not(.has) { |
| | | |
| | | nav.letters a { |
| | | padding: .25rem .66rem; |
| | | } |
| | | } |
| | | |
| | | /************************************************************** |
| | | Table of Contents TOC |
| | | VARIANT: INDEX/TOC (nav.index) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.index { |
| | | --justify: flex-start; |
| | | --px: 0; |
| | | background-color: var(--overlay-heavy); |
| | | --justify: space-between; |
| | | --padding: 0; |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | } |
| | | |
| | | .index ul { |
| | | --justify: flex-start; |
| | | width: fit-content; |
| | | width: 100%; |
| | | } |
| | | |
| | | .index li { |
| | | flex-shrink: 0; |
| | | transform: scaleX(0); |
| | | transform-origin: right; |
| | | max-width: 0; |
| | | overflow: hidden; |
| | | transition: transform var(--timing) var(--function); |
| | | } |
| | | .index li.active { |
| | | |
| | | .index li.active, |
| | | .index li.adj { |
| | | transform: scaleX(1); |
| | | transform-origin: left; |
| | | width: 100%; |
| | | width: calc(100% - var(--btn_)); |
| | | flex-shrink: 1; |
| | | max-width: fit-content; |
| | | max-width: none; |
| | | } |
| | | @media (min-width: 768px ){ |
| | | .index li:first-of-type { |
| | | flex-shrink: 1; |
| | | transform: scaleX(1); |
| | | order: 9999; |
| | | width: var(--btn); |
| | | height: var(--btn); |
| | | max-width: none; |
| | | } |
| | | |
| | | @media (max-width: 767px) { |
| | | .index li.adj { |
| | | transform: scaleX(1); |
| | | transform-origin: left; |
| | | width: 100%; |
| | | flex-shrink: 1; |
| | | max-width: fit-content; |
| | | transform: scaleX(0); |
| | | max-width: 0; |
| | | } |
| | | } |
| | | |
| | | .index a { |
| | | border-bottom: 4px solid transparent; |
| | | } |
| | | |
| | | .index .active a { |
| | | border-color: var(--action-0); |
| | | color: var(--contrast); |
| | | } |
| | | .index a:hover, |
| | | .index .active a:hover { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | } |
| | | .index label { |
| | | display: flex; |
| | | color: var(--contrast); |
| | | align-items: center; |
| | | margin: 0; |
| | | } |
| | | .index label button { |
| | | margin-left: 1em; |
| | | } |
| | | |
| | | /* Index open state */ |
| | | .index.open { |
| | | --dir: column-reverse; |
| | | height: calc(100% - 8rem); |
| | | z-index: var(--z-above); |
| | | height: var(--maxHeight); |
| | | width: 100%; |
| | | background-color: var(--overlay-heavy); |
| | | backdrop-filter: blur(5px); |
| | | align-items: flex-end; |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | backdrop-filter: blur(5px); |
| | | z-index: var(--z-10); |
| | | } |
| | | .index.open label { |
| | | max-width: 90%; |
| | | margin-top: 1rem; |
| | | margin-right: 2rem; |
| | | } |
| | | .index.open .toggle .icon { |
| | | transform: rotate(45deg); |
| | | } |
| | | |
| | | .index.open ul { |
| | | --dir: column; |
| | | --justify: flex-end; |
| | | height: 100%; |
| | | max-width: 100%; |
| | | width: 100%; |
| | | } |
| | | |
| | | .index.open li { |
| | | background-color: transparent; |
| | | max-width: 100%!important; |
| | | width: 100%; |
| | | height: var(--height); |
| | | height: var(--btn); |
| | | max-width: 100%!important; |
| | | transform: scaleX(1); |
| | | flex-shrink: 1; |
| | | overflow: visible; |
| | | } |
| | | |
| | | .index.open a { |
| | | --justify: flex-end; |
| | | background-color: transparent; |
| | | justify-content: flex-end; |
| | | padding: 0 2rem 0 0; |
| | | background-color: transparent; |
| | | } |
| | | |
| | | /************************************************************** |
| | | CONDENSED |
| | | VARIANT: CONDENSED (nav.condensed) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | .condensed { |
| | | --dir: row; |
| | | nav.condensed { |
| | | height: max-content; |
| | | --wrap: wrap; |
| | | --height: 1.2em; |
| | | --py: .25rem; |
| | | --px:.25rem; |
| | | height: fit-content; |
| | | --gap: 0 .25rem; |
| | | } |
| | | .condensed > ul { |
| | | --wrap: wrap; |
| | | height: fit-content |
| | | } |
| | | .condensed ul { |
| | | |
| | | nav.condensed ul { |
| | | min-height: var(--chip_); |
| | | height: max-content; |
| | | --justify: center; |
| | | --gap: 0; |
| | | --wrap: wrap; |
| | | } |
| | | .condensed li { |
| | | width: fit-content; |
| | | width: max-content; |
| | | min-height: var(--chip); |
| | | } |
| | | .condensed li + li::before { |
| | | content: '·'; |
| | | display: block; |
| | | padding: 0 .25em; |
| | | } |
| | | nav.condensed a { |
| | | |
| | | .condensed a { |
| | | height: max-content; |
| | | min-height: var(--chip); |
| | | font-size:var(--txt-x-small); |
| | | padding: 0 .25rem; |
| | | text-transform: none; |
| | | white-space: nowrap; |
| | | border-bottom: 2px solid transparent; |
| | | } |
| | | .condensed a:hover, |
| | | .condensed a:focus, |
| | | .condensed a:hover:visited, |
| | | .condensed a:focus:visited { |
| | | |
| | | .condensed a:focus { |
| | | border-color: var(--action-0); |
| | | } |
| | | |
| | | /************************************************************** |
| | | ADDITIONAL HEADER STUFF |
| | | VARIANT: SOCIALS (ul.socials) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | .dashboard-nav { |
| | | ul.socials { |
| | | --dir: row; |
| | | height: max-content; |
| | | --gap: .5rem; |
| | | --justify: stretch; |
| | | --wrap:nowrap; |
| | | overflow: auto hidden; |
| | | touch-action: pan-x; |
| | | } |
| | | .always ul.socials, |
| | | .always ul.socials li, |
| | | .always ul.socials a { |
| | | width: 100%; |
| | | --dir: row; |
| | | --justify: flex-start; |
| | | } |
| | | |
| | | ul.socials a { |
| | | padding: .5rem; |
| | | max-width: none; |
| | | } |
| | | |
| | | ul.socials .icon { |
| | | margin: 0; |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: TABS (nav.tabs) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.tabs { |
| | | position: fixed; |
| | | bottom: var(--btn); |
| | | left: var(--btnbtn); |
| | | right: var(--btnbtn); |
| | | padding-bottom: 2px; |
| | | z-index: var(--z-6); |
| | | touch-action: pan-x pan-y; |
| | | --wrap:nowrap; |
| | | overflow: auto hidden; |
| | | } |
| | | nav.tabs button { |
| | | aspect-ratio: unset; |
| | | } |
| | | nav.tabs button.active { |
| | | cursor: default; |
| | | } |
| | | nav.tabs button.active:hover { |
| | | background-color: var(--base-100); |
| | | color: var(--contrast); |
| | | } |
| | | nav.tabs button h2 { |
| | | --wrap: nowrap; |
| | | margin: 0; |
| | | font-size: var(--txt-x-small); |
| | | } |
| | | body > header, |
| | | .wp-site-blocks > header { |
| | | --dir: row; |
| | | position: sticky; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | height: var(--height); |
| | | width: 100vw; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 .5rem; |
| | | .tab-content nav.tabs button { |
| | | height: var(--chip_); |
| | | padding: .25rem .75rem; |
| | | min-height: 0; |
| | | } |
| | | .tab-content.active { |
| | | padding: 1rem 0; |
| | | } |
| | | .tab-content h2 { |
| | | margin: 0 0 .5rem; |
| | | } |
| | | .tab-content nav.tabs { |
| | | height: max-content; |
| | | background-color: var(--base); |
| | | z-index: var(--zz-top); |
| | | box-shadow: var(--shadow); |
| | | border-bottom: 1px solid var(--action-0); |
| | | --gap: 0; |
| | | } |
| | | .wp-site-blocks > header img { |
| | | width: var(--height); |
| | | .tab-content .tab-content nav.tabs { |
| | | background-color: var(--base-100); |
| | | } |
| | | .tab-content .tab-content .tab-content nav.tabs { |
| | | background-color: var(--base-200); |
| | | } |
| | | .tab-content nav.tabs button.active h2 { |
| | | color: var(--action-0); |
| | | } |
| | | |
| | | body > header { |
| | | justify-content: space-between; |
| | | } |
| | | /** MOVE TO NORTHEH **/ |
| | | /*header a[rel=home],*/ |
| | | /*header > img {*/ |
| | | /* position: absolute;*/ |
| | | /* width: var(--offHeight);*/ |
| | | /* left: calc(50% - (var(--offHeight) / 2));*/ |
| | | /*}*/ |
| | | header .title { |
| | | --w: 5em; |
| | | margin: 0; |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: flex-start; |
| | | max-inline-size: none; |
| | | } |
| | | .current-hours { |
| | | position: sticky; |
| | | top: var(--height); |
| | | bottom: unset; |
| | | width: unset; |
| | | z-index: 100; |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | box-shadow: var(--shadow); |
| | | padding: .25rem 1rem; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | .current-hours p { |
| | | margin: 0; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | flex: 1; |
| | | } |
| | | .current-hours p + p { |
| | | justify-content: flex-end; |
| | | } |
| | | .current-hours a { |
| | | color: var(--action-contrast); |
| | | } |
| | | .current-hours a:hover { |
| | | color: var(--action-200); |
| | | } |
| | | .current-hours b { |
| | | margin-right: .25rem; |
| | | } |
| | | .find-us { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 0 .5rem; |
| | | } |
| | | .find-us p { |
| | | |
| | | } |
| | | .find-us a { |
| | | display: flex; |
| | | padding: .25rem 1rem; |
| | | border: 1px solid var(--action-contrast); |
| | | border-radius: var(--innerRadius); |
| | | } |
| | | .find-us a:hover { |
| | | background-color: var(--base); |
| | | color: var(--contrast); |
| | | border-color: var(--contrast); |
| | | } |
| | | nav.menu { |
| | | --justify: flex-start; |
| | | } |
| | | /************************************************************** |
| | | VARIANT: MENU (nav.menu) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.menu a { |
| | | padding: .5rem .66rem; |
| | | } |
| | | |
| | | /************* |
| | | TABS |
| | | *************/ |
| | | nav.tabs { |
| | | --gap: 0; |
| | | --wrap: nowrap; |
| | | padding-bottom: 2px; |
| | | z-index: var(--z-6); |
| | | position: fixed; |
| | | bottom: var(--height); |
| | | left: var(--doubleHeight); |
| | | right: var(--doubleHeight); |
| | | /************************************************************** |
| | | VARIANT: SHARE (nav.share) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.share { |
| | | height: max-content; |
| | | margin: 1rem 0; |
| | | } |
| | | /*@media (min-width: 768px) {*/ |
| | | /* nav.tabs {*/ |
| | | /* --wrap: wrap;*/ |
| | | /* overflow: hidden;*/ |
| | | /* }*/ |
| | | |
| | | nav.share ul { |
| | | overflow: visible; |
| | | } |
| | | |
| | | nav.share h4 { |
| | | display: inline-block; |
| | | width: max-content; |
| | | margin: .25rem .5rem .25rem 0; |
| | | font-size: var(--txt-x-small); |
| | | } |
| | | |
| | | /************************************************************** |
| | | HEADER ELEMENTS |
| | | **************************************************************/ |
| | | :where(body > header, .wp-site-blocks > header) { |
| | | --dir: row; |
| | | --justify: space-between; |
| | | position: sticky; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | height: var(--btn); |
| | | width: 100vw; |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 0 .5rem; |
| | | background-color: var(--base); |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | z-index: var(--z-9); |
| | | } |
| | | |
| | | .wp-site-blocks > header img { |
| | | width: var(--btn); |
| | | } |
| | | |
| | | /************************************************************** |
| | | CURRENT HOURS BANNER |
| | | **************************************************************/ |
| | | /*.current-hours {*/ |
| | | /* position: sticky;*/ |
| | | /* top: var(--nav-height);*/ |
| | | /* padding: .25rem 1rem;*/ |
| | | /* background-color: var(--action-0);*/ |
| | | /* color: var(--action-contrast);*/ |
| | | /* box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);*/ |
| | | /* display: flex;*/ |
| | | /* justify-content: space-between;*/ |
| | | /* z-index: 100;*/ |
| | | /*}*/ |
| | | |
| | | /*.current-hours p {*/ |
| | | /* margin: 0;*/ |
| | | /* display: flex;*/ |
| | | /* flex-wrap: wrap;*/ |
| | | /* flex: 1;*/ |
| | | /*}*/ |
| | | |
| | | /*.current-hours p + p {*/ |
| | | /* justify-content: flex-end;*/ |
| | | /*}*/ |
| | | |
| | | /*.current-hours a {*/ |
| | | /* color: var(--action-contrast);*/ |
| | | /*}*/ |
| | | |
| | | /*.current-hours b {*/ |
| | | /* margin-right: .25rem;*/ |
| | | /*}*/ |
| | | |
| | | /************************************************************** |
| | | FIND US BUTTONS |
| | | **************************************************************/ |
| | | /*.find-us {*/ |
| | | /* display: flex;*/ |
| | | /* align-items: center;*/ |
| | | /* gap: 0 .5rem;*/ |
| | | /*}*/ |
| | | |
| | | /*.find-us a {*/ |
| | | /* padding: .25rem 1rem;*/ |
| | | /* border: 1px solid var(--action-contrast);*/ |
| | | /* border-radius: var(--radius);*/ |
| | | /*}*/ |
| | | |
| | | /************************************************************** |
| | | UTILITIES |
| | | **************************************************************/ |
| | | |
| | | /* Hide navigation when empty */ |
| | | nav.term-navigation:has(*[hidden]) { |
| | | display: none; |
| | | } |
| | | ul.socials a { |
| | | padding: .5rem; |
| | | |
| | | /* Dashboard nav */ |
| | | .dashboard-nav { |
| | | --justify: flex-start; |
| | | width: 100%; |
| | | } |
| | | ul.socials a .icon { |
| | | margin: 0; |
| | | |
| | | nav.filters { |
| | | --dir: row; |
| | | --justify: flex-start; |
| | | overflow: auto hidden; |
| | | } |
| | | nav.filters .filter { |
| | | width: auto; |
| | | padding: .25rem .75rem; |
| | | } |