Welcome to FabricJS Design Tool! This guide will help you get up and running quickly.
npm install @rifrocket/fabricjs-design-tool
yarn add @rifrocket/fabricjs-design-tool
pnpm add @rifrocket/fabricjs-design-tool
import React from 'react';
import { CanvasWrapper, LeftSidebar, RightSidebar } from '@rifrocket/fabricjs-design-tool/ui';
function App() {
return (
<div className="flex h-screen">
<LeftSidebar />
<div className="flex-1">
<CanvasWrapper />
</div>
<RightSidebar />
</div>
);
}
<!DOCTYPE html>
<html>
<head>
<title>My Design Tool</title>
</head>
<body>
<div id="app">
<canvas id="design-canvas" width="800" height="600"></canvas>
</div>
</body>
</html>
import { Canvas } from 'fabric';
import { useCanvasManager, shapeFactory } from '@rifrocket/fabricjs-design-tool';
// Initialize Fabric.js canvas
const canvas = new Canvas('design-canvas');
// Use the canvas manager for enhanced functionality
const canvasManager = useCanvasManager(canvas);
// Add some shapes
const circle = shapeFactory.createCircle({
left: 100,
top: 100,
radius: 50,
fill: 'red'
});
const text = shapeFactory.createText('Hello World!', {
left: 200,
top: 100,
fontSize: 24
});
canvas.add(circle, text);
import React, { useRef, useEffect } from 'react';
import { Canvas } from 'fabric';
import { useCanvasManager } from '@rifrocket/fabricjs-design-tool';
function DesignCanvas() {
const canvasRef = useRef(null);
const [canvas, setCanvas] = useState(null);
useEffect(() => {
const fabricCanvas = new Canvas(canvasRef.current);
const manager = useCanvasManager(fabricCanvas);
setCanvas(fabricCanvas);
return () => {
fabricCanvas.dispose();
};
}, []);
return (
<div className="canvas-container">
<canvas ref={canvasRef} width={800} height={600} />
</div>
);
}
import React from 'react';
import {
CanvasWrapper,
LeftSidebar,
RightSidebar,
Header
} from '@rifrocket/fabricjs-design-tool/ui';
function DesignTool() {
return (
<div className="h-screen flex flex-col">
<Header />
<div className="flex flex-1">
<LeftSidebar />
<CanvasWrapper className="flex-1" />
<RightSidebar />
</div>
</div>
);
}
import { canvasUtils } from '@rifrocket/fabricjs-design-tool';
function makeCanvasResponsive(canvas) {
function resizeCanvas() {
const container = canvas.getElement().parentElement;
const containerWidth = container.clientWidth;
const containerHeight = container.clientHeight;
canvas.setDimensions({
width: containerWidth,
height: containerHeight
});
canvas.renderAll();
}
window.addEventListener('resize', resizeCanvas);
resizeCanvas(); // Initial resize
}
Now that you have the basics set up, explore these guides:
// Make sure to call renderAll() after adding objects
canvas.add(object);
canvas.renderAll(); // ← Important!
# Install type definitions if needed
npm install --save-dev @types/fabric
// Make sure you're importing from the correct path
import { useCanvasManager } from '@rifrocket/fabricjs-design-tool'; // ✅ Core
import { CanvasWrapper } from '@rifrocket/fabricjs-design-tool/ui'; // ✅ UI Components
Need help? Check our Troubleshooting Guide or open an issue!