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.