mirror of
https://github.com/withastro/astro.git
synced 2024-12-16 21:46:22 -05:00
* Fix #7056 Splashing Navigation Menu in portfolio template * Add menu back to no-JS view * Fix desktop view in non-JS & menu styling * chore: force ci --------- Co-authored-by: Nate Moore <nate@astro.build> Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
This commit is contained in:
parent
e0d1439f2a
commit
9dd09e2c6a
1 changed files with 43 additions and 3 deletions
|
@ -36,7 +36,45 @@ const iconLinks: { label: string; href: string; icon: keyof typeof iconPaths }[]
|
||||||
</template>
|
</template>
|
||||||
</menu-button>
|
</menu-button>
|
||||||
</div>
|
</div>
|
||||||
<div id="menu-content">
|
<noscript class="menu-noscript">
|
||||||
|
<ul class="nav-items">
|
||||||
|
{
|
||||||
|
textLinks.map(({ label, href }) => (
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
aria-current={Astro.url.pathname === href}
|
||||||
|
class:list={[
|
||||||
|
'link',
|
||||||
|
{
|
||||||
|
active:
|
||||||
|
Astro.url.pathname === href ||
|
||||||
|
(href !== '/' && Astro.url.pathname.startsWith(href)),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
href={href}
|
||||||
|
>
|
||||||
|
{label}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
</ul>
|
||||||
|
</noscript>
|
||||||
|
<noscript style="display: contents;">
|
||||||
|
<div class="menu-footer">
|
||||||
|
<div class="socials">
|
||||||
|
{
|
||||||
|
iconLinks.map(({ href, icon, label }) => (
|
||||||
|
<a href={href} class="social">
|
||||||
|
<span class="sr-only">{label}</span>
|
||||||
|
<Icon icon={icon} />
|
||||||
|
</a>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</noscript>
|
||||||
|
<div id="menu-content" hidden>
|
||||||
<ul class="nav-items">
|
<ul class="nav-items">
|
||||||
{
|
{
|
||||||
textLinks.map(({ label, href }) => (
|
textLinks.map(({ label, href }) => (
|
||||||
|
@ -90,6 +128,8 @@ const iconLinks: { label: string; href: string; icon: keyof typeof iconPaths }[]
|
||||||
// Hide menu (shown by default to support no-JS browsers).
|
// Hide menu (shown by default to support no-JS browsers).
|
||||||
const menu = document.getElementById('menu-content')!;
|
const menu = document.getElementById('menu-content')!;
|
||||||
menu.hidden = true;
|
menu.hidden = true;
|
||||||
|
// Add "menu-content" class in JS to avoid covering content in non-JS browsers.
|
||||||
|
menu.classList.add('menu-content');
|
||||||
|
|
||||||
/** Set whether the menu is currently expanded or collapsed. */
|
/** Set whether the menu is currently expanded or collapsed. */
|
||||||
const setExpanded = (expand: boolean) => {
|
const setExpanded = (expand: boolean) => {
|
||||||
|
@ -169,7 +209,7 @@ const iconLinks: { label: string; href: string; icon: keyof typeof iconPaths }[]
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#menu-content {
|
.menu-content {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
|
@ -254,7 +294,7 @@ const iconLinks: { label: string; href: string; icon: keyof typeof iconPaths }[]
|
||||||
font-size: var(--text-lg);
|
font-size: var(--text-lg);
|
||||||
}
|
}
|
||||||
|
|
||||||
#menu-content {
|
.menu-content {
|
||||||
display: contents;
|
display: contents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue