Concepts

The three layers of the registry, and how they fit together.

Components

Single-purpose primitives — buttons, inputs, layout pieces. Live under the @circle-ui alias and form the foundation everything else is built on. Browse them in Components.

Blocks

Pre-assembled flows and domain patterns — checkout journeys, booking timelines, patient-results reports. Composed from components. Live under the @blocks alias. Browse them in Blocks.

I18n copy packs

Shared locale dictionaries that ship alongside components and blocks with user-facing copy. Live under the @i18n alias. A copy pack is always paired with the component or block it supports — find packs listed on the parent item's page.

Themes

Token sets that define every Circle surface. Components and blocks consume these via CSS variables, so swapping themes restyles the whole product without touching component code. See Themes.

Registry vs source

Items in this site are served as JSON from registry.circle.health. The JSON is generated output — the authoring surface is the source in packages/ui and registry/. The shadcn CLI fetches the JSON, materializes files into a consumer project, and resolves cross-registry dependencies automatically.