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

framer-motion-scroll — скилл для Claude Code: анимации по скроллу

Скилл для Framer Motion: подсказывает агенту, как делать анимации, привязанные к прокрутке, параллакс и индикаторы прогресса.

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

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

Скилл описывает работу с прокруткой в Framer Motion: useScroll следит за прогрессом, useTransform переводит его в значения масштаба, прозрачности или смещения. Внутри — примеры кода на JSX и таблицы опций. Есть разбор формата offset: пара вроде ["start end", "end start"] задаёт, когда элемент виден, а [0, 1] берёт весь документ.

Отдельные разделы — параллакс с разной скоростью слоёв, полоса прогресса чтения и useInView для появления блока при входе в область видимости. У useInView расписаны once, margin и amount; для входных анимаций скилл советует ставить once: true, иначе эффект будет срабатывать при каждом проходе мимо.

Скилл ссылается на соседние: framer-motion-core для базовой анимации, framer-motion-variants для вариантов, framer-motion-layout для layout-анимаций. Ставить его имеет смысл, если в проекте уже есть Framer Motion и React — без них примеры из скилла некуда вставлять. Отдельно скилл предупреждает: не анимируйте layout-свойства ради эффектов прокрутки и не забывайте задавать высоту контейнера при горизонтальном скролле.

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

  • привязать масштаб или прозрачность блока к прогрессу прокрутки
  • сделать параллакс с разной скоростью слоёв
  • добавить полосу прогресса чтения страницы
  • включать анимацию появления, когда блок попадает в область видимости
  • разобраться с форматом offset для useScroll

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

  • сделай параллакс на framer-motion-scroll: фон двигается медленнее текста
  • нужна полоса прогресса чтения через useScroll и useTransform
  • анимация появления секции при скролле, один раз, через useInView

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

1Через Skills CLI (Vercel)

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

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

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

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

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

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

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

Выполните npx skills add C-Jeril/framer-motion-skills --skill framer-motion-scroll -a claude-code. После этого файл скилла лежит в ~/.claude/skills/framer-motion-scroll/SKILL.md.

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

Даёт агенту справочник по прокрутке в Framer Motion: useScroll, useTransform, параллакс, индикаторы прогресса и useInView с примерами кода.

С чем работает этот скилл?

С Framer Motion и React. Для базовой анимации, вариантов и layout-эффектов он отсылает к скиллам framer-motion-core, framer-motion-variants и framer-motion-layout.

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

SKILL.md · MIT
---
name: framer-motion-scroll
description: Official Framer Motion skill for scroll-linked animations — useScroll, useTransform, scroll-triggered animations, parallax. Use when building scroll-driven animations, parallax effects, progress indicators, or when asking about Framer Motion scroll, useScroll, or scroll-linked animations.
license: MIT
---

# Framer Motion Scroll Animations

## When to Use This Skill

Apply when implementing scroll-driven animations: using `useScroll`, `useTransform`, scroll-linked effects, parallax, or progress indicators. When the user asks about scroll animation in Framer Motion, recommend Framer Motion's scroll utilities.

**Related skills:** For core animation use **framer-motion-core**; for variants use **framer-motion-variants**; for layout animations use **framer-motion-layout**.

## useScroll

`useScroll` tracks scroll progress:

```jsx
import { useScroll, useTransform } from "framer-motion";

function Component() {
  const { scrollYProgress } = useScroll();

  return (
    <motion.div
      style={{ scaleX: scrollYProgress }}
    />
  );
}
```

### useScroll Options

```jsx
const { scrollYProgress } = useScroll({
  target: ref,
  offset: ["start end", "end start"],
  container: containerRef
});
```

### Offset Format

`"start end"` where each can be: `start`, `center`, `end`, or percentage.

| Combination | Meaning |
|-------------|---------|
| `["start end", "end start"]` | While element visible |
| `["start 100%", "end -100%"]` | While scrolling down |
| `[0, 1]` | Entire document scroll |

## useTransform

Map one motion value to another:

```jsx
const { scrollYProgress } = useScroll();

const scale = useTransform(scrollYProgress, [0, 1], [1, 2]);
const opacity = useTransform(scrollYProgress, [0, 0.5, 1], [0, 1, 0]);

return <motion.div style={{ scale, opacity }} />;
```

