agentleFS
soilmasssoilmass/motion-design-agent/skills/entrance-patterns/SKILL.md

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.

The file

Files
SKILL.md

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 CountStagger DelayTotal Duration
3-5 items50ms~450ms
6-10 items40ms~600ms
10+ items30msCap at ~800ms

Best Practices

  1. Cap total duration — Don't exceed 800ms for full list
  2. Start fast — First items appear quickly
  3. Reduce for many items — Tighter stagger for long lists
  4. 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.