Skip to content

feat(ui): ship canonical single-column library and interactive lab - #7

Merged
BunsDev merged 12 commits into
mainfrom
feat/specimens-luxe-aesthetic
Sep 10, 2026
Merged

feat(ui): ship canonical single-column library and interactive lab#7
BunsDev merged 12 commits into
mainfrom
feat/specimens-luxe-aesthetic

Conversation

@BunsDev

@BunsDev BunsDev commented Sep 5, 2026

Copy link
Copy Markdown
Member

Summary

  • Apply the official OpenCoven mark and canonical light/dark palette, typography, spacing and interaction tokens.
  • Present one preview-first specimen per row with bounded live surfaces, richer Composer/Run Rail layouts, and compact CLI/React API sections.
  • Keep Preview/Source tabs in the same footprint without resetting demo state; highlight and copy exact source, with supported states always visible outside the tabs.
  • Ship a viewport-fit six-scene Lab with working commands, attachments, send/stop, keyboard navigation, touch swipes and persistent scene state.
  • Regenerate the registry and preserve the shared package contracts.

Audit-driven polish

  • Fix narrow-screen and 200% text clipping, including wrapping mode controls and action labels.
  • Prevent mobile sticky chrome from obscuring skip navigation.
  • Keep keyboard focus during asynchronous copying so Escape reliably restores Preview.
  • Preserve selected-control indicators in forced-colors mode.
  • Resolve the merge markers in the previously committed Lab source.

Verification

  • pnpm check: passing, including all 24 tests, 51 architecture contracts, registry freshness, clean-consumer installation of both blocks, builds and public exports.
  • Visual/E2E: 19 passing scenarios, all 16 specimens audited in three display configurations, all six Lab scenes, and real search, clipboard, keyboard, command, send/stop and navigation flows.
  • Mobile quality: nine passing cases covering 320–430px, light/dark, compact/cozy, RTL and 200% text.
  • CI publishes individual specimen/scene captures, contact sheets and measured layout reports as Visual review artifacts.

This supersedes the earlier decorative ritual-tech proposal with the requested canonical brand treatment. Existing branch history and contributor attribution are preserved.

Carry the OpenCoven Chat visual language onto the specimen browser so the
two products read as cut from one material: near-black surfaces separated
by depth rather than borders alone, violet depth under the shell, cyan
reserved for circuitry and focus, and a hexagonal field held at texture
strength.

The shared token set already made this mostly a matter of arrangement --
the dark `--presence` is byte-identical to chat's `--accent-violet`. Cyan
is the one hue that had to be introduced, and it resolves per scheme:
against near-black it earns its keep, on the light paper surface it goes
weak, so light falls back to the semantic presence and ring tokens that
already own accent duty there.

Nothing here reaches into packages/ui tokens or a public component's own
surface; the design doc holds package and registry output fixed.

Also adopts the in-flight CLI / React API tab split left behind in the
working tree by a session that has since exited, and updates the contract
that still described the previous single Install tab.

Replace the blanket `gradient(` ban in verify-contracts with the intent it
was standing in for. That ban was a blunt proxy added while recovering a
broken shell, and the approved layout-parity design and plan both now
specify gradient treatments in this exact file, so it had begun failing the
repository's own accepted direction. Three precise contracts replace it:
decorative layers stay out of public component surfaces, they yield to
prefers-contrast and forced-colors, and the chrome never animates
perpetually. Each was mutation-tested to confirm it fails when violated.

Verification: pnpm check exit 0 (49 architecture contracts, 11 package
tests, build, deploy and package export checks); 9/9 visual-review
scenarios captured passing across dark, light, compact, mobile, 200% text
and both routes; a 3x detail probe confirms the circuitry trace paints real
cyan and that zero animations run on load.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings September 5, 2026 07:04
@vercel

vercel Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
opencoven-ui Ready Ready Preview Sep 10, 2026 1:22am UTC
ui Error Error Sep 10, 2026 1:22am UTC

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new scripts/serve-dist.mjs path join logic currently prevents serving static assets, and scripts/zoom-probe.mjs can fail on first run because it doesn’t create its output directory.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR updates the specimens app shell to match the OpenCoven Chat visual language, while also adopting an in-flight “CLI / React API” split in the specimen card code panels and tightening CSS contract verification around decorative/animation constraints.

