@claritylabs/cl-pipelines/ui ships headless UI primitives for displaying pipeline job status in your React application. “Headless” means no bundled styles, no design tokens, and no CSS — you bring your own Tailwind classes, CSS modules, or styled-components. The components provide the structure, accessibility attributes, and data attributes you need to target with any styling approach.
All components require React 18 or later.
Installation
The UI package is part of @claritylabs/cl-pipelines. Import from the sub-path:
Available components
Data attributes for CSS targeting
Every component exposes data-* attributes so you can target them from CSS without relying on internal class names:
Visibility behavior
StatusBanner.Root renders null when status is "idle", "complete", or undefined. You don’t need to write conditional rendering logic — just always render the component and let it manage its own visibility:
Basic usage example
The following shows a complete pipeline status widget using all three components together:
useJob is your own data-fetching hook. With Convex, this would be a useQuery(api.applications.getJob, { jobId }) call. The UI components accept plain props — they don’t know about your data layer.
Adding a progress log
ProgressLog renders outside StatusBanner and accepts LogEntry[] directly:
See the Components reference for the full prop API for each component, including custom render functions for buttons and log entries.