@paper/emerald

Emerald design system — Wave 1–4 (v0-composed, Figma-tokened)
1,156 743
Install
npm install @paper/emerald
Latest Version:0.1.1
Vue:3
License:MIT
Last Updated:Oct 23, 2026
Links: GitHub  ·  npm
Maintainer: johnjleider

@paper/emerald

Emerald design system — Wave 1–4 preview.

The first commercial skin on @vuetify/v0: Figma tokens + thin Em* wrappers that compose v0 compounds. Emerald exists to show that v0 is easy to adopt and still feature-rich — behavior stays headless; Emerald only paints.

Why Emerald

v0 Headless OS — state, a11y, compounds
Emerald Commercial design system — tokens, CSS, Em* chrome

If you can ship a polished app with two CSS imports and a plugin, the credit goes to the stack under Em*. Full contract: SPEC.md (Purpose — Emerald exists to sell v0).

Install (workspace)

import { createApp } from 'vue'
import { createEmeraldPlugin, EmButton } from '@paper/emerald'
import '@paper/emerald/theme.css' // design tokens (--emerald-*, kit --v0-* aliases)
import '@paper/emerald/style.css' // Em* component CSS

const app = createApp(App)
app.use(createEmeraldPlugin()) // wires adapter + default emerald theme — no manual adapter setup

That is the whole install. Do not construct EmeraldStyleSheetAdapter yourself unless the host already runs createThemePlugin and you pass { theme: false }.

Two themes ship: emerald-light (default) and emerald-dark. Switch via the theme plugin (useTheme().select('emerald-dark')) or, on the CSS-only path, set data-theme="emerald-dark" on any subtree — every --emerald-* color and shadow flips; light stays the :root default.

Consumer rules (short)

  • No named slots on Em* — props + default slot, or multi-file compounds (Dialog/Select/…)
  • No Paper / V0Paper middle layer
  • Shells (Button, Checkbox, TextField, …) for fixed anatomy; compounds for variable trees

Components

Wave 1: EmButton · EmTextField · EmCheckbox · EmSwitch · EmDialog* · EmSelect*

Wave 2: EmAlert* · EmCard* · EmTag · EmAvatar* · EmTabs* · EmPagination* · EmSlider

Wave 3: EmRadio* · EmProgress · EmSpinner · EmBadge · EmDivider · EmTextarea · EmTooltip* · EmSnackbar* · EmBreadcrumbs* · EmExpansionPanel* · EmStep*

Wave 4: EmPopover* · EmList* · EmKanban* · EmCalendar*

Dev showcase: dev → /emerald (dashboard) · /emerald/contact · /emerald/sink (inventory).

Build

pnpm --filter @paper/emerald build   # tsdown + theme.css bake
pnpm --filter @paper/emerald typecheck

Related Packages

@paper/genesis

Genesis Design System — minimal docs primitives extracted from the v0 docs site

1,535 742

Version History

Version Released Vue License
0.1.1 >=3.5.0 MIT
0.1.0 >=3.5.0 MIT