Logo

    React animated background components

    Eleven background layers, ranging from flat dot and line grids to a mouse-reactive SVG grid, shooting star trails and a full-screen video backdrop.

    Trusted by Founders and Entrepreneurs from all over the world

    John Shahawy
    Henrik Söderlund
    John Ferry
    Meru Gokhale
    Georg Weingartner
    Jonathan Barshop
    Ray Thai
    Tony Pujals
    Next.js
    React
    Tailwind CSS
    Framer Motion

    Every background in the library

    Each one is a layer you place behind your own markup. Most are pure CSS or inline SVG, and the heavier ones list their dependencies on the block page.

    See all 11 backgrounds

    Working with animated backgrounds

    Backgrounds are where performance problems hide, because the cost is invisible until you profile. The rule worth memorising is that transform and opacity can be handed to the compositor, while filter, box-shadow, background-position and anything that changes layout cannot. Animating a blur or a shadow on a full-viewport element forces the browser to repaint that entire area every frame, which is how you end up at 12fps on a laptop that renders your app fine otherwise. The animated grids here move dots and stroke offsets rather than repainting large filtered surfaces.

    Legibility beats novelty. A background exists so the text on top of it looks intentional, and once the pattern competes with your headline you have a decoration problem, not a design. Two things fix most of it: a radial or linear mask that fades the pattern out behind the text, and a real contrast check on the darkest and lightest points of the animation rather than on a screenshot of one frame. The masked dot backgrounds in this set exist specifically for that, and they are the ones I reach for first.

    Respect prefers-reduced-motion. Ambient movement in the periphery of a page is exactly the category of animation that triggers nausea for people with vestibular disorders, and unlike a button hover they cannot escape it by not interacting. Gate the animation behind the media query and ship the static pattern as the fallback, which for most of these is one class change. While you are in there, pause any requestAnimationFrame loop when the tab is hidden, because otherwise you drain battery for a background nobody is looking at.

    Watch the byte cost separately from the frame cost. The video background is the honest offender: it will not be your largest contentful paint element if you set a poster, but it competes for bandwidth with the assets that will be. Noise textures are the sneakier one, since a tiled PNG is often smaller than the equivalent SVG turbulence filter but the filter costs GPU time on every resize. If a background sits above the fold, measure it on a throttled connection before you commit to it.

    Frequently asked questions

    How do I make an animated gradient background in Tailwind CSS?

    Define the gradient with background-image and animate background-position or a rotation on an oversized pseudo element, then keep the element in its own stacking context so the repaint stays contained. In Tailwind v4 you can declare the keyframes in your CSS file with @theme and reference them as an animate-* utility.

    How do I add a dot or grid pattern background in Tailwind CSS?

    Use a repeating radial-gradient for dots or two linear-gradients for grid lines, set background-size to your cell size, and add a mask-image so the pattern fades out where your content sits. Several blocks here ship that as a single utility class you can copy.

    Do animated backgrounds slow down a website?

    They can, but the cause is usually which property you animate rather than the animation itself. Transform and opacity run on the compositor and stay cheap even at full viewport size, while animated filters, shadows and background positions force full repaints. Video and canvas backgrounds add download and decode cost on top of that.

    How do I put content on top of a background component?

    Render the background as an absolutely positioned sibling with a lower z-index and give it pointer-events-none so it never swallows clicks. Your content goes in a relative wrapper above it, which keeps the background out of your layout flow entirely.

    Keep exploring

    Loved by thousands of people

    Here's what some of our users have to say about Aceternity UI.

    Featured by popular YouTubers

    See what the best YouTubers are saying about Aceternity UI.

    Video thumbnail
    Jeff from
    Fireship
    talks about how Aceternity UI can help you build awesome landing pages with speed
    Video thumbnail
    Watch
    Web Prodigies
    build an entire SaaS application from scratch with Aceternity UI
    Video thumbnail
    Josh from
    Josh Tried Coding
    talks about how Aceternity UI components can help your website stand out.
    Video thumbnail
    Watch
    Hitesh Choudhary
    build an entire website from scratch with Aceternity UI
    Video thumbnail
    Adrian from
    Adrian Twarog
    talks about Aceternity UI and how to use the components efficiently
    Video thumbnail
    Adrian from
    JavaScript Mastery
    creates an entire portfolio website with amazing details and beautiful UI with Aceternity UI
    Video thumbnail
    Watch
    Raj Talks Tech
    walk through Aceternity UI components and teaches how to incorporate them into your website

    ceternity UI

    Access an ever-growing collection of premium, meticulously crafted templates and Component Blocks.

    A product by Aceternity
    Building in public at @mannupaaji

    © 2026 Aceternity Labs LLC. All Rights Reserved.