Mouse Controls
Mouse interactions vary depending on what you’re clicking on:Canvas Panning
Click and hold on any empty block room, then drag to pan around the code canvas.Block Interaction
Left click on blocks, nodes, and wires to interact with them:- Select Block
- Drag Block
- Add Wire
- Remove Wire
Click a block to select it. Selected blocks show:
- Highlighted appearance
- Effect range visualization (for effect blocks)
- Available connection points
Double Click
Double-click on an empty block room to open block search:- Search interface appears immediately
- Input field is automatically focused
- Search at the exact position you clicked
Right Click
Right-click is currently prevented on the code canvas to avoid context menu interference.Right-click functionality may be added in future versions for additional controls.
Zoom Controls
The code canvas supports smooth zooming from 0.5x to 2x magnification:Scroll to Zoom
Scroll on the code canvas to zoom in and out:- Zoom In
- Zoom Out
Scroll up (or pinch out on trackpad)
- Increases magnification
- Maximum: 2x (200%)
- Smooth interpolation
- Center point stays fixed
Zoom Behavior
The zoom system includes several optimizations:- Throttling: Zoom updates are throttled to 50ms to prevent excessive re-rendering
- Rounding: Zoom levels are rounded to 2 decimal places for consistency
- Constraints: Zoom is automatically clamped to the 0.5x - 2x range
- Transform: Uses CSS
scale()for smooth, GPU-accelerated zooming
Scroll Controls
Hold modifier keys while scrolling to navigate instead of zoom:Horizontal Scrolling
Shift + Scroll to scroll left and right:- Move horizontally across wide code canvases
- Useful for navigating blocks that extend beyond the visible area
- Combines with panning for precise positioning
Vertical Scrolling
Cmd/Ctrl + Scroll to scroll up and down:- Move vertically through tall code canvases
- Navigate between different lines of blocks
- Alternative to panning for vertical movement
These modifier + scroll combinations override the default zoom behavior.
Keyboard Shortcuts
The editor supports several keyboard shortcuts:Global Shortcuts
- Save Project
- Escape
- Arrow Keys
- Enter
Cmd/Ctrl + SSaves your current project as a
.b5.json file:- Includes all blocks and connections
- Saves canvas positions and zoom levels
- Preserves Factory definitions
- Downloads to your default folder
Developer Shortcuts
Canvas Boundaries
The code canvas has built-in boundary constraints:Panning Limits
You cannot pan the canvas completely off-screen:- At least half the canvas width remains visible
- At least half the canvas height remains visible
- Prevents losing track of your workspace
Grid Visibility
The grid axes (line numbers and block alphabets) are always visible:- Line numbers: Fixed to the left edge
- Block alphabets: Fixed to the top edge
- Move with the canvas when panning
- Always provide position reference
Cursor States
The cursor changes to indicate available actions:- Default
- Grab
- Grabbing
- Pointer
Standard arrow cursor when hovering over most interface elements.
Panel Resizing
The Factory and Playground panels can be resized:Dragging the Separator
Factory Section Resizing
Each section in the Factory can be resized vertically:Viewer Navigation
The Viewer window can be repositioned:
See Viewer for all Viewer controls.
File Drag and Drop
You can load.b5.json project files by dragging them into the editor:
Touch and Trackpad
While b5 is primarily designed for mouse interaction, trackpad gestures work for:- Pinch to zoom: Two-finger pinch on trackpad
- Scroll gestures: Two-finger scroll for panning/zooming
- Click and drag: Single-finger drag after click
Touch screen support is not currently optimized. A mouse or trackpad is recommended for the best experience.
Performance Tips
Zoom Before Panning
Zoom out for an overview before panning to distant blocks.
Use Search Instead
Block search is faster than panning to find specific blocks.
Minimize When Editing
Minimize the Viewer to maximize workspace when editing code.
Save Frequently
Use Cmd/Ctrl + S often to save your work.
Accessibility
Next Steps
Block Search
Learn the fastest way to add blocks
Playground
Understand the main code canvas