aiongg
47ee566f3d
refactor(format): move crates/format/src/fig/mod.rs to crates/format/src/fig.rs
2026-10-26 20:17:47 +00:00
aiongg
a99248b296
refactor(svg): move crates/svg/src/import/mod.rs to crates/svg/src/import.rs
2026-10-26 20:17:47 +00:00
aiongg
71524803d1
refactor(engine): move crates/engine/src/templates/mod.rs to crates/engine/src/templates.rs
2026-10-26 20:17:47 +00:00
aiongg
d853eee820
refactor(engine): move crates/engine/src/cmd/mod.rs to crates/engine/src/cmd.rs
2026-10-26 20:17:47 +00:00
aiongg
47f1315ec2
test: scan source directories recursively
2026-10-26 20:17:47 +00:00
skylar
476feabfc1
ci: require nextest 0.9.150
...
Use the fixed release for GHSA-vc25-qg58-w57c.
2026-10-26 14:13:07 -06:00
Patrik Lermon and Claude Opus 5.5
1147d3357f
i18n(sv): translate 47 new strings
...
Brings the Swedish catalog up to date with upstream main (740d1173 ).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 21:08:43 +01:00
Skyfuller1303
a4076caaf4
Merge main and preserve vector region paints through path operations
...
Retain regional paint stacks and coordinate frames through simplify, offset, flatten, bucket normalization and Shape Builder. Preserve legacy fill semantics and synchronize importer warning catalogs. Verified with cargo xtask ci on Windows and Ubuntu/WSL, native UI screenshots, and CLI round-trip/export checks.
2026-10-26 19:50:00 +01:00
BFlat
740d117313
Merge pull request #827 from mateusvillain/feat/color-picker-lch-oklch
...
M1: LCH and OKLCH models in the colour picker
2026-10-27 01:27:07 +07:00
bflatastic
5e7cd52f6d
Merge main into #827
2026-10-27 01:06:45 +07:00
BFlat
cac54fd552
Merge pull request #840 from StrajnarFilip/feat/vector-drawable-export
...
M6: export as Android Vector Drawable (XML)
2026-10-27 01:06:21 +07:00
BFlat
740cc2a2c6
Merge pull request #726 from ijashuzain/feat/variables-dart-export
...
M6: export variables as Dart constants for Flutter
2026-10-27 00:53:10 +07:00
BFlat
a93dd5ab3b
Merge pull request #287 from Nael-Nathanael/perf/256-glass-cache
...
perf(render): keep glass shapes between renders, fix a glass seam (#256 )
2026-10-27 00:52:56 +07:00
BFlat
cac991334d
Merge pull request #320 from tylerjenningsw/perf/zoom-preview-cold
...
perf(canvas): preview cold zoom and page transitions once they run long (M8)
2026-10-27 00:50:49 +07:00
BFlat
29c89f7d5b
Merge pull request #650 from JimKnoxx/overlay-anchor-trigger
...
M5: overlay positions relative to the layer that opens them
2026-10-27 00:49:52 +07:00
BFlat
9fdd226509
Merge pull request #664 from phonedu/feat/vue-code-target
...
M6: a Vue code target (single-file components)
2026-10-27 00:48:53 +07:00
bflatastic
c16fd68242
Merge main into #840
2026-10-27 00:38:47 +07:00
BFlat
b6fc2fd1ab
Merge pull request #1152 from ricardoavilesfoto-collab/pr/fig-export-for-figma
...
.fig export: files Figma imports, with component set properties
2026-10-27 00:35:31 +07:00
bflatastic
502098e02a
#840 : the status lines without the merge's conflict markers
2026-10-27 00:32:35 +07:00
bflatastic
2aae395310
Merge main into #840
2026-10-27 00:31:32 +07:00
bflatastic
fd0f4d8b60
Merge main into #664
...
Main's class_name takes the node kind (#1372 ); Vue's slot names pass slot.
2026-10-27 00:30:42 +07:00
BFlat
83c7940293
Merge pull request #1384 from muamerETS/fix/1370-drag-unfilled-selection
...
M1: a selected unfilled shape drags over a filled layer stacked below it (#1370 )
2026-10-27 00:25:59 +07:00
BFlat
7cb369db8c
Merge pull request #1372 from lileeei/1235-transliterate-class-names
...
Transliterate non-ASCII layer names into code-export class names
2026-10-27 00:23:36 +07:00
bflatastic
b3016f7089
Merge main into #1152
2026-10-27 00:14:07 +07:00
BFlat
8583588839
Merge pull request #1366 from Silvertree2010/fix/h2716-px-to-rem-conversion-rounds-to-2
...
Keep full precision when converting px to rem in code export
2026-10-27 00:13:42 +07:00
BFlat
ad9abe7ce6
Merge pull request #1133 from g1obalworlds/fix-batch-rollback-closed-tabs
...
engine: restore tabs closed inside a failed command group
2026-10-27 00:13:37 +07:00
BFlat
e8656be10e
Merge pull request #824 from youngeuibae/page-api
...
web: window.figcraft, the control channel for the page
2026-10-27 00:13:31 +07:00
BFlat
5890784fe2
Merge pull request #1369 from mojtabajafarzadeh/fix/share-key-and-large-file-publish
...
follow-up: server publish timeout, key-to-server binding, and "Go to main component" in the context menu
2026-10-27 00:13:25 +07:00
BFlat
4b000eeddf
Merge pull request #1371 from denisg0mes/crisp-magnified-images
...
M7: show a magnified image's pixels on the canvas
2026-10-27 00:13:20 +07:00
BFlat
dd5b5c0dc0
Merge pull request #1374 from Ridzzz0Alam/fix/1330-save-disk-changes
...
fix: Issue #1330 Save no longer overwrites changes another app made to the open file
2026-10-27 00:13:15 +07:00
BFlat
adea3a5550
Merge pull request #1053 from Silvertree2010/fix/h1274-title-case-leaves-a-word-lowerca
...
Capitalise title-case word after an opening apostrophe
2026-10-27 00:13:01 +07:00
bflatastic
632f2cef4b
Merge main into #840
...
# Conflicts:
# docs/roadmap.md
2026-10-27 00:12:27 +07:00
BFlat
4392fe50d3
Merge pull request #1373 from Ridzzz0Alam/fix/1338-instance-swap-scroll
...
fix: Issue #1338 an instance-swap property's default menu scrolls
2026-10-27 00:11:16 +07:00
bflatastic
15c6834114
Merge main into #1384
2026-10-27 00:10:34 +07:00
BFlat
58718d9a09
Merge pull request #959 from Silvertree2010/fix/h1129-saving-a-document-with-a-nan-num
...
Save NaN or infinite numbers as 0 so the file reopens
2026-10-27 00:09:53 +07:00
BFlat
23963491b3
Merge pull request #1378 from muamerETS/fix/open-issues
...
M4: truncated text fills its last line, keeps truncating when resized, and auto height takes max lines (#1375 , #1376 , #1377 )
2026-10-27 00:09:39 +07:00
Jindřich Šaršon and Claude Opus 5.5
3c71058177
M6: Sketch import ( #1021 follow-up): review fixes
...
From a code review, each behaviour question checked on Sketch's own renders of
files built for it:
- background and motion blur radii are standard deviations too (doubled, like
Gaussian ones); zoom blurs keep half their radius
- colour adjustments clamp FigCraft's contrast before working out the exposure,
so the slope stays exact past FigCraft's ranges (brightness below -0.5 bent
the whole curve)
- an image override applies after a layer style override on the same shape
- a bitmap's fills (its image under the style's fills) aren't linked to the
shared fill style any more
- one read of a gradient's colorInterpolation; a dead stack condition removed
Checked and unchanged: symbols of a Sketch 63 file don't clip either, and
Sketch mixes OKLab gradients' alpha as the importer does.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 17:55:56 +01:00
bflatastic
56ed786e0e
#726 : reuse codegen's kotlin_color for Dart colours
2026-10-26 23:54:09 +07:00
bflatastic
5a5175cc7e
#726 : write Dart numbers at full precision
2026-10-26 23:54:08 +07:00
bflatastic
a683e51045
#726 : Dart names never shadow Dart types (classes and constants)
2026-10-26 23:54:08 +07:00
bflatastic
8653597c3d
#664 : Vue layer trees import connected components in <script setup>
2026-10-26 23:53:30 +07:00
bflatastic
4176400e09
Merge main into #664
...
# Conflicts:
# crates/engine/src/code_connect.rs
# crates/engine/src/codegen.rs
# crates/engine/src/component_codegen.rs
# crates/engine/src/lib.rs
# crates/engine/src/playground.rs
# crates/ui-egui/locales/bn.toml
# crates/ui-egui/locales/cs.toml
# crates/ui-egui/locales/de.toml
# crates/ui-egui/locales/en.toml
# crates/ui-egui/locales/es.toml
# crates/ui-egui/locales/fi.toml
# crates/ui-egui/locales/fr.toml
# crates/ui-egui/locales/id.toml
# crates/ui-egui/locales/ja.toml
# crates/ui-egui/locales/ka.toml
# crates/ui-egui/locales/ko.toml
# crates/ui-egui/locales/nl.toml
# crates/ui-egui/locales/pl.toml
# crates/ui-egui/locales/pt-BR.toml
# crates/ui-egui/locales/ru.toml
# crates/ui-egui/locales/sv.toml
# crates/ui-egui/locales/tr.toml
# crates/ui-egui/locales/zh-Hans.toml
# crates/ui-egui/src/dev_mode.rs
# docs/dev-mode-parity.md
# docs/gaps.md
# docs/mcp.md
# docs/target-app-parity.md
2026-10-26 23:52:51 +07:00
Jindřich Šaršon and Claude Opus 5.5
267fc624ad
M6: Sketch import ( #1021 follow-up): match Sketch's renders rule by rule
...
Each rule was checked against Sketch's own renders (sketchtool) of files built
for the case, and on real Sketch 50, 63 and 2026 files:
- instances show a master's background only when it is included in both
instances and exports
- symbols clip their layers only with clippingBehavior 1
- group and instance fills are tints only from Sketch 64 (format > 123)
- an outline mask's opacity fades the mask and what it clips together
- a bitmap's image lies under its style's fills
- image overrides reach a shape's top image fill
- stretching stacks fill their items across
- a layer blur's radius is Sketch's standard deviation (FigCraft radius x2)
- colour adjustments: contrast, then brightness added, mapped exactly onto
exposure and contrast within FigCraft's ranges
- gradients mixed in OKLab or OKLCH become sRGB stops along the same colours
(with an import note)
- auto-width texts an override made longer grow from their aligned edge
- shape group operands lose their own borders (since #1184 a stroke-only
operand gives its stroke band, not its area)
Known limitations are listed in the file-format parity row.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 17:43:10 +01:00
bflatastic
ec12b7d5f3
#827 : port the picker's new ids to egui 0.37 (Id::unique)
2026-10-26 23:42:11 +07:00
bflatastic
3beea93715
Merge main into #827
...
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# crates/ui-egui/src/colorpicker.rs
# docs/ui-parity.md
2026-10-26 23:38:20 +07:00
bflatastic
2a8db20d48
#726 : drop the ROADMAP rows
2026-10-26 23:28:45 +07:00
bflatastic
6145409859
Merge main into #726
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/variables_io.rs
# crates/engine/src/variables_io_tests.rs
# docs/components-parity.md
# docs/mcp.md
2026-10-26 23:28:15 +07:00
bflatastic
bf9783f30f
#650 : mark relative overlay positions as an extra beyond the reference tool
2026-10-26 23:24:36 +07:00
bflatastic
de826e14cf
Merge main into #650
...
# Conflicts:
# crates/ui-egui/locales/es.toml
# crates/ui-egui/locales/pl.toml
# docs/prototyping-parity.md
2026-10-26 23:24:22 +07:00
bflatastic
c208ae442c
#840 : move the CLI and MCP XML export tests into tests/it
2026-10-26 23:23:08 +07:00