# 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 |