"use client" import { useState } from 'react' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { Badge } from '@/components/ui/badge' import { Button } from '@/components/ui/button' import { Avatar, AvatarFallback } from '@/components/ui/avatar' import { Progress } from '@/components/ui/progress' import { Play, Pause, RotateCcw, Zap, Sparkles, Loader, RefreshCw, Heart, Star, ArrowRight, ChevronDown, Bell, Settings, CheckCircle, AlertTriangle, Package, Truck, ShoppingCart } from 'lucide-react' export function AnimationsDemo() { const [isAnimating, setIsAnimating] = useState(false) const [hoveredCard, setHoveredCard] = useState(null) const [progress, setProgress] = useState(0) const [isLoading, setIsLoading] = useState(false) const [showNotification, setShowNotification] = useState(false) const startProgress = () => { setProgress(0) const interval = setInterval(() => { setProgress((prev) => { if (prev >= 100) { clearInterval(interval) return 100 } return prev + 10 }) }, 200) } const showLoadingDemo = () => { setIsLoading(true) setTimeout(() => setIsLoading(false), 3000) } const triggerNotification = () => { setShowNotification(true) setTimeout(() => setShowNotification(false), 3000) } return (
{/* CSS Анимации */} CSS Анимации {/* Spin Animations */}

Вращение и загрузка

animate-spin

icon spin

loader

dots bounce

{/* Pulse Animations */}

Пульсация

pulse circle

notification

heartbeat

ping

{/* Bounce Animations */}

Подпрыгивание

bounce arrow

bounce down

bounce button

{/* Hover эффекты */} Hover эффекты {/* Scale Hover */}

Масштабирование при наведении

scale-105

scale-110

scale-95

translate-y

{/* Color Hover */}

Изменение цвета

{/* Shadow Hover */}

Тени при наведении

{[1, 2, 3].map((card) => (
setHoveredCard(card)} onMouseLeave={() => setHoveredCard(null)} >

Карточка {card}

Наведите для эффекта

))}
{/* Transition эффекты */} Переходы (Transitions) {/* Duration Examples */}

Продолжительность переходов

{/* Easing Examples */}

Типы анимации

{/* Интерактивные анимации */} Интерактивные анимации {/* Loading Progress */}

Прогресс загрузки

Прогресс: {progress}%
{progress === 0 && "Нажмите 'Запустить' для начала"} {progress > 0 && progress < 100 && "Загрузка..."} {progress === 100 && "Загрузка завершена!"}
{/* Loading States */}

Состояния загрузки

Демо загрузки (3 сек)
{isLoading && (
Подключение к серверу...
Загрузка данных...
Обработка результата...
)}
{/* Notification Animation */}

Анимация уведомлений

Всплывающее уведомление
{showNotification && (
Успешно!
Операция выполнена успешно
)}
{/* Animation Toggle */}

Переключение анимации

Управление анимацией

Pulse

Bounce

Spin

Transform

{/* Сложные анимации */} Сложные анимации {/* Staggered Animation */}

Поэтапная анимация

{[1, 2, 3, 4, 5].map((item) => (
{item}
))}
{/* Chain Animation */}

Цепочка анимаций

{/* Card Flip Animation */}

Переворот карточки

{[1, 2, 3].map((card) => (
{/* Front */}

Карточка {card}

{/* Back */}

Настройки

))}
) }