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>
 |