'use client';
import { forwardRef, ButtonHTMLAttributes } from 'react';
import styles from './spell-button.module.css';
export type SpellType = 'fire' | 'ice' | 'lightning' | 'void';
export interface SpellButtonProps extends ButtonHTMLAttributes {
/** Type of spell for visual effects */
spellType?: SpellType;
/** Size of the button */
size?: 'sm' | 'md' | 'lg';
/** Intensity of the cast effect */
intensity?: 'subtle' | 'normal' | 'epic';
}
const spellColors: Record = {
fire: { primary: '#ff4500', glow: '#ff6b35', particle: '#ffa500' },
ice: { primary: '#00bfff', glow: '#87ceeb', particle: '#e0ffff' },
lightning: { primary: '#ff00ff', glow: '#da70d6', particle: '#ffff00' },
void: { primary: '#4b0082', glow: '#8a2be2', particle: '#9400d3' },
};
export const SpellButton = forwardRef(
(
{
children,
spellType = 'fire',
size = 'md',
intensity = 'normal',
className,
style,
...props
},
ref
) => {
const colors = spellColors[spellType];
return (
);
}
);
SpellButton.displayName = 'SpellButton';
export default SpellButton;