Repository navigation
align distribute
Home > Align & distribute
< Previous: Transform tools | Next: Duplicate, detach & ownership >
Line selected objects up on an edge or a center, or space them evenly, without breaking their constructions.
Select two or more objects, then run one of the ten commands from the command palette. They are palette commands rather than menu items, so type a few letters of the name to find one.
Six align, and four space things out:
| Command | What it does |
|---|---|
| Align Left | every object's left edge goes to the leftmost edge in the selection |
| Align Horizontal Center | every object's center goes to the same x |
| Align Right | every object's right edge goes to the rightmost edge |
| Align Top | every object's top edge goes to the topmost edge |
| Align Vertical Center | every object's center goes to the same y |
| Align Bottom | every object's bottom edge goes to the bottommost edge |
| Distribute Horizontally | object centers are spaced evenly left to right |
| Distribute Vertically | object centers are spaced evenly top to bottom |
| Distribute Horizontal Spacing | the gaps between objects are made equal, left to right |
| Distribute Vertical Spacing | the gaps between objects are made equal, top to bottom |
Align needs at least two objects selected. The four distribute commands need at least three, since there has to be something in the middle to move.
The two pairs only differ when the objects are different sizes, and then they differ a lot. Even center spacing leaves uneven gaps between objects of different widths. Even gaps leave uneven centers. Spacing is the one that looks even to the eye, so reach for Distribute Horizontal Spacing over Distribute Horizontally when the objects are not all the same size.
Each selected object moves as a unit. Its bounding box gives the target, and every free point it rides on shifts by the same amount, so the shape keeps its form and its construction survives the move.
Align anchors on the selection's own extreme. Align Left moves everything to the leftmost edge already in the selection, and the object that defines that edge does not move at all. Centering has no extreme to anchor on, so it uses the midpoint of the whole selection.
Distribute and spacing both pin the two outermost objects, so the selection's overall extent never changes. There is one honest exception: if the objects are together wider than the span they have to sit in, the gaps go negative and an oversized interior object can still poke past the end. Nothing is clamped, because clamping would quietly stack objects on top of each other and hide the real problem, which is that they do not fit.
The commands are all or nothing. If any selected object cannot move as a unit, nothing moves at all and Locus names the objects that blocked it. A half-applied align is worse than none, because it re-spaces the row against an object that never moved.
Two things cause a refusal:
- An object that cannot move as a unit: one built on a glider, a locked object, one managed by the node graph, or a group.
- Two selected objects that share a free point. Moving one would drag the other, so neither would land where it was asked to.
Important
Sharing a point? Detach first. That second refusal is the one you can do something about. Select the object you want to free and run Edit > Detach before aligning. It copies the defining points to new free points of its own, so the object keeps its exact shape but stops depending on the points it was sharing, and the two can then be moved independently. See Duplicate, detach & ownership.
< Previous: Transform tools | Next: Duplicate, detach & ownership >
- Selecting objects: how to build the selection first.
- Transform tools: move, scale and rotate the points a construction rests on.
- Keyboard shortcuts | Duplicate, detach & ownership
Found a bug or have feedback? Open an issue | Docs home | Videos | Credits
Getting Started
- Welcome
- How Locus came to be
- Videos
- Community & support
- Installing & launching
- Licensing & activation
- Beta License Agreement
- Core concepts
- Interface tour
- Your first pattern
Modeling - Drawing
- Canvas basics
- Points
- Typing coordinates
- Lines, rays & segments
- Circles & arcs
- Ellipses
- Compass & straightedge
- Rectangles & squares
- Constraining with Shift
Modeling - Editing
- Selecting objects
- Transform tools
- Align & distribute
- Duplicate, detach & ownership
- Regions & booleans
- Cleanup
- Weld & seams
- Style palettes & Re-ink
Annotation
Layers
Modeling Menus
- File
- Edit
- View
-
Draw
- Select
- Point
- Segment
- Line
- Ray
- Circle: Center Point
- Circle: Center Radius
- Circle: Through 3 Points
- Arc: Center, Start, End
- Straightedge
- Compass
- Compass: Radius
- Ellipse: Center + Axes
- Elliptical Arc
- Rectangle: XY-Aligned
- Rectangle: Directed
- Square
- Regular Polygon: Edge
- Regular Polygon: Center, Vertex
- Regular Polygon: Center, Edge Midpoint
- Dimension: Linear
- Dimension: Angle
- Dimension: Radial
- Label
- Construct
- Combine
- Transform
- Select
- Nodes
The Nodes Window
- Basics of visual programming
- How the node graph works
- Sockets & wires
- Adding & connecting nodes
- Sliders & number inputs
- Keeping the node graph tidy
- View menu (Nodes)
- Lists & collections
- Constants & unit conversions
Node Library
- Overview
- Input
-
Primitives
- Point
- Point: Polar
- Segment
- Line
- Ray
- Circle: Center Point
- Circle: Center Radius
- Circle: Apollonius
- Circle Tangent to...
- Circle: 3 Points
- Arc
- Ellipse
- Elliptical Arc
- Rectangle: XY-Aligned
- Rectangle: Directed
- Square
- Regular Polygon: Edge
- Regular Polygon: Center
- Rectangular Grid
- Oblique Grid
- Triangular Grid
- Construct
- Transform
- Image & Fields
- Combine
-
Data
- Measure
- Numbers
- Lists
- Select
- Clean up
- Display
Clusters
Bridging Modeling & Nodes
Patterns & Symmetry
Image-Driven Fields
Saving, Exporting & Files
Preferences & Language
CLI
Reference