Repository navigation
Releases: leomoon/figcraft
Releases · leomoon/figcraft
Release list
FigCraft v0.8.0
What's Changed
- Community batch 16: canvas label rename, View toggles kept, missing fonts, macOS glyphs (4 PRs) + rename selects the name by @bflatastic in storytold#785
- M7: list the fonts a file uses that aren't installed (storytold#752) by @Nael-Nathanael in storytold#758
- M8: draw the macOS shortcut glyphs the UI font lacks by @JimKnoxx in storytold#762
- M1: double-click a frame's name on the canvas to rename it (storytold#757) by @StrajnarFilip in storytold#766
- Keep View toggles such as Rulers in the preferences by @Silvertree2010 in storytold#385
- Community batch 17: glass labels, pencil preview, prototype delete fix, presenter menus, French catalog, Home search (6 PRs) by @bflatastic in storytold#788
- Search Home files and templates by @YarilaFox in storytold#765
- fix(ui): glass settings: label the light intensity, keep labels in their fields (storytold#256) by @Nael-Nathanael in storytold#770
- fix(canvas): the Pencil previews its stroke in its own colour and weight (storytold#256) by @Nael-Nathanael in storytold#771
- Use theme tokens in the presenter by @YarilaFox in storytold#772
- M9: French catalog at 100% of the strings (still a draft) by @pechnikov2026-star in storytold#783
- fix(proto): delete prototype interaction without deleting component (storytold#767) by @Natnael-Dev in storytold#776
- M9: Dutch catalog, machine-drafted (nl.toml) by @pechnikov2026-star in storytold#787
- M7: quitting on macOS ends the process after saving, avoiding the Touch Bar teardown crash (storytold#781) by @bflatastic in storytold#791
- M3: variable.import reads variables outside
metaand never imports nothing silently (storytold#790) by @bflatastic in storytold#793 - M1: REST import keeps slot layers and instances' slot content (storytold#792) by @bflatastic in storytold#796
- Community batch 18: recovery lock wait (storytold#334), Finnish catalog (2 PRs) by @bflatastic in storytold#800
- i18n: add Finnish (fi) interface by @esakom in storytold#794
- M8: wait for a recovery folder lock that frees itself (storytold#334) by @ashsajal1 in storytold#795
- M9: the other item lists merge one by item when a branch merges (gap 17) by @ashsajal1 in storytold#798
- M1: vector.create honours width/height by scaling the path by @phonedu in storytold#801
- M3: a bound colour variable's alpha applies once, not squared (storytold#802) by @bflatastic in storytold#804
- docs: drop references to competing commercial software by @dylanmtaylor in storytold#786
- ci: configure Dependabot for Cargo and GitHub Actions by @dylanmtaylor in storytold#825
- Desktop: refuse unknown command-line options instead of ignoring them (storytold#836) by @skylartaylor in storytold#844
- Community batch 20: automation roots for the CLI and links, web file opening, CI bump (4 PRs) by @bflatastic in storytold#883
- M7: the web build opens files: File ▸ Open, Import and dropped files (storytold#759) by @muamerETS in storytold#830
- ci(deps): bump actions/checkout from 4 to 7 in the actions group across 1 directory by @dependabot[bot] in storytold#841
- M8: a path in a root reached through a link is told why it is refused by @MortenHusted in storytold#819
- cli: confine info, export, convert, render and run to automation roots by @Hamza0101 in storytold#839
- M1: wrap errors name the command that was run by @MortenHusted in storytold#807
- M3: an explicit paint edit detaches the variable bound to what it changed by @MortenHusted in storytold#811
- M3: explicit edits of bound scalar fields detach their variable (storytold#809) by @justinjohn0306 in storytold#871
- M3: removing auto layout drops its gap and padding bindings (storytold#810) by @muamerETS in storytold#814
- M1: copying text layers puts their text on the clipboard (storytold#808) by @muamerETS in storytold#817
- Refuse empty mode lists and blank names in variable.createCollection by @Silvertree2010 in storytold#842
- Accept --control=PORT like --control PORT by @Silvertree2010 in storytold#848
- M7: CSS borders follow individual stroke sides by @MortenHusted in storytold#849
- M3: a refused slot names component.makeSlot by @MortenHusted in storytold#850
- M3: effects refuse keys they don't read instead of dropping them by @MortenHusted in storytold#851
- Reject server addresses whose port is not all ASCII digits by @Silvertree2010 in storytold#869
- Reject non-hex characters inside invite link percent escapes by @Silvertree2010 in storytold#876
- Clamp overflowing colour channels to 1 instead of 0 by @Silvertree2010 in storytold#875
- Reject non-hex characters in live::parse_color by @Silvertree2010 in storytold#878
- Keep multiline layer names inside the SwiftUI/Compose too-deep comment by @Silvertree2010 in storytold#829
- M4: toolbar marks share one size and stroke weight; a simpler Slice icon (storytold#737, storytold#738, storytold#739) by @slyim in storytold#826
- M7: Preserve active tab and support tab reordering by @YarilaFox in storytold#866
- M7: Keep tab strip usable with many files by @YarilaFox in storytold#831
- M7: refresh FigCraft brand colors and wordmark by @YarilaFox in storytold#880
- fix(pages): Delete deletes the page picked in the Pages list (storytold#859) by @AganzeFelicite in storytold#865
- storytold#855: The Search button for the pages doesn't work as expected by @AJMakesStuff in storytold#861
- M1: smart-selection drag reordering by @campbellcody in storytold#854
- adding individual padding controls in Layout panel by @Ahmed5Emad in storytold#832
- fix(text): a line separator breaks the line inside its paragraph (storytold#852) by @AganzeFelicite in storytold#867
- M7: a preference to start on the Home screen (storytold#857) by @justinjohn0306 in storytold#874
- feat(ui): add the interface size preference (storytold#540) by @leandrodslv in storytold#818
- M3: .fig imports keep component property bindings and values by @MortenHusted in storytold#847
- M3: instances follow the variable modes their main component sets by @MortenHusted in storytold#862
- M3: copied components paste as instances within their file by @MortenHusted in storytold#870
- M4: fonts installed while the app runs: text.rescanFonts, text.loadFont, text.refit by @attisvalentin in storytold#821
- feat(i18n): Complete Polish translation (pl) by @lukasz-sklad in storytold#812
- i18n: Georgian (ka) interface language by @devius in storytold#872
- Add Bengali UI Translation by @alrifatsabbir in storytold#813
- Place files dropped together on the canvas side by side by @Silvertree2010 in storytold#888
- M9: web release draws text again; craft-fonts pin back to the Latin fonts (storytold#885) by @bflatastic in storytold#895
- fix(collab-net): allow live sessions above 64 MiB and report accurate transport limits (storytold#857) by @kk376 in storytold#889
- Layout grids: Auto line width for columns and rows by @yelintong in storytold#881
- M1: nudge while measuring; distances follow, handles hide (storytold#894) by @bflatastic in storytold#898
- M1: node.get reports layer data (pluginData) (storytold#879) by @bflatastic in storytold#899
- M1: readable disabled and selected text (storytold#890) by @bflatastic in storytold#900
- i18n(ka): say how the Georgian catalog was made (AI-assisted, native-reviewed); still a draft by @devius in storytold#897
- Add missing Brazilian Portuguese UI translations by @johnpetersa19 in storytold#896
- M3: duplicating a main component makes an instance (storytold#892) by @bflatastic in storytold#902
- M9: Russian catalog catch-up: the 56 strings added since the review (machine-drafted) by @pechnikov2026-star in storytold#901
New Contributors
- @pechnikov2026-star made their first contribution in storytold#783
- @Natnael-Dev made their first contribution in https://github.com/storytold/figcraft/...
FigCraft v0.7.0
What's Changed
- ci: add comfortable runtime limits to unbounded jobs by @skylartaylor in storytold#397
- M7: home tests wait for the recent files reader instead of a fixed frame count (storytold#351) by @Barzabel in storytold#354
- Community batch 1: 22 reviewed fixes by @bflatastic in storytold#507
- M7: follow system theme from the first frame by @VanTan666 in storytold#262
- M7: a slice's export preview shows the page content under it by @ahmed-226 in storytold#265
- M7: double-clicking a page in the Pages list no longer closes the app by @marcoarnulfo in storytold#271
- fix(ui): gradient type icons that show their gradient (storytold#256) by @Nael-Nathanael in storytold#275
- fix(ui): disable alignment when the selection can't be aligned (storytold#256) by @Nael-Nathanael in storytold#276
- fix(pen): show the bezier handles while drawing (storytold#256) by @Nael-Nathanael in storytold#277
- fix(engine): Alt-drag copies snap to their original; Cmd+D repeats the step (storytold#256) by @Nael-Nathanael in storytold#283
- M1: a press on a corner handle resizes instead of picking the corner-radius handle by @marcoarnulfo in storytold#293
- fix(desktop): Windows' first preferred language picks the UI language (storytold#291) by @fede9234 in storytold#294
- fix(server): keep each team library version in its own file (storytold#206) by @MarekSpodBiedry in storytold#302
- fix(pages): inherit the current page background when adding pages (M1) by @tylerjenningsw in storytold#311
- fix(home): recent files notice files deleted while the home screen is open by @rcoenen in storytold#318
- fix(home): keep a long path from drawing over the file name in Open files by @patlux in storytold#324
- M1: SVG export keeps a nested frame's fill and stroke inside its parent's clip by @marcoarnulfo in storytold#327
- M9: a compaction cut short closes the file instead of confirming lost edits (storytold#183) by @Barzabel in storytold#340
- M7: the Small caps sample in Type settings draws without a box by @StrajnarFilip in storytold#355
- fix(engine): new text is readable on the frame it is drawn in (storytold#362) by @vxMacDev in storytold#372
- Copy and paste through the system clipboard in the browser by @mateusvillain in storytold#375
- Outline stroke on every selected layer, not just the first by @Silvertree2010 in storytold#386
- Keep corner resize cursors diagonal on wide and tall layers by @Silvertree2010 in storytold#388
- Keep text selection highlight inside the box at the end of the text by @Silvertree2010 in storytold#390
- Fix Send to back leaving layers above siblings across frames by @Silvertree2010 in storytold#444
- Community batch 2: 20 reviewed fixes by @bflatastic in storytold#510
- Add Japanese labels for templates, recent files, and editor controls by @haranishi in storytold#288
- packaging: RPM declares the glibc 2.35 floor, so RHEL 9 refuses it by @tydude001 in storytold#328
- collab: refuse sequence numbers a host cannot advance by @midasmatterhorn in storytold#343
- doc: name counters stop at u64::MAX instead of overflowing by @midasmatterhorn in storytold#344
- Replace every occurrence in edit.findReplace when replacement contains find by @Silvertree2010 in storytold#358
- Reject negative or fractional index in effect.set, export.update and export.remove by @Silvertree2010 in storytold#384
- M4: hanging punctuation test holds for fonts that kern with x offsets by @rcoenen in storytold#471
- M1: Cmd+R rename test sends Ctrl+R only where Ctrl is the command key by @rcoenen in storytold#472
- Refuse negative or fractional indexes in page.select and doc.switch by @Silvertree2010 in storytold#475
- fix(engine): read the documented gradient shorthand on every route (storytold#252) by @pcastro93 in storytold#254
- fix(engine): roll back failed commands during interactions too by @notdezzi in storytold#282
- fix(format): exclusive unique staging files for atomic save/export by @notdezzi in storytold#284
- M1: open .figcraft files from Finder, Open With and the Dock on macOS by @marcoarnulfo in storytold#290
- Count a recovery revision as copied only after its write succeeds by @Silvertree2010 in storytold#297
- Keep the redo steps when a failed command batch rolls back (storytold#196) by @MarekSpodBiedry in storytold#301
- M1: creating a variable collection no longer closes the app (storytold#224) by @Barzabel in storytold#314
- M1: deeply nested layers don't run the layout out of stack (storytold#210) by @Barzabel in storytold#330
- M3: renaming a style folder no longer closes the app by @Barzabel in storytold#337
- M1: cursor and double-click tests scan the system fonts themselves (storytold#333) by @Barzabel in storytold#339
- engine: long digit strings no longer overflow object.opacityKeys by @midasmatterhorn in storytold#353
- Community batch 3: 20 reviewed PRs by @bflatastic in storytold#529
- Avoid macOS file dialog reentrancy crashes by @justinjohn0306 in storytold#253
- M9: Russian interface translation by @VanTan666 in storytold#257
- M9: Turkish catalog (reviewed) by @yyamandevrim in storytold#263
- M6: .fig import lays out the layers of resized instances by their constraints by @marcoarnulfo in storytold#279
- Fix text edits rolling back prior document changes by @justinjohn0306 in storytold#280
- fix(format): import explicit variable modes referenced by asset key by @notdezzi in storytold#281
- Recovery: wait for the write in flight before an emergency save and before removing copies (storytold#202) by @MarekSpodBiedry in storytold#303
- engine: refuse page.move for node ids that are not pages by @midasmatterhorn in storytold#310
- M0.9: answer control requests while the window is hidden (storytold#269) by @AganzeFelicite in storytold#313
- fix(recovery): keep the version history and branches in recovery copies (storytold#185) by @vxMacDev in storytold#331
- M0.9: every hidden window answers control requests, not only the main one (storytold#269) by @patlux in storytold#332
- M1: keep a recovery copy until this run has its own (storytold#187) by @Barzabel in storytold#336
- Set the native window identity to match the desktop entry by @IanHollow in storytold#346
- Make edit.findReplace replace case-insensitive matches by @Silvertree2010 in storytold#361
- i18n: Czech (cs) UI catalog (draft) by @Losminek in storytold#469
- M7: find Unix user fonts under XDG_DATA_HOME by @IanHollow in storytold#474
- M9: Indonesian draft catalog by @RevDonz in storytold#477
- Text: colour emoji draw from their own colour tables (storytold#268) by @fede9234 in storytold#300
- Community batch 4: 11 reviewed PRs by @bflatastic in storytold#530
- fix(ui): scroll a long pages list in its own area so the layers stay in view by @marcoarnulfo in storytold#272
- M1: save files automatically (storytold#296) by @AganzeFelicite in storytold#305
- M1: leaving Design ends the pen path and goes back to Move by @marcoarnulfo in storytold#308
- fix(vector): keep the canvas still when entering vector edit mode and picking a region by @rcoenen in storytold#322
- M9: remove someone from a live session by @HaSh3003 in storytold#338
- fix(ui): step through the font picker with Up and Down (storytold#345) by @vxMacDev in storytold#352
- fix(engine): drag with the Text tool to make a fixed-width text box (storytold#360) by @vxMacDev in storytold#363
- Variables export as a download in the browser by @mateusvillain in storytold#368
- Let batch steps reference ids created by earlier steps by @edivanteixeira in storytold#400
- M0.9: a control line that isn't JSON ends the connection by @bflatastic in storytold#589
- Community batch 5: 59 reviewed PRs (storytold#482 and up) by @bflatastic in https...
FigCraft v0.6.0
What's Changed
- Everyday editing: number fields, outline options, Hide when publishing, cursors, panel widths, dark pages by @bflatastic in storytold#166
- Docs: privacy and online sharing by @bflatastic in storytold#167
- Your online files: remembered ownership, Home ▸ Online, tab marks, safe crash recovery by @bflatastic in storytold#165
- Starter templates, a Templates section on the home screen and first-run help by @bflatastic in storytold#170
- Online sharing: terms for the default server, and a build-time switch for it by @bflatastic in storytold#169
- .fig export: instance sizes, variables with modes, shared styles, variable-width strokes by @bflatastic in storytold#168
- Sessions test waits for the rename it asserts on by @bflatastic in storytold#172
- Core editor: wrapped-line alignment, prototype delays and overlay offsets, frame/group convert, effects on groups, variables in styles, component playground by @bflatastic in storytold#171
- fix(geom): enforce the path sample limit while flattening (fixes storytold#204) by @saadkhantareen in storytold#217
- fix(engine): preserve the underlying repeat command by @euisuh in storytold#212
- fix(control): bound frames and expire queued requests by @euisuh in storytold#213
- Fix silent truncation of deep SVG/PDF exports by @YTwsy in storytold#218
- fix(mcp): prevent replay after lost attached replies by @euisuh in storytold#211
- fix(collab): reject reverting an active live document by @euisuh in storytold#214
- fix(plugin): bound logs before allocation and host forwarding by @YTwsy in storytold#216
- fix(engine): keep proportions when a linked width or height is typed by @fede9234 in storytold#222
- fix(plugin): meter every host call and copied byte by @LabDennis in storytold#221
- fix(desktop): use Direct3D 12 on Windows instead of Vulkan by @JeremyYao in storytold#226
- fix(text): don't rebuild every time a craft-fonts manifest is missing by @JeremyYao in storytold#228
- Implement centralized transactional fix for command batch failures by @giuseeee88 in storytold#229
- fix(render): keep one outline depth budget through nested booleans by @justinjohn0306 in storytold#231
- feat(packaging): run figcraft-cli from the AppImage with
cli <args>by @muhammadyusuf-kurbonov in storytold#232 - Docs: roadmap entries for the community fixes in storytold#211, storytold#213, storytold#214, storytold#216 and storytold#218 by @bflatastic in storytold#230
- fix(deps): require ruzstd 0.9.1 for RUSTSEC-2026-0344 by @justinjohn0306 in storytold#234
- fix(doc): reject and repair layer cycles and repeated children by @justinjohn0306 in storytold#233
- fix(desktop): write preferences owner-only on Unix by @justinjohn0306 in storytold#235
- fix(server): never persist a snapshot the reader refuses by @justinjohn0306 in storytold#236
- fix(ui): keep wrapped colour picker swatches inside the picker by @justinjohn0306 in storytold#237
- M1: full screen (F11 / View > Full screen) by @nathan-fontenele in storytold#238
- feat(dev-mode): Leptos code with component properties, instance calls and Code Connect by @justinjohn0306 in storytold#240
- fix(svg): budget SVGZ expansion and embedded SVG documents on import by @nathan-fontenele in storytold#241
- fix(format): report images a native file lost on loading by @nathan-fontenele in storytold#242
- feat(vector): hover, hatch, select and drag filled regions in vector edit mode by @rcoenen in storytold#243
- Docs: roadmap entries for the community fixes in storytold#221, storytold#226, storytold#228, storytold#229, storytold#231 to storytold#238 and storytold#240 to storytold#242 by @bflatastic in storytold#246
- CI: FreeBSD and Windows ARM64 nightly and on release, not per PR by @echelon in storytold#121
- feat(home): recent files as thumbnail cards, with list view and sorting by @rcoenen in storytold#249
New Contributors
- @saadkhantareen made their first contribution in storytold#217
- @euisuh made their first contribution in storytold#212
- @YTwsy made their first contribution in storytold#218
- @fede9234 made their first contribution in storytold#222
- @LabDennis made their first contribution in storytold#221
- @JeremyYao made their first contribution in storytold#226
- @giuseeee88 made their first contribution in storytold#229
- @justinjohn0306 made their first contribution in storytold#231
- @muhammadyusuf-kurbonov made their first contribution in storytold#232
- @nathan-fontenele made their first contribution in storytold#238
- @rcoenen made their first contribution in storytold#243
Full Changelog: storytold/figcraft@v0.5.1...v0.6.0
FigCraft v0.5.1
What's Changed
- Double-clicks into text in groups, and a drag threshold by @bflatastic in storytold#160
- Batch 18: text double-click select-all, .fig export that opens elsewhere, live sessions per document, measured text metrics by @bflatastic in storytold#161
- Share with a join code: online through the built-in server, or on the local network by @bflatastic in storytold#162
- Release prep: 0.5.1 by @bflatastic in storytold#163
- Release: retry stapling and its validation on macOS by @bflatastic in storytold#164
Full Changelog: storytold/figcraft@v0.5.0...v0.5.1
FigCraft v0.5.0
What's Changed
- App icon: the chameleon, vectorised like the other Crafting Apps by @bflatastic in storytold#156
- App mark: the chameleon's curled tail by @bflatastic in storytold#157
- Docs: retake the README screenshots with the new app mark by @bflatastic in storytold#158
- App icon: full rounded tile on Windows and Linux by @bflatastic in storytold#159
Full Changelog: storytold/figcraft@v0.4.0...v0.5.0
FigCraft v0.4.0
What's Changed
- M9: live sessions in the browser; join links and dialog polish by @bflatastic in storytold#106
- M9: collaboration polish: unique ids for styles, variables and comments; live text carets by @bflatastic in storytold#107
- M4: live boolean editing, arc fields, shape builder on strokes, one-sided widths by @bflatastic in storytold#111
- M7: home and moon icon fixes by @bflatastic in storytold#110
- M9: standalone collaboration server with share links and permissions by @bflatastic in storytold#112
- M3: extended variable collections, variables import/export, gradient stop and variant bindings by @bflatastic in storytold#114
- M1: open recent, outlines for the selection, mask outlines by @bflatastic in storytold#115
- M6: animated GIF fills and TIFF images by @bflatastic in storytold#116
- M9: branches: create, update from main, review and merge by @bflatastic in storytold#119
- M9: team libraries on the server; swap library by @bflatastic in storytold#117
- M4: text on a path and pattern fills by @bflatastic in storytold#118
- M4: stretch and scatter brushes, pen pressure by @bflatastic in storytold#120
- M6: code connect: link components to real code by @bflatastic in storytold#122
- M8: canvas fixes: boolean hit testing, group drags, frame outlines and slices view, a flaky idle test by @bflatastic in storytold#123
- M7: plugin panels and settings by @bflatastic in storytold#124
- M9: hosting figcraft-server: wss in the desktop app, server releases, deployment guide by @bflatastic in storytold#125
- M7: localization layer by @bflatastic in storytold#128
- M8: several windows: New window, open a tab in its own window, per-window control and MCP by @bflatastic in storytold#126
- M8: Display P3 honest minimum: gamut warning in the colour picker, soft-proof sRGB by @bflatastic in storytold#127
- M2: auto layout behaviour suite and fixes by @bflatastic in storytold#130
- M8: Windows QA fixes by @bflatastic in storytold#131
- M6: .fig import (best effort) by @bflatastic in storytold#132
- M1: selection and transform behaviour suite and fixes by @bflatastic in storytold#133
- M4: text behaviour suite: metrics, line height, CJK by @bflatastic in storytold#134
- M1: layers panel keyboard (box selection, F2 rename, context menu) and stroke styles by @bflatastic in storytold#135
- M3: embedded image colour profiles by @bflatastic in storytold#136
- Batch: components, prototyping, styles and variables, frames behaviour suites by @bflatastic in storytold#138
- Batch: paint and effects, shapes and vector, .fig import tail, export and inspect, canvas navigation by @bflatastic in storytold#139
- Batch: comments and version history, text lists and decorations, docs recompute by @bflatastic in storytold#140
- Batch: branch version history, extended collections tail, dev resources links by @bflatastic in storytold#141
- M4: vector multi-edit and edit tail by @bflatastic in storytold#142
- Batch: layers and assets panels suite, cursor chat and spotlight by @bflatastic in storytold#143
- M9: French, German and Brazilian Portuguese draft catalogs by @bflatastic in storytold#144
- Batch: plugin widgets, Japanese and Korean catalogs with CJK UI fonts by @bflatastic in storytold#145
- Batch: plugin directory on figcraft-server, prototyping tail by @bflatastic in storytold#146
- Batch: Latin American Spanish overlay, Simplified Chinese draft catalog by @bflatastic in storytold#147
- M11: plugin installs saved at once; directory and library requests off the UI thread by @bflatastic in storytold#148
- M1: keyboard shortcut parity suite and bindings by @bflatastic in storytold#149
- M6: experimental .fig export by @bflatastic in storytold#150
- Batch: rotation origin and place-with-Enter, draft catalogs catch up by @bflatastic in storytold#151
- Docs: README showcase screenshots and example files by @bflatastic in storytold#152
- M7: headless renders use system fonts by @bflatastic in storytold#153
- M9: open hosting mode for a public figcraft-server by @bflatastic in storytold#154
- Release prep: 0.4.0 by @bflatastic in storytold#155
Full Changelog: storytold/figcraft@v0.3.1...v0.4.0
FigCraft v0.3.1
What's Changed
- M7: pixel-exact icon set by @bflatastic in storytold#61
- M5: prototype device rotation, presentation scaling, scroll momentum, mode picker by @bflatastic in storytold#62
- M4: variable width strokes by @bflatastic in storytold#58
- M8: 50k-layer zoomed-out renders and faster save/load by @bflatastic in storytold#63
- M4: vector edit transform box and point snapping by @bflatastic in storytold#64
- M6: PDF export depth and REST conditional and variable-mode actions by @bflatastic in storytold#65
- M5: responsive presentation, device colours and custom sizes, library modes by @bflatastic in storytold#66
- M7: ROADMAP refresh after the day-2 afternoon batch by @bflatastic in storytold#67
- M1: 2x pixel preview by @bflatastic in storytold#68
- M3: effects fidelity: backdrop blur in clipped frames, exact shadow spread, glass, noise and texture by @bflatastic in storytold#69
- M1: frame guides by @bflatastic in storytold#70
- M1: keyboard navigation in the layers panel by @bflatastic in storytold#71
- M3: text depth: RTL names, text style browser, axis previews by @bflatastic in storytold#72
- M8: fix a flaky render test (shared image ids) by @bflatastic in storytold#75
- M3: variable bindings follow paint and effect lists by @bflatastic in storytold#73
- M7: comments polish by @bflatastic in storytold#74
- M3: line-end previews in the stroke menus by @bflatastic in storytold#76
- M1: measuring, scale tool handles and selection depth by @bflatastic in storytold#77
- M7: roadmap refresh after storytold#68–storytold#77 by @bflatastic in storytold#79
- M2: auto layout keyboard reordering and section hide contents by @bflatastic in storytold#78
- M6: Dev Mode component code, annotations and ready for dev by @bflatastic in storytold#80
- M3: reorder paints, effects and layout grids; grid and instance property variable bindings by @bflatastic in storytold#81
- M5: build conditionals in the interaction editor; hotspot hints; inspect in the presenter by @bflatastic in storytold#82
- M7: popup menus sized to their content by @bflatastic in storytold#83
- M4: arc handles on the canvas by @bflatastic in storytold#84
- M1: Tab renames the next layer by @bflatastic in storytold#85
- M3: progressive blur, inner shadows under strokes, noise and texture in SVG by @bflatastic in storytold#86
- M1: rulers and guides on rotated frames by @bflatastic in storytold#87
- M7: keyboard shortcut parity by @bflatastic in storytold#88
- M8: retained canvas correctness by @bflatastic in storytold#89
- M6: SVG import fidelity by @bflatastic in storytold#90
- M8: the canvas drag test waits for renders instead of fixed sleeps by @bflatastic in storytold#93
- M6: PDF print options (bleed, marks, CMYK) by @bflatastic in storytold#92
- M3: components at scale; Alt-drag to swap instances by @bflatastic in storytold#91
- M4: rotated frame labels; right-to-left list markers by @bflatastic in storytold#95
- M5: drag to reorder prototype actions; variable mode lookups in expressions by @bflatastic in storytold#94
- M8: accessibility: screen reader names, keyboard navigation mode by @bflatastic in storytold#96
- M6: Dev Mode compare changes, focus view, annotation categories by @bflatastic in storytold#97
- M9: real-time collaboration protocol (design) by @bflatastic in storytold#98
- M8: no redraws while idle by @bflatastic in storytold#99
- M7: WASM plugins by @bflatastic in storytold#101
- M7: docs refresh after storytold#101 by @bflatastic in storytold#102
- M9: collaboration core: ids, change sets, server ordering, convergence by @bflatastic in storytold#103
- Progress docs: full re-measure against Figma 126.10.7 (alpha, ~46% ready) by @echelon in storytold#100
- M9: live sessions: host from the app, invite links, live cursors and presence by @bflatastic in storytold#104
- M9: collaboration: per-user undo, rejections, reconnect by @bflatastic in storytold#105
- Release prep: 0.3.0 and linux-riscv64 release job by @echelon in storytold#108
- Web: size-optimised wasm profile (27.0 → 18.1 MB); bump to 0.3.1 by @echelon in storytold#109
New Contributors
- @echelon made their first contribution in storytold#100
Full Changelog: storytold/figcraft@v0.2.0...v0.3.1
FigCraft v0.2.0
What's Changed
- M4: fix the components hug test on machines without craft-fonts by @bflatastic in storytold#1
- M4: vector edit mode tools: pen branching, bend, paint bucket, lasso, cut, mirroring, point panel by @bflatastic in storytold#2
- M2: auto layout depth: min/max UI, ignore auto layout toggle, text baseline alignment, grid tracks and cells by @bflatastic in storytold#3
- M1: layers panel depth: search, shift-click ranges, sticky collapse, reveal selection, Tab rename by @bflatastic in storytold#4
- M4: Assets panel: thumbnails, search, drag components onto the canvas into frames and auto layout by @bflatastic in storytold#5
- M1: keyboard transforms: arrows reorder auto layout children, Cmd+arrows resize by @bflatastic in storytold#6
- M1: paint depth: gradient stops on the canvas, colour models, colours on this page by @bflatastic in storytold#7
- M4: text depth: inline IME composition, variable font axes, range-aware typography polish by @bflatastic in storytold#8
- M1: ruler guides: drag out of the rulers, move, drag back to remove, position tags by @bflatastic in storytold#9
- M5: prototyping: custom bezier and spring easings, device frames in the presenter by @bflatastic in storytold#10
- M1: frame presets panel for the Frame tool; presets land beside existing frames; swap orientation by @bflatastic in storytold#12
- M3: variable binding in the Design panel; bound layers follow variable edits by @bflatastic in storytold#11
- M3: effect and grid styles in the Design panel by @bflatastic in storytold#14
- M6: import REST API file JSON by @bflatastic in storytold#13
- M1: stroke settings: dash and gap, join and miter angle, end points, individual strokes by @bflatastic in storytold#16
- M6: Inspect code in CSS, SwiftUI and Jetpack Compose by @bflatastic in storytold#15
- M1: mask types: alpha, vector outline and luminance masks by @bflatastic in storytold#17
- M4: text range fills in the Fill section by @bflatastic in storytold#18
- M5: prototyping: overlays animate out when closed by @bflatastic in storytold#19
- Roadmap: recompute totals after day 2 by @bflatastic in storytold#20
- M4: expose nested instances' properties on instances by @bflatastic in storytold#22
- M1: fix inner shadow bands: shadow from the shape, not the layer's crop; banded rendering matches one piece by @bflatastic in storytold#24
- M6: version history: versions saved in the .figcraft file, version commands and panel by @bflatastic in storytold#21
- M4: vector eraser in edit mode by @bflatastic in storytold#25
- M1: sections and frames: resize to fit, section colours, ready-for-dev status by @bflatastic in storytold#23
- M6: paste images from other apps; the newest clipboard content wins by @bflatastic in storytold#26
- M4: component descriptions in the Design panel by @bflatastic in storytold#28
- M2: auto layout drag: wrap rows and grid cells by @bflatastic in storytold#27
- M5: prototyping: edit interactions on several layers at once by @bflatastic in storytold#29
- M1: rotated handle box for layers that share a rotation by @bflatastic in storytold#30
- M3: bind variables to opacity, padding, gaps, sizes, font size, text and visibility by @bflatastic in storytold#31
- M3: Variables editor with aliases, scopes, and rename/delete for variables, modes and collections by @bflatastic in storytold#33
- M4: right-to-left and mixed-direction text (Unicode bidi) by @bflatastic in storytold#34
- M7: performance: retained canvas renders, virtual layers panel, shared text layouts, cargo xtask bench by @bflatastic in storytold#35
- M4: local libraries: publish, enable, place and apply, updates with overrides kept by @bflatastic in storytold#32
- M6: view a version on the canvas before restoring it by @bflatastic in storytold#36
- M1: layers panel drag polish: edge scrolling, spring-open groups, ghost label by @bflatastic in storytold#37
- M6: autosave checkpoints in version history by @bflatastic in storytold#38
- M7: README: ArtCraft logo and app icon load in the private repo by @bflatastic in storytold#40
- M4: shape builder tool (Shift+M) by @bflatastic in storytold#39
- M6: Inspect tab: properties with styles and variables, redlines on hover by @bflatastic in storytold#41
- M6: REST import of prototypes and variables; export panel polish by @bflatastic in storytold#42
- M1: pixel preview by @bflatastic in storytold#43
- M4: arrow keys move visually through right-to-left text by @bflatastic in storytold#44
- M1: drag layers onto a page in the Pages list by @bflatastic in storytold#46
- M2: auto layout nesting: one-pass nested hug/fill, coherent sizing, drag across nested frames by @bflatastic in storytold#45
- M6: Inspect tab: assets list with export by @bflatastic in storytold#47
- M5: scrolling inside device frames and a prototype preview pane by @bflatastic in storytold#48
- M6: HTML + CSS code for whole frames by @bflatastic in storytold#50
- M1: Scale tool panel: scale by factor or size around an anchor by @bflatastic in storytold#49
- M7: ROADMAP refresh: weighted depth ~68%, updated estimates and gap list by @bflatastic in storytold#51
- M3: variable groups in the Variables editor sidebar by @bflatastic in storytold#52
- M3: bind line height and letter spacing to variables by @bflatastic in storytold#53
- M3: paint: colour profiles (Display P3), image adjustment presets, style picker by @bflatastic in storytold#54
- M7: README: ArtCraft logo from a public URL so it loads in every client by @bflatastic in storytold#57
- M3: bind effects to variables by @bflatastic in storytold#55
- M3: component slots and nested override edge cases by @bflatastic in storytold#56
- M1: custom window title bar by @bflatastic in storytold#59
- M3: library variables by @bflatastic in storytold#60
Full Changelog: https://github.com/storytold/figcraft/commits/v0.2.0