Thank you for your interest in contributing to normal-map.app! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
If you find a bug, please create an issue with:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Screenshots if applicable
- Browser and OS information
- Sample images (if relevant)
Feature requests are welcome! Please:
- Check if the feature has already been suggested
- Provide a clear description of the feature
- Explain why this feature would be useful
- Include mockups or examples if possible
-
Fork the repository and create your branch from
maingit checkout -b feature/my-new-feature
-
Make your changes
- Keep changes focused and atomic
- Follow the existing code style
- Add comments for complex logic
- Test thoroughly across different browsers
-
Test your changes
npm run build npm run preview
-
Commit your changes
- Use clear, descriptive commit messages
- Reference issue numbers if applicable
git commit -m "Add feature: description of feature" -
Push to your fork
git push origin feature/my-new-feature
-
Open a Pull Request
- Provide a clear description of the changes
- Link any related issues
- Add screenshots for UI changes
- Use clear, descriptive variable names
- Keep functions small and focused
- Comment complex algorithms
- Maintain consistent indentation (use Prettier!)
- Use modern JavaScript features (ES6+)
- Test with various image sizes
- Optimize algorithms for large images
- Profile performance-critical code
Test your changes on:
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
- Maintain ARIA labels
- Ensure keyboard navigation works
- Test with screen readers when possible
- Maintain color contrast ratios
normal-map/
├── src/
│ └── index.html # Main application file
├── public/ # Build output & static assets
├── build.js # Build script
├── package.json # Dependencies
├── vercel.json # Deployment config
├── LICENSE # MIT License
├── README.md # User documentation
└── CONTRIBUTING.md # This file
# Development mode (no minification)
npm run dev
# Production build
npm run build
# Preview production build
npm run previewWe especially welcome contributions in these areas:
- Performance optimization for large images
- Additional export formats (TGA, DDS)
- Batch processing multiple images
- Custom lighting presets/profiles
- Animation frame preview
- Keyboard shortcuts customization
- Internationalization (i18n)
- Dark/light theme toggle
- Advanced blur options (bilateral, Gaussian)
- Image comparison slider
Feel free to open an issue for any questions about contributing!
By contributing, you agree that your contributions will be licensed under the MIT License.