Aligning Guidelines
This page demonstrates the alignment guidelines feature for different widgets using XRectNotes and XCircleNotes from @boardxus/canvasx-core. When moving or arranging objects, alignment guidelines appear to help you visually align and distribute widgets on the canvas. This is useful for diagramming, layout, and precise positioning.
How to use it
import { initAligningGuidelines } from "fabric/extensions"; const config = { // distance from the shape does alignment begin? margin: 4, // guideline dimensions width: 1, // guideline color color: "rgba(255,0,0,0.9)", // close vertical line, default false closeVLine: false, // close horizontal line, default false closeHLine: false, }; const deactivate = initAligningGuidelines(myCanvas, config); // To disable alignment guidelines later: deactivate();
Custom function examples
// Compare only with sibling elements initAligningGuidelines(myCanvas, { getObjectsByTarget: function (target) { const set = new Set<FabricObject>(); const p = target.parent ?? target.canvas; p?.getObjects().forEach((o) => set.add(o)); return set; }, }); // Align only the TL control point initAligningGuidelines(myCanvas, { getPointMap: function (target) { const tl = target.getCoords().tl; return { tl }; }, }); // Custom controllers and control points FabricObject.createControls = function () { // controllers return { controls: { abc: new Control({}) } }; }; initAligningGuidelines(myCanvas, { getPointMap: function (target) { const abc = target.getCoords().tl; return { abc }; }, getContraryMap: function (target) { const abc = target.aCoords.br; return { abc }; }, contraryOriginMap: { // if the top-left point, then the reference point is the bottom-right. abc: ["right", "bottom"], }, }); // Close all guidelines initAligningGuidelines(myCanvas, { closeVLine: true, closeHLine: true, getPointMap: function (_) { return {}; }, });