Fixed Navbar audit
This commit is contained in:
parent
e0cf2af0c0
commit
838190b8e5
3 changed files with 44 additions and 12 deletions
|
@ -6,23 +6,25 @@ const hamburger_src_url = `url("${hamburger.src}")`
|
|||
---
|
||||
|
||||
<header>
|
||||
<a href="/" rel="noopener noreferrer" aria-label="Home">
|
||||
<a href="/" rel="noopener noreferrer" aria-label="Home" role="navigation">
|
||||
<Image src={logo} alt="Website Logo" />
|
||||
<span class="visually-hidden">Website Logo</span>
|
||||
</a>
|
||||
<ul class="desktop">
|
||||
<slot />
|
||||
<slot name="desktop" />
|
||||
</ul>
|
||||
<button
|
||||
class="mobile"
|
||||
aria-label="Navigation Button"
|
||||
tabindex="0"
|
||||
onclick="this.focus()"
|
||||
role="navigation"
|
||||
>
|
||||
<ul>
|
||||
<slot />
|
||||
<slot name="mobile" />
|
||||
</ul>
|
||||
<div class="placeholder"></div>
|
||||
<div class="hamburger-menu"></div>
|
||||
<div class="hamburger-menu" role="navigation"></div>
|
||||
</button>
|
||||
</header>
|
||||
|
||||
|
@ -39,7 +41,7 @@ const hamburger_src_url = `url("${hamburger.src}")`
|
|||
line-height: 1.5em;
|
||||
}
|
||||
header > a {
|
||||
padding-left: 16px;
|
||||
margin-left: 16px;
|
||||
padding-top: 8px;
|
||||
display: block;
|
||||
height: 48px;
|
||||
|
@ -113,12 +115,12 @@ const hamburger_src_url = `url("${hamburger.src}")`
|
|||
.hamburger-menu {
|
||||
mask: var(--hamburger_src_url) no-repeat center;
|
||||
background-color: white;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
position: static;
|
||||
align-self: flex-start;
|
||||
padding-right: 1em;
|
||||
padding-top: 2.5em;
|
||||
margin-right: 1rem;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
@media (min-width: 1140px) {
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
---
|
||||
export interface Props {
|
||||
currentPage?: string
|
||||
navtype: 'mobile' | 'desktop'
|
||||
link: string
|
||||
text: string
|
||||
icon: ImageMetadata
|
||||
}
|
||||
|
||||
const { icon, text, link, currentPage } = Astro.props
|
||||
const { icon, text, link, navtype, currentPage } = Astro.props
|
||||
|
||||
let currPage = ''
|
||||
const slug = link.replace(new RegExp('/', 'g'), '')
|
||||
|
@ -19,6 +20,8 @@ if (currentPage === slug) {
|
|||
|
||||
const icon_src_url = `url("${icon.src}")`
|
||||
const fulllink = `/${slug}`
|
||||
|
||||
let extraattributes = navtype === 'mobile' ? { tabindex: '0' } : {}
|
||||
---
|
||||
|
||||
<li>
|
||||
|
@ -27,7 +30,8 @@ const fulllink = `/${slug}`
|
|||
rel="noopener noreferrer"
|
||||
aria-label={text}
|
||||
class={currPage}
|
||||
tabindex="0"
|
||||
role="navigation"
|
||||
{...extraattributes}
|
||||
>
|
||||
<div class="icon"></div>
|
||||
{text}
|
||||
|
|
|
@ -63,7 +63,22 @@ const mapped_navdata = navdata.map((item) => ({
|
|||
<Navbar>
|
||||
{
|
||||
mapped_navdata.map((item) => (
|
||||
<NavbarEntry currentPage={currentpage} {...item} />
|
||||
<NavbarEntry
|
||||
currentPage={currentpage}
|
||||
navtype="desktop"
|
||||
{...item}
|
||||
slot="desktop"
|
||||
/>
|
||||
))
|
||||
}
|
||||
{
|
||||
mapped_navdata.map((item) => (
|
||||
<NavbarEntry
|
||||
currentPage={currentpage}
|
||||
navtype="mobile"
|
||||
{...item}
|
||||
slot="mobile"
|
||||
/>
|
||||
))
|
||||
}
|
||||
</Navbar>
|
||||
|
@ -88,4 +103,15 @@ const mapped_navdata = navdata.map((item) => ({
|
|||
background: var(--c-lightgray);
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.visually-hidden {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
</style>
|
||||
|
|
Loading…
Reference in a new issue