Material Design SVG icons converted to Material-UI React components.
npx @tessl/cli install tessl/npm-material-ui--icons@4.11.0@material-ui/icons provides Google Material Design icons as React components that integrate seamlessly with Material-UI. The library offers over 1,100 pre-built SVG icons as individual React components, enabling developers to easily incorporate consistent, scalable Material Design iconography into their React applications.
npm install @material-ui/icons @material-ui/core@material-ui/core, react, and react-domimport { AccessAlarm, Add, Delete, Settings } from "@material-ui/icons";For individual imports (recommended for tree-shaking):
import AccessAlarm from "@material-ui/icons/AccessAlarm";
import Add from "@material-ui/icons/Add";CommonJS:
const { AccessAlarm, Add, Delete, Settings } = require("@material-ui/icons");import React from 'react';
import { Add, Delete, Settings } from '@material-ui/icons';
function MyComponent() {
return (
<div>
<Add color="primary" fontSize="large" />
<Delete color="secondary" />
<Settings style={{ color: '#ff5722' }} />
</div>
);
}@material-ui/icons is built around several key concepts:
Each base icon is typically available in 5 style variants:
Add): Default filled Material Design styleAddOutlined): Outlined/stroked version with transparent fillAddRounded): Rounded corner version for softer appearanceAddSharp): Sharp corner version for more geometric lookAddTwoTone): Two-tone version with primary and secondary colorsCommon action icons for user interactions like adding, deleting, editing, and navigation.
// Core action icons
import Add from "@material-ui/icons/Add";
import Delete from "@material-ui/icons/Delete";
import Edit from "@material-ui/icons/Edit";
import Search from "@material-ui/icons/Search";
import Settings from "@material-ui/icons/Settings";
import MoreVert from "@material-ui/icons/MoreVert";Icons for navigation, menus, arrows, and directional indicators.
// Navigation and directional icons
import ArrowBack from "@material-ui/icons/ArrowBack";
import ArrowForward from "@material-ui/icons/ArrowForward";
import Menu from "@material-ui/icons/Menu";
import Close from "@material-ui/icons/Close";
import ExpandMore from "@material-ui/icons/ExpandMore";
import ChevronLeft from "@material-ui/icons/ChevronLeft";Icons for communication features like messaging, calls, and social interactions.
// Communication icons
import Email from "@material-ui/icons/Email";
import Phone from "@material-ui/icons/Phone";
import Chat from "@material-ui/icons/Chat";
import Message from "@material-ui/icons/Message";
import VideoCall from "@material-ui/icons/VideoCall";Icons for content management, file operations, and text editing.
// Content and file icons
import FileCopy from "@material-ui/icons/FileCopy";
import Save from "@material-ui/icons/Save";
import Share from "@material-ui/icons/Share";
import CloudDownload from "@material-ui/icons/CloudDownload";
import CloudUpload from "@material-ui/icons/CloudUpload";
import Folder from "@material-ui/icons/Folder";Icons for toggles, checkboxes, radio buttons, and selection states.
// Toggle and selection icons
import CheckBox from "@material-ui/icons/CheckBox";
import CheckBoxOutlineBlank from "@material-ui/icons/CheckBoxOutlineBlank";
import RadioButtonChecked from "@material-ui/icons/RadioButtonChecked";
import RadioButtonUnchecked from "@material-ui/icons/RadioButtonUnchecked";
import ToggleOn from "@material-ui/icons/ToggleOn";
import ToggleOff from "@material-ui/icons/ToggleOff";Icons for media playback, camera functionality, audio controls, and entertainment features.
// Media playback and camera controls
import PlayArrow from "@material-ui/icons/PlayArrow";
import Pause from "@material-ui/icons/Pause";
import VolumeUp from "@material-ui/icons/VolumeUp";
import PhotoCamera from "@material-ui/icons/PhotoCamera";
import Videocam from "@material-ui/icons/Videocam";
import MusicNote from "@material-ui/icons/MusicNote";Icons for locations, buildings, navigation, and place-based services.
// Location and navigation icons
import LocationOn from "@material-ui/icons/LocationOn";
import Home from "@material-ui/icons/Home";
import Business from "@material-ui/icons/Business";
import Restaurant from "@material-ui/icons/Restaurant";
import LocalHospital from "@material-ui/icons/LocalHospital";
import Directions from "@material-ui/icons/Directions";Icons for electronic devices, computer hardware, and technology equipment.
// Device and hardware icons
import Computer from "@material-ui/icons/Computer";
import PhoneAndroid from "@material-ui/icons/PhoneAndroid";
import Laptop from "@material-ui/icons/Laptop";
import Keyboard from "@material-ui/icons/Keyboard";
import Wifi from "@material-ui/icons/Wifi";
import Bluetooth from "@material-ui/icons/Bluetooth";All icon components share the same props interface from Material-UI's SvgIcon:
// All icon components inherit from Material-UI's SvgIcon
interface SvgIconProps {
/** Node passed into the SVG element */
children?: React.ReactNode;
/** Override or extend the styles applied to the component */
classes?: Partial<SvgIconClassKey>;
/** Custom CSS class name */
className?: string;
/** The color of the component. Supports theme colors. */
color?: 'inherit' | 'primary' | 'secondary' | 'action' | 'disabled' | 'error';
/** The component used for the root node */
component?: React.ElementType;
/** The fontSize applied to the icon. Defaults to 24px. */
fontSize?: 'inherit' | 'default' | 'small' | 'large';
/** Applies a color attribute to the SVG element */
htmlColor?: string;
/** The shape-rendering attribute for controlling rendering quality */
shapeRendering?: string;
/** Custom inline styles */
style?: React.CSSProperties;
/** Provides a human-readable title for the element */
titleAccess?: string;
/** Allows you to redefine coordinates without units inside an SVG element */
viewBox?: string;
}
type SvgIconClassKey =
| 'root'
| 'colorPrimary'
| 'colorSecondary'
| 'colorAction'
| 'colorError'
| 'colorDisabled'
| 'fontSizeInherit'
| 'fontSizeSmall'
| 'fontSizeLarge';
// Every icon component follows this signature
type IconComponent = React.ComponentType<SvgIconProps>;