← Back to MatchKit

Documentation

Complete guide to MatchKit design system skills. Installation, components, themes, tokens, and the self-expanding architecture.

Getting Started

MatchKit is an AI-powered design system skill generator. It works with Cursor, VS Code, Claude Code, and Windsurf — any MCP-compatible editor. It generates a complete, production-ready component library pre-configured to your brand aesthetic — 27 components, 6 layouts, design tokens, and a self-expanding rulebook.

Install a skill, prompt your AI editor, and get interfaces that look like they were built by a professional design team. No component gaps. No visual drift across sessions.

How it works

  1. Configure — Pick a theme, choose your accent color, tune the style axes at matchkit.io/configure
  2. Download — Purchase and download your personalized skill package (ZIP)
  3. Install — Unzip into .claude/skills/ in your project
  4. Prompt — Ask your AI editor to build your UI. It reads the skill and generates on-brand code.
Quick start
# Unzip your downloaded skill unzip matchkit-clarity.zip # Prompt your AI editor "Build me a dashboard with sidebar nav, 4 KPI cards, a chart, and a data table"

Skills Overview

Every MatchKit skill uses a three-layer architecture designed for AI consumption:

  1. SKILL.md = Rulebook — design philosophy, rules, component specs, self-expansion instructions
  2. registry.json = Dictionary — what components exist and where to find them
  3. .tsx files = Implementation reference — pinned code the AI reads when building

What's in the package

Skill package structure
your-skill/ ├── SKILL.md Rulebook (design philosophy, rules, specs) ├── registry.json Component registry (27 components, 6 layouts) ├── manifest.json Build manifest (ID, version, profile) ├── globals.css CSS custom properties (light + dark mode) ├── components/ 27 .tsx files (copy-paste ready) ├── layouts/ 6 .tsx layout implementations ├── tokens/ 6 .json token files ├── patterns/ 5 .md cross-cutting guides └── palettes/ 4 .md palette selection guides

The 4 Themes

Four curated aesthetics, each positioned at different coordinates on MatchKit's 11-axis style system. All share the same 27 components and APIs — only the visual treatment differs.

Clarity UI
Sharp, structured B2B SaaS. Stripe/Linear quality.
Style: Medium radius, thin borders, subtle shadows, geometric fonts (Inter)
Best for: Fintech, enterprise SaaS, CRM, dev tools
Palettes: Indigo, Slate, Mono, Warm
Soft UI
Warm-minimal for AI tools and conversational products.
Style: Extra-large radius, no borders, muted accents, rounded fonts (Nunito)
Best for: AI tools, chat apps, creative platforms, consumer SaaS
Palettes: Teal, Sage, Lavender, Clay
Brutal UI
Neobrutalism. Bold, expressive, graphic.
Style: Hard-offset shadows, chunky borders, vibrant colors, bold typography
Best for: Creative agencies, portfolios, indie products
Palettes: Theme-specific vibrant accents
Glass UI
Technical, translucent, dev-grade aesthetic.
Style: Frosted glass surfaces, hairline borders, compact spacing, cool tones
Best for: Developer tools, terminal-adjacent dashboards
Palettes: Theme-specific cool accents

Installation

From matchkit.io (recommended)

  1. Visit matchkit.io/configure and configure your theme
  2. Purchase and download the ZIP package
  3. Unzip into your project's .claude/skills/ directory
unzip matchkit-clarity.zip -d .claude/skills/clarity-ui/

Using a starter template

Starter templates include a pre-wired Next.js app shell with sidebar, topbar, and all design tokens configured.

# Clarity UI starter (B2B SaaS) cp -r starters/default my-project cd my-project && npm install && npm run dev # Soft UI starter (AI/conversational) cp -r starters/soft-default my-project cd my-project && npm install && npm run dev

Prompt examples

Once installed, just prompt your AI editor naturally. The skill activates automatically.

