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.

Deploy with Vercel Storybook

✨ 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: boolean
  • loading: boolean
  • ariaLabel: string

🎨 Figma MCP Integration

Setup MCP Server

  1. Enable in Figma: Open Figma Desktop → Preferences → Enable Dev Mode MCP Server
  2. 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

Máy chủ liên quan

NotebookLM Web Importer

Nhập trang web và video YouTube vào NotebookLM chỉ với một cú nhấp. Được tin dùng bởi hơn 200.000 người dùng.

Cài đặt tiện ích Chrome