openpencil/src/app
Danila Poyarkov 01e58a3ad0
feat: write variables as a CSS token stylesheet (#856)
* feat: write variables as a CSS token stylesheet

Copy a collection as CSS custom properties or a Tailwind v4 theme from the variables dialog, print it with openpencil tokens, and rebuild design_to_tokens on the same generator. Default modes go in :root or @theme, other modes override under their condition, and aliases are declared again in each mode scope so they follow it.

* fix: give modes that slug alike their own selector and variant

Two modes in one collection whose names reduce to the same slug, such as Dark and dark!, shared one default selector and Tailwind variant, so the later mode silently overrode the earlier one. Slugs are now numbered in mode order, as variable names already are.
2026-10-04 18:15:52 +00:00
..
ai fix: validate parsed JSON at untrusted boundaries with Valibot (#855) 2026-10-04 17:01:50 +00:00
automation fix: validate parsed JSON at untrusted boundaries with Valibot (#855) 2026-10-04 17:01:50 +00:00
cache fix: validate parsed JSON at untrusted boundaries with Valibot (#855) 2026-10-04 17:01:50 +00:00
code feat(lint): suggest group-to-frame and hidden-layer fixes; keep canvas edits in code previews (#870) 2026-10-04 12:46:06 +00:00
collab feat(app): follow people and agents from the toolbar avatars (#807) 2026-10-04 00:09:40 +04:00
demo feat(scene-graph)!: make a stroke a paint (#864) 2026-10-04 13:38:05 +04:00
diagnostics feat(settings): configure tool access, MCP failures, and step limits 2026-09-17 23:55:58 +03:00
document feat: control documents, history, settings, and tools from the CLI and MCP (#871) 2026-10-04 16:02:36 +00:00
editor feat: write variables as a CSS token stylesheet (#856) 2026-10-04 18:15:52 +00:00
http
i18n/notifications feat: write variables as a CSS token stylesheet (#856) 2026-10-04 18:15:52 +00:00
integrations fix: validate parsed JSON at untrusted boundaries with Valibot (#855) 2026-10-04 17:01:50 +00:00
libraries fix: validate parsed JSON at untrusted boundaries with Valibot (#855) 2026-10-04 17:01:50 +00:00
performance/navigation perf(canvas): rebuild navigation rendering (#591) 2026-08-31 13:39:40 +03:00
presence feat(app): show who works on each page (#815) 2026-10-04 01:18:16 +04:00
recent-files refactor(app): polish files workspace and New tabs 2026-08-20 17:20:33 +03:00
runtime fix: explain unsupported browsers instead of a blank window (#745) 2026-09-22 14:40:59 +04:00
settings feat: control documents, history, settings, and tools from the CLI and MCP (#871) 2026-10-04 16:02:36 +00:00
shell feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
storage feat: persist AI conversations and add chat history (#661) 2026-09-08 11:19:07 +03:00
tabs feat: control documents, history, settings, and tools from the CLI and MCP (#871) 2026-10-04 16:02:36 +00:00
tauri fix(tauri): preserve HTTP contracts when bypassing IPC 2026-09-13 15:48:40 +03:00
usage style(settings): separate composable responsibilities 2026-09-06 15:41:15 +03:00
browser-bridge.ts refactor: scope browser test instrumentation and global types (#667) 2026-09-10 14:26:36 +03:00