ValyroUI Русская версия

Split-Flap Board

Mechanical departure board: only the changed characters flip. Free, MIT · Animated components › Stickers, tickets and boards

A mechanical split-flap board: when the value changes, only the cells whose character changed flip, the top half folding down over the next character, one cell after another. A value that arrives mid-flip takes over at once, so fast updates end on the latest value without a queue. Assistive technology reads the whole value as one string; the halves are decorative.

Installation

npx valyro-cli@latest add split-flap-board
npx shadcn@latest add https://valyro.xyz/r/split-flap-board.json
npm install valyro-ui

import 'valyro-ui/styles.css';
import { SplitFlapBoard } from 'valyro-ui';

Props

PropTypeDefault
value *stringThe text to show. The app computes it (a countdown, a status); the board only displays it.
columnsnumberFixed number of cells per row, for a stable width. Default: as many as the value has characters.
align'start' | 'center' | 'end''start'Position of the value inside the fixed grid. Default start.
overflow'wrap' | 'truncate''wrap'With columns: longer text wraps by words onto more rows (wrap, default) or is cut (truncate).
durationnumber320Tempo of one flip, ms: the fall takes about 40% of it, the landing settles in the rest. Default 320.
staggernumber30Delay between consecutive changed cells, ms. Default 30.
announce'off' | 'polite''off'polite reads every new value aloud; off (default) leaves it to be read on demand.
labelstringName of the reading, shown above the board, such as "Doors open in".
variant'dense' | 'sign' | 'minimal''dense'Look: dense (default) dark tiles, sign large tiles of a station sign, minimal flat tiles without frames.
onSettled(value: string) => voidCalled once the latest value is fully on the board (after its flips, or at once without motion).
labelsPartial<SplitFlapBoardLabels>Overrides for the built-in English text; keys left out keep their defaults.

Related components

Previous: Tear-off Ticket · Next: Swipe Action Card · All Animated components