Figma → Vue Design System
A Vue 3 component library with automated design token synchronization from Figma.
Figma → Vue Design System
A production-ready Vue 3 component library with automated Figma design token synchronization, comprehensive testing, and Storybook documentation.
✨ Features
- 🎨 Figma Integration: Automated design token sync via MCP Server
- ⚡ Vue 3: Composition API with TypeScript support
- 🎯 Production Ready: Comprehensive testing and CI/CD pipeline
- 📚 Storybook: Interactive component documentation
- ♿ Accessibility: WCAG 2.1 AA compliant with axe-core testing
- 🌙 Dark Mode: Full dark theme support
- 📦 Tree Shaking: Optimized bundle size with ESM exports
- 🔄 Automated Versioning: Changeset-based release management
🚀 Quick Start
Installation
npm install @design-system/vue-components
# or
pnpm add @design-system/vue-components
# or
yarn add @design-system/vue-components
Usage
<template>
<div>
<Button variant="primary" @click="handleClick">
Save Changes
</Button>
</div>
</template>
<script setup>
import { Button } from '@design-system/vue-components'
import '@design-system/vue-components/style.css'
const handleClick = () => {
console.log('Button clicked!')
}
</script>
🏗️ Development
Prerequisites
- Node.js ≥ 20 LTS
- pnpm ≥ 8.0.0
- Figma Desktop App (for design token sync)
Setup
# Clone the repository
git clone https://github.com/boraalapgh/figma-vue-design-system.git
cd figma-vue-design-system
# Install dependencies
pnpm install
# Start Storybook
pnpm storybook
# Run tests
pnpm test
# Build library
pnpm build:lib
📦 Components
Button
Primary UI component with comprehensive variants and accessibility support.
<Button
variant="primary"
size="md"
:disabled="false"
:loading="false"
@click="handleClick"
>
Click me
</Button>
Props:
variant:'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'ghost'size:'xs' | 'sm' | 'md' | 'lg' | 'xl'disabled:booleanloading:booleanariaLabel:string
🎨 Figma MCP Integration
Setup MCP Server
- Enable in Figma: Open Figma Desktop → Preferences → Enable Dev Mode MCP Server
- Configure Cursor: Add MCP server configuration in Cursor settings
{
"mcpServers": {
"Figma": {
"url": "http://127.0.0.1:3845/sse"
}
}
}
Sync Design Tokens
# Sync tokens from Figma file
pnpm mcp-sync --file YOUR_FIGMA_FILE_KEY --out ./tokens
# This generates:
# - design-tokens.json (CSS variables)
# - components.schema.json (component definitions)
# - changelog-draft.md (proposed changes)
🧪 Testing
- Unit Tests: Component logic and props
- Accessibility Tests: axe-core compliance
- Visual Tests: Storybook test runner
- Keyboard Navigation: Focus management
🚀 Deployment
Vercel (Recommended)
Click the deploy button above or manually deploy:
# Build Storybook
pnpm build:storybook
# Deploy to Vercel
vercel --prod
Built with ❤️ by the Design System Team
Related Servers
llm-context
Share code context with LLMs via Model Context Protocol or clipboard.
MCP Random Number
Generates true random numbers using atmospheric noise from random.org.
Rust Docs MCP Server
Query up-to-date documentation for Rust crates.
Remote MCP Server
An example of a remote MCP server deployable on Cloudflare Workers, customizable by defining tools.
MCP Config Generator
A web tool for safely adding MCP servers to your Claude Desktop configuration.
Remote MCP Server (Authless)
An example of a remote MCP server deployable on Cloudflare Workers, without authentication.
Metal MCP Server
Search Metal Framework documentation and generate code.
ShaderToy-MCP
Query and interact with ShaderToy shaders using large language models.
TUUI - Tool Unitary User Interface
A desktop MCP client for tool integration and cross-vendor LLM API orchestration.
Liana-MCP
A natural language interface for cell-cell communication analysis using the Liana framework.