Components

Interaction and state contracts

Shared behavior stays consistent while domain content remains local.

Nuxt UI states

Ordinary actions use the component's native color, variant, loading, and disabled props.

Information
Use alerts for compact notices and actionable feedback.
Needs attention
The domain owns the message and the next action.
Action failed
Errors are not presented as empty or missing data.

Outcome states

Loading, empty, missing, and failed reads have distinct semantics.

Loading projects

Fetching the latest entries…

No projects yet

Once records are added, they will display here.

Project not found

The requested record is not available.

Disclosure and create workflow

Shared shells own trigger behavior and rhythm, not domain fields.

Disclosure content keeps its own layout and business meaning.

Create project

The card supplies workflow rhythm; the project owns its fields.

Action surfaces

Entity cards resolve to a link, a real button, or static content.

Static card

Readable, but not keyboard-actionable.

Disabled link card

No href and no accidental navigation.

CSS taxonomy

Atomic depth describes a shared visual contract. Vue components and pages remain named after their domain and route responsibility.

Atom

One semantic visual role

Eyebrow

Card heading

Type roles use the installed Tailwind scale and Nuxt UI colors.

Supporting metadata

Molecule

Reusable local composition

Inset panel

Shared border, radius, and spacing.

24 connected records
Nuxt UI owns this compact summary presentation.
Entity pill
Organism

Multi-component page pattern

Collection manager

Domain copy and data stay with the named component.

Cross-tree shared patterns

These contracts recur across public components, entity cards, workspace surfaces, and route pages without becoming generic business shells.

Shared CSS contract
One reusable visual contract supports many named domain components.
Domain-owned delta
Pages and components keep their business meaning and local presentation.
Public action

Claim or operate

Company, Place, Kitchen, Portfolio, and Supplier panels share this presentation contract.

Profile card

Shared anatomy, domain-owned data

Active
Responsibility Named Profile and Detail components own the actual content.