diff --git a/frontend/src/components/Button.tsx b/frontend/src/components/Button.tsx new file mode 100644 index 0000000..b80958d --- /dev/null +++ b/frontend/src/components/Button.tsx @@ -0,0 +1,110 @@ +import React from 'react' +import { Link } from 'react-router-dom' + +type Variant = 'copper' | 'outline' | 'dark' | 'dark-ivory' + +type BaseProps = { + children: React.ReactNode + variant?: Variant + className?: string +} + +// استایل‌های فوق‌لوکس شیشه‌ای (Glassmorphic) با رنگ‌های اختصاصی پروژه +const STYLES: Record = { + copper: { + // دکمه اصلی: شیشه دودی تیره با خط نوری مسی، هاله بازتاب و حاشیه کریستالی + base: 'bg-char/75 backdrop-blur-xl text-ivory border border-copper/50 shadow-[inset_0_1px_1px_rgba(255,255,255,0.25),0_8px_20px_rgba(0,0,0,0.4)]', + fill: 'bg-gradient-to-r from-copper via-[#d89f6e] to-copper', + text: 'group-hover:text-char font-semibold', + glow: 'hover:border-copper hover:shadow-[0_0_30px_rgba(197,143,92,0.5)]', + }, + outline: { + // دکمه ثانویه: شیشه دودی کاملاً مات (Frosted Smoked Glass) با بازتاب لبه‌ها + base: 'bg-white/[0.04] backdrop-blur-xl border border-white/20 text-ivory shadow-[inset_0_1px_1px_rgba(255,255,255,0.15),0_8px_20px_rgba(0,0,0,0.3)]', + fill: 'bg-white/10', + text: 'group-hover:text-copper', + glow: 'hover:border-copper/70 hover:bg-white/[0.08] hover:shadow-[0_0_25px_rgba(197,143,92,0.25)]', + }, + dark: { + base: 'bg-ink/85 backdrop-blur-xl text-ivory border border-white/10 shadow-[inset_0_1px_1px_rgba(255,255,255,0.1)]', + fill: 'bg-copper', + text: 'group-hover:text-char', + glow: 'hover:border-copper/50 hover:shadow-[0_0_20px_rgba(197,143,92,0.3)]', + }, + 'dark-ivory': { + base: 'bg-ink/85 backdrop-blur-xl text-ivory border border-white/10 shadow-[inset_0_1px_1px_rgba(255,255,255,0.1)]', + fill: 'bg-ivory', + text: 'group-hover:text-char', + glow: 'hover:shadow-[0_0_20px_rgba(255,255,255,0.2)]', + }, +} + +function Inner({ children, variant = 'copper' }: { children: React.ReactNode; variant?: Variant }) { + const style = STYLES[variant] + return ( + <> + {/* خط انعکاس نوری شیشه در بالای دکمه */} + + + {/* انیمیشن پر شدن موجی و نرم */} +