diff --git a/AGENTS.md b/AGENTS.md index c596d8671..0fd6c8d3a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,7 +2,7 @@ Vue 3 + CanvasKit (Skia WASM) + Yoga WASM design editor. Tauri v2 desktop, also runs in browser. -**Compatibility tracking:** `packages/docs/development/figma-compatibility.md` tracks known Figma feature gaps and raw metadata coverage. Current architecture and commands live in this file. +**Roadmap:** `packages/docs/development/roadmap.md` tracks product direction, Figma compatibility gaps, and raw metadata coverage. Current architecture and commands live in this file. ## Monorepo diff --git a/README.md b/README.md index 21bbf1237..2221f6d4a 100644 --- a/README.md +++ b/README.md @@ -229,6 +229,8 @@ Figma is a closed platform that actively fights programmatic access. Their MCP s OpenPencil is the alternative: open source (MIT), reads .fig files natively, every operation is scriptable, and your data never leaves your machine. +See the [roadmap](https://openpencil.dev/development/roadmap) for product direction and current Figma compatibility gaps. + ## Contributing ### Setup diff --git a/packages/docs/.vitepress/root-theme.ts b/packages/docs/.vitepress/root-theme.ts index db0ff7dcd..c3838fc9a 100644 --- a/packages/docs/.vitepress/root-theme.ts +++ b/packages/docs/.vitepress/root-theme.ts @@ -34,7 +34,7 @@ export const rootThemeConfig = (): DefaultTheme.Config => ({ items: [ { text: 'Contributing', link: '/development/contributing' }, { text: 'Testing', link: '/development/testing' }, - { text: 'Figma Compatibility', link: '/development/figma-compatibility' }, + { text: 'Roadmap', link: '/development/roadmap' }, ], }, ], diff --git a/packages/docs/.vitepress/sidebars.ts b/packages/docs/.vitepress/sidebars.ts index 62ebeca59..1b5dba920 100644 --- a/packages/docs/.vitepress/sidebars.ts +++ b/packages/docs/.vitepress/sidebars.ts @@ -92,8 +92,8 @@ export const developmentSidebar = (prefix: string, label: string): DefaultTheme. items: [ { text: 'Contributing', link: `${prefix}/development/contributing` }, { text: 'Testing', link: `${prefix}/development/testing` }, + { text: 'Roadmap', link: `${prefix}/development/roadmap` }, { text: 'Renderer Profiler', link: `${prefix}/development/renderer-profiler` }, - { text: 'Figma Compatibility', link: `${prefix}/development/figma-compatibility` }, { text: 'Vector Conversion', link: `${prefix}/development/vector-conversion` }, ], }, diff --git a/packages/docs/development/figma-compatibility.md b/packages/docs/development/roadmap.md similarity index 83% rename from packages/docs/development/figma-compatibility.md rename to packages/docs/development/roadmap.md index d8134e2de..5449c1f17 100644 --- a/packages/docs/development/figma-compatibility.md +++ b/packages/docs/development/roadmap.md @@ -1,11 +1,62 @@ --- -title: Figma Compatibility Matrix -description: Current OpenPencil support for Figma design features, including import, rendering, UI editing, export round-trip, and raw Kiwi metadata coverage. +title: Roadmap +description: OpenPencil product roadmap and Figma compatibility tracking. --- -# Figma Compatibility Matrix +# Roadmap -This page tracks OpenPencil's current compatibility with Figma Design features. It is based on Figma's public Help Center feature areas and the current OpenPencil scene graph, Kiwi import/export, CanvasKit renderer, UI panels, CLI, and MCP tools. +OpenPencil is moving toward production-grade Figma compatibility while keeping design workflows scriptable, local-first, and fast on large files. + +## Current focus + +- Improve `.fig` import/export fidelity against real Figma files and Figma's own rendering. +- Keep large design systems responsive in the browser and desktop app. +- Make every important editor operation available through the CLI, MCP server, and SDK. +- Keep files on the user's machine unless collaboration is explicitly enabled. + +## Near-term work + +### Figma fidelity + +- Preserve and round-trip more Figma metadata safely. +- Add visual regression coverage for full multi-page `.fig` documents. +- Close high-impact renderer gaps: masks, blend modes, corner smoothing, pattern fills, and variable font axes. +- Improve boolean operation import so Figma `BOOLEAN_OPERATION` nodes remain editable where possible. + +### Editor depth + +- Complete variable inspector coverage for common numeric/text/layout fields. +- Improve component and instance editing: variant switching, property editing, and override inspection. +- Add first-class layout grid and guide rendering/editing. +- Expand vector editing workflows without regressing imported vector fidelity. + +### Automation + +- Tighten the inspect → act → render/measure → compare loop for agents. +- Improve deterministic CLI/MCP export and comparison tools for CI. +- Add more design linting and migration helpers for batch `.fig` and `.pen` workflows. +- Package desktop-side MCP integration so local agent workflows do not require global installs. + +### Performance and scale + +- Incremental layout and render invalidation for large documents. +- Better renderer profiling surfaces for slow nodes, effects, masks, and imported files. +- Smarter raster/retained caching that preserves fidelity during zoom and pan. + +## Later + +- Prototyping: frame connections, triggers, overlays, transitions, and preview mode. +- Comments: pins, threads, resolution state, and collaboration-aware display. +- Shared libraries: publish, consume, and update components/styles across files. +- More platform polish: Windows code signing, PWA support, and packaged updater improvements. + +## Non-goals + +- Cloud-first storage or mandatory accounts. +- Read-only automation surfaces that cannot modify documents. +- Feature work that sacrifices `.fig` import/export fidelity for convenience. + +This section tracks OpenPencil's current compatibility with Figma Design features. It is based on Figma's public Help Center feature areas and the current OpenPencil scene graph, Kiwi import/export, CanvasKit renderer, UI panels, CLI, and MCP tools. Legend: @@ -27,7 +78,7 @@ Figma's design documentation groups features into these areas: - Dev Mode: inspect, measurements, annotations, Code Connect, dev resources, ready-for-dev states, and Figma MCP. - Collaboration/file workflows: comments, version history, thumbnails, branches, library publishing, and multiplayer metadata. -## Feature matrix +## Figma compatibility matrix | Area | Import | Render | UI edit | Export round-trip | CLI/MCP | Notes | |---|---:|---:|---:|---:|---:|---| @@ -155,3 +206,4 @@ These are parsed or visible in Figma docs and most likely to cause visible diffe | Property panels | `src/components/properties/**`, `packages/vue/src/controls/**` | | CLI | `packages/cli/src/index.ts`, `packages/cli/src/commands/**` | | MCP/tools | `packages/core/src/tools/**`, `packages/mcp/src/tool/registration.ts` | +