muddle/samples/react/modules/app/views/navbar.spug
2026-10-23 08:53:07 -04:00

34 lines
1.3 KiB
Text

props
nav: { id: string, label: string, href: string, active?: boolean, detail: string }[]
albums: { id: string, name: string, cover: string, tracks: { title: string, duration: string }[] }[]
nav.navbar()
div.navbar__row@navbar()
a.navbar__brand(href="/") reactor
span.navbar__pill(aria-hidden="true")
ul.navbar__items(role="list")
each entry in nav
li
a.navbar__item@navitem(entry.id)(href=entry.href aria-current=entry.active ? 'page' : '')
= entry.label
each album in albums
li
a.navbar__item@navitem(album.id)(href="/" title=album.name)
= album.name
div.navbar__ribbon(aria-live="polite")
each entry in nav
p.navbar__pane@pane(entry.id)()
= entry.detail
each album in albums
div.navbar__pane.navbar__pane--album@pane(album.id)()
div.navbar__album-header
figure.navbar__pane-cover
img(src=album.cover alt=album.name loading="lazy" width="56" height="56")
div
p.navbar__pane-head= album.name
time.navbar__album-date(datetime=album.date)= album.date
ol.navbar__tracks
each track in album.tracks
li
span= track.title
span.navbar__track-duration= track.duration