Thank you for showing interest in contributing to Mantine. All of your contributions are extremely valuable to the success of this project!
- Improve documentation - fix incomplete or missing docs, bad wording, examples, or explanations
- Give feedback - we are constantly working to make Mantine a better experience, so please feel free to share what you like, dislike, or any improvements you'd like to see via GitHub Discussions or Discord
- Share Mantine - help us spread the word by sharing Mantine, or even Tweet about Mantine directly
- GitHub Issues - work on an outstanding issue to help us keep Mantine a sturdy, reliable UI solution
- Suggest New Features - please feel free to dicuss any new features you'd like to see by creating a GitHub issue or sending a Discord message
- After deciding which GitHub issue or feature you'd like to work on, create a local branch to track your changes
- If applicable, add unit tests while implementing your code
- Ensure that all commits follow our commit convention
- It is highly recommended that you run the
npm test
command to ensure new contributions integrate with the old before initiating a merge request - Create a merge request and keep up-to-date with any feedback you receive from a maintainer
If you are unable to finish your task, please let us know in the GitHub Issue in which your work was initiated. The Mantine community is friendly; we won't judge or ask any questions if you decide to cancel your submission.
Mantine is a monorepo, so it is important to write the correct commit messages to keep the git history clean. All commits made in this repository are divided into 3 groups:
- package commits - related to a particular package
- docs commits - related to documentation
- core commits - only related to repository tooling (not associated with any package)
The commit message consists of 3 parts:
[area] Optional title: Message
Examples:
[core] Fix documentation deployment script
– Change made in repository script, it is not related to documentation or any package[docs] Update report issues link
– Change related to documentation website[@mantine/core] Button: Add theme focus styles
– Change in@mantine/core
package at Button component[@mantine/hooks] use-list-state: Add remove handler
– Change in@mantine/hooks
package at use-list-state hook
- master: the current version, or alternatively, patches for current minor version (1.0.x)
- dev: contains the next minor version (1.x.0) (more often than not, you'll want to create a PR directly to this branch)
- Fork the Mantine repository
- Install the editorconfig extension for your editor
- Install dependencies with yarn –
yarn
- Take an initial peek at our components by running
npm run storybook
All npm scripts are located inside the package.json file. Individual packages do not have dedicated scripts.
docs
– starts the docs development serverstorybook
- starts the storybook development server
syncpack
– runs syncpacktypecheck
– runs TypeScript typechecking withtsc --noEmit
on all packages and docslint
– runs ESLint on src folderjest
– runs tests with jesttest
– runs all above testing scripts
docs:docgen
– generates components types information with docgen scriptdocs:sizes
– generates bundle size information for all packagesdocs:clean
– runsgatsby clean
docs:build
– runs all above docs scripts and build production docs bundledocs:deploy
– runs all above docs scripts and deploys docs to GitHub Pages