A button component with 7 variants (default, outline, secondary, destructive, destructive-outline, ghost, link), 10 sizes (xs–xl + icon sizes), loading state with built-in spinner, and render-as-child support via asChild prop.
import { Button } from "@/components/ui/component"; export default function ButtonVariantsDemo() { return ( <div className="flex min-h-screen w-full items-center justify-center bg-background p-8"> <div className="flex flex-wrap items-center gap-3"> <Button variant="default">Default</Button> <Button variant="outline">Outline</Button> <Button variant="secondary">Secondary</Button> <Button variant="destructive">Destructive</Button> <Button variant="destructive-outline">Destructive Outline</Button> <Button variant="ghost">Ghost</Button> <Button variant="link">Link</Button> </div> </div> ); }
Part of coss — browse the full library on 21st.dev.