Concrete is a design system for labs that ship
An editorial voice for serious tools: crisp type, soft controls, dense product surfaces, and one primitive kit underneath every page.
npm install @rubriclab/concreteOne language, many pressures.
Foundations are strict enough for product density and expressive enough for published research. Pressure is creative direction, not a universal primitive prop.
Rubric is a lab
that ships
UI body. The default for most running copy.
Body / Jakarta 400Small parts, clear roles.
Each card shows a real exported primitive centered in a sunken stage. The full card opens the typed primitive page with states, props, and render routes.
Border only. The canonical surface.
One step of elevation over canvas.
Recessed. Code, quotes, wells.
ConcretePressureconst signal = concreteSignalSchema.parse("terminal")No matches
Try a broader keyword, or clear the filters applied to this view.
Components declare density.
Components assemble primitive contracts into agentic interaction, AI-native transcript, and form workflows. They can own deterministic local behavior, but product policy stays in the application.
Atomic toolbar with quiet icon controls, optional chip appearance, tooltip shortcuts, roving arrow-key focus, selected state, and pressed feedback.
Searchable action and navigation listbox with grouped items, keyboard navigation, shortcuts, loading, and empty states.
Compact single-line command input with removable scope tokens, keyboard hint, action slots, and optional menu slot.
Canonical form container with title hierarchy, metadata, action slots, body spacing, status border, and sticky-feeling footer.
Resolve the listed fields before saving the workflow.
- OwnerAssign a responsible operator.
- Budget limitEnter a value between 1 and 100.
- Reference packetTwo files are attached.
Top-level form feedback with status icon, field-linked items, compact copy, and optional action slot.
Dense settings form composed from shell, sections, rows, and slotted primitive controls.
Inline or fixed modal form surface using FormShell inside a dimmed stage.
Inline or fixed side-sheet form surface for inspect-and-edit workflows.
Text input composition with secure visibility toggling and field validation chrome.
Tag-backed option picker with local filtering, disabled options, max selection, and removable values.
Single-date picker with calendar panel, month navigation, min/max bounds, and controlled value support.
Range picker for start/end ISO dates with calendar selection and in-range treatment.
Compact HH:mm picker with interval-generated options and controlled value support.
Inline numeric input with decrement/increment controls, min/max, and step support.
Two-thumb range adjustment with an aligned filled rail and controlled tuple value.
Local upload queue composition with dropzone, file validation, progress rows, and remove actions.
Image-specific upload composition with previews, accept filtering, and avatar/grid variants.
Accepted agent runs across production workspaces.
KPI tile composed from Stat, Delta, Sparkline, Indicator, and Concrete surface primitives.
Progress summary card that composes Concrete linear and ring progress primitives.
Agent runs
Agent run volume with accepted output overlay.
Multi-series trend chart with Concrete grid, endpoint, target, and legend language.
Execution trend
Soft filled trend chart for volume, confidence, and generated UI previews.
Capability score
Categorical comparison chart with optional comparison bars and horizontal rails.
Run composition
Composition chart for small category stacks across time or groups.
Workload split
Part-to-whole ring summary with controlled center metric and thickness.
Run intensity
Two-axis intensity grid for compact activity and density summaries.
Execution trend
Accepted runs and total executions.
Backward-compatible discriminated union wrapper for every focused chart component.
Evaluation runs
Typed cells stay compact while still supporting signals and microvisuals.
| Router contract | Shipping | Arihan | +18.6%7d | 184 | |||
| Memory recall | Review | Jordan | +0.8%7d | 92 | |||
| Tool router | Featured | Tom | +9.2%7d | 138 | |||
| Policy eval | Blocked | Dexter | -4.4%7d | 211 |
Dense typed table with sortable columns, selection, search, filters, pagination, and rich cells.
Agent execution flow
A compact map of context, planning, tool execution, and final synthesis.
Routed node and edge diagram for agent plans, systems, memory flows, and tool pipelines.
Request flow
Editorial explainer graph for request routing, context, model synthesis, and streamed output.
Interactive explainer canvas with DOM nodes, supporting items, SVG edges, pan, zoom, fit, and minimap.
Role-aware message wrapper with avatars, plain or bubble surfaces, metadata, and subtle action toolbars.
Subdued expandable reasoning line for visible agent progress, scoped steps, and streaming state.
Collapsible tool execution artifact with status, duration, optional input code, and output.
Agentic message input with token chips, mentions, commands, attachments, formatting, keyboard submission, and deterministic value output.
Contracts stay small.
Concrete ships one public React package, one registry, one schema boundary, and one render contract for DOM and screenshots.
@rubriclab/concrete@rubriclab/concrete/components@rubriclab/concrete/primitives@rubriclab/concrete/styles.css@rubriclab/concrete/registry@rubriclab/concrete/icons@rubriclab/concrete/schemasUse primitives for controls and surfaces. Use registry metadata for docs and screenshots. Choose pressure before composing, never as a universal primitive prop.