UNPKG

@gambito-corp/mbs-library

Version:

Librería de componentes React reutilizables - Sistema de diseño modular y escalable

47 lines (40 loc) 1.62 kB
import React from 'react'; const IconButton = ({ icon, variant = 'default', size = 'medium', disabled = false, onClick, title, className = '', ...props }) => { const baseClasses = 'inline-flex items-center justify-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2'; const variants = { default: 'text-gray-500 hover:text-gray-700 hover:bg-gray-100 focus:ring-gray-500', primary: 'text-blue-600 hover:text-blue-700 hover:bg-blue-50 focus:ring-blue-500', danger: 'text-red-600 hover:text-red-700 hover:bg-red-50 focus:ring-red-500', success: 'text-green-600 hover:text-green-700 hover:bg-green-50 focus:ring-green-500' }; const sizes = { small: 'w-6 h-6 text-sm', medium: 'w-8 h-8 text-base', large: 'w-10 h-10 text-lg' }; const disabledClasses = disabled ? 'opacity-50 cursor-not-allowed pointer-events-none' : 'cursor-pointer'; return ( <button type="button" className={`${baseClasses} ${variants[variant]} ${sizes[size]} ${disabledClasses} ${className}`} onClick={!disabled ? onClick : undefined} disabled={disabled} title={title} {...props} > {icon} </button> ); }; export default IconButton;