Thank you for your interest in contributing to Motheme! This document will guide you through the process of setting up your development environment and contributing to the project.
- Clone the repository:
git clone https://github.com/metaboulie/marimo-themes
cd marimo-themes
- Install development dependencies:
uv pip install -e ".[dev,test]"
We use Hatch to manage our development workflow. Here are the common commands:
- Format code:
hatch run format
- Lint code:
hatch run lint
- Run tests:
hatch run test:test
-
Study Default Theme: All available arguments are listed in
themes/default/default.css
. Use this as a reference for writing your themes. -
Theme Requirements:
- Implement both light and dark themes using the light-dark syntax
- If implementing only one mode, name it
xxx_light
orxxx_dark
and use default values for the other mode - Test your theme with different notebook layouts and content types
-
Folder Structure:
themes/ └── your_theme_name/ ├── theme.css ├── preview_light.png ├── preview_dark.png └── README.md (optional)
- Create a new branch for your changes
- Follow the code style guidelines (enforced by Ruff)
- Add tests for any new functionality
- Update documentation as needed
- Submit a pull request with a clear description of your changes
Current development priorities include:
-
motheme preview
: Preview themes before applying -
motheme validate
: Validate theme file structure -
motheme random
: Apply random themes - Integration with custom HTML head
- Enhanced theme testing and validation
- Improved documentation and examples
For a complete list of planned features and improvements, see roadmap.md.
If you have questions or need help, please:
- Check existing issues and documentation
- Open a new issue for bugs or feature requests
- Start a discussion for general questions