PromptWhat you get
"Build an analytics dashboard"KPI cards, charts, activity table, sidebar nav
"Build a user management page"Data table with filters, list-detail view, status badges
"Build a settings page"Multi-section form, toggles, danger zone
"Build a billing page"Plan cards, invoice table, usage metrics
"Build a login page"Centered auth card, social login, dark mode toggle

API Keys & CLI

MatchKit API keys authenticate the CLI and CI/CD pipelines. They're scoped to your account — one key works for all your projects. API keys are available for paid users only.

Managing API Keys

Create and manage API keys from your dashboard → API Keys. Keys remain active until you revoke them.

  1. Visit /app/keys
  2. Click "Create Key" and give it a name (e.g., "My laptop", "CI/CD")
  3. Copy the key immediately — it won't be shown again
  4. Store it securely (e.g., password manager, env vars)

Using the CLI

The MatchKit CLI lets you sync your design system from the command line. Perfect for pulling updates, adding components, and integrating with CI/CD.

Install the CLI globally
npm install -g @matchkit.io/cli

CLI Commands

CommandDescription
matchkit loginAuthenticate with your API key (opens browser)
matchkit initLink a project to your MatchKit configuration
matchkit pullDownload latest resolved design system
matchkit add <component>Install one component + dependencies
matchkit listShow all 27 components with installed/available status
matchkit statusShow config ID, theme, version, sync status
matchkit diffShow what changed since last pull

CLI Workflow

First-time setup
# 1. Install CLI globally npm install -g @matchkit.io/cli # 2. Authenticate (opens browser → signs you in → saves key) matchkit login # 3. Initialize your project (links to your MatchKit config) matchkit init # 4. Pull your design system matchkit pull

Your design system files are installed to .claude/skills/[theme]-ui/. The CLI stores config in .matchkit/config.json and your API key in ~/.matchkit/credentials.

CI/CD Usage

For automated deployments, set the MATCHKIT_API_KEY environment variable instead of using matchkit login:

GitHub Actions example
name: Deploy on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - name: Pull MatchKit design system env: MATCHKIT_API_KEY: ${{ secrets.MATCHKIT_API_KEY }} run: | npm install -g @matchkit.io/cli matchkit pull - run: npm install - run: npm run build

API Key Scope

One key for all projects. API keys are scoped to your MatchKit account, not individual projects. You can use the same key across multiple repos and CI/CD pipelines.

Security best practices: Store keys in environment variables or secret managers. Never commit them to git. Rotate keys periodically. Use separate keys for development and CI/CD.

Components

Every skill includes 27 production-ready components. All are copy-paste ready .tsx files with full TypeScript types.

UI Primitives

ComponentDescription
ButtonPrimary, secondary, danger, ghost variants with loading state
InputText input with label, error, helper text, and icons
SelectDropdown select built on Radix UI with search
CheckboxCheckbox with label, indeterminate state
SwitchToggle switch built on Radix UI
Status BadgeColored badge for status indicators (success, warning, error, info)
TabsTab group with panel content switching
AvatarUser avatar with fallback initials and status dot
TooltipHover tooltip built on Radix UI
Progress BarDeterminate and indeterminate progress indicator
Theme ToggleLight/dark mode toggle with system preference detection

Data & Forms

ComponentDescription
Data TableSortable, filterable, paginated table with row selection
Stat CardKPI card with value, label, change indicator, and optional chart
Filter BarSearch input + filter dropdowns + active filter chips
Form LayoutsSingle-column, two-column, and danger zone form patterns
Command PaletteCmd+K search overlay with keyboard navigation

Containers

ComponentDescription
Modal DialogOverlay dialog built on Radix UI with close, confirm, cancel
Toast NotificationNon-blocking notification via Sonner with variants
Dropdown MenuContext/action menu with keyboard nav and submenus
Page HeaderPage title with breadcrumbs, description, and action buttons
Empty StatePlaceholder for empty lists with icon, message, and CTA
Loading StateSkeleton loader and spinner for async content
BreadcrumbsNavigation breadcrumb trail with separator

Layout

ComponentDescription
Sidebar NavCollapsible sidebar with grouped links, badges, and user profile
Top BarFixed header with search, notifications, and user menu

