Log Stream
Experimental streaming log viewer: mono grid rows (timestamp | level | source | message) with token-derived level accents, expandable per-row detail panels, follow-scroll live tailing with a "Jump to latest" affordance, and an always-dark terminal variant. Appended rows fade in via @starting-style. Live announcements follow the pinning state: the role="log" region is aria-live="polite" only while following the tail, and aria-live="off" while unfollowed, so a busy stream never floods assistive tech.
Usage
Experimental streaming log viewer: mono grid rows (timestamp | level | source | message) with token-derived level accents, expandable per-row detail panels, follow-scroll live tailing with a "Jump to latest" affordance, and an always-dark terminal variant. Appended rows fade in via @starting-style. Live announcements follow the pinning state: the role="log" region is aria-live="polite" only while following the tail, and aria-live="off" while unfollowed, so a busy stream never floods assistive tech.
Typed props
| Prop | Type and behavior |
|---|---|
entries | LogEntry[] · requiredArray of log entry objects to render. |
variant | 'default' | 'terminal' · default 'default'Visual variant style: 'default' uses theme surface background, 'terminal' uses fixed dark background. |
isFollowing | booleanControlled follow-pinning state to auto-scroll to the newest entry. |
onFollowChange | (following: boolean) => voidCallback fired when follow-pinning state changes. |
maxHeight | number | stringMaximum container height before vertical scrolling. |
hasTimestamps | boolean · default trueShow or hide the timestamp column. |
label | string · default 'Log stream'Accessible label for the log region. |
renderEntry | (entry: LogEntry) => ReactNodeCustom render function for replacing individual row layout. |
xstyle | StyleXStylesStyleX styles for layout customization. |