BoardKitFrontend
useGrid
Grid visibility, snap-to-grid, and grid size
useGrid controls the grid overlay and snap-to-grid behavior.
Signature
function useGrid(): UseGridResult;Return Type
interface UseGridResult {
gridConfig: GridConfig;
toggleGrid: () => void;
toggleSnap: () => void;
setGridSize: (size: number) => void;
}interface GridConfig {
enabled: boolean;
size: number; // default: 20
snapEnabled: boolean;
snapThreshold: number; // default: 5
visible: boolean;
}| Property | Description |
|---|---|
gridConfig | Current grid configuration |
toggleGrid | Toggle grid enabled/visible state |
toggleSnap | Toggle snap-to-grid independently |
setGridSize | Change the grid cell size (in world units) |
Usage
import { useGrid } from '@hfu.digital/boardkit-react';
function GridControls() {
const { gridConfig, toggleGrid, toggleSnap, setGridSize } = useGrid();
return (
<div>
<button onClick={toggleGrid}>
Grid: {gridConfig.enabled ? 'On' : 'Off'}
</button>
<button onClick={toggleSnap}>
Snap: {gridConfig.snapEnabled ? 'On' : 'Off'}
</button>
<select
value={gridConfig.size}
onChange={(e) => setGridSize(Number(e.target.value))}
>
<option value={10}>10px</option>
<option value={20}>20px (default)</option>
<option value={40}>40px</option>
</select>
</div>
);
}Behavior
toggleGrid()enables/disables the grid and its visibility togethertoggleSnap()toggles snap independently (useful for visible grid without snap, or snap without visible grid)- When snap is enabled, element positions are rounded to the nearest grid intersection during creation and movement