LayerwiseLayerwise
  • Features
  • Pricing
  • Templates
  • Docs
DownloadDownload
FeaturesPricingTemplatesDocsAI Website BuilderVibe CodingPersonal Software
DownloadDownload
  1. Glossary
  2. /
  3. Motion principles

Follow-through

Also called follow through or overlapping action

When the main object stops but loose, attached parts keep moving for a moment, swing past, and settle, which makes motion feel physical.

import { motion, useReducedMotion, type Variants } from 'motion/react';

// A loosely damped spring overshoots and settles on its own: with these
// numbers the tag swings about 15 degrees past center before it rests.
const SWING = { type: 'spring', stiffness: 200, damping: 8 } as const;
const TRAIL_ANGLE = 36; // how far the tag lags while the card is moving

const card: Variants = {
  hidden: { opacity: 0, x: -60 },
  show: { opacity: 1, x: 0, transition: { duration: 0.4, ease: 'easeOut' } }
};

type ProductCardProps = { name: string; price: string; image: string };

export function ProductCard({ name, price, image }: ProductCardProps) {
  const reduceMotion = useReducedMotion();
  const tag: Variants = {
    hidden: { rotate: reduceMotion ? 0 : TRAIL_ANGLE },
    show: {
      rotate: 0,
      transition: reduceMotion ? { duration: 0 } : { ...SWING, delay: 0.15 }
    }
  };

  return (
    <motion.article
      variants={card}
      initial='hidden'
      whileInView='show'
      viewport={{ once: true }}
      className='relative w-60 rounded-2xl border bg-background p-3'
    >
      <img
        src={image}
        alt=''
        className='aspect-square w-full rounded-xl object-cover'
      />
      <h3 className='mt-3 text-sm font-medium'>{name}</h3>
      <p className='text-sm text-muted-foreground'>{price}</p>
      {/* The tag hangs from the card's bottom edge and pivots at its string. */}
      <motion.div
        variants={tag}
        className='absolute top-full right-6 flex origin-top flex-col items-center'
      >
        <span className='h-4 w-px bg-foreground/40' />
        <span className='rounded-md bg-red-500 px-2 py-1 text-xs font-semibold text-white'>
          Sale
        </span>
      </motion.div>
    </motion.article>
  );
}
When the product card slides into view, stop the card itself with an ease-out curve over 400ms, and let the "Sale" tag hanging from its bottom edge swing from its top center on a spring (stiffness 200, damping 8), so it overshoots by about 15 degrees and settles. Keep the tag still when prefers-reduced-motion is set.

Paste into Layerwise or any AI coding tool.

What is Follow-through?

Follow-through comes from the 12 principles of animation. Real things rarely stop all at once: when a runner stops, their hair and clothes keep going; when a card stops sliding, a tag hanging from it swings forward and settles. Animators pair it with overlapping action, where the parts of an object start and stop at slightly different times.

In interfaces it shows up as a badge that bounces after its icon lands, a chevron that settles a beat after a panel opens, or list items that arrive just after their container. Springs give you follow-through almost for free, because a loosely damped spring overshoots and settles on its own.

Keep the secondary motion small and quick, usually settling within about 400ms, so the interface still feels crisp. Apply it to decorative parts and keep text and controls steady, so nothing people need to read or tap wobbles.

Often confused with

Overshoot easing
Overshoot easing makes the main element itself travel past its target. With follow-through the main element stops cleanly and the parts attached to it swing past.

Related terms

All terms

Anticipation

A small move in the opposite direction just before the main action, like crouching before a jump, so the motion that follows reads clearly.

Spring animation

An animation driven by simulated spring physics in place of a fixed duration and curve, so motion can overshoot, settle, and react naturally.

Damping

A spring setting that works like friction, deciding whether motion bounces and wobbles on arrival or settles smoothly without overshooting.

Bounce

A spring setting from 0 to 1 for how much an element overshoots and wobbles, used with a duration in place of stiffness and damping.

Build it with Layerwise

Describe your app, watch it run in a live preview, and publish it with a database, storage, and sign-in built in.

DownloadDownloadRead the docs
LayerwiseLayerwise

Build full-stack web apps in minutes with AI.

Product

  • Features
  • Pricing
  • Download
  • Templates

Solutions

  • AI Website Builder
  • Vibe Coding
  • Personal Software

Resources

  • Documentation
  • Changelog
  • Blog
  • Vibe Coding Glossary
  • llms.txt
  • llms-full.txt

Company

  • About
  • Contact

Legal

  • Privacy
  • Analytics Privacy
  • Terms
  • Security
  • Abuse

