Command Palette

Search for a command to run...

Docs
Button Variants

Button Variants

A versatile button component with multiple variants including primary, secondary, destructive, outline, ghost, and link.

Installation

Usage

import ButtonVariants from "@/components/ruixen/button-variants";
 
export default function MyComponent() {
  return (
    <div className="flex gap-4">
      <ButtonVariants variant="primary">Primary</ButtonVariants>
      <ButtonVariants variant="secondary">Secondary</ButtonVariants>
      <ButtonVariants variant="outline">Outline</ButtonVariants>
      <ButtonVariants variant="ghost">Ghost</ButtonVariants>
      <ButtonVariants variant="link">Link</ButtonVariants>
      <ButtonVariants variant="destructive">Destructive</ButtonVariants>
    </div>
  );
}

Props

PropTypeDefaultDescription
variant"primary" | "secondary" | "destructive" | "outline" | "ghost" | "link""primary"Button style variant
size"sm" | "md" | "lg" | "icon""md"Button size
loadingbooleanfalseShow loading spinner
leftIconReact.ReactNode-Icon on the left side
rightIconReact.ReactNode-Icon on the right side
classNamestring-Additional CSS classes

Features

  • Six distinct variants for different use cases
  • Three size options plus icon-only size
  • Loading state with spinner
  • Support for left and right icons
  • Accessible focus states
  • Light and dark mode support