What is @mui/icons-material?
The @mui/icons-material package provides a large set of icons created by the Material-UI team that are based on Google's Material Design. These icons can be easily integrated into React applications to enhance user interfaces with scalable and accessible pictographic assets.
What are @mui/icons-material's main functionalities?
Using Material Icons in React Components
This feature allows developers to import specific icons from the package and use them as React components within their application. The example shows how to import the AccessAlarm icon and render it in a component.
import React from 'react';
import AccessAlarmIcon from '@mui/icons-material/AccessAlarm';
function MyApp() {
return (
<div>
<AccessAlarmIcon />
</div>
);
}
Customizing Icon Size and Color
Icons can be customized in terms of size and color by passing inline styles or using the 'sx' prop. The code sample demonstrates how to change the size to 40 pixels and the color to blue.
import React from 'react';
import AccessAlarmIcon from '@mui/icons-material/AccessAlarm';
function MyApp() {
return (
<div>
<AccessAlarmIcon style={{ fontSize: 40, color: 'blue' }} />
</div>
);
}
Combining Icons with Material-UI Components
Material icons can be combined with other Material-UI components such as buttons. In this example, a Delete icon is used within an IconButton component to create a clickable delete button.
import React from 'react';
import IconButton from '@mui/material/IconButton';
import DeleteIcon from '@mui/icons-material/Delete';
function MyApp() {
return (
<IconButton aria-label='delete'>
<DeleteIcon />
</IconButton>
);
}
Other packages similar to @mui/icons-material
react-icons
React-icons is a popular package that provides a large collection of icons from various icon libraries such as Font Awesome, Ionicons, and Material Design icons. It allows for easy integration and customization of icons in React applications, similar to @mui/icons-material, but with a broader range of icon sets.
font-awesome
Font Awesome is a widely used icon set that can be integrated into web projects. It offers both free and pro versions with a large selection of icons. While it is not a React-specific package, it can be used in React applications through the 'react-fontawesome' wrapper. It differs from @mui/icons-material in that it is not specifically designed for Material Design.
mdi-react
MDI-React is a package that provides Material Design Icons for React. It is similar to @mui/icons-material in that it focuses on Material Design icons, but it is a separate project not affiliated with the Material-UI team. It offers a different set of icons and may have different customization options.
@mui/icons-material
This package contains Google's Material Icons converted to Material UI SVG Icon components.
Google also offers Material Symbols as the successor of Material Icons. @mui/icons-material
only covers Icons at this time, there are no support for Symbols yet.
Installation
The Material Icons package depends on Material UI—install both with the following command:
npm install @mui/icons-material @mui/material @emotion/styled @emotion/react
Documentation
Contributing
The Icons package is updated via a script that reads through Google's Material Icons set and extracts the SVG elements from there. Because of this, we don't accept new icons that diverge from the source.
To update the @mui/icons-material
package with the latest Material Icons set, run the following commands:
- In the "mui-icons-material" directory, run
pnpm src:download
- In the "mui-icons-material" directory, run
pnpm src:icons
- In the root of the Material UI repo, run
pnpm docs:mdicons:synonyms
- If the number of icons changes significantly, edit the icons/icons.md and material-icons/material-icons.md under docs/data/material/components and update the numbers.
This process is performed by the maintainers on a quarterly basis.