27 lines
1011 B
Plaintext
27 lines
1011 B
Plaintext
---
|
|
const { title, url } = Astro.props;
|
|
|
|
interface Props {
|
|
title?: string;
|
|
url?: string;
|
|
}
|
|
|
|
const baseClasses =
|
|
'inline-flex items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-center text-sm font-medium text-neutral-600 shadow-sm outline-none ring-neutral-500 focus-visible:ring transition duration-300';
|
|
const borderClasses = 'border border-neutral-200';
|
|
const bgColorClasses = 'bg-neutral-300';
|
|
const hoverClasses = 'hover:bg-neutral-400/50 hover:text-neutral-600 active:text-neutral-700';
|
|
const disableClasses = 'disabled:pointer-events-none disabled:opacity-50';
|
|
const fontSizeClasses = '2xl:text-base';
|
|
const ringClasses = 'ring-neutral-500';
|
|
const darkClasses =
|
|
'dark:border-neutral-700 dark:bg-neutral-700 dark:text-neutral-300 dark:ring-neutral-200 dark:hover:bg-neutral-600 dark:focus:outline-none';
|
|
---
|
|
|
|
<a
|
|
class={`${baseClasses} ${borderClasses} ${bgColorClasses} ${hoverClasses} ${disableClasses} ${fontSizeClasses} ${ringClasses} ${darkClasses}`}
|
|
href={url}
|
|
>
|
|
{title}
|
|
</a>
|