Cal.comdesign-system

Introduction

Reusable Cal-aware UI — shared composites, feature controls, and app-local systems.

Product UI is the reusable interface Cal ships in product. It may live in @coss/ui/shared, a feature package, or an app-local system. This section is a discovery index — documenting a control does not mean relocating it.

Sidebar badges mark ownership (letter only; hover for the full label):

Search order

  1. Shared — @coss/ui/shared
  2. Cross-domain feature UI — packages/features/components
  3. Domain-owned feature UI — packages/features/<domain>/components
  4. App-local systems — apps/web

Use Guides for page-level compositions and Coss UI for primitive APIs.

Shared (@coss/ui/shared)

Import: @coss/ui/shared/<kebab-name>. Source: packages/coss-ui/src/shared.

The folder name shared is provisional. Browse the sidebar for each Shared page — every live demo matches a real product call site (copy may be paraphrased). Each page also lists Example URLs — not exhaustive — a few app paths you can open locally to see the control in product.

example

Feature-owned

These stay with their feature owner instead of moving into @coss/ui/shared. Browse F-badged pages in the sidebar for focused docs; remaining rows are inventory until their tickets land.

Documented

Upcoming pages

App-local

These stay in apps/web. Browse A-badged pages in the sidebar for focused docs.

Documented

Chat UI family

Chat UI is a cohesive family of reusable chat components in packages/coss-ui/src/chat/. Import from @coss/ui/chat/<name> and @coss/ui/chat/hooks/<name>. It has working inline and drawer demos; message data, permissions, transport, and event policy belong to the consuming application.

Start with the minimal example, then follow the Cal implementation guide. The guide documents unresolved backend contracts and demo-only behavior. The family is being prepared for a Coss registry rebuild and has not been published. Its conversation-list anatomy and other explicitly marked explorations are not implemented components.

Placement rule

Move a composition into @coss/ui/shared only when its behavior is stable across domains and does not need feature or app dependencies. Otherwise, reuse it from the owning domain and document it here with a Feature or App badge.