Skip to content

v1.6.0 — shapes and shadows

Choose a tag to compare

@VidGuiCode VidGuiCode released this 09 Sep 20:27
· 4 commits to main since this release

No 1.5.1 was released: no defect was outstanding after 1.5.0.

A rectangle, an ellipse and a line stop being things you draw elsewhere and import: they are layers the document draws itself, with fill, stroke and corner radius as ordinary properties. A drop shadow joins the effect stack, and a glow is that shadow with no offset.

Added

  • Shape layers, a fifth layer kind: rect (with cornerRadius), ellipse and line. The transform box is the geometry, so move, resize and rotate mean what they already mean for every other layer. A line is its box: width is the length, rotation the angle.
  • fill and stroke ({ color, width }), either absent for no paint. Strokes are painted inward on a rect and an ellipse, so the box stays the visual box; a line's stroke is centred. Widths below 1 draw as hairlines and may spill up to half a pixel.
  • A dropShadow effect with dx, dy, blur and color; an #rrggbbaa alpha is its opacity. Zero offset is a glow.
  • Presets carry fill and stroke, and a colour slot may target a shape's fill as well as a text layer's colour.
  • CLI add-rect, add-ellipse, add-line, and --fill, --stroke, --stroke-width, --corner-radius on set (none clears a paint).
  • MCP add_shape_layer, taking the server from 44 tools to 45; update_layer gains fill, stroke, cornerRadius, clearFill and clearStroke; layer summaries report a shape's geometry.
  • Interface: a Shapes row in the Add panel, a Shape inspector (Fill, Stroke, Stroke width, Corner radius), and dropShadow in the effects editor.
  • Two new reference documents in the render gate, shapes and shadow, checked byte for byte on all six release targets.
  • A new README hero, built with this release as the editable example project examples/readme-hero.

Changed

  • Asset uploads accept up to 64 MiB (previously the framework's 2 MB default). A body over the limit on either upload route now answers with the JSON error envelope: status 413, code payloadTooLarge.

Fixed

  • A font family literally named catalogue or install can now be removed; DELETE sits on both fixed paths.

Compatibility

  • schemaVersion stays 1; the operation union is additive.
  • 1.0 through 1.5 refuse a document that contains a shape layer — the whole document — with unknown variant "shape", expected one of "text", "image", "group", "svg". Nothing needs migrating: open the project with 1.6.0 or newer. A dropShadow effect is preserved by every 1.3.0-and-newer build and only its render is refused.
  • Rounded corners and ellipses are emitted as cubic curves rather than SVG arcs, keeping the rasteriser's arc conversion and the platform maths library off the path to a pixel; shadows get an explicit filter region.

Downloads below are built by CI for Windows, Linux and macOS on x86_64 and aarch64; SHA256SUMS covers the archives.