Changes:

  • Adds “ritual-tech finish” styling to the specimens shell (depth layers, card gradients/trace, chrome/glass topbar/rail, contrast + forced-colors fallbacks).
  • Reworks specimen card code panels into separate CLI and React API tabs, and updates the visual-review scenarios accordingly.
  • Replaces the previous “no gradients” CSS contract with more targeted contracts, and adds new scripts to support capture workflows.
File summaries
File Description
scripts/zoom-probe.mjs New Playwright probe for 3x card capture + computed-style checks and “no running animations” runtime check.
scripts/visual-review.mjs Updates scenarios/assertions to match the new “CLI / React API” code tab split and mobile tab scroll validation.
scripts/verify-contracts.mjs Replaces the blanket gradient ban with targeted CSS contracts; updates tab trigger expectations.
scripts/serve-dist.mjs New minimal SPA static server for serving apps/specimens/dist during capture.
apps/specimens/src/specimens.css Adds the ritual-tech finish styling and accessibility fallbacks; removes old install-grid styling.
apps/specimens/src/app.tsx Splits the prior combined install/usage content into distinct “CLI” and “React API” tabs per specimen card.
.gitignore Ignores agent scratch dir and new visual capture output directories.
Review details
  • Files reviewed: 6/7 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread scripts/serve-dist.mjs Outdated
Comment thread scripts/zoom-probe.mjs
Comment thread scripts/verify-contracts.mjs Outdated
@BunsDev

BunsDev commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

@copilot Fix the code for all comments in this review thread.

When a review comment includes a suggested change, apply the suggestion exactly.

Do not make changes beyond what is described in the linked review thread.

Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>
Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>

Copilot AI commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

@copilot Fix the code for all comments in this review thread.

When a review comment includes a suggested change, apply the sugge...

Addressed in 3e84ca3 (with the earlier thread fixes landed in 8885dd3).

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI and others added 2 commits September 9, 2026 19:31
…esthetic

# Conflicts:
#	apps/specimens/src/app.tsx
#	apps/specimens/src/specimens.css
#	scripts/verify-contracts.mjs

Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>
Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>
Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>

Copilot AI commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

🟡 Changes recommended

The new scripts/serve-dist.mjs path join logic currently prevents serving static assets, and scripts/zoom-probe.mjs can fail on first run because it doesn’t create ...

Addressed in 509b788: merged main, resolved the specimens-shell conflicts in favor of the PR implementation, and updated the remaining contract assertion label. The linked static-asset and output-directory fixes are present in the branch as well.

Refresh the specimens app with a six-scene lab, fixed-viewport navigation, live previews, and syntax-highlighted copyable source snippets, plus the OpenCoven mark favicon and updated docs. Enrich the Composer and Run Rail blocks with tool slots, keyboard send, plan/resources support, stronger visual guidance, and matching registry metadata, and add coverage for the new specimen and block behaviors.
Align the specimen library with canonical OpenCoven branding, present one preview-first card per row, and preserve layout and demo state across Preview/Source tabs. Complete the interactive six-scene Lab and synchronize package and registry output.

Polish enlarged-text layouts, mobile skip navigation, forced-colors selection and asynchronous copy focus. Expand browser coverage to every specimen, all Lab scenes, native interaction journeys, source fidelity and accessibility modes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@BunsDev BunsDev changed the title feat(specimens): give the shell the chat ritual-tech finish feat(ui): ship canonical single-column library and interactive lab Sep 10, 2026
Keep the fixed skip link inside the viewport and reserve enough inline space for mobile rail labels when fallback fonts grow at 200% text.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Record which layout regions own document overflow and report rail label sizing without weakening the mobile assertions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Trace Linux overflow to unbroken hero text and oversized rail labels. Allow headings to wrap, omit redundant counts in compact navigation, and exercise wide display fonts at 200% text. Keep strict hit-testing while waiting for browser controls to settle before native clicks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@BunsDev

BunsDev commented Sep 10, 2026

Copy link
Copy Markdown
Member Author

Final audit follow-up: Linux CI isolated the remaining enlarged-text overflow to the hero heading and rail label/count combination. The latest commit corrects both and adds a ninth mobile case using wide display fonts. Native click audits now wait for controls to settle while retaining strict hit-testing.

Deployment note: the secondary Vercel project ui is configured with root packages/ui, so it runs the library build instead of the specimen app build. The primary opencoven-ui project builds successfully from the repository root. This pre-existing secondary project configuration is outside the UI polish scope; no deployment settings or branch protections were changed.

@BunsDev
BunsDev merged commit 80ed2fb into main Sep 10, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants