Cycles
Design · c15

Figma-to-Vue Workflow

archivedcreated 2026-03-11· last activity 2026-09-11

Establish a repeatable workflow for extracting Figma designs into Vue SFCs that integrate with the q-nuxt-layer design system.

Why

We have Figma designs and a Figma MCP server available, but no established workflow for turning Figma components into functional Vue components in the design system. This is an experiment to validate the end-to-end pipeline.

Objective

Establish a repeatable workflow for extracting Figma designs into Vue SFCs that integrate with the q-nuxt-layer design system. Validate Code Connect mappings as a force multiplier for future extractions.

Scope

  • Use the Figma MCP get_design_context tool on real Figma components
  • Adapt React+Tailwind output to Vue SFC + layer conventions
  • Test Code Connect mappings to link Figma components to existing layer components
  • Document what works, what needs manual cleanup, and what to automate

Key Changes

  • Called get_design_context on Figma node 6419:28548 (PolicyListingItem, app.qpoint.io---4.1.filter)
  • Converted React+Tailwind reference output to Vue SFC using layer conventions
  • Created q-nuxt-layer/components/security/PolicyCard.vue → auto-imported as <SecurityPolicyCard>
    • 4 sizes (big/med/small/micro), 2 states (cool/hot)
    • Uses DataMetricValue + DataMetricSpark for stats and sparklines
    • Inline SVG ribbon, border color driven by state prop
  • Created design/app/pages/components/_demos/SecurityPolicyCard.vue with full adminProps
  • Added security group to design/app/data/component-registry.ts
  • Created design/app/data/policy-cards.json — 9 policies sourced from bob-wire wireframes (policy-compliance-v1, policies-v1, policies-v2)

Outcome

Workflow validated. The Figma MCP → Vue SFC pipeline works well for domain-specific components. Key learnings:

  • Figma output quality: React+Tailwind reference is useful but noisy — hundreds of data-node-id attributes, image assets for sparklines/ribbons, and inline style overrides require manual cleanup
  • What transfers cleanly: layout structure, size variants, conditional rendering logic, color values
  • What needs replacing: any image assets (sparklines, decorative elements) must be swapped for real components
  • Data-machine fit: DataMetricValue + DataMetricSpark are a natural fit for stat columns — no custom number formatting needed
  • Naming: domain-specific components don't belong in ux/ — a security/ subdirectory auto-prefixes correctly as Security*
  • Code Connect opportunity: PolicyListingItemSecurityPolicyCard mapping not yet registered — follow-on task for c13

Out of Scope

  • Building net-new components not already designed in Figma
  • Publishing to the layer tarball (that's a follow-on cycle)

Visual record

6 captures — heroes, page slices, and full-page renders. Click to view.

c15 hero
c15 slice
c15 slice
c15 slice
c15 slice
c15 full

Qpoint Brand Style Guide