Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@ apps/specimens/dist/
packages/ui/dist/
artifacts/mobile-quality/
artifacts/visual-review/
.superpowers/
artifacts/visual-baseline/
artifacts/visual-luxe/
65 changes: 50 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,32 @@ quietly drift back into copied HTML.

## Foundation

| Decision | Value |
| --------------- | ------------------------------------------- |
| Component base | Base UI for new interactive primitives |
| shadcn style | `base-nova` |
| Scaffold seed | Zinc |
| Brand semantics | Coven-owned CSS variables |
| Presence | Lavender `#9386d0` in dark mode |
| Density | `default` and explicit `compact` variants |
| Language | Strict TypeScript |
| Styling | Tailwind CSS 4 and CSS custom properties |
| Icons | Lucide |
| Distribution | `@opencoven/ui` package and shadcn registry |

Zinc supplies neutral scaffolding only. Components consume semantic tokens such
| Decision | Value |
| --------------- | --------------------------------------------- |
| Component base | Base UI for new interactive primitives |
| shadcn style | `base-nova` |
| Scaffold seed | Zinc |
| Brand semantics | OpenCoven web profile `1.0.0` |
| Action | Coven Violet `#8e3dff` dark / `#7a22ee` light |
| Presence | `#b991ff` dark / `#5e2a8a` light |
| Density | `default` and explicit `compact` variants |
| Language | Strict TypeScript |
| Styling | Tailwind CSS 4 and CSS custom properties |
| Icons | Lucide |
| Distribution | `@opencoven/ui` package and shadcn registry |

Zinc supplies scaffold structure only. Colors, display/reading/mono font roles,
and the 4/8/12/16/24/32/48/64/96px spacing scale map to the pinned canonical
brand profile. Fonts use its local/system fallback stacks; no font files or
third-party font requests are bundled. Components consume semantic tokens such
as `background`, `card`, `presence`, `success`, and the canonical
`tool-read`/`tool-write`/`tool-exec`/`tool-net` mappings.

## Workspace

```text
.
├── apps/specimens/ React/Vite component library and five-state lab
├── apps/specimens/ React/Vite component library and six-scene lab
├── packages/ui/
│ └── src/
│ ├── components/ui/ Base UI and native primitives
Expand All @@ -54,6 +58,24 @@ pnpm dev
The specimen app opens at `http://127.0.0.1:5173/`. Its assembled lab is at
`http://127.0.0.1:5173/lab`.

The library presents one specimen per row, with bounded live surfaces,
responsive block layouts, and a compact installation strip. It keeps live previews above syntax-highlighted install commands,
imports, and full component source, with copy controls and explicit
clipboard-failure feedback. The shared code renderer supports Bash,
TypeScript/TSX, and CSS. Each specimen has Preview/Source tabs in a fixed-size
preview area, so opening source does not change the card or page height.
Preview or Escape returns to the same component state; source scrolls inside
that area. Supported states live in a separate, always-visible footer rather
than a tab. The Lab
fits the viewport and offers six scenes through tabs, previous/next controls,
and touch swipes. Only the active scene scrolls when space is limited or text
is enlarged; the page and navigation stay fixed. Demo actions are local and
do not send agent requests.

The monochrome crown/lotus mark in `public/opencoven-mark.svg` is vendored
unchanged from `OpenCoven/brand`'s `web/assets/mark.svg`, pinned to commit
`798e2f5f2f1a69f5d156ccc0a9aafc4f7da55fc8`.

## Consume the package

```bash
Expand Down Expand Up @@ -131,6 +153,12 @@ The initial migration includes:
Search Field, Empty State, and Error State.
- Blocks: Composer, Run Rail, Transcript Turn, and Session Header.

Composer accepts an optional `tools` slot for supporting controls and supports
Ctrl/Cmd+Enter to send a non-empty draft while idle. Run Rail accepts optional
`plan` and `resources` arrays using the public Plan Row and Resource Row props;
omit them to retain the metrics/activity/limits composition.
Send Control only displays its options action when `onOpenOptions` is supplied.

No Radix implementation existed to retain. No React Aria dependency was added;
the current component set does not require its collection or
internationalization architecture.
Expand All @@ -149,6 +177,13 @@ export checks.

CI runs the same command on every pull request and push to `main`.

The Visual review workflow also runs `scripts/visual-review.mjs` and
`scripts/mobile-quality-review.mjs` against the production app. It publishes
individual specimens and Lab scenes, contact sheets, and browser measurements.
Coverage includes every specimen's source overlay, real keyboard/mouse and
clipboard flows, touch navigation, theme persistence, forced colors, RTL,
narrow screens, and 200% text.

## Legacy migration

`index.html` and `Components.dc.html` remain as parity references. They are not
Expand Down
1 change: 1 addition & 0 deletions apps/specimens/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="/opencoven-mark.svg" type="image/svg+xml" />
<meta
name="description"
content="Thoughtful, accessible components for agent interfaces. Explore the OpenCoven UI library, live examples, and shadcn-compatible source registry."
Expand Down
1 change: 1 addition & 0 deletions apps/specimens/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
},
"dependencies": {
"@opencoven/ui": "workspace:*",
"highlight.js": "^11.12.0",
"lucide-react": "^1.33.0",
"react": "^19.2.8",
"react-dom": "^19.2.8"
Expand Down
Loading
Loading