From 4aec3f892fd6c23063bc2fead83c899b5d412b1c Mon Sep 17 00:00:00 2001 From: Samuel Alake <58840187+samuelalake@users.noreply.github.com> Date: Sat, 25 Jul 2026 13:59:55 -0700 Subject: [PATCH] feat(icons): add layout-freeform (#4543) * feat(icons): add layout-freeform Adds an icon for freeform layout: three blocks, no two sharing an edge. It matches the "no auto layout" / free positioning mode found in design tools, as the counterpart to constrained layout modes. Design notes: - Reuses the 7x7 rx=1 block already shared by layout-grid, layout-list and layout-panel-*, rather than introducing a new base shape. - Each block is offset so that no two share an edge, which is what separates it from layout-grid. - The offset is 1px: a 2px offset reads more clearly at 16px, but brings the top-right and bottom-left blocks within 1.66px of each other diagonally, under the 2px element spacing guideline. See the PR for the alternatives. * Update icons/layout-freeform.json Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: Eric Fennis Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- icons/layout-freeform.json | 31 +++++++++++++++++++++++++++++++ icons/layout-freeform.svg | 15 +++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 icons/layout-freeform.json create mode 100644 icons/layout-freeform.svg diff --git a/icons/layout-freeform.json b/icons/layout-freeform.json new file mode 100644 index 000000000..d5ebddf32 --- /dev/null +++ b/icons/layout-freeform.json @@ -0,0 +1,31 @@ +{ + "$schema": "../icon.schema.json", + "contributors": [ + "samuelalake" + ], + "use-cases": [ + "turning off auto layout in a design inspector", + "switching a dashboard section to free drag-and-drop placement", + "selecting freeform arrangement in a page builder", + "indicating unstructured layout mode in a whiteboard or canvas app", + "representing elements not aligned to a grid" + ], + "tags": [ + "layout", + "freeform", + "free", + "absolute", + "position", + "auto layout", + "unaligned", + "scattered", + "arrange", + "blocks", + "canvas", + "frame" + ], + "categories": [ + "design", + "layout" + ] +} diff --git a/icons/layout-freeform.svg b/icons/layout-freeform.svg new file mode 100644 index 000000000..98cb7e8ba --- /dev/null +++ b/icons/layout-freeform.svg @@ -0,0 +1,15 @@ + + + + +