Skip to content

Latest commit

 

History

History
105 lines (72 loc) · 2.45 KB

CONTRIBUTING.md

File metadata and controls

105 lines (72 loc) · 2.45 KB

Contributing to Motheme

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.

Development Setup

Prerequisites

  • Python 3.9 or higher
  • uv (recommended) or pip
  • Hatch for development workflow

Installation

  1. Clone the repository:
git clone https://github.com/metaboulie/marimo-themes
cd marimo-themes
  1. Install development dependencies:
uv pip install -e ".[dev,test]"

Development Workflow

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

Contributing Guidelines

Adding Your Theme

  1. Study Default Theme: All available arguments are listed in themes/default/default.css. Use this as a reference for writing your themes.

  2. Theme Requirements:

    • Implement both light and dark themes using the light-dark syntax
    • If implementing only one mode, name it xxx_light or xxx_dark and use default values for the other mode
    • Test your theme with different notebook layouts and content types
  3. Folder Structure:

    themes/
    └── your_theme_name/
        ├── theme.css
        ├── preview_light.png
        ├── preview_dark.png
        └── README.md (optional)
    

Pull Request Process

  1. Create a new branch for your changes
  2. Follow the code style guidelines (enforced by Ruff)
  3. Add tests for any new functionality
  4. Update documentation as needed
  5. Submit a pull request with a clear description of your changes

Project Roadmap

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.

Need Help?

If you have questions or need help, please:

  1. Check existing issues and documentation
  2. Open a new issue for bugs or feature requests
  3. Start a discussion for general questions