ChromaLab is a next-generation, feature-rich image editor built with React + TypeScript. It combines professional editing tools (crop, rotate, filters, adjustments) with creative freedom (text overlays, stickers, freehand drawing, meme templates).
Designed for scalability, maintainability, and performance, ChromaLab follows SOLID principles and leverages well-known design patterns (Factory, Strategy, Command, Adapter).
- Crop → trim precisely, support freeform or aspect ratio.
- Rotate → adjust orientation with ease.
- Transform → scale, flip, and position elements.
- Filters → grayscale, sepia, vintage, and more.
- Adjustments → brightness, contrast, saturation, blur, white/black points.
- Text Overlays → add customizable text with fonts, colors, and styles.
- Stickers/Emojis → drag, resize, and rotate from a sticker library.
- Freehand Drawing → brush tool with size, color, opacity controls.
- Templates → meme-style or structured layouts.
- Session Persistence → auto-save editing state with localStorage.
- Export → save final image with all layers applied (text, stickers, drawings, filters).
- React + TypeScript → robust and scalable UI.
- Vite → lightning-fast build tool.
- TailwindCSS + shadcn/ui → modern, minimal, accessible UI.
- Zustand / Context API → state management.
- Konva.js → canvas layers for rendering & exporting.
-
Clone the repository:
git clone https://github.com/CodeWithBotinaOficial/ChromaLab.git cd ChromaLab -
Install dependencies:
npm install
-
Start development server:
npm run dev
Open http://localhost:5173 in your browser.
- Upload → drag & drop or click to upload an image.
- Edit → use sidebar tools for filters, adjustments, text, stickers, drawing.
- Undo/Redo → keyboard shortcuts (
Ctrl+Z,Ctrl+Y) or history panel. - Export → save your masterpiece as PNG/JPEG with all edits applied.
Generate a production build:
npm run buildBuild output goes into the dist/ folder.
- Connect your repo → automatic deployment.
- Perfect for quick, free hosting.
-
Update
vite.config.ts:export default defineConfig({ base: "/ChromaLab/", })
-
Install
gh-pages:npm install --save-dev gh-pages
-
Add script in
package.json:"scripts": { "deploy": "gh-pages -d dist" }
-
Build & deploy:
npm run build npm run deploy
Your app will be live at: ChromaLab
Contributions are welcome! 🎉
- Fork the repo
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