Charts

ComponentDescription
Area ChartFilled area chart via Recharts with tooltip and legend
Bar ChartVertical/horizontal bar chart via Recharts
Donut ChartDonut/pie chart via Recharts with center label

Layouts

Six reference layout implementations that combine components into complete page structures.

LayoutDescription
App ShellSidebar + topbar + main content area. The foundation for all pages.
DashboardKPI stat cards, charts, and activity table in a responsive grid.
List-DetailTwo-panel layout: list on left, detail view on right.
SettingsMulti-section form with danger zone at the bottom.
Data ManagementFull-page data table with filter bar, pagination, and bulk actions.
AuthCentered card layout for login, register, and password reset.

Design Tokens

Design tokens are the source of truth for all visual values. They're stored as JSON files in the tokens/ directory and compiled into CSS custom properties in globals.css.

Token fileWhat it defines
colors.jsonSemantic colors for backgrounds, text, accents, borders, status, and charts (light + dark)
typography.jsonFont families, size scale (h1-h6, body, small, label, code), weights
borders.jsonBorder width and style for cards, inputs, tables, sidebar, dividers
shadows.jsonBox-shadow values for cards, dropdowns, modals, buttons, tooltips
spacing.jsonSpacing scale for padding, gaps, line-height, row-height
motion.jsonTransition durations (fast, base, slow) and easing curves

How tokens flow

Tokens are generated from your profile's axis coordinates through MatchKit's resolution engine:

Profile (axis coordinates) → Mapping files (axis position → concrete values) → Token files (CSS custom properties + Tailwind classes) → Components (consume tokens, never hardcode)

Components never reference axis positions directly. They consume tokens. This means you can safely edit token values without breaking any component.

Color Palettes

Each theme ships with 4 pre-designed color palettes. All include light and dark mode variants. Tell Claude which palette to use, or let it default.

Clarity UI palettes

PaletteVibeBest for
clarity-indigoConfident, trustworthyFintech, enterprise SaaS, CRM
clarity-slateMinimal, engineering-gradeDev tools, project management
clarity-monoTechnical, dark-firstInfrastructure, monitoring, CI/CD
clarity-warmApproachable, collaborativeHR tech, knowledge bases, internal tools

Soft UI palettes

PaletteVibeBest for
soft-tealCalm, modernAI tools, chat apps, productivity
soft-sageNatural, groundedCreative platforms, wellness, green tech
soft-lavenderGentle, expressiveConsumer SaaS, social, content tools
soft-clayWarm, earthyCommunity platforms, education

Switching palettes

# Just tell your AI editor which palette to use "Use the clarity-slate palette for this project" "Switch to soft-sage palette"

Self-Expanding Architecture

The skill library grows with your project. When your AI editor needs a component that doesn't exist in the registry, it creates one following the SKILL.md design rules, writes the file, and registers it. Future sessions reuse it.

Discovery protocol

  1. Read registry.json in the skill directory to find curated components
  2. Read .clarity-catalog.json in the project (if it exists) to find project-specific components
  3. Merge both lists — never improvise if a matching component already exists
  4. Copy .tsx files from the skill into the project, or read them as reference when building

Result: Every component in your app — whether from the curated library or generated during development — follows the same design rules. No drift across sessions.

Configuration Axes

MatchKit decomposes visual identity into 11 independent axes. Each axis has 3-6 positions. A theme is simply a coordinate point in this multi-dimensional style space.

AxisPositionsWhat it controls
radiusnone, sm, md, lg, xl, fullCorner rounding on all elements
border-weightnone, hairline, thin, mediumBorder thickness and presence
shadow-stylenone, subtle, soft, hard-offsetDepth and elevation
color-tempcool, neutral, warmNeutral tone hue
color-saturationmuted, medium, vibrantAccent color intensity
font-personalitygeometric, humanist, roundedFont family character
font-weight-biaslight, regular, medium, boldHeading/emphasis weight
spacing-densitycompact, default, spaciousPadding, gaps, breathing room
motion-speedsnappy, default, smoothTransition speed
button-stylefilled, outline, ghost, soft-fillButton visual treatment
element-separationborder, shadow, bg-color, spacingHow elements are separated

