What is @mui/material?
The @mui/material package is a React component library that implements Google's Material Design. It provides a robust, customizable, and accessible collection of components that can be used to build a wide range of user interfaces for web applications.
What are @mui/material's main functionalities?
UI Components
This feature provides pre-built UI components such as buttons, cards, dialogs, and more, which can be easily imported and used in a React application.
import Button from '@mui/material/Button';
function App() {
return <Button variant='contained'>Click Me</Button>;
}
Layout Components
This feature includes components for creating layouts, such as containers and grid systems, to help organize the content on the page.
import Container from '@mui/material/Container';
import Grid from '@mui/material/Grid';
function App() {
return (
<Container>
<Grid container spacing={2}>
<Grid item xs={12} sm={6}>
Content 1
</Grid>
<Grid item xs={12} sm={6}>
Content 2
</Grid>
</Grid>
</Container>
);
}
Theming
This feature allows for customization of the look and feel of components through theming, enabling developers to define color schemes, typography, and other design elements.
import { createTheme, ThemeProvider } from '@mui/material/styles';
import Button from '@mui/material/Button';
const theme = createTheme({
palette: {
primary: {
main: '#556cd6',
},
},
});
function App() {
return (
<ThemeProvider theme={theme}>
<Button color='primary'>Themed Button</Button>
</ThemeProvider>
);
}
Icons
This feature provides a large set of icons that can be used in conjunction with other components or standalone.
import AccessAlarmIcon from '@mui/icons-material/AccessAlarm';
function App() {
return <AccessAlarmIcon />;
}
Other packages similar to @mui/material
antd
Ant Design (antd) is a design system for enterprise-level products. It includes a set of high-quality React components and is similar to @mui/material in providing a comprehensive UI toolkit. Ant Design focuses more on enterprise applications and has a different design language compared to Material Design.
react-bootstrap
React Bootstrap is a React component library that rebuilds the Bootstrap components with React. It offers a different set of components and utilities that adhere to the Bootstrap framework, which has a distinct look and feel from Material Design.
semantic-ui-react
Semantic UI React is the official React integration for Semantic UI. It is similar to @mui/material in that it provides a number of pre-built components, but it follows the design principles of Semantic UI, which differ from Material Design.
chakra-ui
Chakra UI is a simple, modular, and accessible component library that gives you the building blocks to build your React applications. It is similar to @mui/material in its goals but offers a different design system and a focus on simplicity and accessibility.
MUI Core
MUI Core contains foundational React UI component libraries for shipping new features faster.
-
Material UI is a comprehensive library of components that features our implementation of Google's Material Design system.
-
MUI Base is our library of "unstyled" components and low-level hooks. With Base, you gain complete control over your app's CSS and accessibility features.
-
MUI System is a collection of CSS utilities to help you rapidly lay out custom designs.
Installation
Material UI
Material UI is available as an npm package.
// with npm
npm install @mui/material @emotion/react @emotion/styled
// with yarn
yarn add @mui/material @emotion/react @emotion/styled
Older versions
Note: @next
only points to pre-releases.
Use @latest
for the latest stable release.
MUI Base
MUI Base is available as an npm package.
// with npm
npm install @mui/base
// with yarn
yarn add @mui/base
Note: MUI Base is still in alpha.
We are adding new components regularly and you're welcome to contribute!
MUI System
MUI System is available as an npm package.
// with npm
npm install @mui/system @emotion/react @emotion/styled
// with yarn
yarn add @mui/system @emotion/react @emotion/styled
Or if you want to use styled-components
as a styling engine:
// with npm
npm install @mui/system @mui/styled-engine-sc styled-components
// with yarn
yarn add @mui/system @mui/styled-engine-sc styled-components
Visit our styled-engine
guide for more information about how to configure styled-components
as the style engine.
Diamond 💎
Diamond Sponsors are those who have pledged $1,500/month or more to MUI.
Gold 🏆
via OpenCollective or via Patreon
Gold Sponsors are those who have pledged $500/month or more to MUI.
More backers
See the full list of our backers.
Getting started with Material UI
Here is an example of a basic app using Material UI's Button
component:
import * as React from 'react';
import ReactDOM from 'react-dom';
import Button from '@mui/material/Button';
function App() {
return (
<Button variant="contained" color="primary">
Hello World
</Button>
);
}
ReactDOM.createRoot(document.querySelector('#app')).render(<App />);
In the interactive demo below, try changing the code and see how it affects the output.
(Hint: change variant
to "outlined"
and color
to "secondary"
.
For more options, see the Button
component page in our docs.)
Questions
For how-to questions that don't involve making changes to the code base, please use Stack Overflow instead of GitHub issues.
Use the "mui" tag on Stack Overflow to make it easier for the community to find your question.
Examples
Our documentation features a collection of example projects using Material UI.
Documentation
Premium themes
You can find complete templates and themes in the MUI Store.
Contributing
Read the contributing guide to learn about our development process, how to propose bug fixes and improvements, and how to build and test your changes.
Contributing to MUI Core is about more than just issues and pull requests!
There are many other ways to support MUI beyond contributing to the code base.
Changelog
The changelog is regularly updated to reflect what's changed in each new release.
Roadmap
Future plans and high-priority features and enhancements can be found in our roadmap.
License
This project is licensed under the terms of the
MIT license.
These great services sponsor MUI's core infrastructure:
GitHub lets us host the Git repository and coordinate contributions.
Netlify lets us distribute the documentation.
Crowdin lets us translate the documentation.
BrowserStack lets us test in real browsers.
CodeCov lets us monitor test coverage.