009
A chat voice message you can scrub like a waveform, with a play button that morphs to pause, a speed chip that rolls, and a transcript that follows along word by word.
akaaudio message·voice message·waveform
Run this in any project set up for the shadcn CLI. It copies the Voice Note source into your components folder, so the code is yours to change.
npx shadcn@latest add https://devl.dev/r/voice-note.jsonImport it and render it. Every prop has a typed default, so it works straight away, and you pass your own data when you’re ready.
import { VoiceNote } from "@/components/voice-note";
export default function Page() {
return <VoiceNote />;
}A free React component in the Conversation collection, written in TypeScript with Tailwind CSS on coss ui. MIT licensed.
Read from the Voice Note source. Everything is optional unless it says required.
| Prop | Type | Default |
|---|---|---|
| sender | VoiceNoteSender | { name: "Noor Haddad", initials: "NH", avatarClassName: "bg-violet-100 text-violet-700 dark:bg-violet-950 dark:text-violet-300", } |
| sentAt | string | "9:41" |
| duration | number | — |
| src | string | — |
| peaks | number[] | — |
| transcript | VoiceNoteWord[] | defaultTranscript |
| speeds | number[] | [1, 1.5, 2] |
| defaultTranscriptOpen | boolean | true |
| unplayed | boolean | true |
| className | string | — |