Animation
Motion that feels alive. Our animations are inspired by natural movement - breathing, stretching, settling into place.
Motion Principles
Purposeful
Every animation serves a purpose - guiding attention, providing feedback, or creating delight.
Natural
Movements follow organic rhythms. Spring physics, overshoot, and gentle settling.
Respectful
Never block the user. Animations are short enough to feel responsive, never tedious.
Easing Functions
Hover over each box to see the easing in action.
ease-out
Quick start, smooth end
ease-spring
Bouncy overshoot
ease-gentle
Subtle, graceful
/* Easing functions */
--ease-out: cubic-bezier(0.16, 1, 0.3, 1); /* Quick exit, smooth land */
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); /* Bounce and overshoot */
--ease-gentle: cubic-bezier(0.4, 0, 0.2, 1); /* Subtle, graceful */
Durations
duration-fast
100ms - Micro-interactions, hovers
duration-normal
200ms - Standard transitions
duration-slow
300ms - Page transitions, modals
duration-slower
500ms - Celebration, emphasis
--duration-fast: 100ms; /* Micro-interactions */
--duration-normal: 200ms; /* Standard transitions */
--duration-slow: 300ms; /* Page transitions */
--duration-slower: 500ms; /* Celebration moments */
Common Patterns
Hover Lift
Cards and buttons lift slightly on hover to indicate interactivity.
Hover me
.card {
transition: transform var(--duration-normal) var(--ease-out),
box-shadow var(--duration-normal) var(--ease-out);
}
.card:hover {
transform: translateY(-4px);
box-shadow: var(--shadow-lg);
}
Button States
Buttons have distinct hover and active states.
.button {
transition: all var(--duration-fast) var(--ease-gentle);
}
.button:hover {
transform: translateY(-1px);
box-shadow: var(--shadow-md);
}
.button:active {
transform: translateY(0);
}
Pixar Principles
We apply the 12 Principles of Animation to create motion that feels alive.
- Anticipation - A brief pause before action telegraphs intent
- Follow-through - Elements settle after moving, like a spring
- Ease in/out - Natural acceleration and deceleration
- Secondary action - Subtle supporting animations enhance the main action
- Timing - Speed conveys weight and character