A cursor trail of bouncy letter tiles
| Name | Type | Default | Description |
|---|---|---|---|
text | string | "CREATE" | Letters stamped one per tile, in order, as the trail grows. Spaces are skipped and emoji work. |
colors | [string, string] | ["#5227FF", "#FF9FFC"] | Two colours the tiles flow between along the trail, blended in OKLab so the ramp stays vivid. |
textColor | string | "#FFFFFF" | Colour of the letters. They carry a faint embossed shadow so they stay legible on light tiles. |
cellSize | number | 40 | Size of each grid cell in pixels. Tiles snap to this grid. |
gap | number | 4 | Grout between neighbouring tiles, in pixels. |
radius | number | 9 | Corner radius of each tile in pixels. |
life | number | 1.1 | Seconds a tile stays before it shrinks away. |
maxTiles | number | 60 | Most tiles on screen at once. The oldest start leaving early beyond this. |
pop | number | 1 | Overshoot of the springy pop as each tile lands, from 0 to 2. |
exitScale | number | 0.5 | Size a tile shrinks to as it fades out. 1 keeps its size. |
jitter | number | 0.4 | Random tilt of each tile, like hand-laid mosaic, from 0 (perfectly square) to 1. |
gloss | number | 0.6 | Strength of the keycap highlight and shading, from 0 (flat) to 1. |
spread | number | 3 | How many rings of tiles a click sends out across the grid. |
burst | boolean | true | Clicking sends a diamond of tiles rippling out from the pointer and makes nearby tiles hop. |
fontWeight | number | 600 | Weight of the letters. |
fontFamily | string | "inherit" | Font of the letters. inherit uses the font of the surrounding page. |
autoplay | boolean | false | Lay tiles along a wandering path while the pointer is away. |
autoplaySpeed | number | 1 | Speed of that wandering. |
idleDelay | number | 1.5 | Seconds after the pointer leaves before the wandering path takes over again. |
interactive | boolean | true | Let the pointer and touch lay tiles. Reduced-motion users get plain tiles that appear and fade, with no pops, tilt, bursts or wandering. |
ref | { burst, clear } | — | burst(x, y) sends a ripple of tiles from a point, in pixels from the top-left corner. clear() removes every tile. |
children | ReactNode | — | Content the tiles are laid over. |
className | string | — | Classes for the root element. It fills its parent, with a 240px minimum height. |
style | CSSProperties | — | Inline styles for the root element. |
textstringLetters stamped one per tile, in order, as the trail grows. Spaces are skipped and emoji work.
"CREATE"colors[string, string]Two colours the tiles flow between along the trail, blended in OKLab so the ramp stays vivid.
["#5227FF", "#FF9FFC"]textColorstringColour of the letters. They carry a faint embossed shadow so they stay legible on light tiles.
"#FFFFFF"cellSizenumberSize of each grid cell in pixels. Tiles snap to this grid.
40gapnumberGrout between neighbouring tiles, in pixels.
4radiusnumberCorner radius of each tile in pixels.
9lifenumberSeconds a tile stays before it shrinks away.
1.1maxTilesnumberMost tiles on screen at once. The oldest start leaving early beyond this.
60popnumberOvershoot of the springy pop as each tile lands, from 0 to 2.
1exitScalenumberSize a tile shrinks to as it fades out. 1 keeps its size.
0.5jitternumberRandom tilt of each tile, like hand-laid mosaic, from 0 (perfectly square) to 1.
0.4glossnumberStrength of the keycap highlight and shading, from 0 (flat) to 1.
0.6spreadnumberHow many rings of tiles a click sends out across the grid.
3burstbooleanClicking sends a diamond of tiles rippling out from the pointer and makes nearby tiles hop.
truefontWeightnumberWeight of the letters.
600fontFamilystringFont of the letters. inherit uses the font of the surrounding page.
"inherit"autoplaybooleanLay tiles along a wandering path while the pointer is away.
falseautoplaySpeednumberSpeed of that wandering.
1idleDelaynumberSeconds after the pointer leaves before the wandering path takes over again.
1.5interactivebooleanLet the pointer and touch lay tiles. Reduced-motion users get plain tiles that appear and fade, with no pops, tilt, bursts or wandering.
trueref{ burst, clear }burst(x, y) sends a ripple of tiles from a point, in pixels from the top-left corner. clear() removes every tile.
—childrenReactNodeContent the tiles are laid over.
—classNamestringClasses for the root element. It fills its parent, with a 240px minimum height.
—styleCSSPropertiesInline styles for the root element.
—