wgp-next-shop-ui-lib
Version:
Библиотека UI-компонентов для Next-Shop с поддержкой e-commerce функций
42 lines (35 loc) • 1.19 kB
JavaScript
import React from 'react';
export default function Button({
children,
onClick,
className = '',
variant = 'primary',
size = 'md',
disabled = false,
...rest
}) {
const baseClasses = "inline-flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2";
const variantClasses = {
primary: "bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500",
secondary: "bg-gray-200 text-gray-900 hover:bg-gray-300 focus:ring-gray-500",
danger: "bg-red-600 text-white hover:bg-red-700 focus:ring-red-500",
outline: "border border-gray-300 text-gray-700 hover:bg-gray-50 focus:ring-blue-500"
};
const sizeClasses = {
sm: "px-3 py-1.5 text-sm",
md: "px-4 py-2 text-base",
lg: "px-6 py-3 text-lg"
};
const disabledClasses = disabled ? "opacity-50 cursor-not-allowed" : "";
const buttonClasses = `${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]} ${disabledClasses} ${className}`;
return (
<button
onClick={onClick}
className={buttonClasses}
disabled={disabled}
{...rest}
>
{children}
</button>
);
}