Skip to main content
@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.