Split Flap
A Solari board. Every cell is a real two-half flap: the top leaf falls about the hinge with rotateX while the next character lands on the bottom leaf, shading as it turns away from the light, and each cell runs through the last few characters of the drum in order until it reaches its target, so a board settles in about a second.
$149 once · every Pro piece
Customize
Columns start in a stagger with a little randomness per flap, the last flap slaps down with a few degrees of overshoot, and the free edge of a falling leaf catches a glint of light.
Install
npx shadcn@latest add @obsyde/split-flapNeeds your licence key · Get Pro
Usage
Import it from where the CLI puts it, or copy the files below by hand.
import { SplitFlap } from '@/components/obsyde/ember/split-flap/SplitFlap';
export function Example() {
return (
<SplitFlap />
);
}
Files
What you get with Pro: plain React, TypeScript and CSS, with no dependencies.
ember/split-flap/SplitFlap.tsxcomponentember/split-flap/split-flap-demo.cssstylesember/split-flap/split-flap.cssstylesember/split-flap/SplitFlapDemo.tsxdemoember/type-kit/kit.tssharedember/shared/accent.tssharedember/shared/spring.tssharedember/shared/ember.cssshared
API
| Prop | Type | Default |
|---|---|---|
accentAccent | 'ember' | 'volt' | 'arc' | 'ember' |
textsText (| cycles) | string | 'SPLIT FLAP' |
holdHold (ms) | number | 3600 |
sizeSize (px) | number | 56 |
flipFlap time (ms) | number | 74 |
staggerStagger (ms) | number | 38 |
introFlip in on mount | boolean | true |