bflatastic
15321a56ff
Merge #1198 : fill/stroke props: accept 'none' and null as no paint (@lileeei)
...
# Conflicts:
# ROADMAP.md
2026-10-24 09:16:04 +07:00
bflatastic
1e4a31a303
Merge #1199 : M3: instance-swap properties in the Dev Mode component playground (@marcoarnulfo)
2026-10-24 09:15:41 +07:00
bflatastic
6063d3e9a9
Merge #1189 : M4: vector edit transform box around points of several layers (@marcoarnulfo)
...
# Conflicts:
# docs/target-app-parity.md
# docs/ui-parity.md
2026-10-24 09:15:11 +07:00
bflatastic
8f9e2fedc7
Merge #1047 : M7: Type settings keeps its width with long labels ( #1029 ) (@AganzeFelicite)
...
# Conflicts:
# ROADMAP.md
2026-10-24 09:14:10 +07:00
bflatastic
07191c881d
Merge #1030 : M1: individual corner fields sit at their corners, each with its own icon ( #1002 ) (@muamerETS)
2026-10-24 09:13:48 +07:00
bflatastic
8eb5624460
Merge #986 : fix: = zooms in, matching - zooming out ( #973 ) (@Ridzzz0Alam)
2026-10-24 09:13:43 +07:00
bflatastic
f31199d4ca
Merge #1018 : M1: a selected unfilled shape drags from inside its box ( #910 ) (@muamerETS)
2026-10-24 09:13:38 +07:00
bflatastic
370faa52da
Merge #1033 : M3: a variant switch takes the new variant's resizing unless the instance set its own (@MortenHusted)
2026-10-24 09:13:33 +07:00
bflatastic
ab5a62387b
Merge #1034 : M6: SVG import fills open subpaths the way SVG does (@MortenHusted)
2026-10-24 09:13:28 +07:00
bflatastic
98040b48a5
Merge #1037 : M3: a variable mode set on a layer inside an instance is an override (@MortenHusted)
2026-10-24 09:13:23 +07:00
bflatastic
83f840f802
Merge #1043 : M3: a swapped nested instance keeps its outer main's overrides (@MortenHusted)
2026-10-24 09:13:18 +07:00
bflatastic
d394e952c6
Merge #1044 : M4: individual stroke weights follow the corner radius like CSS borders (@MortenHusted)
2026-10-24 09:13:13 +07:00
bflatastic
ac5783d0cd
Merge #1135 : M5: prototype actions lay out what they change like the canvas does (@MortenHusted)
...
# Conflicts:
# docs/prototyping-parity.md
2026-10-24 09:13:08 +07:00
bflatastic
293ab33eaa
Merge #1166 : M7: Cmd/Ctrl+S saves while a panel field has the keyboard ( #1157 ) (@switch87)
2026-10-24 09:12:49 +07:00
bflatastic
90f401d73c
Merge #1173 : M8: the unsaved-changes question on close offers Save ( #1170 ) (@switch87)
2026-10-24 09:12:45 +07:00
bflatastic
2053098e8e
Merge #1200 : The colour picker's eyedropper applies the colour to the paint the picker edits (Reported in storytold/vectorcraft#3342 ) (@marcoarnulfo)
...
# Conflicts:
# crates/engine/src/tools.rs
2026-10-24 09:12:42 +07:00
bflatastic
2c9f5267a9
Merge #1232 : M5: a top-level frame taller than the device scrolls without an overflow setting (@seltzdesign)
2026-10-24 09:11:46 +07:00
bflatastic
703d55cc67
Merge #983 : Fix invisible dropdown options in the light theme (@Ridzzz0Alam)
2026-10-24 09:11:41 +07:00
BFlat
8167f13a6a
M12: Boards: a collaborative whiteboard file kind ( #1229 )
...
Board files (File > New board) with sticky notes, shapes with text, connectors that follow what they join (straight or elbow, arrowheads, labels), marker, highlighter and eraser, and stamps; a board toolbar and a contextual bar; the Design panel hidden on boards, Prototype and Dev Mode refused there. Boards are ordinary FigCraft files built from ordinary layers, so saving, undo, export, MCP and live sessions work unchanged. File tabs, recent files and Open files show a pen nib for design files and a note for boards (original icons drawn in code).
2026-10-24 04:18:55 +07:00
BFlat
17ed21d128
M6: Dev Mode tail: imports in layer trees, compare with versions, an inspect-only canvas ( #538 )
...
Import lines for connected components inside generated layer trees; Compare changes against any saved version; a Dev Mode behaviour suite with an inspect-only canvas (menus, shortcuts, paste and Revert to saved refuse design edits; a drag under way is dropped on entering), Changed in the ready list, statuses only on top-level frames and sections; read-only plugins' panels from the Inspect tab.
2026-10-24 02:56:55 +07:00
BFlat
d6e8a6e874
Docs: roadmap entries for the community PRs in #507 , #510 , #529 and #530 ( #587 )
...
Roadmap, milestone and parity rows for the 93 community PRs landed in batches #507 , #510 , #529 and #530 .
2026-10-24 02:02:19 +07:00
BFlat
5fa586306a
Merge pull request #1049 from storytold/readme/app-icon
...
README: the app icon above the title
2026-10-22 18:01:42 +07:00
bflatastic
ce8a224c9e
README: the app icon above the title
2026-10-22 17:57:45 +07:00
BFlat
74c4a84da3
Merge pull request #907 from RiceDee/fix/idle-tests-font-scan
...
test(ui-egui): idle harness scans system fonts before its first frame
2026-10-21 16:32:52 +07:00
BFlat
123e46550f
Merge pull request #909 from RiceDee/fix/component-set-name
...
#903 follow-up: name new component sets from the variant path, not the first property
2026-10-21 16:31:04 +07:00
BFlat
44e64d8d47
Merge pull request #933 from SiadeLucas/feat/pages-scroll-area
...
ui: keep the current page scrolled into view in the pages list (#930 )
2026-10-21 16:21:38 +07:00
BFlat
bb532a5790
Merge pull request #908 from RiceDee/feat/903-variants-discoverability
...
#903 : Combine as variants in the context menu and Design panel; Add variant on a lone component
2026-10-21 16:01:25 +07:00
BFlat
f6f44dcc53
Merge pull request #928 from AganzeFelicite/fix/web-drop-opens-documents-916
...
M7: a document dropped on the canvas opens as a new file (#916 )
2026-10-21 15:50:24 +07:00
BFlat
96a82edecf
Merge pull request #939 from YarilaFox/fix/comment-draft-on-tool-switch
...
M7: dismiss comment draft when switching tools
2026-10-21 15:48:42 +07:00
BFlat
f143260c3a
Merge pull request #935 from YarilaFox/fix/saved-document-title
...
M7: show the chosen filename for saved documents
2026-10-21 15:47:09 +07:00
BFlat
bb93e5e433
Merge pull request #929 from Silvertree2010/fix/h881-local-from-link-accepts-a-sign-i
...
Reject non-hex characters in Local::from_link token
2026-10-21 15:44:45 +07:00
BFlat
da96d54157
Merge pull request #961 from Silvertree2010/fix/h1145-reversesubpaths-reverse-subpaths
...
Keep open subpaths open in ReverseSubpaths::reverse_subpaths
2026-10-21 15:35:17 +07:00
BFlat
a1758c163f
Merge pull request #958 from Silvertree2010/fix/h1112-live-text-svg-export-capitalises
...
Fix Title Case restarting mid-word across styled runs in SVG export
2026-10-21 15:34:55 +07:00
BFlat
b1d00f0802
Merge pull request #943 from Silvertree2010/fix/h932-trim-num-prints-any-whole-number
...
Fix trim_num saturating whole numbers beyond i64 range
2026-10-21 15:34:34 +07:00
BFlat
efb95b29bf
Merge pull request #938 from Silvertree2010/fix/h911-same-server-ignores-the-scheme-s
...
Strip default port in same_server when the address has a path
2026-10-21 15:34:08 +07:00
BFlat
9257f97d69
Merge pull request #911 from Silvertree2010/fix/h737-parse-css-accepts-a-malformed-al
...
Reject malformed alpha and extra args in Color::parse_css
2026-10-21 15:33:47 +07:00
BFlat
dd6bd3fe1c
Merge pull request #901 from pechnikov2026-star/community/russian-catch-up
...
M9: Russian catalog catch-up: the 56 strings added since the review (machine-drafted)
2026-10-20 06:32:45 +07:00
bflatastic
9b711e212b
Merge main into #901
2026-10-20 06:20:04 +07:00
BFlat
b5038726c4
Merge pull request #902 from storytold/fix/issue-892
...
M3: duplicating a main component makes an instance (#892 )
2026-10-20 06:19:17 +07:00
BFlat
9c6920cf7d
Merge pull request #896 from johnpetersa19/main
...
Add missing Brazilian Portuguese UI translations
2026-10-20 06:12:04 +07:00
BFlat
2bcd004071
Merge pull request #897 from devius/ka-header
...
i18n(ka): say how the Georgian catalog was made (AI-assisted, native-reviewed); still a draft
2026-10-20 06:11:27 +07:00
bflatastic
f979878d9e
Merge main into fix/issue-892
...
# Conflicts:
# ROADMAP.md
2026-10-20 06:09:17 +07:00
BFlat
5f0fe486db
Merge pull request #900 from storytold/fix/issue-890
...
M1: readable disabled and selected text (#890 )
2026-10-20 06:09:13 +07:00
bflatastic
64efe12e6f
Merge main into fix/issue-890
...
# Conflicts:
# ROADMAP.md
# docs/ui-parity.md
2026-10-20 05:58:56 +07:00
BFlat
4bb30782ff
Merge pull request #899 from storytold/fix/issue-879
...
M1: node.get reports layer data (pluginData) (#879 )
2026-10-20 05:58:32 +07:00
bflatastic
ab59877559
Merge main into #897
2026-10-20 05:47:17 +07:00
bflatastic
77ffc57432
#896 : "Individual padding" uses the catalog's word for padding (Preenchimento is Fill)
2026-10-20 05:47:15 +07:00
bflatastic
4e7256bf6a
Merge main into #896
2026-10-20 05:47:14 +07:00
bflatastic
8a46478e81
Merge main into fix/issue-879
...
# Conflicts:
# ROADMAP.md
2026-10-20 05:46:30 +07:00
BFlat
11ecf3e887
Merge pull request #898 from storytold/fix/issue-894
...
M1: nudge while measuring; distances follow, handles hide (#894 )
2026-10-20 05:46:25 +07:00
bflatastic
b82369201d
M3: duplicating a main component makes an instance ( #892 )
...
Duplicate and Alt-drag copied a main component as a second main. Within
its file the copy is now an instance of it (components::copy_in_file,
shared by edit.duplicate and the Alt-drag copy), as Copy then Paste
already was. A variant duplicated in its set stays a new variant.
2026-10-20 05:44:46 +07:00
bflatastic
e3b20b6540
Merge main into fix/issue-894
...
# Conflicts:
# ROADMAP.md
2026-10-20 05:35:21 +07:00
BFlat
b17bea9195
Merge pull request #881 from yelintong/feat/grid-auto-width
...
Layout grids: Auto line width for columns and rows
2026-10-20 05:35:13 +07:00
BFlat
287b506bc1
Merge pull request #889 from kk376/fix/857-live-session-large-files
...
fix(collab-net): allow live sessions above 64 MiB and report accurate transport limits (#857 )
2026-10-20 05:34:52 +07:00
bflatastic
05da6b2125
M1: node.get reports layer data (pluginData) ( #879 )
...
Layer data written with node.set {props: {pluginData}} was saved but no
command read it back. node.get (the command, the control method and MCP
get_node) and document.inspect now report pluginData as {key: value}
when a layer or page has any, so a tool keeping state in a file can
read it on its next run. Widget keys are included: the plugin rules
only stop plugins writing them, and widget.list already reports that
state.
2026-10-20 04:58:32 +07:00
bflatastic
5617c94167
M1: nudge while measuring; distances follow, handles hide ( #894 )
...
Alt+arrows were left out of the nudge keys, so with Alt held to measure
the arrows did nothing and the distances never changed. The arrows now
nudge with Alt held too (Shift: the big step); the hover measurement is
recomputed every frame, so the labels follow each nudge. While measuring
to another layer the selection's handles and size label hide; both
layers keep their outlines.
2026-10-20 04:58:31 +07:00
bflatastic
9ee0c7f572
M1: readable disabled and selected text ( #890 )
...
The dim text token (disabled buttons, placeholders, hints) was 2.1:1 on
the light theme's panels; disabled buttons also faded to 40% opacity,
and selected text was drawn in the dark green, 1.4:1 on the dark
theme's selection highlight. The dim text token is now at least 3:1
against panels, fields and selected rows in both themes while staying
dimmer than secondary text, a disabled button is grey with that text,
and selected text takes the theme's readable green. A test checks the
ratios with the colour contrast helper.
2026-10-20 04:57:20 +07:00
bflatastic
0f95ce3d5b
#881 : test Auto in a fixed grid's count, scroll to the field instead of a fixed point
2026-10-20 04:45:45 +07:00
bflatastic
a7d0648958
#881 : fixed grids keep their pixel Width and the Stretch->Left lift to 60; the stretched Auto width reuses the number field (disabled)
2026-10-20 04:45:44 +07:00
bflatastic
309271851f
#881 : keep fixed grids at width 0 drawing bands as before (no hairlines)
2026-10-20 04:39:14 +07:00
bflatastic
f99fdea3b6
#881 : leave the progress docs to the maintainer
2026-10-20 04:39:13 +07:00
bflatastic
5d32c522d2
Merge main into #881
2026-10-20 04:39:04 +07:00
bflatastic
cc4799061e
#889 : say a join is too large in words for people (native and web), translated; keep one test
2026-10-20 04:38:28 +07:00
BFlat
5b5a4855d4
Merge pull request #895 from storytold/fix/web-fonts
...
M9: web release draws text again; craft-fonts pin back to the Latin fonts (#885 )
2026-10-20 04:38:11 +07:00
bflatastic
ddde77db0a
M9: release fonts: web build embeds craft-fonts, pin back to the Latin manifest ( #885 )
...
The browser has no system fonts, and since releases moved to the shared
workflow the web build was made without craft-fonts: no font list and no
text drawn. The Georgian change also re-pinned craft-fonts to its main,
which has no fonts/latin-manifest.txt, so the next release would fail
under CRAFT_FONTS_REQUIRED. Pin the Latin commit again until one commit
has both (craft-fonts#42); desktop Georgian uses an installed font.
2026-10-20 04:26:04 +07:00
bflatastic
89529b3d00
#889 : drop the hub write-cap and core-limit changes (neither is read)
2026-10-20 04:22:26 +07:00
bflatastic
ca0e689834
Merge main into #889
2026-10-20 04:22:20 +07:00
BFlat
4c1546eed2
Merge pull request #888 from Silvertree2010/fix/886-when-drag-n-dropping-multiple-fi
...
Place files dropped together on the canvas side by side
2026-10-20 04:21:10 +07:00
BFlat
b19a81084e
Merge pull request #813 from alrifatsabbir/bengali-ui-translation
...
Add Bengali UI Translation
2026-10-20 04:10:12 +07:00
BFlat
20a16dfd5c
Merge pull request #872 from devius/ka-language
...
i18n: Georgian (ka) interface language
2026-10-20 03:57:09 +07:00
bflatastic
40fe1a623e
Merge fix/872 into #813
2026-10-20 03:26:53 +07:00
bflatastic
4b030f027a
Merge main into #872
2026-10-20 03:20:30 +07:00
BFlat
9d9cb9915a
Merge pull request #812 from lukasz-sklad/feat/polish-translation
...
feat(i18n): Complete Polish translation (pl)
2026-10-20 03:05:06 +07:00
BFlat
1abb9083c7
Merge pull request #821 from attisvalentin/fix/rescan-and-load-fonts
...
M4: fonts installed while the app runs: text.rescanFonts, text.loadFont, text.refit
2026-10-20 03:04:29 +07:00
BFlat
4788c6b819
Merge pull request #870 from MortenHusted/fix/component-paste-instance
...
M3: copied components paste as instances within their file
2026-10-20 03:04:03 +07:00
BFlat
54e3587fd8
Merge pull request #862 from MortenHusted/fix/instance-main-modes
...
M3: instances follow the variable modes their main component sets
2026-10-20 03:03:27 +07:00
BFlat
ba4a736d5b
Merge pull request #847 from MortenHusted/fix/fig-component-props
...
M3: .fig imports keep component property bindings and values
2026-10-20 03:02:50 +07:00
BFlat
163e840fc3
Merge pull request #818 from leandrodslv/feat/ui-size
...
feat(ui): add the interface size preference (#540 )
2026-10-20 03:01:28 +07:00
BFlat
b5904ad4c2
Merge pull request #874 from justinjohn0306/fix/857-start-on-home
...
M7: a preference to start on the Home screen (#857 )
2026-10-20 03:00:49 +07:00
BFlat
413ec40932
Merge pull request #867 from AganzeFelicite/fix/fig-paragraph-returns-852
...
fix(text): a line separator breaks the line inside its paragraph (#852 )
2026-10-20 03:00:11 +07:00
BFlat
d32e971685
Merge pull request #832 from Ahmed5Emad/seperate-padding
...
adding individual padding controls in Layout panel
2026-10-20 02:59:33 +07:00
BFlat
f8fc12b981
Merge pull request #854 from campbellcody/feat/smart-selection-drag-reordering
...
M1: smart-selection drag reordering
2026-10-20 02:58:55 +07:00
BFlat
e4e872a489
Merge pull request #861 from AJMakesStuff/#855--The-Search-button-for-the-pages-doesn't-work-as-expected
...
#855 : The Search button for the pages doesn't work as expected
2026-10-20 02:58:18 +07:00
BFlat
d43375b69c
Merge pull request #865 from AganzeFelicite/fix/delete-page-key-859
...
fix(pages): Delete deletes the page picked in the Pages list (#859 )
2026-10-20 02:54:33 +07:00
bflatastic
f6090dde80
Merge #813 's latest head (main merged in, contributors entry)
...
# Conflicts:
# crates/text/build.rs
2026-10-20 02:44:56 +07:00
bflatastic
948c6fb8e6
Merge main into #813 (via #872 )
...
# Conflicts:
# docs/translating.md
2026-10-20 02:06:07 +07:00
bflatastic
da1f0a0484
Merge #812 into #872
...
# Conflicts:
# docs/translating.md
2026-10-20 02:05:46 +07:00
bflatastic
baf93b7756
Merge #874 into #872
...
# Conflicts:
# docs/mcp.md
2026-10-20 02:05:13 +07:00
bflatastic
9c2988d408
Merge main into #872
...
# Conflicts:
# crates/text/build.rs
2026-10-20 02:04:57 +07:00
bflatastic
c13c4301be
Merge main into #812
2026-10-20 02:04:36 +07:00
bflatastic
df99f364a7
Merge main into #821
2026-10-20 02:04:35 +07:00
bflatastic
f22e2ed825
Merge main into #870
2026-10-20 02:04:33 +07:00
bflatastic
4e8f258300
Merge main into #862
2026-10-20 02:04:32 +07:00
bflatastic
8aaff7bc22
Merge main into #847
2026-10-20 02:04:27 +07:00
bflatastic
e8b7917002
Merge #874 into #818
...
# Conflicts:
# crates/ui-egui/locales/es.toml
# crates/ui-egui/locales/fr.toml
2026-10-20 01:43:53 +07:00
bflatastic
7b478052d1
Merge main into #818
2026-10-20 01:43:44 +07:00
bflatastic
bc35f02ecb
Merge main into #874
2026-10-20 01:43:43 +07:00
bflatastic
66a8227bb4
Merge main into #867
2026-10-20 01:43:41 +07:00
bflatastic
7814c32a05
Merge main into #832
2026-10-20 01:43:40 +07:00
bflatastic
08880f6e26
Merge main into #854
2026-10-20 01:34:14 +07:00