KQ-691 · SELFIE/RING
Selfie Ring
A liveness check drawn as a ring around a procedural face. Each prompt slides up into the caption on snap while the ring fills one more segment on glide, and the face answers: features glide left or right, the eyes blink on a tween. Passing the last prompt closes the ring: the arc completes, the ring tightens onto the face on recoil and a check disc stamps at the top; failure drains the ring on glide with no bounce. The ring is a progressbar whose valuetext names the prompt, one real button starts or retries the check, and the host advances step and status so the ring owns no clock.
KQ-691 · SELFIE/RING
Basinworks Exchange · confirm withdrawal0/4
Ready when you are
ready · 0 of 4
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/selfie-ring
Props
- prompts
- string[]
- default ["Centre your face", "Turn left", "Turn right", "Blink"]
- The prompts in order, one ring segment each; prompts that mention left, right or blink move the face.
- status / defaultStatus
- SelfieRingStatus
- default "idle"
- idle, checking, passed or failed.
- onStatusChange
- (status: SelfieRingStatus) => void
- default —
- Fires from the Start and Try again presses with checking.
- step
- number
- default 0
- Index of the prompt being held while checking; earlier prompts count as done.
- onStart
- () => void
- default —
- Fires from the Start or Try again press; the host runs the camera check.
- label
- React.ReactNode
- default —
- Visible heading; omit it and pass aria-label.
| Prop | Type | Default | Description |
|---|---|---|---|
| prompts | string[] | ["Centre your face", "Turn left", "Turn right", "Blink"] | The prompts in order, one ring segment each; prompts that mention left, right or blink move the face. |
| status / defaultStatus | SelfieRingStatus | "idle" | idle, checking, passed or failed. |
| onStatusChange | (status: SelfieRingStatus) => void | — | Fires from the Start and Try again presses with checking. |
| step | number | 0 | Index of the prompt being held while checking; earlier prompts count as done. |
| onStart | () => void | — | Fires from the Start or Try again press; the host runs the camera check. |
| label | React.ReactNode | — | Visible heading; omit it and pass aria-label. |