Cards & Grids

3d Marquee

A tilted 3D grid marquee wall, with multiple columns scrolling infinitely in alternating directions.

This is a WebberUI Pro component

The install command below needs a licence to run; without one it returns 401.

How to install Pro components →See the plans →

A tilted showcase wall built with CSS 3D transforms: the tiles are split into columns that scroll infinitely up and down in alternation, and gradients alone are enough to render it — no external images required.

Bring this into your project

Run this command in your project folder. The CLI adds the source and dependencies; then follow the usage example below.

npx webberui@latest add "https://webberui.com/r/3d-marquee.en.json?t=<install token>"

New project or installation trouble? Start here →

Playground

Tune the props live — the code snippet updates as you go, so you can dial in the look you want before copying it.

4
40
150
200
Active edited usageDefault props
<ThreeDMarquee/>

The complete example includes the preview layout and data. Install the component first, then paste this file into your project.

Installation

npx webberui@latest add "https://webberui.com/r/3d-marquee.en.json?t=<install token>"

Or, once registries are configured in components.json, install it as @webberui/3d-marquee.

Usage

Just drop it into a bounded container with an explicit height, and the component fills it while keeping its 3D tilt.

import { ThreeDMarquee } from "@/components/ui/3d-marquee";

<div className="relative h-[340px] w-full overflow-hidden rounded-xl">
  <ThreeDMarquee />
</div>

Customize the tile content (pass any CSS background string):

<ThreeDMarquee
  tiles={[
    "linear-gradient(135deg, #6366f1, #8b5cf6)",
    "linear-gradient(135deg, #06b6d4, #3b82f6)",
    "#f43f5e",
  ]}
  columns={5}
/>

Props

PropTypeDefaultDescription
tilesstring[]built-in gradient setCSS background for each tile (a gradient or a flat color)
columnsnumber4Number of columns, which sets the density of the wall
speednumber40Baseline seconds for one column to scroll one round; larger is slower
tileHeightnumber150Height of a single tile (px)
columnWidthnumber200Width of a single column (px)
classNamestring—Forwarded to the root container

Accessibility

  • When the user has "reduce motion" enabled at the system level, the scrolling freezes into a static tilted wall
  • The entire decorative layer carries aria-hidden, so it does not interfere with assistive technology
  • The component exposes its pace through the --wb-marquee-duration CSS variable, making it easy to override from outside