First of all, thank you for showing interest in contributing to Mantine, all your contributions are extremely valuable to the project!
- Improve documentation: fix incomplete or missing docs, bad wording, examples or explanations
- Give feedback: we are constantly working on making Mantine better, please share how you use Mantine, what features are missing and what is done good via GitHub Discussions or Discord
- Share Mantine: share link to Mantine docs with everyone who can be interested, share Mantine on Twitter
- Contribute to codebase: propose new feature via GitHub Issues or find an existing one that you are interested in and work on it
- Give us a code review: help us identify problems with source code or make Mantine more performant
- Decide what you want to contribute
- If you want to implement new feature discuss it with maintainer (GitHub Discussions or Discord) before jumping into code
- After finalizing issue details work on code, please follow commit convention
- Run tests with
npm test
and submit a PR if everything is fine - Get a code review and fix all issues noticed by maintainer
- If you cannot finish your task or changed your mind – that's totally fine, just let us know in GitHub issue that you've created in first step. Mantine community is friendly – we won't judge or ask any questions if you decide to cancel your submission
- Your PR is merged, you are awesome!
- master – current version, patches for current minor version (1.0.x)
- dev – contains next minor version (1.x.0), most likely you would want to create a PR to this branch
- Install the editorconfig extension for your editor.
- Fork the repository, then clone or download your fork.
- Run
nvm use
to switch to the Node version specified in.nvmrc
file (nvm installation instructions). - Install dependencies with yarn –
yarn
- Setup project –
npm run setup
- Build local version of all packages –
npm run build all
- To start storybook –
npm run storybook
- To start docs –
npm run docs
- To rebuild props descriptions –
npm run docs:docgen
All npm scripts are located at main package.json, individual packages do not have dedicated scripts.
docs
– starts docs development serverstorybook
– starts 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