---
interface Props {
animation: 'fade' | 'scale' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'pulse';
duration?: number; // in milliseconds
delay?: number; // in milliseconds
easing?: string; // CSS easing function
class?: string;
tag?: string; // HTML tag to use
}
const {
animation,
duration = 300,
delay = 0,
easing = 'ease',
class: className = '',
tag: Tag = 'div'
} = Astro.props;
const animationClasses = {
'fade': 'animate-fade',
'scale': 'animate-scale',
'slide-up': 'animate-slide-up',
'slide-down': 'animate-slide-down',
'slide-left': 'animate-slide-left',
'slide-right': 'animate-slide-right',
'pulse': 'animate-pulse'
};
const animationClass = animationClasses[animation] || '';
---