Spaces:
Configuration error
Configuration error
| import React from 'react'; | |
| interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> { | |
| children: React.ReactNode; | |
| variant?: 'primary' | 'secondary'; | |
| size?: 'normal' | 'large'; | |
| } | |
| const Button: React.FC<ButtonProps> = ({ children, variant = 'primary', size = 'normal', className, ...props }) => { | |
| const baseStyles = 'font-semibold rounded-md shadow-sm transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-slate-800'; | |
| const variantStyles = { | |
| primary: 'bg-cyan-600 text-white hover:bg-cyan-500 focus:ring-cyan-500 disabled:bg-slate-600 disabled:text-slate-400 disabled:cursor-not-allowed', | |
| secondary: 'bg-slate-700 text-slate-200 hover:bg-slate-600 focus:ring-slate-500', | |
| }; | |
| const sizeStyles = { | |
| normal: 'px-4 py-2 text-sm', | |
| large: 'px-6 py-3 text-base', | |
| }; | |
| return ( | |
| <button | |
| className={`${baseStyles} ${variantStyles[variant]} ${sizeStyles[size]} ${className}`} | |
| {...props} | |
| > | |
| {children} | |
| </button> | |
| ); | |
| }; | |
| export default Button; | |