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).
durationnumber320How long one cell takes to flip, ms. 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