🎬

Rive

مكتبة رسوم تفاعلية (Interactive Animation Library)

(3/5)
👁️ 3 مشاهدة
📅 02 Jul 2026
⚛️ React 💚 Vue.js 🅰️ Angular 🧡 Svelte 🌐 عام

مستوى الخبرة المطلوب:

⚡ متوسط 🚀 محترف 🏢 مؤسسي
🔗 زيارة الموقع الرسمي
3
تقييم المستخدمين
التصنيف 🎬 Animation
المشاهدات 3
تاريخ الإضافة 02/07/2026
آخر تحديث 02/07/2026

📖 الوصف

Rive هي منصة لإنشاء وتشغيل animations التفاعلية في الوقت الحقيقي. تستخدم runtime صغير (~150KB) لعرض animations معقدة مع state machines وinteractivity. Rive تُقدم بديل لـ Lottie مع state machines مدمج وruntime أصغر. تُستخدم في applications, games, وinteractive experiences.

🎯 يستخدم في

مجالات استخدام هذه الأداة

Interactive animations

Game-like interactions

State machine animations

Loading states

Micro-interactions

المميزات

أبرز مميزات هذه الأداة

State machines مدمج

Runtime صغير (~150KB)

Interactive animations

Vector-based

Works مع جميع المنصات

Rive editor (no code)

Performant rendering

⚠️ العيوب

نقاط يجب مراعاتها

×

يحتاج Rive editor

×

Learning curve للـ state machines

×

Community أصغر من Lottie

×

Paid features

🔄 البدائل

أدوات بديلة يمكنك استخدامها

Lottie
GSAP
Spine

💻 مثال على الاستخدام

كيفية استخدام هذه الأداة

Example Code
import { useRive, useStateMachineInput } from '@rive-app/react-canvas';

function InteractiveAnimation() {
  const { rive, RiveComponent } = useRive({
    src: 'animation.riv',
    stateMachines: 'State Machine 1',
    autoplay: true
  });

  const hoverInput = useStateMachineInput(rive, 'State Machine 1', 'Hover');
  const clickInput = useStateMachineInput(rive, 'State Machine 1', 'Click');

  return (
    <RiveComponent
      onMouseEnter={() => hoverInput && (hoverInput.value = true)}
      onMouseLeave={() => hoverInput && (hoverInput.value = false)}
      onClick={() => clickInput && clickInput.fire()}
      style={{ width: 400, height: 400 }}
    />
  );
}

// React hooks
import { useRive } from '@rive-app/react-canvas';

function SimpleAnimation() {
  const { RiveComponent } = useRive({
    src: 'https://cdn.rive.app/animations/vehicles.riv',
    stateMachines: 'Speed',
    autoplay: true,
  });

  return <RiveComponent style={{ width: 500, height: 500 }} />;
}

// With controls
function ControlledRive() {
  const { rive, RiveComponent } = useRive({
    src: 'animation.riv',
    animations: 'idle',
    autoplay: false,
  });

  useEffect(() => {
    if (rive) {
      rive.play('idle');
    }
  }, [rive]);

  return <RiveComponent style={{ width: 300, height: 300 }} />;
}

📚 أدوات أخرى في Animation

قد يعجبك أيضاً