--- | |
import type { HTMLAttributes } from 'astro/types'; | |
type Props = HTMLAttributes<'a'>; | |
const { href, class: className, ...props } = Astro.props; | |
const { pathname } = Astro.url; | |
const subpath = pathname.match(/[^\/]+/g); | |
const isActive = href === pathname || href === '/' + subpath?.[0]; | |
--- | |
<a href={href} class:list={[className, { active: isActive }]} {...props}> | |
<slot /> | |
</a> | |
<style> | |
a { | |
display: inline-block; | |
text-decoration: none; | |
} | |
a.active { | |
font-weight: bolder; | |
text-decoration: underline; | |
} | |
</style> |