From d95fe6a5812e08c512cc29de9735e7aa8b059cfa Mon Sep 17 00:00:00 2001 From: Ewan Croft Date: Wed, 15 Oct 2025 20:34:24 +0100 Subject: [PATCH] feat(LinkCard): add 'variant' prop for button-style links and improve text contrast --- .../layout/main/card/LinkCard.svelte | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/lib/components/layout/main/card/LinkCard.svelte b/src/lib/components/layout/main/card/LinkCard.svelte index 02f6bd8..b93f02c 100644 --- a/src/lib/components/layout/main/card/LinkCard.svelte +++ b/src/lib/components/layout/main/card/LinkCard.svelte @@ -8,9 +8,10 @@ emoji?: string; description?: string; badges?: { text: string; color?: 'mint' | 'sage' }[]; + variant?: 'default' | 'button'; } - let { url, title, emoji, description, badges }: Props = $props(); + let { url, title, emoji, description, badges, variant = 'default' }: Props = $props(); function getDomain(url: string): string { try { @@ -28,8 +29,16 @@ href={url} target="_blank" rel="noopener noreferrer" - class="flex items-center gap-2 rounded-lg bg-canvas-200 p-3 transition-colors hover:bg-canvas-300 dark:bg-canvas-800 dark:hover:bg-canvas-700" + class=" + {variant === 'button' + ? 'inline-flex items-center justify-center gap-2 rounded-lg bg-canvas-200 px-4 py-3 font-medium text-ink-900 transition-colors duration-200 hover:bg-canvas-300 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sage-600 dark:bg-canvas-800 dark:text-ink-50 dark:hover:bg-canvas-700' + : 'flex items-center gap-2 rounded-lg bg-canvas-200 p-3 transition-colors hover:bg-canvas-300 dark:bg-canvas-800 dark:hover:bg-canvas-700'} + " > + {#if variant === 'button'} + {title} +