@@ -4,7 +4,7 @@ import { type AriaButtonOptions, useButton } from "react-aria";
44import cn from "~/utils/cn" ;
55
66export interface ButtonProps extends AriaButtonOptions < "button" > {
7- variant ?: "heavy" | "light" | "danger" ;
7+ variant ?: "heavy" | "light" | "danger" | "ghost" ;
88 className ?: string ;
99 children ?: React . ReactNode ;
1010 ref ?: React . RefObject < HTMLButtonElement | null > ;
@@ -20,22 +20,34 @@ export default function Button({ variant = "light", ...props }: ButtonProps) {
2020 ref = { ref }
2121 { ...buttonProps }
2222 className = { cn (
23- "w-fit text-sm rounded-md px-3 py-2" ,
24- "focus:outline-hidden focus:ring-3" ,
25- props . isDisabled && "opacity-60 cursor-not-allowed" ,
23+ "w-fit rounded-lg px-3.5 py-2 text-sm leading-tight" ,
24+ "transition-colors duration-100" ,
25+ "focus:outline-hidden focus:ring-2 focus:ring-indigo-500/40 focus:ring-offset-1" ,
26+ "dark:focus:ring-indigo-400/40 dark:focus:ring-offset-mist-900" ,
27+ props . isDisabled && "pointer-events-none opacity-50" ,
2628 ...( variant === "heavy"
2729 ? [
28- "bg-mist-900 dark:bg-mist-50 font-semibold" ,
29- "hover:bg-mist-900/90 dark:hover:bg-mist-50 /90" ,
30- "text-mist-200 dark:text-mist-800 " ,
30+ "bg-indigo-500 font-semibold text-white " ,
31+ "hover:bg-indigo-500 /90" ,
32+ "dark:bg-indigo-500/90 dark:hover:bg-indigo-500/80 " ,
3133 ]
3234 : variant === "danger"
33- ? [ "bg-red-500 text-white font-semibold" , "hover:bg-red-500/90" ]
34- : [
35- "bg-mist-100 dark:bg-mist-800/50 font-medium" ,
36- "border border-mist-200 dark:border-mist-700" ,
37- "hover:bg-mist-200/90 dark:hover:bg-mist-700/50" ,
38- ] ) ,
35+ ? [
36+ "bg-red-600 font-semibold text-white" ,
37+ "hover:bg-red-600/90" ,
38+ "dark:bg-red-500 dark:hover:bg-red-500/90" ,
39+ ]
40+ : variant === "ghost"
41+ ? [
42+ "font-medium text-indigo-600 dark:text-indigo-400" ,
43+ "hover:bg-indigo-50 dark:hover:bg-indigo-500/10" ,
44+ ]
45+ : [
46+ "border border-mist-200 bg-white font-medium" ,
47+ "hover:bg-mist-50" ,
48+ "dark:border-mist-700 dark:bg-mist-800/50" ,
49+ "dark:hover:bg-mist-700/50" ,
50+ ] ) ,
3951 props . className ,
4052 ) }
4153 >
0 commit comments