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); 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.col, nav.col ul { height: max-content; } 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; border-radius: 0; background-color: transparent; text-decoration: none; } nav a { padding: var(--padding); } nav .toggle { aspect-ratio: 1; border: 1px solid rgb(var(--base)); color: rgb(var(--contrast)); } 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); } .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),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),var(--op-6)); border: 1px solid rgb(var(--base-50)); } .submenu a { height: var(--chipchip); } .open > ul.submenu { transform: scaleY(1); max-height: 1000%; box-shadow: rgba(var(--base), 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 rgb(var(--action-0)); outline-offset: 1px; } /************************************************************* 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 { overflow: visible; transition: width var(--trans-base); width: max-content; } nav.always > ul { --dir: column; --align: center; --justify: flex-end; --gap: 0; height: 100vh; max-height: none; position: fixed; right: -300vw; bottom: 0; width: 100vw; padding: var(--btn) 0; overflow: hidden auto; transition: right var(--trans-base); } nav.always.open > ul { right: 0; } nav.always li { width: 100%; } /******************************************************* ALWAYS MOBILE FIXED NAV *******************************************************/ nav.always.fixed { width: var(--btn); height: var(--btn); 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.mobile .icon-x, nav.mobile .icon-list { --w: 32px; } nav.mobile .icon-x, nav.mobile.open .icon-list { display: none; } nav.mobile .icon-list, nav.mobile.open .icon-x { display: block; } 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 (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; } } @media (min-width:768px) { nav.mobile:not(.always) .toggle.main { display: none; } } /******************************************************* BREADCRUMBS *******************************************************/ nav#breadcrumbs { height: max-content; --wrap: wrap; --gap: 0; width: max-content; max-width: var(--full); position: absolute; background-color: rgba(var(--base),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: rgb(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: rgb(var(--contrast)); text-transform: none; } nav#breadcrumbs a:focus { background-color: transparent; color: rgb(var(--action-0)); } /************************************************************ FIXED BOTTOM ************************************************************/ nav.fixed { position: fixed; 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:not(.always) ul { --justify: space-between; width: 100%; background-color: rgb(var(--base)); padding: 0 .25rem; } nav.fixed:not(.always) li { flex: 1; } nav.fixed a { --align: center; --gap: 1rem; --w: var(--chip_); color: rgb(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), 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),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: rgb(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),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: rgb(var(--action-0)); color: rgb(var(--contrast)); } nav.index.open { --dir: column-reverse; height: var(--maxHeight); width: 100%; --align: flex-end; background-color: rgba(var(--base),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); } .condensed ul { --justify: center; --dir: row; } nav.condensed { --gap: 0 .25rem; width: 100%; --justify: center; } 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: rgb(var(--contrast)); border-color: rgb(var(--action-0)); } /******************************************************************** SOCIALS ********************************************************************/ ul.socials { --dir: row; height: max-content; --gap: .5rem; --justify: flex-end; --wrap: nowrap; overflow: auto hidden; touch-action: pan-x; 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 { display: inline-block; font-size: var(--txt-x-small); padding: .25rem .5rem; max-width: none; } ul.socials .icon { margin: 0; } 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);*/ 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: 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 h2 { margin: 0 0 .5rem; } .tab-content nav.tabs { height: max-content; background-color: rgb(var(--base)); --gap: 0; } .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; } /******************************************************** 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: var(--align, center); justify-content: var(--justify, space-between); padding: 0 .5rem; 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); } /************************************************************ 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; } nav.pagination { width: 100%; } nav.pagination > a { min-width: var(--chipchip); } 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_); }