Canvas
Objects in a nifdi behave like physical objects in the real world — they collide, push and stretch. That single idea explains most of what the canvas does, and it is why a diagram stays tidy while you edit it instead of drifting into overlapping boxes.
If you have not built a diagram yet, Your first diagram covers adding, connecting, typing and resizing. This page covers everything after that.
Selection
Section titled “Selection”Click to select, drag on empty canvas to marquee, and shift-click to extend. A selection spanning several blocks moves, resizes and styles as one.
The arrow keys move the selection between neighbouring objects, and Shift with an arrow key extends it. Working this way is usually faster than aiming with the mouse, and it is the only way to reach something buried inside several containers.
Pushing
Section titled “Pushing”Move an object horizontally or vertically and it pushes its neighbours aside to make space. The pale yellow stripes mean the block is currently snapped to the x or y axis.
How close two objects are allowed to get is set by their margins. Where two neighbours ask for different margins, the larger one wins.
Squeezing
Section titled “Squeezing”Move an object diagonally and it breaks free of its horizontal and vertical guides. Once free it stops pushing in a single direction and instead squeezes itself into gaps — inside objects and between them.
Diagonal movement is how you build a hierarchy quickly: pick a shape up, drift it diagonally into the container you want it in, and drop.
Hold Shift while dragging to squeeze immediately, without first moving diagonally.
Duplicating
Section titled “Duplicating”The + buttons around a selected object create a duplicate next to the original. Objects in the way
are pushed aside, and a containing object stretches if it needs to.
For several copies in quick succession, use Option with an arrow key. Holding Option while dragging also duplicates.
Grouping
Section titled “Grouping”⌘G seals the selected containers into a group, so they select and move as one object. ⌘ShiftG opens them again.
Grouping is a property of the container — mode in the
style vocabulary — not a separate kind of object, so a
group is still a container you can style, connect and nest.
Snapping and attachment
Section titled “Snapping and attachment”Snapping and attachment look similar and are not the same thing.
Snapping is an alignment aid. Blocks snap to their neighbours’ edges and centres as you drag, and nothing is remembered once you let go.
Attachment creates a relationship. Dropping a block inside a container nests it, and dragging a path endpoint onto a block binds the two. Both survive every later move.