KQ-941 · LOG/TAIL

Log Tail

A log that follows its own floor. While it tails, each arriving line is pinned into view in a layout effect and travels 8px up on glide with its level rail drawing down beside it; scroll up and the tail breaks, holding the box where you left it while an opaque strip rises off the floor on snap counting what has arrived. The strip, End, and the Follow control all run scrollTop back down, and scrolling to the floor by hand latches the tail on again.

KQ-941 · LOG/TAIL
coldbrook / gate-relay

Waiting for lines. Start the feed.

Tailing · 0 lines · 0 held

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/log-tail

Props

lines
LogLine[]
default
The buffer, oldest first; each line carries id, level, service, time and text. Cap it in the host — nothing here virtualises.
tailing / defaultTailing
boolean
default true
Controlled or initial follow state.
onTailingChange
(tailing: boolean) => void
default
Fires from the break, the strip, the Follow control, and End.
onPendingChange
(pending: number) => void
default
Fires when the count of lines that arrived while held changes.
onAnnounce
(sentence: string) => void
default
The sentence the polite region just spoke.
maxHeight
number
default 216
Scroll ceiling for the box, in px.
label
string
default "Log"
Names the log region and heads the card.
emptyLabel
string
default "Waiting for lines."
Printed while the buffer is empty.