First, thank you for considering contributing to Spruce. We appreciate your time and effort in making this CSS system better. We want to make contributing to this project as easy and transparent as possible, whether it's:

  • reporting a bug.
  • Discuss the current state of the code.
  • Submitting a fix.
  • Proposing new features.
  • Becoming a maintainer.

Following these guidelines helps communicate that you respect the developers' time managing and developing this open-source project. In return, they should reciprocate that respect by addressing your issue, assessing changes, and helping you finalize your pull requests.

Ground Rules

Responsibilities

  • Create issues for any significant changes and enhancements you wish to make. Discuss things transparently, and get community feedback.
  • Keep feature versions as small as possible, preferably one new feature per commit.

All Code Changes Happen Through Pull Requests

Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:

  1. Fork the repo and create your branch from main.
  2. Add tests if you've added code that should be tested.
  3. If you've changed APIs, update the documentation.
  4. Ensure the test suite passes.
  5. Make sure you lint your code.
  6. Open a pull request!

Your First Contribution

Here are a couple of friendly tutorials you can include: https://makeapullrequest.com/ and https://www.firsttimersonly.com/

Are you working on your first Pull Request? You can learn how from this free series, How to Contribute to an Open Source Project on GitHub.

Any Contributions You Make Will Be Under the MIT Software License

In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that is a concern.

Use a Consistent Coding Style

Please follow and use the practices under the Structure and Code page.