46 lines
1.3 KiB
Plaintext
46 lines
1.3 KiB
Plaintext
---
|
|
import { Icon } from 'astro-icon/components';
|
|
|
|
const { title, url, noArrow, addHome, addClass } = Astro.props;
|
|
|
|
interface Props {
|
|
title?: string;
|
|
url?: string;
|
|
noArrow?: boolean;
|
|
addHome?: boolean;
|
|
addClass?: string;
|
|
}
|
|
|
|
const baseClasses =
|
|
'group inline-flex items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm font-bold text-neutral-100 transition duration-300 ';
|
|
const borderClasses = 'border border-transparent';
|
|
const bgColorClasses = 'bg-bermuda hover:bg-turquoise dark:bg-turquoise dark:hover:bg-bermuda';
|
|
const disableClasses = 'disabled:pointer-events-none disabled:opacity-50';
|
|
const fontSizeClasses = '2xl:text-base';
|
|
const ringClasses = 'dark:ring-neutral-200';
|
|
---
|
|
|
|
<a
|
|
class={`${baseClasses} ${borderClasses} ${bgColorClasses} ${disableClasses} ${fontSizeClasses} ${ringClasses} ${addClass}`}
|
|
href={url}
|
|
data-astro-prefetch
|
|
>
|
|
{
|
|
addHome ? (
|
|
<Icon
|
|
name="mdi:home-variant-outline"
|
|
class="h-3 w-3 translate-y-0.25 transition duration-300 group-hover:translate-x-1 md:h-5 md:w-5"
|
|
/>
|
|
) : null
|
|
}
|
|
{title}
|
|
{
|
|
noArrow ? null : (
|
|
<Icon
|
|
name="mdi:keyboard-arrow-right"
|
|
class="h-3 w-3 translate-y-0.25 transition duration-300 group-hover:translate-x-1 md:h-5 md:w-5"
|
|
/>
|
|
)
|
|
}
|
|
</a>
|