Contribution

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,
  • discussing the current state of the code,
  • submitting a fix,
  • proposing new features,
  • creating a new style preset or component,
  • 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

  • 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 (npm test).
  3. If you've changed APIs, update the documentation and the changelog.
  4. Ensure the test suite passes.
  5. Make sure you lint your code (npm run sass:lint).
  6. Check your change in the preview (npm start) with different styles, in dark mode and in RTL.
  7. Open a pull request!

Your First Contribution

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.

Documentation

Learn about Spruce CSS through our extensive documentation.

Components

Explore our UI library of accessible components built with Spruce CSS.

Blocks and Pages

Full-width page blocks and complete page templates, ready to copy.

Find us on GitHub

Did you find a bug? Have an idea or a question? Please open an issue to help us develop the project.