diff --git a/CHANGELOG.md b/CHANGELOG.md index 80cd51bc4..384a6e3ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ - Scale the Layers panel to 5,000-node documents with virtualized rows, indexed updates, scroll-to-selection, range selection, and focus-aware themed states. - Add Figma-style horizontal and vertical constraint controls with pin interactions, mixed-selection editing, undo, and responsive frame resizing. - Add mixed-selection stroke cap, join, and miter-limit controls with CanvasKit rendering and `.fig` roundtrip support. +- Add a mixed-selection corner-smoothing percentage control with live preview, per-node undo restoration, and `.fig` roundtrip coverage. - Standardize Vue SDK and app override type names on the `UI` acronym, including `FontPickerUI`. - Add a headless Vue SDK NumberField with pointer scrubbing, keyboard stepping, safe arithmetic expressions, and mixed/bound states; remove the superseded ScrubInput API. - Add provider-driven BindableValue primitives for variable and token binding, including detach-on-edit, read-only, edit-variable, mixed-value, and undo-batched interactions. diff --git a/packages/core/src/kiwi/fig/node-change/serialize.ts b/packages/core/src/kiwi/fig/node-change/serialize.ts index 68e174f68..71a41dcae 100644 --- a/packages/core/src/kiwi/fig/node-change/serialize.ts +++ b/packages/core/src/kiwi/fig/node-change/serialize.ts @@ -254,7 +254,7 @@ function serializeCornerRadii(node: SceneNode, nc: KiwiNodeChange): void { nc.rectangleBottomLeftCornerRadius = node.bottomLeftRadius nc.rectangleBottomRightCornerRadius = node.bottomRightRadius } - if (node.cornerSmoothing > 0) { + if (node.cornerSmoothing > 0 || 'cornerSmoothing' in node.source.fig.rawNodeFields) { nc.cornerSmoothing = node.cornerSmoothing } } diff --git a/packages/docs/development/roadmap.md b/packages/docs/development/roadmap.md index 0b3fb0561..a623441b0 100644 --- a/packages/docs/development/roadmap.md +++ b/packages/docs/development/roadmap.md @@ -145,7 +145,7 @@ Figma's design documentation groups features into these areas: | Effects: shadows and blurs | ✅ | ✅ | ✅ | ✅ | ✅ | `showShadowBehindNode` is rendered but not exposed in UI. | | Effect styles | ↩ | — | — | ↩ | — | Style IDs round-trip; no style manager. | | Corner radius | ✅ | ✅ | ✅ | ✅ | ✅ | Uniform and independent radii supported. | -| Corner smoothing | ✅ | ✅ | — | ✅ | ✅ | Figma-style smoothed corners render for common uniform and independent-radius rectangles; exact parity still needs broader fixture tuning. | +| Corner smoothing | ✅ | ✅ | ✅ | ✅ | ✅ | The inspector supports mixed smoothing percentages with undo; uniform and independent-radius corners render, while exact Figma parity still needs broader fixture tuning. | | Masks | ✅ | ◐ | — | ✅ | ✅ | Figma schema `mask`, `maskType`, and `maskIsOutline` fields import and export; common sibling alpha/vector/luminance mask stacks render, including consecutive mask layers. UI controls and deeper Figma edge cases remain incomplete. | | Auto layout: vertical/horizontal | ✅ | ✅ | ✅ | ✅ | ✅ | Yoga-backed layout. | | Auto layout: wrap | ✅ | ✅ | ✅ | ✅ | ✅ | UI toggle exists. | diff --git a/packages/docs/programmable/sdk/api/components/appearance-controls-root.md b/packages/docs/programmable/sdk/api/components/appearance-controls-root.md index b6e676f0c..648b02ada 100644 --- a/packages/docs/programmable/sdk/api/components/appearance-controls-root.md +++ b/packages/docs/programmable/sdk/api/components/appearance-controls-root.md @@ -1,6 +1,6 @@ --- title: AppearanceControlsRoot -description: Headless root primitive for opacity, visibility, blend mode, and corner-radius controls. +description: Headless root primitive for opacity, visibility, blend mode, corner radius, and smoothing controls. ---