Fork of atp.tools as a universal profile for people on the ATmosphere
at main 27 lines 815 B view raw
1import clsx from "clsx"; 2interface IconButtonProps extends React.HTMLAttributes<HTMLButtonElement> { 3 className?: string; 4 Icon: React.ReactNode; 5 onClick?: () => void; 6 ariaLabel?: string; 7 disabled?: boolean; 8} 9 10export const IconButton = (props: IconButtonProps) => { 11 const Icon = props.Icon; 12 return ( 13 // tailwindcss button 14 <button 15 className={clsx( 16 props.className, 17 "flex items-center justify-center w-10 h-10 p-3 rounded-full transition-colors duration-150 bg-gray-200 dark:bg-gray-800 cursor-pointer hover:bg-gray-300 dark:hover:bg-gray-700", 18 "disabled:cursor-default disabled:bg-gray-200 disabled:dark:bg-gray-800", 19 )} 20 disabled={props.disabled} 21 onClick={props.onClick} 22 aria-label={props.ariaLabel} 23 > 24 {Icon} 25 </button> 26 ); 27};