Grazy
Active DevelopmentFrom live HTML to editable Figma layers
Bridge the gap between code and design. Capture live HTML and convert it into editable Figma layers, then export starter code for multiple platforms.

How It Works
Import HTML to Figma
Demo moved to YouTube to reduce on-site bandwidth usage.
Watch on YouTubeCapture live websites, selected HTML elements, and screenshots, then import the result into Figma as editable layers
Export to Code
Demo moved to YouTube to reduce on-site bandwidth usage.
Watch on YouTubeExport your Figma designs to starter code in multiple frameworks
Architecture overview
What looks like a simple bridge between HTML and Figma is actually a multi-stage translation system. Each step preserves a different kind of intent so the result can stay editable, exportable, and useful across design and development workflows.
Browser capture
The extension inspects live pages, captures selected elements or screenshots, and resolves layout, styles, images, SVGs, pseudo-elements, CSS variables, and framework utility classes.
Normalized payload
Captured UI is translated into a Figma-oriented JSON structure with sizing, spacing, typography, fills, gradients, shadows, and metadata preserved for import.
Figma reconstruction
The plugin rebuilds the interface as editable Figma nodes, including auto-layout frames, text, images, vectors, list structures, and fallback font handling.
Selection serializer
Designs can then move back out of Figma through a shared intermediate model that extracts layout, styling, typography, SVG identity, component metadata, and tokens.
Export adapters
Platform adapters generate code for web and native targets, with specialized logic for stacking, fonts, SVGs, tokens, component structure, and full-page sections.
Product layer
AI enhancement, queued exports, subscription gating, analytics, benchmark tracking, and build profiles sit around the core engine without exposing implementation details.
Engineering challenges
Most of the hard work sits in the translation details: deciding what a live UI element means, recreating it as design structure, then exporting it back into code without losing too much intent.
Capturing the messy web
Live interfaces rarely map cleanly to design layers. Grazy has to infer intent from computed styles, utility classes, inherited values, hidden elements, gradients, SVGs, images, and responsive layout behavior.
Rebuilding editable Figma layers
The import path is not a screenshot-to-canvas shortcut. It reconstructs editable nodes, auto-layout relationships, typography, fills, spacing, and image data so the output can still be designed with.
Maintaining export fidelity
The export pipeline has to preserve Figma semantics that code does not express directly, such as text auto-resize modes, stack order, nested component intent, SVG identity, and token naming.
Keeping the product shippable
The plugin grew into multiple build profiles, feature flags, tests, licensing states, and AI provider paths while still needing to fit inside the constraints of a Figma plugin runtime.
Translation engine
The most time-consuming part was building the code generation pipeline. It had to recognize component structure, preserve design semantics, and emit useful code for very different UI platforms.
- Component detection and export required separating visual structure from reusable component intent.
- The shared intermediate node model keeps platform adapters from each inventing their own interpretation of a Figma selection.
- Web exports account for stacking, font embedding, SVG normalization, token names, responsive sections, and full-page segmentation.
- Native-style adapters translate the same source model into different layout systems rather than only changing syntax.
- AI enhancement is layered on top of deterministic code generation, so the baseline export remains usable even when AI is disabled.
Supported output families
Not every target has the same maturity level, but each one pushed the system to separate reusable design intent from framework-specific syntax.
Commercialization layer
Turning Grazy from a personal tool into a product meant adding the less visible parts of software: plans, licensing states, build variants, analytics, AI costs, release channels, and product limits.
- A subscription and licensing layer now supports feature access for different product tiers.
- Build profiles make it possible to prepare public, internal, lightweight, and client-specific versions from the same codebase.
- AI enhancement, paid adapters, image export, and token extraction can be treated as product capabilities instead of one-off switches.
- The implementation avoids exposing sensitive licensing details while still making the product architecture clearer.
Key Features
- Export to code: HTML/CSS, React, Vue, Svelte, Flutter, SwiftUI, Jetpack Compose
- Design system sync between code and Figma
- AI workflow bridge: ChatGPT/v0 to Figma
- QA & design review with overlay comparison
- Browser capture for DOM elements, screenshots, and UI analysis
- Living documentation from production UIs



