brand-consistency — Claude Code skill: animation that fits your brand
A skill that diagnoses animation which feels off-brand and points to the fixes: timing, easing curves, level of exaggeration.
npx skills add dylantarre/animation-principles --skill brand-consistency -a claude-codeWhat brand-consistency does
The skill kicks in when motion in your UI feels generic, clashes with the brand voice, or differs from feature to feature. It walks through animation principles from the Disney school — Appeal, Exaggeration, Timing, Squash and Stretch, Secondary Action. Each one comes with a typical problem and a fix: elastic effects stay with playful brands, while serious ones move to scale transforms.
Inside you get an audit checklist and a short set of steps: describe motion in three brand words, define a timing scale, build reusable tokens. The code pattern shows CSS variables for curves and durations, such as --brand-ease-default and --brand-duration-fast.
Handy when several teams or features each animate in their own way. The skill does not rewrite your code — it sets the frame you align it to.
What it helps with
- figure out why an animation feels off-brand
- bring timings and easing curves onto one scale
- describe brand motion in three words
- spot outlier animations across shipped features
- decide whether elastic effects belong in a serious UI
Example prompts for the agent
- the modal animation feels off-brand, review it against the principles
- build a motion style guide for our product
- audit animation timings in this project for consistency
How to install brand-consistency
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill brand-consistency -a claude-code2Manually: put the files in place
~/.claude/skills/brand-consistency/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/brand-consistency/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill brand-consistency -a codex2Manually: put the files in place
.agents/skills/brand-consistency/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill brand-consistency -a cursor2Manually: put the files in place
.cursor/skills/brand-consistency/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles brand-consistency2Manually: put the files in place
.github/skills/brand-consistency/SKILL.md1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill brand-consistency -a gemini-cli2Platform CLI
gemini skills install https://github.com/dylantarre/animation-principles --path skills/12-by-problem-type/brand-consistencyManually: put the files in place
.devin/skills/brand-consistency/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill brand-consistency -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about brand-consistency
How do I install brand-consistency in Claude?
Run npx skills add dylantarre/animation-principles --skill brand-consistency -a claude-code. The skill lands at ~/.claude/skills/brand-consistency/SKILL.md.
What does brand-consistency do?
It matches your animation style against the brand personality and suggests fixes through Appeal, Exaggeration, Timing, Squash and Stretch and Secondary Action.
Which platforms does the skill support?
Besides Claude it installs into Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode, each with its own install command.
Source text
SKILL.md · MIT
---
name: brand-consistency
description: Use when animation doesn't match brand personality, feels generic, or clashes with design language
---
# Brand Consistency
Align animation style with brand identity using Disney's principles.
## Problem Indicators
- Animation feels "off-brand"
- Generic motion that could be any product
- Inconsistent animation styles across features
- Motion conflicts with brand voice
- Users don't recognize the product's personality
## Diagnosis by Principle
### Appeal
**Issue**: Animation lacks distinctive character
**Fix**: Define brand motion attributes. Is your brand playful (bouncy easing), professional (smooth, minimal), energetic (quick, snappy)?
### Exaggeration
**Issue**: Wrong level of drama for brand
**Fix**: Match exaggeration to brand personality. Luxury = subtle. Playful = bouncy. Corporate = restrained.
### Timing
**Issue**: Speed doesn't match brand energy
**Fix**: Fast brands: 100-200ms. Calm brands: 300-500ms. Define a timing scale and use consistently.
### Squash and Stretch
**Issue**: Elastic effects conflict with serious brand
**Fix**: Reserve squash/stretch for playful brands. Use scale transforms for professional brands.
### Secondary Action
**Issue**: Details don't reinforce brand
**Fix**: Secondary actions should amplify brand personality. A fun brand might have playful ripples; a serious brand uses subtle fades.
## Quick Fixes
1. **Create a motion style guide** - Document easing, duration, principles used
2. **Define 3-5 brand motion words** - "Swift, precise, confident"
3. **Build reusable animation tokens** - Consistent timing/easing variables
4. **Audit existing animations** - Find outliers
5. **Create animation components** - Enforce consistency through code
## Troubleshooting Checklist
- [ ] Can you describe animation in 3 brand words?
- [ ] Does motion match brand voice guidelines?
- [ ] Are easing curves consistent across features?
- [ ] Is timing scale documented and followed?
- [ ] Would a competitor use identical animation?
- [ ] Do animations feel like the same product?
- [ ] Test: Show animation without UI—recognizable as your brand?
- [ ] Review with brand/design team
## Code Pattern
```css
:root {
/* Brand motion tokens */
--brand-ease-default: cubic-bezier(0.4, 0, 0.2, 1);
--brand-ease-enter: cubic-bezier(0, 0, 0.2, 1);
--brand-ease-exit: cubic-bezier(0.4, 0, 1, 1);
--brand-duration-fast: 150ms;
--brand-duration-normal: 250ms;
--brand-duration-slow: 400ms;
}
```
© dylantarre · MIT · dylantarre/animation-principles