DocsComposantsButton link
Button link
A link styled as a button.
1 fichier
<div class="flex gap-2">
<pb-ui.button-link href="#">Commencer</pb-ui.button-link>
<pb-ui.button-link href="#" variant="secondary">Documentation</pb-ui.button-link>
<pb-ui.button-link href="#" variant="link">En savoir plus</pb-ui.button-link>
</div>Installation
pyblade-ui add button-link- Copiez ce fichier dans votre projetcomponents/ui/button_link.html
@props({'variant': 'default', 'size': 'default', 'href': '#'}) <a href="{{ href }}" data-slot="button" {{ attributes.cn( "inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", { 'default': 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90', 'destructive': 'bg-destructive text-white shadow-xs hover:bg-destructive/90 dark:bg-destructive/60', 'outline': 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50', 'secondary': 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80', 'ghost': 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', 'link': 'text-primary underline-offset-4 hover:underline', }[variant], { 'default': 'h-9 px-4 py-2 has-[>svg]:px-3', 'sm': 'h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5', 'lg': 'h-10 rounded-md px-6 has-[>svg]:px-4', 'icon': 'size-9', }[size], ) }}>{{ slot }}</a> - Adaptez le chemin à votre projet
Le dossier
componentsest celui déclaré danspyblade.toml.
Utilisation
La balise <pb-ui.button-link> est disponible dans tous vos templates.
<pb-ui.button-link href="/docs" variant="secondary">Docs</pb-ui.button-link>Props
| Prop | Défaut |
|---|---|
| variant | 'default' |
| size | 'default' |
| href | '#' |
Tout autre attribut (class, id, x-on:click, hx-post…) est transmis à l'élément racine ; vos classes Tailwind l'emportent sur celles du composant.