Skip to content

Figma Feature Matrix ​

Feature-by-feature comparison of Figma Design capabilities with Open Pencil's current implementation status.

Status Legend

✅ Supported — feature works end-to-end · 🟡 Partial — core behavior exists, some sub-features missing · 🔲 Not yet implemented

Coverage: 94 of 158 Figma feature items addressed — 76 ✅ fully supported, 18 🟡 partial, 64 🔲 not yet. Last updated: 2026-03-07.

Interface & Navigation ​

FeatureStatusNotes
Toolbar with design tools✅Bottom toolbar (UI3 style): Select, Frame, Section, Rectangle, Ellipse, Line, Text, Hand, Pen
Layers panel (left sidebar)✅Tree view with expand/collapse, drag reorder, visibility toggle; resizable width
Pages panel✅Add, delete, rename pages; per-page viewport state
Properties panel (right sidebar)✅Sections: Appearance, Fill, Stroke, Effects, Typography, Layout, Position; resizable width
Zoom & pan✅Ctrl + scroll, pinch, ⌘+ / ⌘− / ⌘0 (100%) / ⌘1 (fit) / ⌘2 (selection), Space + drag, middle mouse, hand tool (H)
Canvas rulers✅Top/left rulers with selection highlight bands and coordinate badges
Canvas background color✅Per-page background via properties panel
Canvas guides🔲Figma supports draggable guides from rulers
Actions menu / command palette🔲Figma's quick actions search
Context menu✅Right-click with clipboard, z-order, grouping, component, visibility, lock, move-to-page actions
Keyboard shortcuts🟡Core shortcuts + components + z-order + visibility/lock implemented; Scale, Arrow, Pencil, flip, text formatting not yet wired
Find and replace🔲Text search/replace across document
Layer outlines view🔲Wireframe view of all layers
Custom file thumbnails🔲Thumbnail generated on export, but no custom thumbnail picker
Nudge value settings🔲Default 1px/10px; Figma allows custom small/big nudge values
App menu (browser mode)✅File, Edit, View, Object, Text, Arrange menus; Tauri uses native menus
AI tools🟡90 tools via OpenRouter + MCP server; no AI-generated images or AI-powered search yet

Layers & Shapes ​

