sheengemologic ui
All components

LogViewer

Renders structured logs as a searchable, copyable, virtualized line stream with non-color level labels.@gemologic/sheen-code · content

Playground

This example has no scalar controls. Its validated source remains interactive below.
Deployment logs
1 of 1 lines
Deployment started
<LogViewer entries={entries} label="Deployment logs" />

Variant matrix

Deployment logs
Deployment logs
1 of 1 lines
Deployment started

Anatomy

Package
@gemologic/sheen-code
Source
packages/code/src/LogViewer.tsx
Tokens
  • --sheen-color-bg-raised
  • --sheen-color-warning-fg
  • --sheen-color-danger-fg
  • --sheen-font-mono

Accessibility

Role: named region containing a focusable virtual list and listitemsKeyboard: Tab, Shift+Tab, Enter, Space, PageUp, PageDown, Home, End

Do

  • Use stable IDs and app-formatted timestamps.
  • Replace or append immutable accepted snapshots without remounting the viewer.

Do not

  • Do not put secrets or raw command lines into browser-visible logs.
  • Do not use color as the only severity signal.

Generated props

NameTypeDefaultDescription
entries *readonly LogEntry[]Accepted structured entries with stable IDs, timestamps, levels, and messages.
label *stringRequired accessible viewer and line-list name.
searchablebooleantrueShows debounced search over timestamps, levels, messages, and details.
copyablebooleantrueCopies the complete plain-text log snapshot.
initialHeightnumber360Deterministic SSR and initial viewport height in pixels from 120 to 1200.
lineHeightnumber22Fixed virtual row height in pixels from 16 to 48.
onCopyError(error: unknown) => voidReceives Clipboard API failures without exposing raw errors in the UI.
Native Solid/HTML attributes remain available and are omitted from this authored-prop view.