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 testand 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 useto switch to the Node version specified in.nvmrcfile (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 --noEmiton 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 cleandocs:build– runs all above docs scripts and build production docs bundledocs:deploy– runs all above docs scripts and deploys docs to GitHub Pages