devblog/src/components/Tag.astro

37 lines
821 B
Text
Raw Normal View History

2024-12-25 02:14:10 -05:00
---
2025-03-08 19:45:21 -05:00
import IconHash from "@/assets/icons/IconHash.svg";
2024-12-25 02:14:10 -05:00
export interface Props {
tag: string;
2025-03-08 19:45:21 -05:00
tagName: string;
2024-12-25 02:14:10 -05:00
size?: "sm" | "lg";
}
2025-03-08 19:45:21 -05:00
const { tag, tagName, size = "sm" } = Astro.props;
2024-12-25 02:14:10 -05:00
---
<li
2025-03-08 19:45:21 -05:00
class:list={[
"group inline-block group-hover:cursor-pointer",
size === "sm" ? "my-1 underline-offset-4" : "mx-1 my-3 underline-offset-8",
]}
2024-12-25 02:14:10 -05:00
>
<a
href={`/tags/${tag}/`}
transition:name={tag}
2025-03-08 19:45:21 -05:00
class:list={[
"relative pr-2 text-lg underline decoration-dashed group-hover:-top-0.5 group-hover:text-accent focus-visible:p-1",
{ "text-sm": size === "sm" },
]}
2024-12-25 02:14:10 -05:00
>
2025-03-08 19:45:21 -05:00
<IconHash
class:list={[
"inline-block opacity-80",
{ "-mr-3.5 size-4": size === "sm" },
{ "-mr-5 size-6": size === "lg" },
]}
/>
&nbsp;<span>{tagName}</span>
2024-12-25 02:14:10 -05:00
</a>
</li>