| | |
| | | /************************************************************** |
| | | BASE NAVIGATION - Works for 80% of cases |
| | | **************************************************************/ |
| | | nav, |
| | | nav ol, |
| | | nav ul { |
| | | --padding: 0 1rem; |
| | | --wrap: nowrap; |
| | | font-family: var(--heading); |
| | | } |
| | | |
| | | ul.socials, |
| | | nav, |
| | | nav ol, |
| | | nav ul, |
| | | nav li, |
| | | nav a { |
| | | display: flex; |
| | | flex-direction: var(--dir, row); |
| | | justify-content: var(--justify, flex-start); |
| | |
| | | flex-wrap: var(--wrap, nowrap); |
| | | height: var(--btn, 3rem); |
| | | max-width: 100%; |
| | | font-family: var(--heading); |
| | | padding: 0; |
| | | margin: 0; |
| | | } |
| | | |
| | | /* Items fill parent */ |
| | | nav li { |
| | | display: flex; |
| | | align-items: center; |
| | | height: max(var(--btn), max-content); |
| | | width: 100%; |
| | | max-inline-size: none; |
| | | padding: 0; |
| | | nav.col, |
| | | nav.col ul { |
| | | height: max-content; |
| | | } |
| | | |
| | | /* Links fill parent */ |
| | | nav a, |
| | | nav button { |
| | | display: flex; |
| | | text-decoration: none; |
| | | align-items: center; |
| | | justify-content: center; |
| | | height: var(--btn); |
| | | nav > ul { |
| | | width: 100%; |
| | | overflow: auto hidden; |
| | | } |
| | | |
| | | nav li { |
| | | width: max-content; |
| | | --justify: center; |
| | | max-inline-size: none; |
| | | padding: 0; |
| | | list-style: none; |
| | | } |
| | | |
| | | nav.fill li { |
| | | width: 100%; |
| | | } |
| | | nav a, nav button { |
| | | --justify: center; |
| | | width: 100%; |
| | | white-space: nowrap; |
| | | text-transform: uppercase; |
| | | transition: var(--trans-color); |
| | | border-radius: 0; |
| | | background-color: transparent; |
| | | text-decoration: none; |
| | | } |
| | | nav a { |
| | | height: var(--btn); |
| | | padding: var(--padding); |
| | | } |
| | | /* Buttons */ |
| | | nav button { |
| | | justify-content: center; |
| | | nav .toggle { |
| | | aspect-ratio: 1; |
| | | padding: 0; |
| | | border: 2px solid var(--base); |
| | | color: var(--contrast); |
| | | border-radius: 0; |
| | | border: 1px solid rgb(var(--base)); |
| | | color: rgb(var(--contrast)); |
| | | } |
| | | |
| | | /************************************************************** |
| | | 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); |
| | | nav .current a, |
| | | nav a.current, |
| | | nav a:focus, |
| | | nav a:focus:visited, |
| | | nav button:focus { |
| | | background-color: rgb(var(--action-0)); |
| | | color: var(--action-contrast); |
| | | } |
| | | |
| | | |
| | | /* Icon rotation */ |
| | | .toggle .icon { |
| | | .toggle .icon-caret-down { |
| | | transform: rotate(0deg); |
| | | transition: transform var(--trans-base); |
| | | } |
| | | |
| | | .has-submenu.open > button .icon { |
| | | .open > .row > .toggle .icon-caret-down, |
| | | .open > .toggle .icon-caret-down { |
| | | transform: rotate(900deg); |
| | | } |
| | | |
| | | /************************************************************** |
| | | SUBMENUS - Generic pattern |
| | | **************************************************************/ |
| | | /**************************************************** |
| | | SUBMENUS |
| | | ****************************************************/ |
| | | .has-submenu { |
| | | position: relative; |
| | | } |
| | | |
| | | ul.submenu { |
| | | --dir: column; |
| | | height: max-content; |
| | | position: absolute; |
| | | top: 100%; |
| | | left: 0; |
| | | right: 0; |
| | | max-height: 0; |
| | | transform: scaleY(0); |
| | | transform-origin: top; |
| | | width: max(100%, 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); |
| | | width: 100%; |
| | | min-width: max-content; |
| | | background-color: rgba(var(--base),var(--op-3)); |
| | | border: 2px solid rgba(var(--base),var(--op-3)); |
| | | transition: max-height var(--trans-base), transform var(--trans-base); |
| | | box-shadow: var(--shdw-none); |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .submenu li { |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | border: 1px solid var(--base-50); |
| | | background-color: rgba(var(--base),var(--op-6)); |
| | | border: 1px solid rgb(var(--base-50)); |
| | | } |
| | | .submenu a { |
| | | height: var(--chipchip); |
| | | } |
| | | |
| | | /* Open state */ |
| | | .open > ul.submenu { |
| | | transform: scaleY(1); |
| | | max-height: 1000%; |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | box-shadow: rgba(var(--base), var(--op-45)) var(--shdw); |
| | | } |
| | | |
| | | /************************************************************** |
| | | ACCESSIBILITY - Universal |
| | | ACCESSIBILITY |
| | | **************************************************************/ |
| | | .screen-reader-text { |
| | | position: absolute; |
| | |
| | | } |
| | | |
| | | nav a:focus-visible { |
| | | outline: 2px solid var(--action-0); |
| | | outline-offset: 2px; |
| | | outline: 1px solid rgb(var(--action-0)); |
| | | outline-offset: 1px; |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: MOBILE NAV (.always) |
| | | Only define what makes it different from base |
| | | **************************************************************/ |
| | | /************************************************************* |
| | | ALWAYS MOBILE NAV |
| | | *************************************************************/ |
| | | /*nav.always {*/ |
| | | /* --dir: column;*/ |
| | | /* --justify: flex-end;*/ |
| | | /* position: fixed;*/ |
| | | /* bottom: 0;*/ |
| | | /* right: 0;*/ |
| | | /* width: var(--btn);*/ |
| | | /* z-index: var(--z-10);*/ |
| | | /*}*/ |
| | | /*nav.always.open {*/ |
| | | /* width: 100vw;*/ |
| | | /* height: 100vh;*/ |
| | | /* padding-bottom: var(--btn_);*/ |
| | | /* background-color: rgba(var(--base),var(--op-6));*/ |
| | | /* backdrop-filter: blur(5px);*/ |
| | | /* z-index: var(--z-10);*/ |
| | | /*}*/ |
| | | |
| | | /*nav.always > ul {*/ |
| | | /* z-index: 1;*/ |
| | | /* --dir: column;*/ |
| | | /* --align: center;*/ |
| | | /* --justify: flex-start;*/ |
| | | /* --gap: 0;*/ |
| | | /* height: 100%;*/ |
| | | /* max-height: 100%;*/ |
| | | /* position: relative;*/ |
| | | /* right: -300vw;*/ |
| | | /* width: 100vw;*/ |
| | | /* padding: var(--btn) 0 0;*/ |
| | | /* overflow: hidden auto;*/ |
| | | /* transition: right var(--trans-base);*/ |
| | | /*}*/ |
| | | |
| | | /*nav.always.open > ul {*/ |
| | | /* right: 0;*/ |
| | | /*}*/ |
| | | /*nav.always li {*/ |
| | | /* --wrap: wrap;*/ |
| | | /* --dir: row;*/ |
| | | /* height: max-content;*/ |
| | | /* --justify: flex-start;*/ |
| | | /* background-color: rgba(var(--base), var(--op-6));*/ |
| | | /*}*/ |
| | | /*nav.always a {*/ |
| | | /* padding: 1rem;*/ |
| | | /* --justify: center;*/ |
| | | /* max-width: calc(100% - var(--btn));*/ |
| | | /*}*/ |
| | | |
| | | /*nav.always .has-submenu > a {*/ |
| | | /* z-index: var(--z-3);*/ |
| | | /*}*/ |
| | | /*nav.always .has-submenu > button {*/ |
| | | /* width: var(--btn);*/ |
| | | /*}*/ |
| | | |
| | | /*nav.always .submenu {*/ |
| | | /* position: relative;*/ |
| | | /* padding-right: 4rem;*/ |
| | | /* top: 0;*/ |
| | | /* border: 1px solid rgb(var(--action-0));*/ |
| | | /* background-color: rgba(rgb(var(--contrast)), var(--op-1));*/ |
| | | /*}*/ |
| | | /*nav.always .submenu li {*/ |
| | | /* background-color: rgba(var(--base),var(--op-3));*/ |
| | | /*}*/ |
| | | |
| | | /*nav.always > .toggle {*/ |
| | | /* position: fixed;*/ |
| | | /* bottom: 0;*/ |
| | | /* right: 0;*/ |
| | | /* width: var(--btn);*/ |
| | | /* height: var(--btn);*/ |
| | | /* background-color: rgb(var(--base));*/ |
| | | /* color: rgb(var(--contrast));*/ |
| | | /* box-shadow: rgba(var(--base),var(--op-45)) var(--shdw);*/ |
| | | /* transition: width var(--trans-base);*/ |
| | | /*}*/ |
| | | /*nav.always > .toggle:hover {*/ |
| | | /* background-color: rgb(var(--action-0));*/ |
| | | /* color: var(--action-contrast);*/ |
| | | /*}*/ |
| | | /*nav.always.open > .toggle {*/ |
| | | /* width: 100%;*/ |
| | | /* background-color: rgba(var(--base),var(--op-6));*/ |
| | | /* backdrop-filter: blur(5px);*/ |
| | | /* z-index: 1000000;*/ |
| | | /*}*/ |
| | | |
| | | /*nav.always.open > .toggle:hover {*/ |
| | | /* background-color: rgb(var(--action-0));*/ |
| | | /* color: var(--action-contrast);*/ |
| | | /*}*/ |
| | | |
| | | /*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;*/ |
| | | /* --w: 32px;*/ |
| | | /*}*/ |
| | | |
| | | |
| | | /*nav.always.fixed > ul {*/ |
| | | /* padding-top: var(--btn);*/ |
| | | /*}*/ |
| | | nav.always { |
| | | /* Different positioning */ |
| | | --dir: column; |
| | | --wrap: nowrap; |
| | | position: fixed; |
| | | bottom: 0; |
| | | right: 0; |
| | | width: var(--btn); |
| | | z-index: var(--z-10); |
| | | overflow: visible; |
| | | transition: width var(--trans-base); |
| | | width: max-content; |
| | | } |
| | | |
| | | 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; |
| | | --justify: flex-end; |
| | | --gap: 0; |
| | | height: 100%; |
| | | position: relative; |
| | | height: 100vh; |
| | | max-height: none; |
| | | position: fixed; |
| | | right: -300vw; |
| | | bottom: 0; |
| | | width: 100vw; |
| | | max-height: 100%; |
| | | padding: 1rem 0 0; |
| | | padding: var(--btn) 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 .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; |
| | | nav.always.open > ul { |
| | | right: 0; |
| | | } |
| | | nav.always li { |
| | | width: 100%; |
| | | } |
| | | /******************************************************* |
| | | ALWAYS MOBILE FIXED NAV |
| | | *******************************************************/ |
| | | nav.always.fixed { |
| | | width: var(--btn); |
| | | height: var(--btn); |
| | | background-color: var(--base); |
| | | color: var(--contrast); |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | bottom: 0; |
| | | right: 0; |
| | | overflow: hidden; |
| | | } |
| | | nav.always.fixed .toggle.main { |
| | | background-color: rgb(var(--base)); |
| | | } |
| | | nav.always.fixed .toggle.main:hover, |
| | | nav.always.fixed .toggle.main:focus { |
| | | background-color: rgb(var(--action-0)); |
| | | color: var(--action-contrast); |
| | | } |
| | | /******************************************************* |
| | | MOBILE NAV |
| | | *******************************************************/ |
| | | nav.mobile .toggle.main { |
| | | width: var(--btn); |
| | | transition: width var(--trans-base); |
| | | } |
| | | nav.always > button:hover { |
| | | background-color: var(--action-0); |
| | | color: var(--action-contrast); |
| | | } |
| | | |
| | | nav.always.open > button { |
| | | width: 100%; |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | backdrop-filter: blur(5px); |
| | | z-index: 1000000; |
| | | nav.mobile .icon-x, |
| | | nav.mobile .icon-list { |
| | | --w: 32px; |
| | | } |
| | | |
| | | /* Icon toggle */ |
| | | nav.always > button .icon-x, |
| | | nav.always.open > button .icon-list { |
| | | nav.mobile .icon-x, |
| | | nav.mobile.open .icon-list { |
| | | display: none; |
| | | } |
| | | nav.mobile .icon-list, |
| | | nav.mobile.open .icon-x { |
| | | display: block; |
| | | } |
| | | |
| | | nav.always > button .icon-list, |
| | | nav.always.open > button .icon-x { |
| | | display: block; |
| | | width: 32px; |
| | | height: 32px; |
| | | nav.mobile.open > ul { |
| | | --dir: column; |
| | | z-index: var(--z-9); |
| | | background-color: rgba(var(--base), var(--op-6)); |
| | | width: 100vw; |
| | | height: 100vh; |
| | | overflow: hidden auto; |
| | | right: 0; |
| | | bottom: 0; |
| | | position: fixed; |
| | | padding: var(--btn) 0; |
| | | } |
| | | nav.always > ul::before, |
| | | nav.mobile.open > ul::before { |
| | | content: ''; |
| | | z-index: -1; |
| | | position: absolute; |
| | | inset: 0; |
| | | filter: blur(5px); |
| | | } |
| | | nav.always.open .main.toggle, |
| | | nav.mobile.open .main.toggle { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: 100vw; |
| | | z-index: var(--z-10); |
| | | aspect-ratio: unset; |
| | | } |
| | | nav.always > ul, |
| | | nav.always > ul:before, |
| | | nav.mobile.open > ul, |
| | | nav.mobile.open > ul::before { |
| | | background-color: rgba(var(--base), var(--op-6)); |
| | | } |
| | | |
| | | @media (min-width: 768px) { |
| | | nav.always > ul { |
| | | padding-top: var(--btn); |
| | | @media (max-width:767px) { |
| | | nav.col { |
| | | height: var(--btn); |
| | | } |
| | | nav.mobile > ul { |
| | | --dir: column; |
| | | --align: center; |
| | | --justify: flex-end; |
| | | --gap: 0; |
| | | height: 100%; |
| | | max-height: none; |
| | | position: relative; |
| | | right: -300vw; |
| | | width: 100vw; |
| | | padding: var(--btn) 0 0; |
| | | overflow: hidden auto; |
| | | /*transition: right var(--trans-base);*/ |
| | | } |
| | | nav.mobile.open > ul { |
| | | right: 0; |
| | | } |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: BREADCRUMBS (#breadcrumbs) |
| | | **************************************************************/ |
| | | @media (min-width:768px) { |
| | | nav.mobile:not(.always) .toggle.main { |
| | | display: none; |
| | | } |
| | | } |
| | | /******************************************************* |
| | | 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)); |
| | | background-color: rgba(var(--base),var(--op-4)); |
| | | font-size: var(--txt-x-small); |
| | | padding: .125em; |
| | | z-index: var(--z-7); |
| | | z-index: var(--z-5); |
| | | } |
| | | #breadcrumbs ol { |
| | | |
| | | nav#breadcrumbs ol { |
| | | height: max-content; |
| | | --wrap: wrap!important; |
| | | --justify: flex-start!important; |
| | | --wrap: wrap; |
| | | } |
| | | #breadcrumbs li { |
| | | nav#breadcrumbs li { |
| | | width: max-content; |
| | | height: var(--chip); |
| | | --wrap: nowrap; |
| | | } |
| | | #breadcrumbs a { |
| | | nav#breadcrumbs li::after { |
| | | content: '/'; |
| | | color: rgb(var(--contrast-200)); |
| | | padding: 0 .25rem; |
| | | } |
| | | nav#breadcrumbs li:last-of-type::after { |
| | | display: none; |
| | | } |
| | | nav#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) { |
| | | nav#breadcrumbs a, nav#breadcrumbs span { |
| | | padding: 0 .125rem; |
| | | color: var(--contrast); |
| | | color: rgb(var(--contrast)); |
| | | text-transform: none; |
| | | } |
| | | |
| | | #breadcrumbs a:focus { |
| | | nav#breadcrumbs a:focus { |
| | | background-color: transparent; |
| | | color: var(--action-0); |
| | | color: rgb(var(--action-0)); |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: FIXED BOTTOM (nav.fixed.bottom) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.fixed.bottom { |
| | | /* Different positioning */ |
| | | /************************************************************ |
| | | FIXED BOTTOM |
| | | ************************************************************/ |
| | | nav.fixed { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: calc(100% - var(--btn)); |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | box-shadow: rgba(var(--base),var(--op-45)) var(--shdw); |
| | | z-index: var(--z-9); |
| | | } |
| | | nav.fixed.bottom { |
| | | left: 0; |
| | | bottom: 0; |
| | | width: calc(100% - var(--btn)); |
| | | } |
| | | |
| | | nav.fixed.bottom ul { |
| | | nav.fixed:not(.always) ul { |
| | | --justify: space-between; |
| | | width: 100%; |
| | | background-color: var(--base); |
| | | background-color: rgb(var(--base)); |
| | | padding: 0 .25rem; |
| | | } |
| | | |
| | | nav.fixed.bottom li { |
| | | nav.fixed:not(.always) li { |
| | | flex: 1; |
| | | justify-content: center; |
| | | } |
| | | |
| | | nav.fixed.bottom a { |
| | | gap: 1rem; |
| | | nav.fixed a { |
| | | --align: center; |
| | | --gap: 1rem; |
| | | --w: var(--chip_); |
| | | color: var(--contrast); |
| | | color: rgb(var(--contrast)); |
| | | font-size: var(--txt-x-small); |
| | | } |
| | | |
| | | @media (min-width: 768px) { |
| | | nav.fixed.bottom a { |
| | | nav.fixed a { |
| | | font-size: var(--txt-medium); |
| | | } |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: ON THIS PAGE (nav.on-this-page) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | /************************************************************ |
| | | ON THIS PAGE |
| | | ************************************************************/ |
| | | nav.on-this-page { |
| | | --justify: space-between; |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: calc(100% - var(--btn)); |
| | | width: 100vw; |
| | | z-index: var(--z-5); |
| | | background-color: rgba(var(--base), var(--op-45)); |
| | | max-width: none; |
| | | padding: 0 .5rem; |
| | | 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); |
| | | |
| | | } |
| | | .on-this-page li, |
| | | .on-this-page a { |
| | | width: 100%; |
| | | 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 { |
| | | nav.on-this-page button { |
| | | order: 3; |
| | | padding: 0 1rem; |
| | | width: max-content; |
| | | width:max-content; |
| | | aspect-ratio: unset; |
| | | height: var(--btn); |
| | | } |
| | | .on-this-page.open button { |
| | | nav.on-this-page.open button { |
| | | order: 0; |
| | | } |
| | | .on-this-page ul { |
| | | nav.on-this-page ul { |
| | | width: 100%; |
| | | gap: 0; |
| | | --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 { |
| | | nav.on-this-page a { |
| | | padding: 0; |
| | | } |
| | | .on-this-page #back-to-top span { |
| | | nav.on-this-page .active a { |
| | | background-color: rgba(var(--base),var(--op-6)); |
| | | color: var(--action-contrast); |
| | | } |
| | | nav.on-this-page #back-to-top span { |
| | | display: none; |
| | | } |
| | | .on-this-page.open #back-to-top span { |
| | | display: block; |
| | | nav.on-this-page .active a { |
| | | background-color: rgb(var(--action-0)); |
| | | color: var(--action-contrast); |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: LETTERS (nav.letters) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.letters li { |
| | | /**************************************************** |
| | | LETTERS |
| | | ****************************************************/ |
| | | nav.letters, |
| | | nav.letters ul, |
| | | nav.letters li, |
| | | nav.letters a{ |
| | | height: var(--chip); |
| | | max-width: calc(7.69% - 2px); /*Fit 26 letters over 2 rows) */ |
| | | } |
| | | nav.letters li { |
| | | 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 { |
| | | |
| | | @media (min-width:768px) { |
| | | nav.letters, nav.letters ul { |
| | | height: var(--chip); |
| | | } |
| | | nav.letters ul { |
| | |
| | | nav.letters li { |
| | | max-width: none; |
| | | } |
| | | |
| | | nav.letters a { |
| | | padding: .25rem .66rem; |
| | | } |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: INDEX/TOC (nav.index) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | /******************************************************** |
| | | INDEX/TOC |
| | | ********************************************************/ |
| | | nav.index { |
| | | --justify: space-between; |
| | | --padding: 0; |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | background-color: rgba(var(--base),var(--op-6)); |
| | | } |
| | | |
| | | .index ul { |
| | | nav.index ul { |
| | | width: 100%; |
| | | } |
| | | |
| | | .index li { |
| | | flex-shrink: 0; |
| | | nav.index li { |
| | | flex-shrink:0; |
| | | transform: scaleX(0); |
| | | max-width: 0; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .index li.active, |
| | | .index li.adj { |
| | | nav.index li.active, |
| | | nav.index li.adj { |
| | | transform: scaleX(1); |
| | | width: calc(100% - var(--btn_)); |
| | | flex-shrink: 1; |
| | | max-width: none; |
| | | } |
| | | .index li:first-of-type { |
| | | nav.index li:first-of-type { |
| | | flex-shrink: 1; |
| | | transform: scaleX(1); |
| | | order: 9999; |
| | |
| | | max-width: 0; |
| | | } |
| | | } |
| | | |
| | | .index a { |
| | | nav.index a { |
| | | border-bottom: 4px solid transparent; |
| | | } |
| | | |
| | | .index .active a { |
| | | border-color: var(--action-0); |
| | | color: var(--contrast); |
| | | nav.index .active a { |
| | | border-color: rgb(var(--action-0)); |
| | | color: rgb(var(--contrast)); |
| | | } |
| | | |
| | | /* Index open state */ |
| | | .index.open { |
| | | nav.index.open { |
| | | --dir: column-reverse; |
| | | height: var(--maxHeight); |
| | | width: 100%; |
| | | align-items: flex-end; |
| | | background-color: rgba(var(--base-rgb),var(--op-6)); |
| | | --align: flex-end; |
| | | background-color: rgba(var(--base),var(--op-6)); |
| | | backdrop-filter: blur(5px); |
| | | z-index: var(--z-10); |
| | | } |
| | | |
| | | .index.open ul { |
| | | --dir: column; |
| | | --justify: flex-end; |
| | | height: 100%; |
| | | width: 100%; |
| | | } |
| | | |
| | | .index.open li { |
| | | nav.index.open li { |
| | | width: 100%; |
| | | height: var(--btn); |
| | | max-width: 100%!important; |
| | | transform: scaleX(1); |
| | | overflow: visible; |
| | | } |
| | | |
| | | .index.open a { |
| | | justify-content: flex-end; |
| | | nav.index.open a { |
| | | --justify: flex-end; |
| | | padding: 0 2rem 0 0; |
| | | background-color: transparent; |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: CONDENSED (nav.condensed) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | nav.condensed { |
| | | height: max-content; |
| | | --wrap: wrap; |
| | | --gap: 0 .25rem; |
| | | } |
| | | /*************************************************************** |
| | | CONDENSED |
| | | ***************************************************************/ |
| | | |
| | | nav.condensed ul { |
| | | min-height: var(--chip_); |
| | | nav.condensed, |
| | | nav.condensed ul, |
| | | nav.condensed li, |
| | | nav.condensed a { |
| | | height: max-content; |
| | | --justify: center; |
| | | --wrap: wrap; |
| | | } |
| | | .condensed li { |
| | | width: max-content; |
| | | --wrap: wrap; |
| | | min-height: var(--chip); |
| | | } |
| | | .condensed li + li::before { |
| | | .condensed ul { |
| | | --justify: center; |
| | | --dir: row; |
| | | } |
| | | nav.condensed { |
| | | --gap: 0 .25rem; |
| | | width: 100%; |
| | | --justify: center; |
| | | } |
| | | nav.condensed li + li::before { |
| | | content: '·'; |
| | | padding: 0 .25em; |
| | | } |
| | | |
| | | .condensed a { |
| | | height: max-content; |
| | | min-height: var(--chip); |
| | | font-size:var(--txt-x-small); |
| | | nav.condensed a { |
| | | font-size: var(--txt-x-small); |
| | | padding: 0 .25rem; |
| | | text-transform: none; |
| | | border-bottom: 2px solid transparent; |
| | | } |
| | | |
| | | .condensed a:focus { |
| | | border-color: var(--action-0); |
| | | nav .current a, |
| | | nav a.current, |
| | | nav a:focus, |
| | | nav a:focus:visited, |
| | | nav button:focus { |
| | | background-color: transparent; |
| | | color: rgb(var(--contrast)); |
| | | border-color: rgb(var(--action-0)); |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: SOCIALS (ul.socials) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | /******************************************************************** |
| | | SOCIALS |
| | | ********************************************************************/ |
| | | ul.socials { |
| | | --dir: row; |
| | | height: max-content; |
| | | --gap: .5rem; |
| | | --justify: stretch; |
| | | --wrap:nowrap; |
| | | --justify: flex-end; |
| | | --wrap: nowrap; |
| | | overflow: auto hidden; |
| | | touch-action: pan-x; |
| | | } |
| | | .always ul.socials, |
| | | .always ul.socials li, |
| | | .always ul.socials a { |
| | | width: 100%; |
| | | } |
| | | |
| | | ul.socials li { |
| | | list-style: none; |
| | | } |
| | | .always ul.socials { |
| | | width: 100vw; |
| | | --justify: stretch; |
| | | } |
| | | .always ul.socials li { |
| | | flex: 1; |
| | | --justify: center; |
| | | --align: center; |
| | | } |
| | | .always ul.socials a { |
| | | display: inline-flex; |
| | | } |
| | | ul.socials a { |
| | | padding: .5rem; |
| | | display: inline-block; |
| | | font-size: var(--txt-x-small); |
| | | padding: .25rem .5rem; |
| | | max-width: none; |
| | | } |
| | | |
| | | ul.socials .icon { |
| | | margin: 0; |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: TABS (nav.tabs) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | ul.socials .icon + span:not(.screen-reader-text) { |
| | | margin-left: .5rem; |
| | | } |
| | | |
| | | /******************************************************************** |
| | | TABS |
| | | ********************************************************************/ |
| | | nav.tabs { |
| | | position: fixed; |
| | | bottom: var(--btn); |
| | | left: var(--btnbtn); |
| | | right: var(--btnbtn); |
| | | /*position: fixed;*/ |
| | | /*bottom: var(--btn);*/ |
| | | /*left: var(--btnbtn);*/ |
| | | /*right: var(--btnbtn);*/ |
| | | padding-bottom: 2px; |
| | | z-index: var(--z-6); |
| | | /*z-index: var(--z-6);*/ |
| | | touch-action: pan-x pan-y; |
| | | --wrap:nowrap; |
| | | --wrap: nowrap; |
| | | overflow: auto hidden; |
| | | } |
| | | nav.tabs button.active { |
| | | cursor: default; |
| | | } |
| | | 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-family: var(--heading); |
| | | font-size: var(--txt-x-small); |
| | | border-bottom: 4px solid transparent; |
| | | } |
| | | nav.tabs button.active, |
| | | nav.tabs button.active:hover { |
| | | background-color: rgb(var(--action-0)); |
| | | color: var(--action-contrast); |
| | | border-color: rgb(var(--base)); |
| | | } |
| | | |
| | | .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); |
| | | background-color: rgb(var(--base)); |
| | | --gap: 0; |
| | | } |
| | | .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); |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: MENU (nav.menu) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | .tab-content .tab-content nav.tabs { |
| | | background-color: rgb(var(--base-100)); |
| | | } |
| | | .tab-content .tab-content .tab-content nav.tabs { |
| | | background-color: rgb(var(--base-200)); |
| | | } |
| | | .tab-content nav.tabs button.active h2 { |
| | | color: rgb(var(--action-0)); |
| | | } |
| | | /******************************************************** |
| | | MENU (as in food menu) |
| | | ********************************************************/ |
| | | nav.menu a { |
| | | padding: .5rem .66rem; |
| | | } |
| | | |
| | | /************************************************************** |
| | | VARIANT: SHARE (nav.share) |
| | | Only define what makes it different |
| | | **************************************************************/ |
| | | /******************************************************** |
| | | SHARE |
| | | ********************************************************/ |
| | | nav.share { |
| | | height: max-content; |
| | | margin: 1rem 0; |
| | | } |
| | | |
| | | nav.share ul { |
| | | overflow: visible; |
| | | } |
| | | |
| | | nav.share h4 { |
| | | display: inline-block; |
| | | width: max-content; |
| | |
| | | font-size: var(--txt-x-small); |
| | | } |
| | | |
| | | /************************************************************** |
| | | /************************************************************ |
| | | HEADER ELEMENTS |
| | | **************************************************************/ |
| | | :where(body > header, .wp-site-blocks > header) { |
| | | ************************************************************/ |
| | | body > header, .wp-site-blocks > header { |
| | | --dir: row; |
| | | --justify: space-between; |
| | | position: sticky; |
| | |
| | | height: var(--btn); |
| | | width: 100vw; |
| | | display: flex; |
| | | align-items: center; |
| | | align-items: var(--align, center); |
| | | justify-content: var(--justify, space-between); |
| | | padding: 0 .5rem; |
| | | background-color: var(--base); |
| | | box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); |
| | | background-color: rgb(var(--base)); |
| | | box-shadow: rgba(var(--base),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;*/ |
| | | /*}*/ |
| | | /************************************************************ |
| | | DASH |
| | | ************************************************************/ |
| | | .dashboard-nav { |
| | | width: 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 |
| | | **************************************************************/ |
| | | nav.filters { |
| | | --dir: row; |
| | | overflow: auto hidden; |
| | | } |
| | | nav.filters .filter { |
| | | width: auto; |
| | | padding: .25rem .75rem; |
| | | } |
| | | |
| | | /* Hide navigation when empty */ |
| | | nav.term-navigation:has(*[hidden]) { |
| | | display: none; |
| | | } |
| | | |
| | | /* Dashboard nav */ |
| | | .dashboard-nav { |
| | | --justify: flex-start; |
| | | nav.pagination { |
| | | width: 100%; |
| | | } |
| | | |
| | | nav.filters { |
| | | --dir: row; |
| | | --justify: flex-start; |
| | | overflow: auto hidden; |
| | | nav.pagination > a { |
| | | min-width: var(--chipchip); |
| | | } |
| | | nav.filters .filter { |
| | | width: auto; |
| | | padding: .25rem .75rem; |
| | | } |
| | | nav.pagination > ul { |
| | | margin: 0 auto; |
| | | } |
| | | nav.pagination:not(:has(a + ul)) { |
| | | margin-left: var(--chipchip); |
| | | } |
| | | nav.pagination:not(:has(ul + a)) { |
| | | margin-right: var(--chipchip); |
| | | } |
| | | |
| | | .pagination.condensed li + li::before { |
| | | display: none; |
| | | } |
| | | .pagination li.current { |
| | | width: var(--chip_); |
| | | height: var(--chip_); |
| | | background-color: rgb(var(--action-0)); |
| | | border-radius: var(--radius); |
| | | line-height: 1; |
| | | } |
| | | .pagination.condensed a { |
| | | font-size: var(--txt-medium); |
| | | width: var(--chip_); |
| | | height: var(--chip_); |
| | | } |