A modern web-based design tool similar to Figma, built with HTML, CSS, and JavaScript.
- Canvas with zooming and panning
- Shape creation tools (rectangle, circle, line)
- Text insertion capability
- Object selection, moving, and resizing
- Object styling (fill color, border, opacity)
- Layer management system
- Components System: Create reusable components and instances
- Auto Layout: Create responsive layouts with automatic spacing and alignment
- Constraints: Define how objects resize and reposition when their parent frame changes size
- Advanced Prototyping: Create interactive prototypes with transitions and animations
- Version History: Track changes and restore previous versions
- Collaboration: Work with others in real-time with comments and cursor sharing
- Export Functionality: Export designs as images
- Local Storage: Persist designs between sessions
- Tailwind CSS - Utility-first CSS framework for styling
- Material Design Icons - Google's Material Design icon library
- shadcn/ui - UI component styling inspiration
- Fabric.js - Canvas manipulation and object handling
- Pickr - Color picker
- FileSaver.js - Export functionality
- Mousetrap - Keyboard shortcuts
- Clone the repository
- Open
index.htmlin your browser - Start designing!
This project currently uses the Tailwind CSS CDN for development purposes. For production deployment, it's recommended to:
- Install Tailwind CSS as a PostCSS plugin or use the Tailwind CLI
- Generate an optimized CSS build
- Replace the CDN link with your compiled CSS file
See the Tailwind CSS Installation Guide for more details.
- Select Tool: Click on objects to select them
- Rectangle Tool: Click and drag to create rectangles
- Circle Tool: Click and drag to create circles
- Line Tool: Click and drag to create lines
- Text Tool: Click to add text
- Create Component: Select an object and press Alt+C or use the Components panel
- Create Instance: Click the "+" button next to a component in the Components panel
- Update Component: Make changes to a component to update all instances
- Add Auto Layout: Select a frame and press Shift+A or use the Auto Layout button
- Change Direction: Switch between horizontal and vertical layouts
- Adjust Spacing: Control the space between items
- Set Alignment: Align items within the auto layout frame
- Set Constraints: Define how objects behave when their parent frame is resized
- Horizontal Constraints: Left, Right, Center, Scale, or Left-Right
- Vertical Constraints: Top, Bottom, Center, Scale, or Top-Bottom
- Add Interaction: Create click, hover, or drag interactions
- Set Transitions: Choose from various animation types
- Preview Prototype: Test your interactive prototype
- Save Version: Create named versions of your design
- View History: See all saved versions
- Restore Version: Revert to a previous version
- Add Comments: Leave feedback on designs
- See Collaborators: View who's currently working on the design
- Invite Users: Add new collaborators to the project
- Pan: Hold Alt or middle mouse button and drag
- Zoom: Use mouse wheel or the zoom controls in the status bar
V- Select toolR- Rectangle toolO- Circle toolL- Line toolT- Text tool
Space + Drag- Pan canvasCmd/Ctrl + =- Zoom inCmd/Ctrl + -- Zoom outCmd/Ctrl + 0- Reset zoom to 100%Cmd/Ctrl + 1- Fit to screen
Cmd/Ctrl + C- Copy selected objectCmd/Ctrl + X- Cut selected objectCmd/Ctrl + V- Paste objectCmd/Ctrl + D- Duplicate selected objectCmd/Ctrl + Z- UndoCmd/Ctrl + Shift + Z- RedoDelete/Backspace- Delete selected objectCmd/Ctrl + S- Save design
Cmd/Ctrl + G- Group selected objectsCmd/Ctrl + Shift + G- Ungroup objectsArrow keys- Nudge selected object by 1pxShift + Arrow keys- Nudge selected object by 10px
Alt + C- Create component from selectionShift + A- Add auto layout to selected frameAlt + P- Toggle prototype mode
index.html- Main HTML filecss/styles.css- CSS stylesjs/app.js- Main application logicjs/canvas.js- Canvas initialization and managementjs/tools.js- Drawing tools implementationjs/properties.js- Properties panel functionalityjs/layers.js- Layers panel functionalityjs/storage.js- Local storage functionalityjs/components.js- Components systemjs/autolayout.js- Auto layout systemjs/constraints.js- Constraints systemjs/prototyping.js- Prototyping systemjs/version-history.js- Version history systemjs/collaboration.js- Collaboration system
- Modern, clean interface with Tailwind CSS
- Material Design icons for better visual representation
- Dropdown menus for File, Edit, View, Object, and Help options
- Interactive layer management with visibility toggles and quick actions
- Responsive property controls
- Real-time collaboration UI with user cursors and comments
MIT