KQ-867 · REPLY/COUNT

Reply Count

A thread badge that carries the count and the last replier's face. An arrival bumps the badge from 1.06 back to rest on recoil — two keyframes, driven imperatively, because a spring drops anything in between — while the disc and the number swap on snap, each pair stacked in one grid cell so the outgoing face cross-fades under the incoming one instead of being shoved sideways. Replies past the ones you have read open a chip out of the badge's edge on snap; Enter or Space opens the thread and collapses it.

KQ-867 · REPLY/COUNT
  1. Ines Moreau
    Who is covering the Basinworks run on Friday? Dock three needs a name by noon.
    14:38

2 replies · last Rui 14:46 · all read

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/reply-count

Props

replies
ReplyEntry[]
default —
The thread's replies, oldest first; append to it as they land.
seenCount / defaultSeenCount
number
default 0
Controlled or initial count of replies you have already read; the gap becomes the new chip.
onSeenCountChange
(count: number) => void
default —
Fires when opening the thread marks everything read.
onOpen
(count: number) => void
default —
Fires from a press or Enter with the reply count.
text
string
default —
The parent message's body.
author
string
default —
Printed above the bubble.
time
string
default —
The parent's sent time, already formatted.
emptyLabel
string
default "Reply"
What the badge reads with no replies yet, beside a drawn reply arrow.
label
string
default "Thread"
Names the thread list for assistive technology.