FeatureStatusNotes
Shape tools (Rectangle, Ellipse, Line, Polygon, Star)✅All basic shape types; polygon side count and star inner radius configurable
Frames✅Clip content, independent coordinate system, and Figma-style creation and resize presets
Groups✅⌘G to group, ⇧⌘G to ungroup
Sections✅Title pills, auto-adopt overlapping nodes, luminance-adaptive text
Arc tool (arcs, semi-circles, rings)✅arcData with start/end angle and inner radius
Pencil (freehand) tool🔲Figma's freehand drawing tool
Masks🔲Shape masks for clipping layers
Layer types & hierarchy✅17 node types, flat Map + parent-child tree
Select layers✅Click, shift-click, marquee selection
Alignment & position✅Position, rotation, dimensions in properties panel
Copy & paste objects✅Standard clipboard + Figma Kiwi binary format; Copy as text/SVG/PNG/JSX
Scale layers proportionally🟡Shift-resize constrains proportions; no dedicated Scale tool (K)
Lock & unlock layers✅⇧⌘L toggles lock; locked nodes can't be selected/moved from canvas
Toggle layer visibility✅Eye icon in layers panel + ⇧⌘H keyboard shortcut
Rename layers✅Double-click inline rename in layers panel; Enter/Escape/blur to commit
Bring to front / Send to back✅] and [ keyboard shortcuts; also in context menu
Move to page✅Move selected nodes between pages via context menu
Constraints (responsive resize)🔲Pin edges/center for parent resize behavior
Smart selection (distribute/align)🔲Evenly space and align multi-selection
Layout guides (columns, rows, grid)🔲Column/row/grid overlay guides on frames
Measure distances between layers🔲Alt-hover to show distances
Edit objects in bulk✅Multi-selection properties panel: edit position, size, appearance, fill, stroke, effects across multiple nodes; shared values display normally, differing values show "Mixed"
Identify matching objects🔲Find similar layers
Copy/paste properties🔲Copy fill/stroke/effects between layers
Parent-child relationships✅Full hierarchy with parentIndex, reparenting via drag

Vector Tools ​

FeatureStatusNotes
Vector networks✅Figma-compatible model, not simple paths
Pen tool✅Corner points, bezier curves, open/closed paths
Edit vector layers🟡Creation works; advanced vertex editing (bend, delete points, join) limited
Boolean operations (Union, Subtract, Intersect, Exclude)🔲Combine shapes with boolean ops
Flatten layers🔲Merge vector paths into single path
Convert strokes to paths🔲Outline Stroke command
Convert text to paths🔲Flatten text to vector outlines
Shape builder tool🔲Interactive boolean tool
Offset path🔲Inset/outset a vector path
Simplify path🔲Reduce vector point count

Text & Typography ​

FeatureStatusNotes
Text tool & inline editing✅Canvas-native editing, phantom textarea, cursor/selection/word select, drag to select, double/triple-click, rich text style runs (⌘B / I / U, S button)
Text on a path🟡Imports, renders, selects, resizes, edits, and exports Figma TEXT_PATH; character editing requires the referenced font's outlines to be available locally
Text rendering (Paragraph API)✅CanvasKit Paragraph for shaping, line-breaking, metrics
Font loading (system fonts)✅Inter default, font-kit in Tauri with OnceLock cache + preloading, queryLocalFonts in browser
Font family & weight✅FontPicker with virtual scroll, search, CSS preview; weight selection in properties panel
Font size & line height✅Editable in typography section
Text alignment🟡Basic alignment; Figma has vertical alignment and auto-width/height modes
Text styles🟡Per-selection bold/italic/underline/strikethrough (⌘B / I / U, S button); not yet reusable named text style presets
Text resizing modes (auto, fixed, hug)🔲Figma's auto-width, auto-height, fixed-size text modes
Bulleted & numbered lists🔲List formatting in text
Links in text🔲Hyperlinks within text content
Emojis & smart symbols🔲Emoji rendering and special characters
OpenType features🔲Ligatures, stylistic alternates, tabular figures
Variable fonts🔲Adjustable font axes (weight, width, slant)
CJK text support🔲Chinese, Japanese, Korean text rendering
RTL text support🔲Right-to-left text layout
Icon fonts🔲Special handling for icon font glyphs

Color, Gradients & Images ​

FeatureStatusNotes
Color picker (HSV)✅HSV square, hue slider, alpha slider, hex input
Solid fills✅Hex color with opacity
Linear gradient✅Gradient stops, transform handles
Radial gradient✅Rendered via CanvasKit shaders
Angular gradient✅Sweep/conic gradient support
Diamond gradient✅Four-point diamond gradient
Image fills✅Decoded from blob data with scale modes (fill, fit, crop, tile)
Pattern fills🔲Repeating image/pattern fills
Blend modes🔲Layer and fill blend modes (multiply, screen, overlay, etc.)
Add images & videos🟡Image fills rendered; no drag-and-drop image import or video support
Image property adjustment🔲Exposure, contrast, saturation, etc.
Crop an image🔲Interactive image cropping
Eyedropper tool🔲Sample colors from canvas
Mixed selection color editing🔲Adjust colors across heterogeneous selection
Color models (RGB, HSL, HSB, Hex)🟡HSV + Hex in picker; no HSL or RGB mode toggle

Effects & Properties ​

FeatureStatusNotes
Drop shadow✅Offset, blur radius, color via CanvasKit filters
Inner shadow✅Inset shadow effect
Layer blur✅Gaussian blur on layer
Background blur✅Blur content behind layer
Foreground blur✅Blur in foreground
Stroke weight✅Configurable in properties panel
Stroke cap (round, square, arrow)✅NONE, ROUND, SQUARE, ARROW_LINES, ARROW_EQUILATERAL
Stroke join (miter, bevel, round)✅All three join types
Dash patterns✅Dash-on/dash-off stroke pattern
Stroke alignment✅Inside/Center/Outside with clip-based rendering matching Figma behavior
Individual stroke weights per side✅Top/Right/Bottom/Left with side selector dropdown
Corner radius✅Uniform and per-corner radius with independent toggle in properties panel
Corner smoothing (iOS-style)🔲Figma's continuous corner rounding
Multiple fills/strokes per layer🔲Figma allows stacking fills and strokes

Auto Layout ​

FeatureStatusNotes
Horizontal & vertical flow✅Yoga WASM flexbox engine
Toggle auto layout (⇧A)✅Toggle on frame or wrap selection
Gap (spacing between children)✅Configurable in properties panel
Padding (uniform & per-side)✅All four sides independently
Justify content✅Start, center, end, space-between
Align items✅Start, center, end, stretch
Child sizing (fixed, fill, hug)✅Per-child sizing modes
Wrap✅Flex wrap for multi-line layout
Grid auto layout flow✅CSS Grid via Yoga fork — column/row tracks, gaps, spans
Combined flows (nested)✅Nested auto-layout frames with different directions
Drag reorder within auto layout✅Visual insertion indicator
Min/max width and height🔲Figma supports min/max constraints on auto-layout children

Components & Design Systems ​

FeatureStatusNotes
Create components✅⌥⌘K creates from frame/group or wraps selection; component properties UI supports text, visibility, instance swap, and variants
Component sets✅⇧⌘K combines components; multidimensional sparse variant authoring with duplicate validation and top-left default
Component instances✅Assets browsing, insertion, editable component properties and overrides, variant switching, live sync, and update review
Variants✅Multidimensional sparse combinations, authoring, instance switching, duplicate validation, and top-left fallback
Component properties✅Authoring and instance editing for boolean visibility, text, and instance-swap properties
Override propagation✅Changes to main component propagate to all instances; overrides preserved
Variables (color, number, string, boolean)🟡COLOR full UI (dialog, TanStack Table, inline editing, undo/redo, demo collections); FLOAT/STRING/BOOLEAN defined but no editing UI
Variable collections & modes🟡Collections, modes, activeMode switching work; no variable-driven theming UI yet
Styles (color, text, effect, layout)🔲Reusable named style presets
Libraries (publish, share, update)✅Immutable local/storage revisions, selective publication, enablement, scoped update review, offline materialization, and .fig persistence
Detach instance✅⌥⌘B converts instance back to frame
Go to main component✅Navigate to source component, cross-page

Prototyping ​

FeatureStatusNotes
Prototype connections🔲Not supported yet
Triggers (click, hover, drag, etc.)🔲Not supported yet
Actions (navigate, overlay, scroll, etc.)🔲Not supported yet
Animations & transitions🔲Not supported yet
Smart animate🔲Auto-animate matching layers
Overlays🔲Modal/popover prototyping
Scroll & overflow behavior🔲Scrollable frames in prototypes
Prototype flows🔲Named starting points
Variables in prototypes🔲Conditional logic with variables
Easing & spring animations🔲Custom animation curves
Present & play prototypes🔲Fullscreen prototype viewer

Import & Export ​

FeatureStatusNotes
.fig file import✅Full Kiwi codec: 194 definitions, ~390 fields per NodeChange
.fig file export✅Kiwi encoding + Zstd compression + thumbnail generation; COMPONENT/COMPONENT_SET mapped to SYMBOL for round-trip
Save / Save As✅⌘S / ⇧⌘S; native dialogs (Tauri), File System Access API (Chrome/Edge), download fallback (Safari)
Figma clipboard (paste)✅Decode Kiwi binary from Figma clipboard
Figma clipboard (copy)✅Encode Kiwi binary that Figma can read
Sketch file import🔲.sketch file parsing
Image/SVG/PDF export🟡PNG/JPG/WEBP/SVG export ✅; PDF export 🔲
Version history🔲Browse and restore previous versions
Copy assets between tools✅Figma clipboard (Kiwi binary), Copy as text/SVG/PNG/JSX

Plugin API & Scripting ​

FeatureStatusNotes
Eval command with Figma Plugin API✅Headless JavaScript execution with figma global object matching Figma's plugin surface

Collaboration & Dev Mode ​

FeatureStatusNotes
Comments (pin, thread, resolve)🔲Not supported yet
Real-time multiplayer✅P2P via Trystero + Yjs CRDT, cursors, follow mode; no server required
Cursor chat🔲Inline chat bubbles at cursor
Branching & merging🔲Version branches for design files
Dev Mode (inspect)🟡Code tab shows JSX representation of selection; no CSS properties or handoff specs
Code Connect🔲Link design components to code
Code snippets🟡JSX export with syntax highlighting and copy; no CSS/Swift/Kotlin snippets
Tailwind CSS v4 export✅Export as HTML with Tailwind utility classes from Code panel, CLI, or programmatically
Figma for VS Code🔲Editor plugin integration
MCP server✅@open-pencil/mcp with stdio + HTTP transports; 87 core tools + 3 file management tools = 90 total
CLI tools✅Headless CLI: info, tree, find, export, analyze, node, pages, variables, eval; MCP server with stdio + HTTP

Figma Draw ​

FeatureStatusNotes
Illustration tools🔲Figma Draw's specialized drawing tools
Pattern transforms🔲Create repeating patterns with transforms

Released under the MIT License.