Skip to main content
Home
Works with
It is unknown whether this package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
It is unknown whether this package works with Cloudflare Workers
It is unknown whether this package works with Node.js
It is unknown whether this package works with Deno
It is unknown whether this package works with Bun
It is unknown whether this package works with Browsers
JSR Score0%
Publisheda year ago (0.1.5)
import React from "npm:react@^18.3.1" import { Slot } from "npm:@radix-ui/react-slot@^1.1.0" import { cva, type VariantProps } from "npm:class-variance-authority@^0.7.0" import { cn } from "./lib/utils.ts" const buttonVariants = cva( "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { // green button default: "bg-[#28a745] text-white hover:bg-[#218838] w-[138px] h-[36px] px-[16px] py-[10px] gap-[6px] border-[1px] rounded-tl-[8px] shadow-[0px_1px_2px_0px_#1018280A]", // white button secondary: "bg-[#FFFFFF] text-[#374151] hover:bg-[#E5E7EB] w-[138px] h-[36px] px-[16px] py-[10px] gap-[6px] border-[1px] rounded-tl-[8px] border-[1px] border-[#E5E7EB] shadow-[0px_1px_2px_0px_#1018280A]", destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground", ghost: "hover:bg-accent hover:text-accent-foreground", link: "text-primary underline-offset-4 hover:underline", }, size: { default: "h-10 px-4 py-2", sm: "h-9 rounded-md px-3", lg: "h-11 rounded-md px-8", icon: "h-10 w-10", }, }, defaultVariants: { variant: "default", size: "default", }, } ) export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> { asChild?: boolean } const Button = React.forwardRef<HTMLButtonElement, ButtonProps>( ({ className, variant, size, asChild = false, ...props }, ref) => { const Comp = asChild ? Slot : "button" return ( <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} /> ) } ) Button.displayName = "Button" export { Button, buttonVariants }