Mantine

Mantine is a MIT licensed open source react components and hooks library with focus on usability, accessibility and developer experience.

Features

Customizable
Colors, fonts, shadows and many other parts are customizable to fit your design needs
Dark theme
Mantine supports dark theme by default in all components
Accessibility and usability
All components follow accessibility best practices and feature full keyboard support
TypeScript
All @mantine/ scoped packages are built with TypeScript and support it by default
Ready for production
Mantine is well tested and works in all modern browsers
Developer experience
Mantine comes with more than 50 components and 15 hooks to cover you in most cases
No annoying focus ring
With new :focus-visible pseudo-class focus ring appears only when user navigates with keyboard
React JSS
Take advantage of all react-jss features: automatic critical css extraction during ssr, lazy evaluation, dynamic theming and others

Mantine packages

PackageDescriptionGzipped sizeLinks
@mantine/coreComponents library44.37 kB
@mantine/hooksHooks collection for state and UI management3.49 kB
@mantine/notificationsNotifications system9.30 kB
@mantine/tag-pickerNotion like tag picker component5.13 kB

Getting started

Mantine works out of the box with create-react-app (including TypeScript version), Preact cli (with compat), Next.js, Gatsby and any other environment.

Install mantine dependencies with yarn:

yarn add react-jss @mantine/hooks @mantine/core

or npm

npm install react-jss @mantine/hooks @mantine/core

And you are ready:

import React from 'react';
import { Button } from '@mantine/core';
function App() {
return <Button>My mantine button</Button>;
}

To enable server side rendering in your application see ssr guide, it includes tutorials for Gatsby, Next.js and your own server.

Versioning

All mantine packages are released at the same time with exact same version. After installation you can fix @mantine/scoped packages version in your package.json to prevent versions mismatch in future:

{
// Fix version by using "1.0.1", not default "^1.0.1"
"dependencies": {
"@mantine/core": "1.0.1",
"@mantine/hooks": "1.0.1"
}
}