К основному содержанию
скилл CX Codex

framer-motion-variants — скилл для Claude Code: как установить

Обучает ИИ настраивать оркестрованные анимации во Framer Motion: стэггеры и стейт-машины через варианты состояний.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add C-Jeril/framer-motion-skills --skill framer-motion-variants -a claude-code
Открыть на GitHub

Что делает framer-motion-variants

Скилл содержит паттерны для координации связанных анимаций в интерфейсах на React. Он объясняет модели, как настраивать родительские контейнеры и дочерние элементы через variants, задавать интервалы с помощью staggerChildren и управлять направлением через staggerDirection.

Внутри описаны статические и динамические варианты с пропом custom, бесконечные циклы через repeatType, а также списки ключевых кадров с массивом таймингов times. Автор рекомендует держать не больше 3–5 состояний на компонент. Для базовых свойств анимации или привязки к скроллу понадобятся отдельные скиллы framer-motion-core и framer-motion-scroll.

Какие задачи решает

  • организовать поочерёдное появление карточек в списке через staggerChildren
  • настроить стейт-машину компонента с динамическими параметрами через custom
  • создать зацикленную анимацию с плавным разворотом через repeatType
  • скоординировать анимацию родителя и детей с помощью правила when

Примеры запросов агенту

  • Сделай поочерёдное появление списка карточек с задержкой 0.1 секунды между элементами с помощью variants
  • Настрой для кнопки анимацию состояний idle, hovered и pressed через dynamic variants и custom
  • Добавь бесконечную пульсацию иконки через keyframes и repeatType mirror

Как установить framer-motion-variants

1Через Skills CLI (Vercel)

npx skills add C-Jeril/framer-motion-skills --skill framer-motion-variants -a claude-code

2Вручную: положить файлы

~/.claude/skills/framer-motion-variants/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/framer-motion-variants/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о framer-motion-variants

Как установить framer-motion-variants в Claude Code?

Выполните в терминале команду npx skills add C-Jeril/framer-motion-skills --skill framer-motion-variants -a claude-code.

Что делает framer-motion-variants?

Скилл даёт ассистенту правила по созданию скоординированных анимаций во Framer Motion. Он описывает управление дочерними элементами, ключевые кадры и анимационные состояния.

Какие ограничения задаёт этот скилл?

Руководство советует держать от трёх до пяти состояний на компонент, чтобы не перегружать логику. Анимации скролла в скилл не входят — для них предусмотрен framer-motion-scroll.

Исходный текст

SKILL.md · MIT
---
name: framer-motion-variants
description: Official Framer Motion skill for animation variants — state machines, orchestrated animations, stagger, repeat, sequencing. Use when building orchestrated animations, animation state machines, staggered entrances, or when asking about Framer Motion variants, transition variants, or choreographed animations.
license: MIT
---

# Framer Motion Variants

## When to Use This Skill

Apply when building multi-step animations, coordinated animations across multiple elements, or when using variants for state-based animation control. Variants are Framer Motion's way of defining reusable animation states that can be choreographed.

**Related skills:** For core animation props use **framer-motion-core**; for React integration use **framer-motion-react**; for scroll-driven variants use **framer-motion-scroll**.

## Defining Variants

Variants are objects that define animation states:

```jsx
const container = {
  hidden: { opacity: 0 },
  visible: {
    opacity: 1,
    transition: {
      staggerChildren: 0.1
    }
  }
};

const item = {
  hidden: { opacity: 0, y: 20 },
  visible: { opacity: 1, y: 0 }
};

function Component() {
  return (
    <motion.div
      variants={container}
      initial="hidden"
      animate="visible"
    >
      {[1, 2, 3].map(i => (
        <motion.div key={i} variants={item} />
      ))}
    </motion.div>
  );
}
```

## Variant Types

### Static Variants

```jsx
const variants = {
  initial: { opacity: 0 },
  animate: { opacity: 1 },
  exit: { opacity: 0 }
};
```

### Dynamic Variants

```jsx
const variants = {
  animate: (custom) => ({
    x: custom * 100,
    opacity: 1
  })
};
```

## Orchestration

### staggerChildren

Stagger children animations:

```jsx
const container = {
  hidden: { opacity: 0 },
  visible: {
    opacity: 1,
    transition: {
      staggerChildren: 0.1,
      delayChildren: 0.2
    }
  }
};
```

### staggerDirection

```jsx
transition: {
  staggerChildren: 0.1,
  staggerDirection: -1  // 1 = forward, -1 = backward
}
```

## Repeating Animations

```jsx
const variants = {
  animate: {
    scale: [1, 1.5, 1],
    transition: {
      duration: 2,
      repeat: Infinity,
      repeatType: "loop"  // "loop" | "reverse" | "mirror"
    }
  }
};
```

### repeatType Options

| Type | Behavior |
|------|----------|
| `"loop"` | Restart from beginning |
| `"reverse"` | Play forward then backward |
| `"mirror"` | Swap states on each repeat |

## Keyframes

Animate through multiple values:

```jsx
<motion.div
  animate={{
    x: [0, 100, -50, 0],
    backgroundColor: ["#ff0000", "#00ff00", "#0000ff"]
  }}
  transition={{
    duration: 2,
    times: [0, 0.3, 0.6, 1]
  }}
/>
```

## State Machine with custom

```jsx
const states = {
  idle: { scale: 1 },
  hovered: { scale: 1.1 },
  pressed: { scale: 0.95 }
};

function Component({ state }) {
  return (
    <motion.div
      variants={states}
      animate={state}
      custom={state}
    />
  );
}
```

## Parent-Child Coordination

```jsx
const container = {
  hidden: { opacity: 0 },
  visible: {
    opacity: 1,
    transition: {
      staggerChildren: 0.1,
      when: "beforeChildren"
    }
  }
};

const child = {
  hidden: { x: -20, opacity: 0 },
  visible: {
    x: 0,
    opacity: 1,
    transition: { duration: 0.3 }
  }
};
```

## Best practices

- ✅ Use **variants** for reusable, coordinated animations.
- ✅ Use **staggerChildren** for list animations.
- ✅ Use **custom** prop to pass dynamic values.
- ✅ Define **exit** variants for AnimatePresence.
- ✅ Use **when** option for parent-child coordination.

## Do Not

- ❌ Mix motion values and variants incorrectly.
- ❌ Forget that variant transitions can be overridden.
- ❌ Use too many variant states (keep to 3-5).
- ❌ Forget to pass `custom` when needed.

### Learn More

https://www.framer.com/motion/animation/
https://www.framer.com/motion/variants/

© C-Jeril · MIT · C-Jeril/framer-motion-skills

Похожие скиллы

Всё по теме «Фронтенд и UI» →
frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок hyperframes heygen-com Скилл задаёт агенту правила рендера HTML-кода в видео через HyperFrames. Помогает собирать проморолики, эксплейнеры и титры прямо в коде проекта. CX Codex +1 1 200 000установок hyperframes-cli heygen-com Управляет проектами HyperFrames через терминал: собирает таймлайн, проверяет контраст кадров, запускает предпросмотр и рендерит видео локально или в облаке. CX Codex +1 1 300 000установок webapp-testing официальный anthropics Скилл запускает проверки локальных веб-приложений через Playwright: помогает отлаживать UI, делать скриншоты и смотреть логи браузера. 186 758установок

Из того же набора5

Спонсоры проекта

Компании, которые помогают держать аналитику открытой