Edit the diagram you see ======================== Each example on this page has editable source and a live preview. **Reset** restores its checked-in source. **Open in editor** remains available when you want the standalone editor. For a guided practice session, choose an exercise below. The full editor runs inside this page, with its real selection, command preview, source edit, diagnostics, and undo. Each exercise starts from its checked-in source; reset, switching exercises, or reloading the frame returns to that source. Practice edits stay separate from the draft saved in the standalone editor. .. raw:: html

Practice in the full editor

Choose an exercise, make the source change, and compare it with the drawing. Use the editor's Undo or Reset exercise to return to the checked-in starting point.

Loading the checked-in exercise sources…

Preparing the full editor.
.. raw:: html Align several nodes ------------------- Select **Draft**, **Review**, and **Publish** in that order. Under **Arrange items**, choose **Prefer row** and read the statement in the preview before selecting **Apply arrangement**. Try **Require column** after resetting the exercise. Row and column alignment put all selected nodes on a shared axis; a preference can yield to stronger constraints, while an impossible requirement reports a conflict. .. sheeptext-example:: ../examples/sources/tutorial/guide-align.sheeptext :label: Align three workflow steps :lesson: align :alt: Three separate Draft, Review, and Publish boxes ready for a shared row or column Order two nodes without aligning them ------------------------------------- Select **Draft** first, then **Review**. Under **Order two nodes**, choose **Prefer left of**. The first selected node is the subject: the preview inserts a statement equivalent to ``prefer Draft left of Review`` and shows its source line. Select **Apply node order**. Reset the exercise and try **Require below** to see a vertical relation. These relations constrain order on one axis; they do not put the nodes on a shared row or column. .. sheeptext-example:: ../examples/sources/tutorial/guide-order.sheeptext :label: Order two workflow steps :lesson: order :alt: Separate Draft and Review boxes whose order can be changed without aligning them Steer an edge ------------- Select the unnamed arrow from **Client** to **Server** in the drawing or under **Steer an edge**. Choose **Route below**, inspect the source preview, then select **Apply route**. The editor adds ``route below`` to that arrow statement. Try the named **Reply** arrow as well. **Route above**, **Route below**, **Route left**, and **Route right** are route-side preferences; the final route can differ when constraints conflict, and the editor reports the result. Parallel arrows and each segment of a multi-hop arrow can also be selected separately. .. sheeptext-example:: ../examples/sources/tutorial/guide-route.sheeptext :label: Steer a request or return edge :lesson: route :alt: Two boxes connected by an unnamed request arrow and a named return arrow Move a node into a group ------------------------ For a membership edit, select **Task** and **Region** in the in-page editor. Choose **Move Task into Region**, inspect the proposed source diff, then **Apply move**. Select Task alone afterward to see **Move Task out of Region**. The editor proves the move on the complete source before offering Apply; it does not leave a disconnected copy of the box behind. .. sheeptext-example:: ../examples/sources/tutorial/guide-membership.sheeptext :label: Move a box into a group :name: tutorial-membership :alt: An empty named Region group beside a Task box that can be moved into the group Selection belongs to the current render. After a source change replaces a selected element, select again from the new diagram. Next, :doc:`icons` add visual vocabulary to the same source-based workflow.