nav, nav ol, nav ul { --padding: 0 1rem; --wrap: nowrap; font-family: var(--heading); } nav, nav ol, nav ul, nav li, nav a { 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%; padding: 0; margin: 0; } nav li { width: 100%; --justify: center; max-inline-size: none; padding: 0; list-style: none; } nav a, nav button { --justify: center; width: 100%; white-space: nowrap; text-transform: uppercase; border-radius: 0; background-color: transparent; text-decoration: none; } nav a { padding: var(--padding); } nav .toggle { aspect-ratio: 1; border: 1px solid var(--base); color: var(--contrast); } 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); } .toggle .icon-caret-down { transform: rotate(0deg); transition: transform var(--trans-base); } .open > .row > .toggle .icon-caret-down, .open > .toggle .icon-caret-down { transform: rotate(900deg); } /**************************************************** SUBMENUS ****************************************************/ .has-submenu { position: relative; } ul.submenu { --dir: column; height: max-content; position: absolute; top: 100%; right: 0; max-height: 0; transform: scaleY(0); transform-origin: top; 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: 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); } .submenu a { height: var(--chipchip); } .open > ul.submenu { transform: scaleY(1); max-height: 1000%; box-shadow: rgba(var(--base-rgb), var(--op-45)) var(--shdw); } /************************************************************** ACCESSIBILITY **************************************************************/ .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; } nav a:focus:not(:focus-visible) { outline: none; } nav a:focus-visible { outline: 1px solid var(--action-0); outline-offset: 1px; } /************************************************************* 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-rgb),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-rgb), 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 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)); } nav.always > .toggle { position: fixed; bottom: 0; right: 0; width: var(--btn); height: var(--btn); background-color: var(--base); color: var(--contrast); box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); transition: width var(--trans-base); } nav.always > .toggle:hover { background-color: var(--action-0); color: var(--action-contrast); } nav.always.open > .toggle { width: 100%; background-color: rgba(var(--base-rgb),var(--op-6)); backdrop-filter: blur(5px); z-index: 1000000; } nav.always.open > .toggle:hover { background-color: 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; } /******************************************************* BREADCRUMBS *******************************************************/ nav#breadcrumbs { 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-5); } nav#breadcrumbs ol { height: max-content; --wrap: wrap; } nav#breadcrumbs li { width: max-content; height: var(--chip); --wrap: nowrap; } nav#breadcrumbs li::after { content: '/'; color: var(--contrast-200); padding: 0 .25rem; } nav#breadcrumbs li:last-of-type::after { display: none; } nav#breadcrumbs a { height: var(--chip); } nav#breadcrumbs a, nav#breadcrumbs span { padding: 0 .125rem; color: var(--contrast); text-transform: none; } nav#breadcrumbs a:focus { background-color: transparent; color: var(--action-0); } /************************************************************ FIXED BOTTOM ************************************************************/ nav.fixed { position: fixed; left: 0; box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw); z-index: var(--z-9); } nav.fixed.bottom { bottom: 0; width: calc(100% - var(--btn)); } nav.fixed ul { --justify: space-between; width: 100%; background-color: var(--base); padding: 0 .25rem; } nav.always.fixed > ul { padding-top: var(--btn); } nav.fixed li { flex: 1; } nav.fixed a { --gap: 1rem; --w: var(--chip_); color: var(--contrast); font-size: var(--txt-x-small); } @media (min-width: 768px) { nav.fixed a { font-size: var(--txt-medium); } } /************************************************************ ON THIS PAGE ************************************************************/ nav.on-this-page { --justify: space-between; position: fixed; bottom: 0; left: 0; width: 100vw; z-index: var(--z-5); background-color: rgba(var(--base-rgb), var(--op-45)); max-width: none; } body:has(nav.fixed) nav.on-this-page { bottom: var(--btn); } nav.on-this-page button { order: 3; padding: 0 1rem; width:max-content; aspect-ratio: unset; } nav.on-this-page.open button { order: 0; } nav.on-this-page ul { width: 100%; --gap: 0; } nav.on-this-page a { padding: 0; } nav.on-this-page .active a { background-color: rgba(var(--base-rgb),var(--op-6)); color: var(--action-contrast); } nav.on-this-page #back-to-top span { display: none; } nav.on-this-page .active a { background-color: var(--action-0); color: var(--action-contrast); } /**************************************************** LETTERS ****************************************************/ nav.letters, nav.letters ul, nav.letters li, nav.letters a{ height: var(--chip); } nav.letters li { max-width: calc(7.69% - 2px); /* Fit 26 letters over 2 rows */ } nav.letters ul { --wrap: wrap; } @media (min-width:768px) { nav.letters, nav.letters ul { height: var(--chip); } nav.letters ul { --wrap: nowrap; } nav.letters li { max-width: none; } nav.letters a { padding: .25rem .66rem; } } /******************************************************** INDEX/TOC ********************************************************/ nav.index { --justify: space-between; --padding: 0; background-color: rgba(var(--base-rgb),var(--op-6)); } nav.index ul { width: 100%; } nav.index li { flex-shrink:0; transform: scaleX(0); max-width: 0; overflow: hidden; } nav.index li.active, nav.index li.adj { transform: scaleX(1); width: calc(100% - var(--btn_)); flex-shrink: 1; max-width: none; } nav.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(0); max-width: 0; } } nav.index a { border-bottom: 4px solid transparent; } nav.index .active a { border-color: var(--action-0); color: var(--contrast); } nav.index.open { --dir: column-reverse; height: var(--maxHeight); width: 100%; --align: flex-end; background-color: rgba(var(--base-rgb),var(--op-6)); backdrop-filter: blur(5px); z-index: var(--z-10); } nav.index.open li { width: 100%; height: var(--btn); max-width: 100%!important; transform: scaleX(1); overflow: visible; } nav.index.open a { --justify: flex-end; padding: 0 2rem 0 0; background-color: transparent; } /*************************************************************** CONDENSED ***************************************************************/ nav.condensed, nav.condensed ul, nav.condensed li, nav.condensed a { height: max-content; width: max-content; --wrap: wrap; min-height: var(--chip); } nav.condensed { --gap: 0 .25rem; width: 100%; } nav.condensed li + li::before { content: 'ยท'; padding: 0 .25em; } nav.condensed a { font-size: var(--txt-x-small); padding: 0 .25rem; text-transform: none; border-bottom: 2px solid transparent; } nav .current a, nav a.current, nav a:focus, nav a:focus:visited, nav button:focus { background-color: transparent; color: var(--contrast); border-color: var(--action-0); } /******************************************************************** SOCIALS ********************************************************************/ ul.socials { --dir: row; height: max-content; --gap: .5rem; --justify: stretch; --wrap: nowrap; overflow: auto hidden; touch-action: pan-x; } .always ul.socials { width: 100%; } ul.socials a { padding: .5rem; max-width: none; } ul.socials .icon { margin: 0; } /******************************************************************** TABS ********************************************************************/ 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.active { cursor: default; } nav.tabs button { 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: var(--action-0); color: var(--action-contrast); border-color: var(--base); } .tab-content nav.tabs button { height: var(--chip_); padding: .25rem .75rem; min-height: 0; } .tab-content h2 { margin: 0 0 .5rem; } .tab-content nav.tabs { height: max-content; background-color: 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); } /******************************************************** MENU (as in food menu) ********************************************************/ nav.menu a { padding: .5rem .66rem; } /******************************************************** SHARE ********************************************************/ nav.share { height: max-content; margin: 1rem 0; } 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 ************************************************************/ 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); } /************************************************************ DASH ************************************************************/ .dashboard-nav { width: 100%; } 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; }