Text Animations

Split Flap Board

Vestaboard-style mechanical split-flap character switching, flipping cell by cell into place, with rotation across multiple messages.

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 →

The mechanical split-flap effect of an airport or railway station board. Each cell flips forward one step at a time along the character set from its current glyph, and the differing flip counts make the cells settle at staggered moments, producing the classic mechanical reveal ripple.

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/split-flap-board.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.

46
70
45
Active edited usageDefault props
<SplitFlapBoard/>

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/split-flap-board.en.json?t=<install token>"

Or, once registries are configured in components.json, install it as @webberui/split-flap-board.

Usage

import { SplitFlapBoard } from "@/components/ui/split-flap-board";

<SplitFlapBoard text="ON TIME" />

Multiple messages rotate automatically according to interval:

<SplitFlapBoard
  messages={["DEPARTURES", "NOW BOARDING", "GATE A12"]}
  interval={2600}
  cols={12}
/>

Use \n to break lines and lay out a multi-row board, and background and color to change the palette.

Props

PropTypeDefaultDescription
textstring""The text to display, with \n supported for line breaks; ignored when messages is provided
messagesstring[]—Multiple messages rotated through in order
intervalnumber2800Rotation interval (milliseconds); only takes effect when messages has more than one entry
colsnumberlongest lineFixed column count; when omitted, the longest line across all messages is used
align"left" | "center""center"How each line is aligned within the columns
flipDurationnumber70Duration of a single flip (milliseconds); smaller flips faster
staggernumber45Additional start delay per column to the right (milliseconds)
sizenumber46Height of a single cell (pixels); width and font size are derived from it
charsetstringletters, digits, symbolsThe character set that can be flipped to; the first cell must be a space
backgroundstring"#161616"Flap background color
colorstring"#f5f5f4"Character color

Accessibility

  • When the user has "reduce motion" enabled at the system level, the flip animation is turned off and the final characters are shown directly
  • The board carries role="img" and an aria-label (the complete message text), and individual flap cells are hidden from assistive technology (aria-hidden)
  • The ripple is driven by pseudo-random start delays derived from the cell coordinates, avoiding SSR and client hydration mismatches