Contributing to Atomize React

Code of Conduct

We want this community to be friendly and respectful to each other.

Our Development Process

The core team works directly on GitHub and all work is public.

Development workflow

Working on your first pull request? You can learn how from this free series: How to Contribute to an Open Source Project on GitHub.
- Fork the repo and create your branch from master (a guide on how to fork a repository).
- Run yarn bootstrap to setup the development environment.
- Do the changes you want and test them out in the example website before sending a pull request.

Commit message convention

We follow the conventional commits specification for our commit messages:
- fix: bug fixes, e.g. fix Button color on DarkTheme.
- feat: new features, e.g. add Snackbar component.
- refactor: code refactor, e.g. new folder structure for components.
- docs: changes into documentation, e.g. add usage example for Button.
- test: adding or updating tests, eg unit, snapshot testing.
- chore: tooling changes, e.g. change circleci config.
- BREAKING CHANGE: for changes that break existing usage, e.g. change API of a component.
Our pre-commit hooks verify that your commit message matches this format when committing.

Sending a pull request

When you're sending a pull request:
- Prefer small pull requests focused on one change.
- Verify that flow, eslint and all tests are passing.
- Preview the documentation to make sure it looks good.
- Follow the pull request template when opening a pull request.

When you're working on a component:
- Follow the guidelines described in the official material design docs.
- Write a brief description of every prop when defining type Props to aid with documentation.
- Provide an example usage for the component (check other components to get a idea).
- Update the type definitions for Flow and Typescript if you changed an API or added a component.

Reporting issues

You can report issues on our bug tracker. Please follow the issue template when opening an issue.

License

By contributing to Atomize, you agree that your contributions will be licensed under its Atomize license.