Charply Design System
Shared tokens, shadcn primitives, and extension product templates — popup, side panel, generate, library, agent — plus foundations (accessibility, forms, messaging, layout) and components.
Stack
Quick Start
npm run storybook # component workbench → localhost:6006
npm run dev:landing # docs catalog → localhost:3000/design-system
# Add a new shadcn component to the design package
cd charply-design && npx shadcn@latest add <name>import { Button, Badge, Card } from "@charply/design"
<Button variant="outline">Cancel</Button>
<Badge variant="success">Shipped</Badge>Foundation
View all →Colors
ShippedBrand ramp, surface palette, status tones, and usage rules.
Typography
ShippedThe type scale — display / H2 / H3 / body / caption / button.
Spacing
Shipped4px-base grid, spacing scale, and surface rhythm.
Motion
ShippedAnimation tokens, transition guidelines, and motion principles.
Iconography
ShippedLucide icon system — sizing, color, and accessibility rules.
Accessibility
ShippedWCAG 2.2 AA target — design rules, keyboard nav, and extension constraints.
Forms
ShippedField layout, validation, auth templates, and extension form patterns.
Messaging
ShippedErrors, info banners, empty states, agent status, and content tone.
Layout
ShippedPopup 450×600, side panel, landing rhythm, elevation, content scripts.
Extension templates
View all →Extension Popup
ShippedChrome popup (450×600): home, Open Assistant CTA, auth entry.
Extension Side Panel
ShippedFull side panel shell with Generate, Agent, and Library tabs.
Generate Tab
ShippedReply generation: context, tone/length, generate CTA, reply options.
Reply Library
ShippedSaved replies: search, platform filters, favorites, use/edit actions.
Reply Card
ShippedSingle generated reply option with insert, copy, and feedback.
Agent Panel
ShippedAgent status, pause/stop, assist mode, queue, and session stats.
Login Form
ShippedExtension auth: email code or password sign-in.
Signup Form
ShippedExtension auth: create account with email verification.
Components
View all →Button
ShippedThe primary action affordance. ONE primary per surface, N secondaries.
Badge
ShippedCompact metadata and state labels. Pill-shaped with tone variants.
Card
ShippedComposable surface primitive. Only use elevation when it communicates hierarchy.
Input
ShippedSingle-line text input. Always compose with Label for accessible forms.
Dialog
ShippedModal overlay for confirmations and detail views. Radix-powered.
Tabs
ShippedSection switching for grouped content panels. Radix-powered.
Switch
ShippedBoolean toggle for immediate-effect settings.
Tooltip
ShippedShort contextual help. Use for supplemental info, not primary instructions.
Textarea
ShippedMulti-line text input for drafts and prompts.
StatusBadge
ShippedAgent workflow state summary: scanning, queued, posted, error.
EmptyState
ShippedEditorial empty state. Empty is a brand moment, not an apology.
Label
ShippedAccessible form field label. Radix Label, always paired with a control.
Callout
ShippedPage-level banner for info, warnings, errors, success, and upsell prompts.
Accordion
ShippedExpand/collapse sections for dense settings and FAQ patterns.
Alert
ShippedInline status alert with icon, title, and description. role=alert.
Spinner
ShippedLoading indicator for async actions, panels, and button pending states.
Toast
ShippedEphemeral confirmation and error feedback. Toaster + createToastStore.
Popover
ShippedFloating panel for tasks and onboarding nudges. Includes PopoverMessage.