Docs
   Button
Button
Displays a button or a component that looks like a button.
								Loading...
  	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button>Button</Button>
 	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button>Button</Button>
 Installation
	npx shadcn-svelte@latest add button
 Usage
	<script lang="ts">
  import { Button } from "$lib/components/ui/button";
</script>
 	<Button variant="outline">Button</Button>
 Link
You can convert the <button> into an <a> element by simply passing an href as a prop.
	<script lang="ts">
  import { Button } from "$lib/components/ui/button";
</script>
 
<Button href="/dashboard">Dashboard</Button>
 Alternatively, you can use the buttonVariants helper to create a link that looks like a button.
	<script lang="ts">
  import { buttonVariants } from "$lib/components/ui/button";
</script>
 
<a href="/dashboard" class={buttonVariants({ variant: "outline" })}>
  Dashboard
</a>
 Examples
Primary
								Loading...
  	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button>Button</Button>
 	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button>Button</Button>
 Secondary
								Loading...
  	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="secondary">Secondary</Button>
 	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="secondary">Secondary</Button>
 Destructive
								Loading...
  	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="destructive">Destructive</Button>
 	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="destructive">Destructive</Button>
 Outline
								Loading...
  	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="outline">Outline</Button>
 	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="outline">Outline</Button>
 Ghost
								Loading...
  	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="ghost">Ghost</Button>
 	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="ghost">Ghost</Button>
 Link
								Loading...
  	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="link">Link</Button>
 	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="link">Link</Button>
 With Icon
								Loading...
  	<script lang="ts">
  import EnvelopeOpen from "svelte-radix/EnvelopeOpen.svelte";
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button>
  <EnvelopeOpen class="mr-2 h-4 w-4" />
  Login with Email
</Button>
 	<script lang="ts">
  import Mail from "lucide-svelte/icons/mail";
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button>
  <Mail class="mr-2 h-4 w-4" />
  Login with Email
</Button>
 Icon
								Loading...
  	<script lang="ts">
  import ChevronRight from "svelte-radix/ChevronRight.svelte";
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="outline" size="icon">
  <ChevronRight class="h-4 w-4" />
</Button>
 	<script lang="ts">
  import ChevronRight from "lucide-svelte/icons/chevron-right";
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button variant="outline" size="icon">
  <ChevronRight class="h-4 w-4" />
</Button>
 Loading
								Loading...
  	<script lang="ts">
  import Reload from "svelte-radix/Reload.svelte";
  import { Button } from "$lib/components/ui/button/index.js";
</script>
 
<Button disabled>
  <Reload class="mr-2 h-4 w-4 animate-spin" />
  Please wait
</Button>
 	<script lang="ts">
  import { Button } from "$lib/components/ui/button/index.js";
  import LoaderCircle from "lucide-svelte/icons/loader-circle";
</script>
 
<Button disabled>
  <LoaderCircle class="mr-2 h-4 w-4 animate-spin" />
  Please wait
</Button>
 On This Page