motion
Skill0 starsChanged 47 days agoMITView on GitHub
Use when adding animation or interaction effects to a landing page or web page — entrance reveals, scroll effects (sticky «how it works» steps, product shot growing on scroll, progress line, paragraph lighting up word by word), counters and before/after bars, text accents (marker highlight, hand-drawn underline, rotating word in the headline), tabs and pricing toggles, form error and success states, marquee, hover tilt, magnetic buttons, sticky CTA — or when the user asks for «анимации», «вау-эффект», «чтобы оживить страницу», «микроанимации». Uses Vibe Landing Kit motion recipes (motion/*.json or MCP get_motion_recipe); GSAP and Lottie rules are in gsap-lottie.md.
38 other projects use a version of this.
Adopted by
Most recently taken up by
- sanmidable/skillstheir own version, first seen Nov 8, 2026
- podo/design-agent-skillstheir own version, first seen Nov 8, 2026
- RuneStone-Tech/optimize-anythingtheir own version, first seen Nov 8, 2026
- lalulali/vespyrtheir own version, first seen Nov 6, 2026
- theexperiencecompany/gaiatheir own version, first seen Nov 3, 2026
- seanx10m/skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use defaults, viewports and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
sanmidableSkilldefaults
Also in 3 projects that use this
sanmidableSkillviewports
Also in 3 projects that use this
miovragSkillkeyboard
Load this skill for every project containing interactive UI elements — buttons, links, modals, dropdowns, sliders, tabs, carousels, or any custom widget. Under no circumstances create an interactive component that cannot be fully operated by keyboard alone. Absolutely always ensure visible focus indicators, logical tab order, and no keyboard traps. Apply these rules to every interactive element without exception.
Also in 3 projects that use this
soilmassSkillcolor
Color animations including hue shifts, saturation changes, brightness transitions, and contrast adjustments. Use when implementing color morphing, theme transitions, mood effects, or attention-grabbing color pulses. Provides tokens for all color property animations.
Also in 4 projects that use this
owshq-mecSkilllayout
Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.
Also in 3 projects that use this
GoogleSkillcritique
Expertise in auditing and fixing repository scripts and GitHub Actions workflows to ensure technical robustness and security.
Also in 4 projects that use this
Other versions38 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 38
- theexperiencecompany/gaia★ 325same name
- Mindrally/skills★ 275same name
- raphaelsalaja/skills★ 62same name
- podo/design-agent-skills★ 32same name
- muzimu217/ui-design-agent-kit★ 23same name
- imMamdouhaboammar/linkedin-animated-infographics★ 14same name
- icons8/agent-skills★ 12same name
- lalulali/vespyr★ 11same name
- sukirman1901/frontend-expert★ 9same name
- app-builders-club/design-builder★ 4same name
28 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms.txtllms.txt
- ad-matchSkill
- brand-to-systemSkill
- design-systemSkill
- hypothesis-labSkill
- landing-abSkill
- landing-briefSkill
- landing-chatbotSkill
- landing-law-ruSkill
- landing-mediaSkill
- landing-mobileSkill
- semanticsSkill
The file
Files
Анимации без вреда конверсии
Главные правила
- Бери рецепт целиком:
html+css+jsизget_motion_recipe(илиmotion/<slug>.json). Код — ванильный, без CDN; GSAP только если он уже есть в проекте из npm (gsap_alt). Когда GSAP или Lottie действительно нужны и как их подключать под строгий CSP —gsap-lottie.mdрядом. - Анимируются только
transform,opacity,clip-path,filter. Никогда — ширина, высота, отступы, позиция: это сдвиги макета (CLS). Единственное исключение —stroke-dashoffsetу тонкой SVG-линии в рецептеsvg-line-draw. - Первый экран: заголовок и кнопка видны сразу, даже без JS. Эффект появления — только на том, что НЕ является самым крупным элементом первого экрана (иначе страдает LCP).
- Обязателен
@media (prefers-reduced-motion: reduce): по полюreduced_motionрецепта эффект убирается (remove), упрощается до плавного появления (soften) или остаётся (keep). - Бесконечные анимации (лента логотипов, фон, сменное слово) — с паузой по наведению/фокусу и кнопкой паузы (WCAG 2.2.2). Без вспышек чаще 3 раз в секунду.
- Бюджет: не больше 3 одновременных анимаций на экране и один «вау-момент» на страницу. Лучше меньше, но точно.
- Анимации, привязанные к прокрутке (
animation-timeline), — только внутри@supports (animation-timeline: view())и с запасным путём на IntersectionObserver/requestAnimationFrame: в Firefox их нет. Рецепты это уже делают. html, body { overflow-x: hidden }замораживает CSS-шкалы прокрутки и выключаетposition: sticky— пишиoverflow-x: clip.
1. Зачем здесь движение: проверка из 5 вопросов
Каждая анимация отвечает хотя бы на один вопрос. Не отвечает — не ставь: «пусто смотрелось» не причина.
| Вопрос | Что делает движение на лендинге | Рецепты |
| Иерархия — куда смотреть первым? | ведёт взгляд к офферу, выгоде, кнопке | hero-text-reveal, marker-highlight, svg-line-draw, cta-attention |
| Причина → следствие — что случилось от моего действия? | «нажал здесь — изменилось там» | tabs-indicator, accordion-smooth, before-after-slider, form-field-feedback |
| Преемственность — откуда это и куда ушло? | связывает шаги и экраны в одну историю | scroll-story-steps, media-zoom-scroll, steps-progress-line, sticky-stack-cards |
| Смена состояния — что сейчас? | отправлено, ошибка, выбрано, пройдено | form-success, form-field-feedback, tabs-indicator, scroll-progress-bar |
| Характер бренда — какой он? | дорогой, строгий, живой | gradient-drift, parallax-soft, tilt-card, magnetic-button, marquee-logos |
2. Характер движения
90 % анимаций страницы берут характер стиля. Одна фирменная кривая на 80 % анимаций и три длительности — tokens.motion дизайн-системы (fast / base / slow).
| Характер | Длительность | Кривая | Перелёт | Стили каталога |
| Premium | 350–600ms | cubic-bezier(.4,0,.2,1) | 0 % | dark-premium, apple, editorial, shopify |
| Corporate | 200–400ms | cubic-bezier(.2,0,0,1) | 0–3 % | stripe, linear, swiss, bmw, cal, intercom, notion, wise, revolut, airbnb, soft |
| Playful | 150–300ms | back (cubic-bezier(.34,1.56,.64,1)) | 10–20 % | в каталоге нет; только если бренд сам такой (детское, еда, развлечения) |
| Energetic | 100–250ms | expo (cubic-bezier(.16,1,.3,1)) | 15–30 % | ближе всего nike (без перелёта у текста) |
Вход бери по ease_emphasized стиля; если его нет — cubic-bezier(.16,1,.3,1), уход — cubic-bezier(.3,0,1,1).
3. Длительность
| Элемент | Длительность |
| наведение | до 100ms (уход 150–200ms) |
| нажатие | 120–180ms |
| карточка, вкладка, панель | 200–350ms |
| модальное окно | 300–400ms |
| крупное раскрытие (кадр, шторка, счёт) | 600–1200ms |
Поправка на расстояние: путь 50px — ×0,8; 200px — ×1,3; 400px — ×1,6; весь экран — ×1,8–2,0. Уход = 65–75 % от появления. На телефоне — ×0,8 (см. раздел 7).
4. Кривая по направлению
| Движение | Кривая | Пример из рецептов |
| появление | ease-out (торможение) | cubic-bezier(.2,0,0,1), (.16,1,.3,1) |
| уход | ease-in (разгон) | cubic-bezier(.4,0,1,1), (.3,0,1,1) |
| перемещение на месте (подложка, «рука») | ease-in-out | cubic-bezier(.65,0,.35,1) |
| повтор, дыхание фона | sine | cubic-bezier(.37,0,.63,1) |
| привязка к прокрутке, бегущая лента | linear | всегда linear, в GSAP ease: 'none' |
5. Очередь и хореография
| Что | Шаг очереди | Потолок |
| мелкие элементы (пункты, иконки) | 20–40ms | вся очередь ≤ 500ms |
| карточки | 50–100ms | больше 8 элементов — общая длительность 0,5–0,6 с |
| крупные блоки | 100–200ms | |
| строки текста / слова / буквы | 60–100 / 40–70 / 20–40ms | раскрытие текста ≤ 0,8–1 с |
- Перехлёст: следующий шаг стартует на 60–75 % предыдущего. Исключение — текст на одном месте (смена панели, цены): перехлёст ≤ 20ms, иначе цена «двоится».
- Порядок первого экрана: надзаголовок → строки заголовка → текст → кнопка → картинка.
- Правило 1/3: одновременно движется не больше трети элементов экрана, и ни один не проходит больше трети экрана за отрезок.
- Встречное движение фона — 20–30 % от основного. После связки — 100–200ms тишины.
- Два числа не считаются одновременно (
result-barsвыстраивает строки в очередь ровно по длительности счёта).
6. Амплитуда
| Что | Сколько |
| сдвиг при появлении | 15–25px (premium), 20–30px (corporate); на телефоне меньше |
| подъём из маски | yPercent 110 (слово целиком уходит под маску) |
| фон | ≤ 10–20 % энергии основного движения |
| пульсация масштаба | больше ±5 % — только с поводом |
| перелёт | успех 5–10 %; ошибка 0; количества и цены 0 |
| встряска ошибки | ±10–15px, 2–3 затухающих колебания за 300–400ms |
7. Телефон
- Длительности ×0,8, задержки очереди −30 %, одно-два анимируемых свойства вместо трёх.
- Без параллакса и без встречного масштаба (в рецептах уже выключены до 767px).
- Сцены с закреплением (
scroll-story-steps, горизонтальные сцены) на телефоне заменяются стопкой, а не уменьшаются. - Проверка на 390px: нет горизонтальной прокрутки, текст ошибки и подписи помещаются в строку.
8. Уменьшение движения — это дизайн, а не выключатель
| Уровень | Что происходит | Рецепты |
убрать (remove) | конечное состояние сразу, ничего не движется | parallax-soft, marquee-logos, gradient-drift, tilt-card, sticky-stack-cards, media-zoom-scroll, svg-line-draw, marker-highlight, steps-progress-line, text-scroll-highlight, result-bars, hero-word-rotator |
смягчить (soften) | только проявление opacity ≤ 200ms, без сдвигов и очередей | fade-up-stagger, counter-up, image-reveal-clip, hero-text-reveal, accordion-smooth, form-success, before-after-slider, cta-attention, magnetic-button, sticky-cta-mobile, scroll-story-steps, tabs-indicator, form-field-feedback |
оставить (keep) | движение идёт только за рукой человека 1:1 | scroll-progress-bar |
- Выставляй конечное состояние:
from, который не запустился, прячет контент навсегда. - В глобальной страховке —
animation-duration: .01ms, а не0s, иanimation-iteration-count: 1. - Слушай
changeуmatchMedia('(prefers-reduced-motion: reduce)'): настройку меняют на открытой странице. - На тёмной теме интенсивность движения и свечения −10–20 %.
9. Производительность
- Бюджет кадра: 16,7ms при 60 Гц, 8,3ms при 120 Гц, 6,2ms при 165 Гц. Всё, что считается на каждом кадре прокрутки, — сначала все чтения, потом все записи, один
requestAnimationFrame. - Не больше 20 движущихся элементов в экране. Один наблюдатель (IntersectionObserver) на момент, а не на элемент.
- Прокрутку не слушать вне экрана: подписка через IntersectionObserver.
- Не вешать
will-changeна всё заранее иtransitionна то, что привязано к прокрутке (начинает отставать). - Проверять при замедлении CPU ×4–6 (DevTools → Performance → CPU). Ориентир рецептов каталога: медиана кадра прокрутки 16,6ms, длинных задач нет.
10. Приёмка
- Посмотри пять раз подряд — раздражает? Нормально ли это на сотый показ (человек вернулся на страницу)? Нет — убирай или смягчай.
- В браузере (Playwright): нет ошибок в консоли; анимация доходит до конечного состояния; с
emulateMedia({ reducedMotion: 'reduce' })весь контент виден и ничего не движется; без JS контент виден; на 390px нет горизонтальной прокрутки; кадр в середине движения и в конце — глазами. - Сдвиг макета: высота блока до и после анимации одинаковая (Lighthouse CLS < 0,1).
11. Где на лендинге что ставить
Выбирай из motion_recipes своей дизайн-системы (там же в motion_map — настройки под стиль). Не больше одного заметного приёма на секцию.
| Блок лендинга | Рецепт | Когда ставить |
| Первый экран | hero-text-reveal | заголовок из 2–4 строк, уровень rich |
hero-word-rotator (новое) | продукт для нескольких ниш: «Сайт для [стоматологий / юристов]»; с кнопкой паузы | |
svg-line-draw (новое) | подчеркнуть 1–3 слова оффера после появления заголовка (data-sld-delay) | |
marker-highlight (новое) | главная выгода в подзаголовке; одна-две фразы на страницу | |
gradient-drift, parallax-soft, magnetic-button, cta-attention | фон и кнопка, только если это язык стиля | |
| Доверие под первым экраном | marquee-logos | логотипов больше 6–8 |
| Проблема, «знакомо?» | text-scroll-highlight (новое) | один крупный абзац 25–60 слов |
| Как это работает | scroll-story-steps (новое) | 3–4 шага с кадром на каждый (экран продукта, фото работы) |
steps-progress-line (новое) | 3–6 шагов текстом, без картинок | |
sticky-stack-cards, fade-up-stagger | карточки шагов | |
| Продукт, доказательство | media-zoom-scroll (новое) | один главный скрин или кадр — «вау-момент» страницы |
image-reveal-clip, before-after-slider | фото результата, «до и после» | |
| Результаты в цифрах | result-bars (новое) | «было → стало» по 2–4 показателям, с подписью источника |
counter-up | отдельные цифры доверия | |
| Тарифы | tabs-indicator (новое) | «помесячно / за год», вкладки «для кого» (2–4 одинаковой ширины) |
tilt-card, fade-up-stagger | карточки тарифов | |
| Частые вопросы | accordion-smooth | |
| Форма заявки | form-field-feedback (новое) | всегда вместе с form-success: что поправить → заявка принята |
sticky-cta-mobile | длинная страница, форма внизу | |
| Вся страница | scroll-progress-bar | длинный лендинг, режим «до формы» |
Не для рекламных лендингов: заставки и лоадеры перед контентом, покадровый canvas по прокрутке, подмена курсора, сглаженная прокрутка (Lenis, ScrollSmoother), «перемешивание» букв, морфинг SVG-путей (CSS d не работает в Safari).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