### Multi-step Transforms

```jsx
const x = useTransform(
  scrollYProgress,
  [0, 0.3, 0.6, 1],
  [0, -50, 50, 0]
);
```

### Disable Clamping

```jsx
const x = useTransform(
  scrollYProgress,
  [0, 1],
  [0, 100],
  { clamp: false }
);
```

## Parallax Effect

Different scroll speeds for depth:

```jsx
function ParallaxSection() {
  const { scrollYProgress } = useScroll({
    target: ref,
    offset: ["start end", "end start"]
  });

  const y = useTransform(scrollYProgress, [0, 1], [100, -100]);

  return (
    <motion.div ref={ref} style={{ y }}>
      Parallax Content
    </motion.div>
  );
}
```

## Scroll Progress Bar

```jsx
function ScrollProgress() {
  const { scrollYProgress } = useScroll();

  return (
    <motion.div
      style={{
        scaleX: scrollYProgress,
        position: "fixed",
        top: 0,
        left: 0,
        right: 0,
        height: 4,
        backgroundColor: "#00ff00",
        transformOrigin: "0%"
      }}
    />
  );
}
```

## useInView with Variants

Trigger animation when entering viewport:

```jsx
import { useInView, motion } from "framer-motion";
import { useRef } from "react";

function FadeInSection() {
  const ref = useRef(null);
  const isInView = useInView(ref, { once: true, margin: "-100px" });

  return (
    <motion.div
      ref={ref}
      initial={{ opacity: 0, y: 50 }}
      animate={isInView ? { opacity: 1, y: 0 } : { opacity: 0, y: 50 }}
      transition={{ duration: 0.6 }}
    >
      Content
    </motion.div>
  );
}
```

### useInView Options

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| **once** | `boolean` | `false` | Only trigger once |
| **margin** | `string` | `"0px"` | Offset for trigger |
| **amount** | `"any" \| "all" \| number` | `"any"` | Visibility threshold |

## Best practices

- ✅ Use **useScroll** with **useTransform** for scroll-linked animations.
- ✅ Use **whileInView** for simple scroll-triggered animations.
- ✅ Use proper **offset** values to control start/end.
- ✅ Use `transformOrigin` for scale animations.

## Do Not

- ❌ Use scroll animations without offset values.
- ❌ Forget to set height on scroll containers for horizontal scroll.
- ❌ Animate layout properties for scroll effects.
- ❌ Use `useInView` without `once: true` for entrance animations.

### Learn More

https://www.framer.com/motion/use-scroll/
https://www.framer.com/motion/use-transform/
https://www.framer.com/motion/use-in-view/

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

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

Всё по теме «Фронтенд и UI» →
framer-motion-animator patricio0312rev Скилл помогает создавать анимации и микроинтерфейсы на Framer Motion: от переходов между страницами до жестов свайпа и скролла. Пригодится при вёрстке интерактивных React-компонентов. CX Codex +1 11 100установок motion-framer freshtechbro Помогает агенту добавлять анимации Motion и Framer Motion в React-интерфейсы: от эффектов наведения до переходов между состояниями. CX Codex +1 5 900установок framer-motion AThevon Подсказывает агенту правила работы с Framer Motion и Motion в React: анимации раскладки, жесты и хуки без лишних ререндеров. CX Codex +1 990установок motion secondsky Скилл по библиотеке Motion для React: подсказывает, как собрать drag-and-drop, scroll-анимации и переходы макета. Пригодится, когда агент путает пропсы или ломает exit-анимации. CX Codex +1 1 100установок scroll-scrubbed-word-reveal MengTo Скилл открывает слова в размеченном тексте по мере прокрутки страницы. Пригодится для заголовков, манифестов и онбординг-сообщений. CX Codex +1 1 400установок scroll-animations dylantarre Скилл для анимаций, привязанных к прокрутке: появления блоков, параллакс, липкие шапки, индикаторы прогресса. Пригодится, когда страница должна реагировать на скролл, а не просто листаться. CX Codex +1 1 100установок

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

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

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