Thank you for your interest in contributing to Celstomp! This document provides guidelines and instructions for contributing to this project.
- Code of Conduct
- Getting Started
- How Can I Contribute?
- Development Workflow
- Style Guidelines
- Commit Messages
- Pull Request Process
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/celstomp_v1.git - Create a new branch for your feature or bug fix
- Make your changes
- Submit a pull request
Before creating a bug report, please:
- Check the existing issues to see if the problem has already been reported
- Use the latest version to verify the bug still exists
When submitting a bug report, please include:
- Clear description of the bug
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Browser and version (e.g., Chrome 120, Firefox 121)
- Operating system (Windows, macOS, Linux)
- Screenshots if applicable
- Console errors (press F12 → Console tab)
Feature suggestions are welcome! Please:
- Check if the feature has already been suggested
- Provide a clear use case and description
- Explain why this feature would be useful to most users
- Ensure your code follows the project's style guidelines
- Update documentation if needed
- Add comments to explain complex logic
- Test your changes thoroughly
- Reference any related issues in your PR description
# Clone your fork
git clone https://github.com/YOUR_USERNAME/celstomp_v1.git
cd celstomp_v1
# Using Vite (recommended)
npm install
npm run dev # starts at http://localhost:5173
# Or using the legacy Python server (no Node required)
./run-dev.command # Linux/Mac
run-dev.bat # Windowscelstomp_v1/
├── celstomp/ # Main application
│ ├── css/ # Stylesheets
│ ├── fonts/ # Local fonts
│ ├── icons/ # Icons and images
│ ├── parts/ # HTML partial templates
│ ├── js/
│ │ ├── core/ # Shared primitives and state helpers
│ │ ├── ui/ # UI wiring, menus, island, shortcuts
│ │ ├── editor/ # Timeline, layers, history, canvas, export
│ │ ├── tools/ # Brush, eraser, lasso behavior
│ │ ├── input/ # Pointer event plumbing
│ │ ├── html-loader.js # Boot/script loader
│ │ ├── init.js # Service worker registration
│ │ └── omggif.js # GIF encoder (vendor)
│ ├── celstomp-app.js # Main app entry
│ ├── celstomp-autosave.js # Autosave logic
│ ├── celstomp-imgseq.js # Image sequence export
│ ├── index.html # App shell
│ ├── manifest.webmanifest # PWA manifest
│ ├── service-worker.js # Offline caching
│ ├── robots.txt # SEO / crawler hints
│ └── sitemap.xml # SEO sitemap
├── .github/ # PR/issue templates
├── package.json # Vite build config
├── package-lock.json # Locked dependency versions
├── vite.config.mjs # Vite settings
├── run-dev.command # Legacy dev server (Mac/Linux)
├── run-dev.bat # Legacy dev server (Windows)
├── LICENSE
└── README.md
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and small
- Use consistent indentation (2 spaces)
- Follow existing code patterns
- Use kebab-case for class names (e.g.,
.timeline-grid) - Group related styles together
- Use CSS variables for colors and sizes when possible
- Comment sections clearly
- Use semantic HTML elements
- Keep accessibility in mind (ARIA labels where needed)
- Use consistent indentation
Write clear, concise commit messages:
- Use present tense ("Add feature" not "Added feature")
- Use imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests where appropriate
Examples:
Add keyboard shortcut for frame navigation
Fix onion skin opacity not updating correctly
Refactor timeline rendering for better performance
- Create a branch from
mainfor your changes - Make your changes following the style guidelines
- Test thoroughly in multiple browsers if possible
- Update documentation if your changes affect usage
- Submit your PR with a clear description
## Description
Brief description of what this PR does
## Changes Made
- List specific changes
- Be clear and concise
## Testing
- How you tested these changes
- Browser/OS combinations tested
## Screenshots (if applicable)
Add screenshots for UI changes
## Related Issues
Fixes #123 or References #456- Maintainers will review your PR as soon as possible
- Address any feedback or requested changes
- Once approved, a maintainer will merge your PR
If you have questions about contributing:
- Open an issue with the "question" label
- Reach out to the maintainers
Thank you for contributing to Celstomp!