technical-constraints — скилл для Claude Code: анимация в рамках
Скилл для случаев, когда анимация упирается в поддержку браузеров, возможности платформы или технические требования. Помогает сохранить замысел, не ломая сборку.
npx skills add dylantarre/animation-principles --skill technical-constraints -a claude-codeЧто делает technical-constraints
Скилл разбирает проблемы с анимацией по принципам и предлагает конкретную замену. Если расчёты в рантайме слишком дорогие, он советует предрассчитать анимацию и взять CSS-кейфреймы вместо покадрового JS. Сложная геометрия тормозит рендер — значит, упрощаем фигуры, меняем SVG-пути на CSS-фигуры, режем число полигонов в 3D.
Внутри — блок диагностики по принципам (тайминг, второстепенные действия, стейджинг), список быстрых правок и чек-лист. Чек-лист начинается с перечисления целевых браузеров и устройств, проверки поддержки фич и теста на самом старом поддерживаемом браузере. Есть и готовый паттерн кода: определение поддержки через Element.prototype и CSS.supports, затем либо element.animate(), либо класс финального состояния, плюс обёртка @supports для прогрессивного улучшения.
Отдельно расписаны подсказки по платформам: в письмах — GIF или статика, в iOS Safari — проверка -webkit- префиксов, на старых Android и слабых устройствах — упрощение анимации. Для бюджетных устройств скилл предлагает prefers-reduced-motion как прокси. Это повод проверить, что у вас вообще есть статичный фолбэк: без него часть аудитории увидит пустой блок.
Какие задачи решает
- починить анимацию, которая не работает в целевом браузере
- уложить анимацию в лимит по размеру файла
- сделать тайминг одинаковым на разных устройствах
- выбрать, какие анимации резать при жёстком бюджете
- добавить статичный фолбэк для неподдерживающих браузеров
Примеры запросов агенту
- Анимация не работает в Safari на старом iPhone — что упростить?
- Прогони чек-лист технических ограничений для этой анимации
- Как переписать эту JS-анимацию на CSS с фолбэком?
Как установить technical-constraints
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill technical-constraints -a claude-code2Вручную: положить файлы
~/.claude/skills/technical-constraints/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/technical-constraints/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill technical-constraints -a codex2Вручную: положить файлы
.agents/skills/technical-constraints/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill technical-constraints -a cursor2Вручную: положить файлы
.cursor/skills/technical-constraints/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles technical-constraints2Вручную: положить файлы
.github/skills/technical-constraints/SKILL.md1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill technical-constraints -a gemini-cli2Командой платформы
gemini skills install https://github.com/dylantarre/animation-principles --path skills/12-by-problem-type/technical-constraintsВручную: положить файлы
.devin/skills/technical-constraints/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill technical-constraints -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о technical-constraints
Как установить technical-constraints в Claude?
Выполните npx skills add dylantarre/animation-principles --skill technical-constraints -a claude-code. После этого файл скилла лежит в ~/.claude/skills/technical-constraints/SKILL.md.
Что делает technical-constraints?
Разбирает анимацию, которая упирается в поддержку браузеров, возможности платформы или технические требования, и предлагает замену: предрасчёт вместо рантайма, CSS вместо JS, упрощение геометрии, статичный фолбэк.
С какими платформами он совместим?
Скилл ставят в Claude, Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode. Для каждой платформы в репозитории есть своя команда установки.
Исходный текст
SKILL.md · MIT
---
name: technical-constraints
description: Use when animation is limited by browser support, platform capabilities, or technical requirements
---
# Technical Constraints
Work within platform limitations while preserving animation intent.
## Problem Indicators
- Animation doesn't work on target browsers
- Mobile devices can't handle animation
- Framework limitations block implementation
- File size constraints (Lottie, sprites)
- Email/constrained environment needs
## Diagnosis by Principle
### Straight Ahead vs Pose-to-Pose
**Issue**: Runtime calculations too expensive
**Fix**: Pre-calculate animations. Use CSS keyframes (pose-to-pose) over JS frame-by-frame (straight ahead).
### Solid Drawing
**Issue**: Complex shapes cause rendering issues
**Fix**: Simplify geometry. Use CSS shapes over SVG paths. Reduce polygon counts in 3D.
### Timing
**Issue**: Consistent timing across devices
**Fix**: Use relative units. Test on slowest target device. Consider `requestAnimationFrame` for JS.
### Secondary Action
**Issue**: Budget only allows essential animation
**Fix**: Prioritize primary actions. Cut secondary animations first when constrained.
### Staging
**Issue**: Limited screen real estate
**Fix**: Animate in place. Use transforms that don't affect layout. Consider reduce-motion as default on constrained platforms.
## Quick Fixes
1. **Use CSS over JavaScript** - Better browser optimization
2. **Progressive enhancement** - Core function works without animation
3. **Feature detection** - Check capability before animating
4. **Fallback states** - Static alternative for unsupported browsers
5. **Lazy load animation libraries** - Don't block initial render
## Troubleshooting Checklist
- [ ] List target browsers/devices
- [ ] Check caniuse.com for feature support
- [ ] Test on oldest supported browser
- [ ] Measure animation impact on bundle size
- [ ] Verify fallback experience is acceptable
- [ ] Test with animation disabled
- [ ] Check framework animation capabilities
- [ ] Consider server-rendered alternatives (GIF, video)
## Code Pattern
```js
// Feature detection
const supportsAnimation =
'animate' in Element.prototype &&
CSS.supports('transform', 'translateZ(0)');
if (supportsAnimation) {
element.animate(keyframes, options);
} else {
element.classList.add('final-state');
}
// Progressive enhancement
@supports (animation: name) {
.element {
animation: fadeIn 200ms ease-out;
}
}
```
## Platform-Specific Tips
- **Email**: Use GIF or static images
- **iOS Safari**: Test `-webkit-` prefixes
- **Older Android**: Reduce animation complexity
- **Low-end devices**: Use `prefers-reduced-motion` as proxy
© dylantarre · MIT · dylantarre/animation-principles