# Figma Feature Matrix
Feature-by-feature comparison of Figma Design capabilities with Open Pencil's current implementation status.
::: tip 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| .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
| Feature | Status | Notes |
|---------|--------|-------|
| Eval command with Figma Plugin API | โ
| Headless JavaScript execution with figma global object matching Figma's plugin surface |
## Collaboration & Dev Mode
| Feature | Status | Notes |
|---------|--------|-------|
| 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
| Feature | Status | Notes |
|---------|--------|-------|
| Illustration tools | ๐ฒ | Figma Draw's specialized drawing tools |
| Pattern transforms | ๐ฒ | Create repeating patterns with transforms |