The configurator at matchkit.io/configure exposes 5 of these axes (radius, button-style, element-separation, density, shadow-depth). All 11 are tunable in the generated tokens.

Axes are orthogonal — changing one does not require changes to another. Profiles capture curated combinations that have been tested together.

MCP Server

Your download includes ready-to-go MCP configs for Cursor and VS Code. Unzip into your project root and your editor connects to the design system automatically. The MCP server runs 100% offline.

Quick Install

Click to install the MatchKit MCP server in your editor — no configuration needed.

Claude Code reads .claude/skills/ natively. No MCP server needed — your skill works the moment you unzip it.

No setup required
# That's it. No config needed. "Build me a dashboard with sidebar nav, KPI cards, and a data table"

Available tools

The MCP server exposes 8 tools that any connected editor can call:

ToolDescription
list_skillsList all installed skills
get_skill_sectionRead a section from SKILL.md by topic
list_componentsList all components, layouts, and patterns
get_componentRead a component’s source code
get_layoutRead a layout’s source code
get_patternRead a pattern’s content
get_tokensRead design token JSON files
search_componentsSearch by name, description, or tag

Skill discovery

The MCP server automatically discovers installed skills by scanning these locations (in priority order):

  1. MATCHKIT_SKILLS_DIR environment variable (if set)
  2. .claude/skills/ in your project root
  3. skills/ in your project root (for development)

A valid skill directory must contain both registry.json and SKILL.md to be discovered.

Tech Stack

Required

PackageVersionWhy
Next.js^15.2.0App Router, React Server Components
React^19.0.0Component rendering
Tailwind CSSv4Utility classes + CSS custom properties

Recommended

PackagePurpose
@radix-ui/react-*Accessible primitives (Select, Dialog, Popover, Tooltip, Switch)
lucide-reactIcon library used in all components
class-variance-authorityComponent variant management (CVA)
clsx + tailwind-mergeConditional class merging
rechartsCharts (Area, Bar, Donut)
sonnerToast notifications
Install all recommended deps
npm install lucide-react class-variance-authority clsx tailwind-merge \ @radix-ui/react-select @radix-ui/react-dialog @radix-ui/react-slot \ @radix-ui/react-popover @radix-ui/react-tooltip @radix-ui/react-switch \ recharts sonner

FAQ

Does it work with existing projects?

Yes. Unzip at your project root — files land in .claude/skills/. Your AI editor will discover them automatically on the next session.

Can I customize the components?

Absolutely. All components are plain .tsx files with Tailwind classes. Edit them directly — they're yours. Token values in tokens/*.json can also be adjusted.

What if the AI needs a component that doesn't exist?

The skill is self-expanding. The AI reads the SKILL.md rulebook, creates a new component following the design rules, writes the file, and registers it. Future sessions reuse it.

Do I need Tailwind v4?

Yes. MatchKit skills use Tailwind CSS v4's native CSS custom properties for theming. Tailwind v3 is not supported.

Can I use it with Vue or Svelte?

Not yet. MatchKit currently generates React/Next.js components only. Framework support for Vue and Svelte is on the roadmap.

Does it work with Cursor, Copilot, or Windsurf?

Yes. Your download includes MCP config files for Cursor and VS Code — just unzip and they connect automatically. For Windsurf, copy one config block. See the MCP Server section above.

How do I update my skill?

Re-download from matchkit.io/configure with the same configuration. Subscribers get access to all future updates.

Does it support dark mode?

Yes. Every palette includes both light and dark mode tokens. Dark mode is class-based — add the 'dark' class to your HTML element.

Is the generated code production-ready?

Yes. Components are fully typed, accessible (WCAG AA), responsive, and use established patterns from Radix UI and Recharts.

© 2026 MatchKit.io
PricingTermsPrivacyCookies