How to create smooth transitions between element states? These 50 CSS transition effects cover all patterns: fade in/out, slide, flip, morph, expand and page transitions. Each transition uses CSS best practices with custom Bezier curves for a professional result.

Page A
Page B

Fade Through

The page gradually fades to black then reveals the new page.

CSS Opacity Smooth
Page A
Page B

Slide Over

New content slides over the old from left to right.

CSS Transform Slide
Page A
Page B

Circle Reveal

A circle expands from the center to reveal the new page.

CSS Clip-path Circle
Page A
Page B

Curtain Open

Two panels open like theater curtains.

CSS Transform Theatrical
Page A
Page B

Diagonal Wipe

A diagonal line sweeps across the screen to reveal the new content.

CSS Clip-path Wipe
Page A
Page B

Pixelate Dissolve

The screen breaks into pixels that appear and disappear.

CSS Grid Retro
Page A
Page B

Flip Page

The page flips over like a book.

CSS 3D Perspective
Page A
Page B

Zoom Through

Zoom into the screen center then zoom out on the new page.

CSS Scale Zoom
Page A
Page B

Blinds Effect

Horizontal blinds close then open to reveal the new page.

CSS Transform Blinds
Page A
Page B

Morph Transition

A shape morphs and expands to cover the screen then shrinks back.

CSS Morph Shape
Etat A
Home page
Etat B
Page profil
Click to toggle

Crossfade Transition

Smooth crossfade between two states. Simulates the native crossfade of the View Transitions API.

CSS Crossfade Premium
Section Home → Slide
Section About ← Back
Click to toggle

Slide Transition

Content slides left while new content comes in from the right, like page-to-page navigation.

CSS Slide Navigation
MORPH
Click to toggle

Scale Morph

The element changes size, shape and color with an elastic animation curve.

CSS Morph Premium
Slot A
Slot B
GO
Click to toggle

Shared Element

A shared element moves from one position to another, mimicking the shared element transition of the API.

CSS Shared Premium
A
Alice Martin
Designer
B
Bob Dupont
Developpeur
Click to toggle

Fade & Slide Up

Content fades out upward and new content rises from the bottom. Ideal for profiles and cards.

CSS Fade Slide
Face avant Click to flip
Face arriere Click again
Click to toggle

Flip Transition

The card performs a 3D rotation to reveal different content on the back. Classic and elegant effect.

CSS 3D Flip
Grille
Detail ZOOM Vue agrandie
Click to toggle

Zoom Transition

Zoom-in effect that enlarges the view to transition to a new detailed state. Perfect for galleries.

CSS Zoom Premium
Day mode
Night mode
Click to toggle

Circular Reveal

New content reveals itself with an expanding circle via clip-path. Ideal for theme toggles.

CSS Clip-path Premium
Component Alpha
Component Beta
Component Gamma
Component Delta
Component Epsilon
Click to toggle

Stagger List

List items exit one by one with staggered delays, then new items appear progressively.

CSS Stagger List
Page 2 Chapter II
Page 1 Chapter I
Click to toggle

Page Turn

Simulates a 3D page turn effect to reveal the next page. Inspired by e-readers and digital books.

CSS 3D Premium

Dark Mode

Dark theme active

Light Mode

Light theme active

Circular Reveal

Theme toggle with circular reveal via clip-path: circle() from the top-right button.

CSS clip-path Toggle

Dark Mode

Click for a smooth fade to light theme

Light Mode

Click to return to dark theme

Smooth Fade

Theme transition via cross-fade opacity with sun/moon icon morphing.

CSS Fade Opacity

Wipe Transition

Lateral slide

Dark Theme

Wipe Transition

Lateral slide

Light Theme

Slide Wipe

Horizontal wipe with clip-path: inset() and a luminous separation line crossing the screen.

CSS Wipe clip-path

CSS Variables

Transition via custom properties

Click to change

Color Morph

Theme transition entirely driven by CSS custom properties with transition on each variable.

CSS Variables Morph
Dark mode

Icon Toggle

Theme button with rotational morphing between sun and moon icons. Combined rotation and scale.

CSS Icon Morph
Marie Laurent

Click this card to toggle between dark and light theme with smooth transitions.

Card Theme

Complete card with avatar, text and buttons where each element transitions between the two themes.

CSS Card Transition

Gradient Shift

Click to change the mood

Gradient Shift

