Components

ComponentsOverview

A structured component library designed for AI-assisted development.

Read this when choosing where to find or add components.
For developers and AI agents working with the codebase.

How It Works

Components are organised into five folders by purpose. This makes it clear where to find components and where to add new ones.

Where to Put Components

Follow this decision tree when adding new components:

1

Need a UI primitive?

Check components/ui/ first. If missing, install from shadcn: npx shadcn@latest add [component]

2

Need an external package?

Wrap it in components/vendor/ and style to match the design system.

3

Building a reusable project component?

Create in components/shared/. Compose from UI primitives.

4

One-off component for a single page?

Inline it in the page file. Keep it simple (<50 lines).

Component Headers

Every component has a metadata header for upgrade tracking:

/**
 * CATALYST - Button Component
 *
 * @source shadcn/ui + @base-ui/react
 * @customised No — stock component
 */
@customised No

Safe to overwrite with new version from shadcn.

@customised Yes

Review changes before upgrading. Preserve customisations.

AI Reference

For a machine-readable component list, see components/COMPONENTS.md. This file is optimised for AI agents to quickly understand available components.

Next Steps

Explore specific component categories: