KQ-1379 · STAMP/CYCLE
Stamp Cycle
A rotating word that is stamped into its slot: the old impression lifts off on the exit ease while the slot's width springs to the new word on springs.glide, the stamp's shadow falls, and at contact the ink prints across the word from the edge the stamp rocked onto first while the slot squashes and recovers on springs.recoil and a ring of displaced ink spreads and settles to a residue. The ink carries the rubber's grain, so a firm press prints solid and a light one patchy and dry. The slot is a button: pressing lowers the stamp and letting go stamps the next word (holding prints firmer), and Enter or Space stamps through the native click.
Fieldline · order 4471
Every order is Press to stamp the next word
stamp 1 of 4 · packed · press to stamp
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/stamp-cycle
Props
- words
- string[]
- default —
- The words stamped into the slot, one after another.
- index / defaultIndex
- number
- default 0
- Which word is stamped; controlled or uncontrolled.
- onIndexChange
- (index: number) => void
- default —
- Fires from the timer or the press that stamped a new word.
- interval
- number
- default 2400
- Rest between automatic stamps, ms.
- ink
- "cobalt" | "vermilion" | "moss" | "carbon" | string
- default "cobalt"
- A named token ink, or any CSS colour.
- press
- number
- default 0.6
- How firmly the stamp lands, 0 to 1: squash depth, ink coverage, ring size and fall speed.
- texture
- number
- default 0.5
- How much of the rubber's grain shows in the ink, 0 (flat) to 1.
- tilt
- number
- default 2.5
- The largest seeded tilt a word lands at, degrees.
- frame
- "none" | "box" | "pill"
- default "box"
- A border printed around the word with the same ink and grain.
- ring
- boolean
- default true
- The spatter of displaced ink at contact and the residue it leaves.
- trigger
- "mount" | "inView" | "hover" | "manual"
- default "inView"
- When the automatic cycle runs.
- once
- boolean
- default false
- One pass through the words, resting on the last.
- delay
- number
- default 500
- Wait after the trigger before the first stamp, ms.
- paused
- boolean
- default false
- Hold the automatic cycle.
- pauseOnHover
- boolean
- default true
- Hover and keyboard focus hold the cycle so the word can be read.
- interactive
- boolean
- default true
- The slot is a button: pressing it stamps the next word.
- sound
- boolean
- default false
- A thock when the visitor stamps, pitched by how firmly.
- as
- "span" | "div" | "p" | "h1" | "h2" | "h3" | "h4" | "strong" | "em"
- default "span"
- The root element.
- onComplete
- () => void
- default —
- A once pass has stamped its last word.
- className
- string
- default —
- Classes for the root; case and tracking carry into the slot.
| Prop | Type | Default | Description |
|---|---|---|---|
| words | string[] | — | The words stamped into the slot, one after another. |
| index / defaultIndex | number | 0 | Which word is stamped; controlled or uncontrolled. |
| onIndexChange | (index: number) => void | — | Fires from the timer or the press that stamped a new word. |
| interval | number | 2400 | Rest between automatic stamps, ms. |
| ink | "cobalt" | "vermilion" | "moss" | "carbon" | string | "cobalt" | A named token ink, or any CSS colour. |
| press | number | 0.6 | How firmly the stamp lands, 0 to 1: squash depth, ink coverage, ring size and fall speed. |
| texture | number | 0.5 | How much of the rubber's grain shows in the ink, 0 (flat) to 1. |
| tilt | number | 2.5 | The largest seeded tilt a word lands at, degrees. |
| frame | "none" | "box" | "pill" | "box" | A border printed around the word with the same ink and grain. |
| ring | boolean | true | The spatter of displaced ink at contact and the residue it leaves. |
| trigger | "mount" | "inView" | "hover" | "manual" | "inView" | When the automatic cycle runs. |
| once | boolean | false | One pass through the words, resting on the last. |
| delay | number | 500 | Wait after the trigger before the first stamp, ms. |
| paused | boolean | false | Hold the automatic cycle. |
| pauseOnHover | boolean | true | Hover and keyboard focus hold the cycle so the word can be read. |
| interactive | boolean | true | The slot is a button: pressing it stamps the next word. |
| sound | boolean | false | A thock when the visitor stamps, pitched by how firmly. |
| as | "span" | "div" | "p" | "h1" | "h2" | "h3" | "h4" | "strong" | "em" | "span" | The root element. |
| onComplete | () => void | — | A once pass has stamped its last word. |
| className | string | — | Classes for the root; case and tracking carry into the slot. |