Interface design; an open-source, clean-room reimplementation of Figma, rebuilt in pure Rust.
Frames, auto layout, components and variants, vector networks, styles, variables and prototypes,
in a native app that opens instantly and works offline. Open source, and yours.
FigCraft on getartcraft.com · ArtCraft · All Crafting Apps
Ridgeline: auto layout screens built from components, with Light and Dark modes from one set of colour variables · examples/ridgeline-app.figcraft
A look around · Made in FigCraft · Features · Agents · Under the hood · Get started · Crafting Apps · Discord
🎛️ Familiar by designThe toolbar, layers panel, Design panel, menus and shortcuts sit where your hands expect them. If you know Figma, you already know FigCraft. |
⚡ Native and fastA Rust engine with a persistent document model: edits touch only what changed, so creating a node in a 20,000-node file takes a fraction of a millisecond. No Electron, no web view. |
🔌 Offline and privateYour files are plain.figcraft archives on your own disk. No account, no cloud, no telemetry. SVG, PNG, JPG, WebP and PDF in and out; .fig files open (best effort), and so do designs exported as the public REST API file JSON, with their prototypes and variables.
|
🤖 Agent-readyEvery menu item, tool and drag is a command, so the same engine runs from the UI, the CLI, a JSON control channel or an MCP server. |
Components and variants: component sets, variant properties and the Assets panel · |
Prototyping: connections, transitions, back actions and a flow · |
Dev Mode: ready-for-dev status, annotations and React code where component properties become props · |
Vector networks: points and handles, variable-width strokes, booleans that stay editable · |
Layout grids and styles, light theme: a 12-column grid, paint, text, effect and grid styles, charts drawn from shapes · |
Live sessions: three apps on one |
Home, light |
Trail detail |
Home, dark: the same frame in the Dark mode |
Ridgeline Studio: a desktop dashboard on a 12-column grid, every chart made of shapes and vectors |
||
Glass weather: glass and background blur, layer-blurred colour fields, a boolean cloud |
Vector marks: union, subtract and exclude, an angular gradient, a variable-width stroke |
|
Ridgeline UI: colour ramps where every swatch is a paint style, exported through a slice |
||
Layouts that build themselvesAuto layout in both directions, with wrap and grid (fixed, hug and `fr` tracks, cells that span), padding, gaps, alignment including text baselines, Hug / Fill / Fixed sizing, min and max sizes, absolute positioning, drag handles for padding and spacing right on the canvas, and arrow keys that move children through the flow, grid cells and nested frames. Constraints and layout grids for everything else. |
Components that scaleMain components, instances with overrides that survive edits, component sets with variants, properties, swap instance, detach, reset overrides and go to main component, and an Assets panel with live thumbnails, search and drag-to-canvas into frames and auto layout. Local styles and variables (colour, number, string, boolean) with modes, aliases and scopes, edited in a Variables table and bound to fills, strokes, effects, layout grids and instance properties. Fills, strokes, effects and layout grids reorder by dragging their rows. |
Vectors without compromiseReal vector networks: the Pen and Pencil tools, vector edit mode with its own tools (pen that extends and branches paths, bend, paint bucket fills for any closed area, lasso, cut), point panel with handle mirroring and per-point corner radius, join, split and heal-on-delete, the shape builder (click or drag across the regions of overlapping shapes, strokes and open paths to merge them, Alt to remove them), boolean groups (union, subtract, intersect, exclude) whose operands stay editable on the canvas with the result following every drag, an operation per operand, flatten, outline stroke, arrowheads, dashes, per-side strokes and variable width strokes (width profile presets, and a Variable width tool that drags width points along the path, one side at a time with Alt). Rectangles with smooth (squircle) corners, polygons, stars, and arcs and rings shaped with on-canvas sweep, start and ratio handles or the Design panel's Arc fields. |
Paints and effectsSolid, linear, radial, angular and diamond gradients with on-canvas handles, image fills (fill, fit, crop, tile) with adjustments and presets, multiple fills and strokes, every blend mode, drop and inner shadows (spread offsets the outline exactly), layer and background blur (uniform or progressive), noise (mono, duo, multi), texture and glass (refraction, dispersion, frost, light), masks. Files are sRGB or Display P3, with exports tagged with the file's colour profile. |
Type that sets beautifullyText edited in place on the canvas (with inline IME composition), mixed styles within a paragraph, auto width and auto height, line height, letter and paragraph spacing, decoration, case, lists, OpenType features, variable font axes and text styles, right-to-left and mixed-direction text (Arabic, Hebrew) with the Unicode bidi algorithm, shaped with HarfRust and the open fonts from craft-fonts plus your system fonts. |
Prototype and hand offConnections, triggers, actions and Smart Animate-style transitions, variables with conditionals (if / else if / else built in the interaction editor, expressions likecount + 1), flows, a presentation view with device frames, hotspot hints and an Inspect panel, and a live preview pane. Alt to measure distances and padding on the canvas, Inspect mode with measurements, annotations in colour-coded categories, a ready-for-dev list with a focus view and Compare changes (before / after with property-level diffs since a frame was marked ready), and code (CSS, HTML, React, SwiftUI, Compose) where components take their properties as parameters, comment threads pinned to frames (replies, @mentions, reactions, read state) and named version history. Export any layer at any scale to PNG, JPG, WebP, SVG or PDF.
|
Our Discord is where people who make things hang out: designers sketching their first app, developers who just want a button to look right, illustrators, filmmakers, type nerds, and plenty of people still working out what they like to make. Share what you're building, ask for help, tell us what's broken or what you wish FigCraft could do. You're welcome here.
discord.gg/artcraft · getartcraft.com · The Crafting Apps · FigCraft
--- ## License and credits FigCraft is dual-licensed under [MIT](LICENSE-MIT) or [Apache-2.0](LICENSE-APACHE), at your option. Copyright (c) 2026 ArtCraft Team and the FigCraft contributors. Required notices are in [NOTICE](NOTICE). Every icon in FigCraft is drawn in code or made for this project, and bundled fonts, images and other assets keep their own open licenses; each one is listed with its author, source and license in [ATTRIBUTION.md](ATTRIBUTION.md). The ArtCraft name, wordmark and logos in [`docs/brand/`](docs/brand/) are trademarks of the ArtCraft Team and are not covered by this license. They may be used only unmodified, and only as part of this repository and FigCraft, under [`docs/brand/LICENSE-brand.txt`](docs/brand/LICENSE-brand.txt). Forks and modified versions must remove them. Figma is a trademark of Figma, Inc. FigCraft is an independent, open-source project and is not affiliated with, sponsored by or endorsed by Figma, Inc.; the name is used only to describe the workflows FigCraft is compatible with.
![]()
Made by the ArtCraft team and community.