openpencil/src/components
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
..
assets-panel feat(settings): centralize motion policy and add animation preference 2026-09-10 23:10:24 +03:00
brand feat: refresh branding with generated platform icons (#707) 2026-09-16 11:54:07 +03:00
canvas feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
chat feat(app): show who works on each page (#815) 2026-10-04 01:18:16 +04:00
code-editor feat(code): link the Code tab to canvas layers and sync both ways (#805) 2026-10-04 10:08:40 +00:00
collab-panel feat(app): follow people and agents from the toolbar avatars (#807) 2026-10-04 00:09:40 +04:00
color-picker-panel refactor!: move shared primitives below dom-css and core (#771) 2026-09-26 11:39:11 +04:00
ColorPicker build: upgrade oxfmt and format Vue imports (#669) 2026-09-10 02:45:13 +03:00
commands feat(app): jump between pages from the command palette (#801) 2026-10-01 20:26:35 +04:00
design-check feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
document fix: protect unsaved documents and defer credential access (#713) 2026-09-17 15:25:15 +03:00
editor feat: check designs live with a Lint panel, canvas markers, and fixes (#804) 2026-10-04 10:08:39 +00:00
fill-picker fix(core): draw gradient and image strokes as the paint they are (#868) 2026-10-04 13:25:45 +00:00
font-picker build: upgrade oxfmt and format Vue imports (#669) 2026-09-10 02:45:13 +03:00
font-settings perf(properties): retain inactive panels safely 2026-09-15 17:01:44 +03:00
font-status fix(fonts): explain PingFang substitution and draw its CJK text (#781) 2026-09-26 11:14:30 +04:00
home feat: refresh branding with generated platform icons (#707) 2026-09-16 11:54:07 +03:00
inputs feat(editor): checkpoint live interaction improvements 2026-09-15 11:36:17 +03:00
LayerTree feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
libraries feat(settings): centralize motion policy and add animation preference 2026-09-10 23:10:24 +03:00
links fix: convert document colour profiles, keep text edits live, and fix .fig exports (#716) 2026-09-18 00:43:10 +03:00
mobile-hud refactor(ui): compose shared editor controls (#670) 2026-09-10 12:09:06 +03:00
MobileHud feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
navigation feat(updater): show download progress while installing an update 2026-09-25 23:15:14 +04:00
preparation feat: refresh branding with generated platform icons (#707) 2026-09-16 11:54:07 +03:00
presence feat(app): show who works on each page (#815) 2026-10-04 01:18:16 +04:00
properties feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
recovery build: upgrade oxfmt and format Vue imports (#669) 2026-09-10 02:45:13 +03:00
selection refactor(ui): compose shared editor controls (#670) 2026-09-10 12:09:06 +03:00
settings feat(ai): show what each AI edit changed in its tool call (#812) 2026-10-03 23:32:37 +04:00
shell feat(updater): show download progress while installing an update 2026-09-25 23:15:14 +04:00
Toolbar feat: check designs live with a Lint panel, canvas markers, and fixes (#804) 2026-10-04 10:08:39 +00:00
ui feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
variables feat: write variables as a CSS token stylesheet (#856) 2026-10-04 18:15:52 +00:00
ChatPanel.vue feat(app): show who works on each page (#815) 2026-10-04 01:18:16 +04:00
CodePanel.vue 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
DesignPanel.vue feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
EditorCanvas.vue feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
FileApiBanner.vue feat(updater): show download progress while installing an update 2026-09-25 23:15:14 +04:00
LayersPanel.vue feat: refresh branding with generated platform icons (#707) 2026-09-16 11:54:07 +03:00
MobileDrawer.vue feat(settings): centralize motion policy and add animation preference 2026-09-10 23:10:24 +03:00
PagesPanel.vue feat: create, fill, and edit slots (#862) 2026-10-04 17:02:28 +00:00
PropertiesPanel.vue feat: check designs live with a Lint panel, canvas markers, and fixes (#804) 2026-10-04 10:08:39 +00:00
TabBar.vue fix: protect unsaved documents and defer credential access (#713) 2026-09-17 15:25:15 +03:00