© 2026 Layerwise. All rights reserved.

Entrances & exits

  • Fade in
  • Slide in
  • Scale in
  • Pop in
  • Blur in
  • Reveal animation
  • Enter and exit animations

Timing & sequencing

  • Duration
  • Delay
  • Keyframes
  • Tweening
  • Stagger
  • Orchestration
  • Fill mode
  • Stepped animation
  • Looping animation
  • Yoyo animation

Easing

  • Easing
  • Linear easing
  • Ease-in
  • Ease-out
  • Ease-in-out
  • Cubic-bezier
  • Asymmetric easing
  • Overshoot easing

Springs & physics

  • Spring animation
  • Stiffness
  • Damping
  • Mass
  • Bounce
  • Velocity
  • Momentum
  • Interruptible animation
  • Rubber-banding

Transforms

  • Translate
  • Scale
  • Rotate
  • Skew
  • 3D flip
  • Perspective
  • Transform origin
  • Origin-aware animation

State transitions

  • Crossfade
  • Morph
  • Shared element transition
  • Layout animation
  • Height auto animation
  • Direction-aware transition
  • Continuity transition
  • Page transition
  • View Transitions API

Scroll effects

  • Scroll reveal
  • Scroll-driven animation
  • Parallax scrolling
  • Scrollytelling
  • Scroll pinning
  • Horizontal scroll section
  • Scroll progress bar
  • Scroll snap
  • Smooth scrolling

Interaction feedback

  • Hover effect
  • Press feedback
  • Ripple effect
  • Shake animation
  • Hold to confirm
  • Drag gesture
  • Drag to reorder
  • Swipe to dismiss
  • Pull to refresh
  • Magnetic button
  • Custom cursor
  • 3D tilt card
  • Spotlight card

Text effects

  • Typewriter effect
  • Text scramble
  • Split text animation
  • Text morph
  • Rotating words
  • Gradient text
  • Shimmer text
  • Number ticker
  • Tabular numbers
  • Underline animation

Loops & ambient motion

  • Marquee
  • Pulse animation
  • Float animation
  • Orbit animation
  • Idle animation
  • Particle background
  • Border beam
  • Confetti
  • Animated gradient

Visual effects

  • Blur
  • Clip-path
  • Mask
  • Before/after slider
  • SVG line drawing
  • Lottie animation

Motion principles

  • Purposeful animation
  • Anticipation
  • Follow-through
  • Squash and stretch
  • Perceived performance
  • Frequency of use
  • Spatial consistency
  • Reduced motion

Animation performance

  • Frame rate (FPS)
  • Jank
  • GPU acceleration
  • will-change
  • Layout thrashing

Layout

  • Hero section
  • Above the fold
  • Sticky header
  • Sidebar
  • Bento grid
  • Card
  • Flexbox
  • CSS Grid
  • Padding vs margin
  • Responsive design
  • Container
  • Masonry layout
  • Split screen
  • Z-index
  • Overflow

Components

  • Button variants
  • Modal
  • Drawer
  • Popover
  • Tooltip
  • Dropdown menu
  • Context menu
  • Toast notification
  • Tabs
  • Segmented control
  • Accordion
  • Carousel
  • Command palette
  • Combobox
  • Toggle switch
  • Checkbox
  • Radio button
  • Date picker
  • Breadcrumb
  • Pagination
  • Infinite scroll
  • Badge
  • Avatar stack
  • Empty state
  • Skeleton screen
  • Spinner
  • Progress bar
  • Data table
  • Stepper
  • Floating label
  • Inline validation
  • Alert banner
  • Tag input

States & patterns

  • Interaction states
  • Focus ring
  • Loading state
  • Optimistic UI
  • Debounce
  • Lazy loading
  • Dark mode
  • Micro-interaction
  • Affordance
  • Undo
  • Drag and drop
  • Keyboard shortcut

Visual styles

  • Glassmorphism
  • Liquid glass
  • Neumorphism
  • Claymorphism
  • Neo-brutalism
  • Skeuomorphism
  • Flat design
  • Mesh gradient
  • Aurora background
  • Grain texture
  • Glow effect
  • Drop shadow
  • Border radius
  • Grid background
  • Typographic hierarchy
  • Accent color
  • Color contrast

Vibe coding & AI

  • Vibe coding
  • Prompt
  • Context window
  • Token
  • AI agent
  • Tool call
  • Hallucination
  • Diff
  • Live preview
  • Checkpoint
  • Git commit
  • Deploy
  • Frontend and backend
  • API
  • Database
  • Rules file
  • MCP
  • Plan mode
  • Visual edit
With follow-through
SALE
Without
SALE