entrance-patterns
Skill7 starsChanged 10 months agoMITView on GitHub
Element entrance animation patterns and stagger sequences. Use when animating elements appearing on screen, implementing list stagger effects, or creating reveal animations. References M3 entrance patterns and stagger best practices.
In this repository87 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- motion-designSkill
- 3d-transformsSkill
- accessibilitySkill
- android-nativeSkill
- animation-recipesSkill
- anticipationSkill
- arc-motionSkill
- attention-choreographySkill
- attentionSkill
- audio-reactiveSkill
- blurSkill
- brand-animationSkill
- cameraSkill
- characterSkill
- choice-resolutionSkill
- cinematicSkill
- code-generationSkill
- colorSkill
- component-animationsSkill
- compositingSkill
- consequenceSkill
- container-transformSkill
- css-advancedSkill
- data-visualizationSkill
- depthSkill
- distortionSkill
- dramaturgySkill
- durationSkill
- easingSkill
- emotional-journeySkill
- emotion-mappingSkill
- emotion-selectionSkill
- empty-statesSkill
- exaggerationSkill
- exit-patternsSkill
- exportSkill
- figma-integrationSkill
- follow-throughSkill
- frame-timingSkill
- gesture-motionSkill
- glow-shadowSkill
- intentSkill
- ios-nativeSkill
- loading-statesSkill
- loopingSkill
- lottieSkill
- masksSkill
- microstateSkill
- morphingSkill
- motion-auditSkill
- motion-blurSkill
- motion-principlesSkill
- motion-specsSkill
- narrative-arcSkill
- notificationsSkill
- onboardingSkill
- opacitySkill
- orchestratorSkill
- particlesSkill
- The first 60 shown.
The file
Files
Entrance Patterns
Patterns for elements entering the viewport.
Core Principle
Elements entering should use:
- Easing:
emphasized-decelerate(0.05, 0.7, 0.1, 1) - Duration: Based on element size (short-3 to medium-2)
Basic Entrance
Fade In
.fade-in {
animation: fadeIn 250ms cubic-bezier(0.05, 0.7, 0.1, 1) forwards;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}Slide Up + Fade
.slide-up {
animation: slideUp 250ms cubic-bezier(0.05, 0.7, 0.1, 1) forwards;
}
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(16px);
}
to {
opacity: 1;
transform: translateY(0);
}
}Scale + Fade
.scale-in {
animation: scaleIn 250ms cubic-bezier(0.05, 0.7, 0.1, 1) forwards;
}
@keyframes scaleIn {
from {
opacity: 0;
transform: scale(0.95);
}
to {
opacity: 1;
transform: scale(1);
}
}Stagger Patterns
Sequential Stagger
Elements enter one after another.
// Framer Motion
const container = {
hidden: { opacity: 0 },
show: {
opacity: 1,
transition: {
staggerChildren: 0.05 // 50ms between children
}
}
};
const item = {
hidden: { opacity: 0, y: 16 },
show: {
opacity: 1,
y: 0,
transition: {
duration: 0.25,
ease: [0.05, 0.7, 0.1, 1]
}
}
};Recommended Stagger Intervals
| Item Count | Stagger Delay | Total Duration |
| 3-5 items | 50ms | ~450ms |
| 6-10 items | 40ms | ~600ms |
| 10+ items | 30ms | Cap at ~800ms |
Best Practices
- Cap total duration — Don't exceed 800ms for full list
- Start fast — First items appear quickly
- Reduce for many items — Tighter stagger for long lists
- Direction matters — Stagger from logical origin
Direction-Based Entrances
From Origin
Elements enter from their creation point.
// Card created from FAB - entrance from FAB position
<motion.div
initial={{ scale: 0, originX: 0.9, originY: 0.9 }}
animate={{ scale: 1 }}
transition={{ duration: 0.3, ease: [0.05, 0.7, 0.1, 1] }}
/>Reading Order
For content, follow reading direction (LTR: left to right, top to bottom).
const staggerFromTopLeft = {
staggerChildren: 0.05,
staggerDirection: 1 // forward order
};Reduced Motion Alternative
const getEntranceVariant = (prefersReducedMotion) => ({
hidden: { opacity: 0 },
visible: {
opacity: 1,
y: prefersReducedMotion ? 0 : 16,
transition: {
duration: prefersReducedMotion ? 0.1 : 0.25
}
}
});See references/stagger-patterns.md for advanced stagger techniques.
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.

