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 toolsBottom 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 panelAdd, delete, rename pages; per-page viewport state
Properties panel (right sidebar)Sections: Appearance, Fill, Stroke, Effects, Typography, Layout, Position; resizable width
Zoom & panCtrl + scroll, pinch, + / / 0 (100%) / 1 (fit) / 2 (selection), Space + drag, middle mouse, hand tool (H)
Canvas rulersTop/left rulers with selection highlight bands and coordinate badges
Canvas background colorPer-page background via properties panel
Canvas guides🔲Figma supports draggable guides from rulers
Actions menu / command palette🔲Figma's quick actions search
Context menuRight-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
FramesClip content, independent coordinate system
GroupsG to group, G to ungroup
SectionsTitle 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 & hierarchy17 node types, flat Map + parent-child tree
Select layersClick, shift-click, marquee selection
Alignment & positionPosition, rotation, dimensions in properties panel
Copy & paste objectsStandard 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 layersL toggles lock; locked nodes can't be selected/moved from canvas
Toggle layer visibilityEye icon in layers panel + H keyboard shortcut
Rename layersDouble-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 pageMove 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 bulkMulti-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 relationshipsFull hierarchy with parentIndex, reparenting via drag

Vector Tools

FeatureStatusNotes
Vector networksFigma-compatible model, not simple paths
Pen toolCorner 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 editingCanvas-native editing, phantom textarea, cursor/selection/word select, drag to select, double/triple-click, rich text style runs (B / I / U, S button)
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 & weightFontPicker with virtual scroll, search, CSS preview; weight selection in properties panel
Font size & line heightEditable 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 fillsHex color with opacity
Linear gradientGradient stops, transform handles
Radial gradientRendered via CanvasKit shaders
Angular gradientSweep/conic gradient support
Diamond gradientFour-point diamond gradient
Image fillsDecoded 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 shadowOffset, blur radius, color via CanvasKit filters
Inner shadowInset shadow effect
Layer blurGaussian blur on layer
Background blurBlur content behind layer
Foreground blurBlur in foreground
Stroke weightConfigurable 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 patternsDash-on/dash-off stroke pattern
Stroke alignmentInside/Center/Outside with clip-based rendering matching Figma behavior
Individual stroke weights per sideTop/Right/Bottom/Left with side selector dropdown
Corner radiusUniform 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 flowYoga 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 contentStart, center, end, space-between
Align itemsStart, center, end, stretch
Child sizing (fixed, fill, hug)Per-child sizing modes
WrapFlex wrap for multi-line layout
Grid auto layout flowCSS Grid via Yoga fork — column/row tracks, gaps, spans
Combined flows (nested)Nested auto-layout frames with different directions
Drag reorder within auto layoutVisual 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; no component properties UI yet
Component sets🟡K combines components; dashed purple border; no variant property editing
Component instances🟡Create instance from context menu with child cloning and componentId mapping; live sync from component; no override editing UI
Variants🔲Variant switching and property-based selection
Component properties🔲Boolean, text, instance swap properties
Override propagationChanges 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)🔲Shared component/style libraries
Detach instanceB converts instance back to frame
Go to main componentNavigate to source component, cross-page

Prototyping

FeatureStatusNotes
Prototype connections🔲Planned for Phase 6
Triggers (click, hover, drag, etc.)🔲Planned for Phase 6
Actions (navigate, overlay, scroll, etc.)🔲Planned for Phase 6
Animations & transitions🔲Planned for Phase 6
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 importFull Kiwi codec: 194 definitions, ~390 fields per NodeChange
.fig file exportKiwi encoding + Zstd compression + thumbnail generation; COMPONENT/COMPONENT_SET mapped to SYMBOL for round-trip
Save / Save AsS / 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 toolsFigma clipboard (Kiwi binary), Copy as text/SVG/PNG/JSX

Plugin API & Scripting

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

Collaboration & Dev Mode

FeatureStatusNotes
Comments (pin, thread, resolve)🔲Planned for Phase 6
Real-time multiplayerP2P 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 exportExport 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 toolsHeadless 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.