A modern, professional sprite sheet management application built with React, Node.js, and Material-UI. Features advanced color palette extraction, intelligent layout optimization, and a sleek dark material design interface.
- Smart Image Upload: Drag & drop multiple images with automatic optimization
- Advanced Color Palette Extraction: Extract up to 16 colors from reference images
- Intelligent Layout Algorithms: Optimal packing, grid, horizontal, and vertical layouts
- Multiple Export Formats: PNG, JPEG, WebP with configurable quality settings
- Real-time Preview: See changes instantly as you adjust parameters
- Color Harmony Generation: Create custom palettes using color theory
- Batch Processing: Process multiple sprite sheets with consistent settings
- Power-of-Two Optimization: Automatic power-of-two dimension scaling
- Configurable Parameters: Padding, background color, maximum dimensions
- Export Options: JSON metadata, CSS variables, and raw hex values
- Dark Material Design: Modern, professional interface
- Responsive Layout: Works seamlessly on desktop and mobile devices
- Drag & Drop Interface: Intuitive file upload and management
- Real-time Feedback: Progress indicators and instant previews
- Copy-to-Clipboard: Quick color code copying
- React 18 with TypeScript
- Material-UI (MUI) 5 with custom dark theme
- React Router for navigation
- React Dropzone for file upload
- Vite for fast development and building
- Node.js with Express
- Sharp for high-performance image processing
- Jimp for color analysis
- Multer for file upload handling
- Helmet & Compression for security and performance
- Node.js 18+
- npm or yarn
- Clone the repository
git clone <repository-url>
cd sprite-sheet-manager- Install dependencies
npm run install-deps- Start the development servers
npm run devThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
-
Upload Images
- Navigate to the Sprite Editor
- Drag and drop images or click to select files
- Supports PNG, JPEG, GIF, and WebP formats
-
Configure Parameters
- Select layout algorithm (optimal, grid, horizontal, vertical)
- Choose output format (PNG, JPEG, WebP)
- Adjust padding, dimensions, and other settings
-
Generate & Download
- Click "Generate Sprite Sheet"
- Preview the result
- Download the sprite sheet and metadata
-
Upload Reference Images
- Navigate to Color Palette
- Upload one or multiple reference images
- Adjust extraction quality and color count
-
Generate Custom Palettes
- Use color harmony tools
- Choose from monochromatic, complementary, triadic, and other schemes
- Adjust saturation and lightness
-
Export Palettes
- Download as JSON, CSS, or plain text
- Copy individual colors to clipboard
- Save palette history for reuse
sprite-sheet-manager/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Main application pages
β β βββ services/ # API communication
β β βββ types/ # TypeScript definitions
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
β βββ package.json
βββ server/ # Node.js backend
β βββ routes/ # API route handlers
β βββ services/ # Business logic
β βββ uploads/ # File storage
β βββ package.json
βββ package.json # Root package configuration
POST /api/sprites/upload- Upload images for processingPOST /api/sprites/generate- Generate sprite sheetGET /api/sprites/layouts- Get available layout algorithmsGET /api/sprites/formats- Get supported output formatsDELETE /api/sprites/cleanup/:sessionId- Clean up temporary files
POST /api/colors/extract- Extract colors from single imagePOST /api/colors/analyze-batch- Batch color analysisPOST /api/colors/generate-palette- Generate custom color harmonyGET /api/colors/harmonies- Get available color harmony types
- Monochromatic: Variations of a single color
- Complementary: Colors opposite on the color wheel
- Triadic: Three evenly spaced colors
- Analogous: Adjacent colors on the wheel
- Split Complementary: Base color plus two adjacent to its complement
- Tetradic: Four colors in two complementary pairs
- JSON: Complete palette data with RGB, HSL, and hex values
- CSS: CSS custom properties for direct web use
- Text: Simple list of hex values
Create a .env file in the server directory:
PORT=5000
NODE_ENV=development
CLAUDE_API_KEY=your_api_key_here
UPLOAD_LIMIT=10mb
MAX_FILES=20- Frontend: Vite configuration in
client/vite.config.ts - TypeScript: Configuration in
client/tsconfig.json - Backend: Express configuration in
server/index.js
npm run dev- Start both frontend and backend in development modenpm run client- Start only the React development servernpm run server- Start only the Node.js backend servernpm run build- Build the frontend for productionnpm run install-deps- Install dependencies for all packages
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the 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.
- Material-UI team for the excellent React components
- Sharp.js for high-performance image processing
- React Dropzone for seamless file upload experience
- The open source community for inspiration and tools