Gradient background shifting from cool nighttime hues to warm golden tones in 0.8s.

CSS Gradient Ambient

Adaptive UI

Miniature interface (nav, content, blocks) that toggles between dark and light theme on click.

CSS UI Adaptive
Dark

Component

Light

Component

Split Compare

Side-by-side comparison of both themes with a luminous central separator and "VS" label.

CSS Compare Split

Pixel Transition

Click to pixelate

Dark Mode

Pixel Transition

Click to pixelate

Light Mode

Pixelate Transition

Pixelated transition: colored blocks appear in random cascade to reveal the new theme.

CSS JS Pixel
Bloom Popover Content

Popover Bloom

The element blooms open from its anchor point with scale + opacity via @starting-style.

CSS @starting-style Popover
Stage Curtain

Dialog Curtain

Modal that opens like stage curtains, separating from the center.

CSS Dialog Transition

Stage Curtain Dialog

Content appears after the curtains open.

Toast Cascade

Stacked toast notifications with fluid entry, reordering and graceful exit.

JS Animation Stack
Card Content

Card Vanish

The card dissolves into particles on removal and materializes from particles on entry.

JS Particles Canvas

List Item Slide

Elements slide in from the side with staggered delays and collapse on removal.

CSS Stagger Collapse
Content sections fold and unfold like paper using 3D perspective transforms for a realistic paper feel.
Uses rotateX with perspective and transform-origin set to the top edge, combined with max-height transitions.
Works in all modern browsers. 3D transforms are widely supported since CSS3.

Accordion Fold

Content sections that fold/unfold like paper with 3D perspective transforms.

CSS 3D Perspective
Morph Element

Morph Transition

The element morphs shape/position transitioning from display:none to display:block with allow-discrete.

CSS allow-discrete Morph
Portal Content

Portal Open

Content appears through an expanding circular mask, like a portal opening.

CSS clip-path Circle
Flip Content

Flip Card Entry

Elements pivot from the back face with 3D rotation to reveal content.

CSS 3D Rotation Backface
Content

Fade Through Color

Elements pass through a brand color (not just opacity) during entry/exit.

CSS Color Transition

Motion Design

Staggered Reveal

Elements appearing in cascade with progressive delay for a coordinated effect.

CSS JS Cascade

Elastic Spring

Spring animation with physical bounce and realistic elastic deformation.

CSS Physics Bounce

Orchestrated Motion

Coordinated multi-element animation After Effects-style with synchronized timing.

CSS JS Orchestrated

Kinetic Wave

Wave propagation through a dot grid with progressive delay.

CSS JS Wave

Inertia Momentum

Movement with inertia and natural deceleration: drag the cube and watch it slow down.

JS Physics Drag

SVG Path Follow

Element following a complex SVG path with a fluid animation along the curve.

SVG JS Path

Character Cascade

Text with character-by-character animation, each letter appears individually.

JS Text Cascade
A
1
B
2
C
3

3D Flip Sequence

Chained 3D flip sequence with delay between each card for a domino effect.

CSS 3D Flip Sequence

Shape Morph Transition

Fluid transition between geometric shapes: circle, organic blob, square, and back.

CSS Morph Shapes

Timeline Choreography

Multi-step synchronized timeline sequence with animated progress bars.

CSS JS Timeline

Frequently Asked Questions

What is the difference between transition and animation in CSS? +

A transition animates the change from state A to state B (e.g.: hover). An animation can have multiple steps (@keyframes), loop, and trigger without interaction. Use transition for interactions, animation for autonomous effects.

How to create a page transition in CSS? +

Use the View Transitions API (document.startViewTransition()) for page transitions. For within-page transitions, combine opacity and transform with a toggleable class. Customize curves with cubic-bezier.

What is the ideal duration for a CSS transition? +

Between 200ms and 400ms for interactions (hover, click). 300ms is the standard. Below 150ms, the animation is too fast to be perceived. Above 500ms, it feels slow. Use ease-out for entrances and ease-in for exits.

How to avoid layout shift during a transition? +

Only animate transform and opacity (not width, height, margin). Use position:absolute to take the element out of the flow. Reserve space with min-height. Prefer scale() over width for enlargements.

How to chain multiple CSS transitions? +

Use transition-delay on each property: transition: opacity 0.3s ease 0s, transform 0.3s ease 0.1s. Or use @keyframes with percentages for full control over the sequence.

Similar Categories