30 lines
1.2 KiB
PHP
30 lines
1.2 KiB
PHP
@pure
|
|
|
|
@props([
|
|
'external' => null,
|
|
'accent' => true,
|
|
'variant' => null,
|
|
'strong' => false,
|
|
])
|
|
|
|
@php
|
|
$classes = Flux::classes()
|
|
->add('inline font-medium')
|
|
->add('underline-offset-[6px] hover:decoration-current')
|
|
->add(match ($variant) {
|
|
'ghost' => 'no-underline hover:underline',
|
|
'subtle' => 'no-underline',
|
|
default => 'underline',
|
|
})
|
|
->add('[[data-color]>&]:text-inherit [[data-color]>&]:decoration-current/20 dark:[[data-color]>&]:decoration-current/50 [[data-color]>&]:hover:decoration-current')
|
|
->add(match ($variant) {
|
|
'subtle' => 'text-zinc-500 dark:text-white/70 hover:text-zinc-800 dark:hover:text-white',
|
|
default => match ($accent) {
|
|
true => 'text-[var(--color-accent-content)] decoration-[color-mix(in_oklab,var(--color-accent-content),transparent_80%)]',
|
|
false => 'text-zinc-800 dark:text-white decoration-zinc-800/20 dark:decoration-white/20',
|
|
},
|
|
})
|
|
;
|
|
@endphp
|
|
{{-- NOTE: It's important that this file has NO newline at the end of the file. --}}
|
|
<a {{ $attributes->class($classes) }} data-flux-link <?php if ($external) : ?>target="_blank"<?php endif; ?>>{{ $slot }}</a>
|