Skip to content

feat(genesis): extract GnDocsCallout admonition primitive#593

Draft
johnleider wants to merge 2 commits into
devfrom
worktree-genesis-callout
Draft

feat(genesis): extract GnDocsCallout admonition primitive#593
johnleider wants to merge 2 commits into
devfrom
worktree-genesis-callout

Conversation

@johnleider

@johnleider johnleider commented Jul 15, 2026

Copy link
Copy Markdown
Member

Description

The first item on the genesis docs-primitives Phase 2 roadmap: extract the callout admonition into a reusable @paper/genesis component.

GnDocsCallout is a headless admonition shell for the five standard types — tip / note / warning / caution / important. It consumes v0 severity tokens (--v0-success / --v0-info / --v0-warning / --v0-error / --v0-accent) via the cascade with standalone hex fallbacks, matching the genesis theme-inheritance convention (no genesis token namespace). Icon and title are slot-overridable, each with an inline-SVG / label default so zero-config works.

Consumer wiring

apps/docs DocsCallout now delegates the five standard types to GnDocsCallout, injecting AppIcon into the icon slot to preserve the exact docs appearance. The docs-only interactive types (askai / discord / tour) and the random-tip pool stay local — per the genesis non-goals, "Ask / open-in actions are a docs-site concern."

Scope boundary

The extractable core is the presentational shell; the interactive behaviors (routing, ask AI, tip pool) remain in the docs app. Colors are provably identical to the previous UnoCSS classes: uno maps success → var(--v0-success) and the old .bg-success-10 is color-mix(in srgb, var(--v0-success), transparent 90%) — the same math GnDocsCallout uses.

Verification

  • pnpm --filter @paper/genesis typecheck — clean
  • vue-tsc over apps/docs — 0 errors
  • In-browser (docs dev server): all 5 types render via GnDocsCallout with correct per-type severity colors, icons, and titles; 0 legacy callout elements remain; interactive Ask AI / tour types still render correctly through the retained local branch.

Adds the docs-primitives Phase 2 #1: a headless admonition shell
(tip/note/warning/caution/important) that consumes v0 severity tokens
via the cascade with standalone fallbacks, following the genesis
theme-inheritance convention. Icon and title are slot-overridable with
inline-SVG defaults.

Wires the first consumer: apps/docs DocsCallout now delegates the five
standard types to GnDocsCallout, injecting AppIcon into the icon slot.
The docs-only interactive types (askai/discord/tour) and the random-tip
pool stay local, per the genesis non-goals.
@johnleider johnleider added this to the v1.1.0 milestone Jul 15, 2026
@johnleider johnleider added paper Paper layer (unstyled component bridge) T: feature labels Jul 15, 2026
@johnleider johnleider self-assigned this Jul 15, 2026
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Changeset found — this change will be included in the next release. Thanks!

@johnleider
johnleider changed the base branch from master to dev July 23, 2026 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

paper Paper layer (unstyled component bridge) T: feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant