Material Symbols guide

What are Material Symbols?

Material Symbols are our newest icons, consolidating over 2,500 glyphs in a single font file with a wide range of design variants. Symbols are available in three styles and four adjustable variable font axes (fill, weight, grade, and optical size). See the full set of Material Symbols in the Material Symbols Library.

FILL axis

Fill gives you the ability to modify the default icon style. A single icon can render both unfilled and filled states.

To convey a state transition, use the fill axis for animation or interaction. The values are 0 for default or 1 for completely filled. Along with the weight axis, the fill also impacts the look of the icon.

wght axis

Weight defines the symbol’s stroke weight, with a range of weights between thin (100) and bold (700). Weight can also affect the overall size of the symbol.

GRAD axis

Grade axis visualization

Weight and grade affect a symbol’s thickness. Adjustments to grade are more granular than adjustments to weight and have a small impact on the size of the symbol.

Grade is also available in some text fonts. You can match grade levels between text and symbols for a harmonious visual effect. For example, if the text font has a -25 grade value, the symbols can match it with a suitable value, say -25.

You can use grade for different needs:

Low emphasis (e.g. -25 grade): To reduce glare for a light symbol on a dark background, use a low grade.

High emphasis (e.g. 200 grade): To highlight a symbol, increase the positive grade.

opsz axis

Optical sizes range from 20dp to 48dp.

For the image to look the same at different sizes, the stroke weight (thickness) changes as the icon size scales. Optical size offers a way to automatically adjust the stroke weight when you increase or decrease the symbol size.

Getting Material Symbols

Material Symbols are available in several formats and are suitable for different types of projects and platforms, both for developers in their apps and for designers in their mockups or prototypes.


Material Symbols are available under the Apache License Version 2.0.

Browsing and downloading individual icons

The complete set of Material Symbols are available from the Material Symbols Library in SVG or PNG formats. They are suitable for web, Android, and iOS, or with any designer tools.

Git repository

The git repository contains the complete set of Material Symbols in SVG format.

$ git clone

Using Material Symbols

Use in Web

The Material Symbols font is the easiest way to incorporate Material Symbols into web projects.

The icons are packaged into a single font so that web developers can easily incorporate these icons with only a few lines of code.

Static font with Google Fonts

The easiest way to set up icon fonts for use in any web page is through Google Fonts. Include this single line of HTML:

<link href="" rel="stylesheet" />

The above snippet includes the default configuration for each axis, with weight at 400, optical size at 48, grade at 0 and fill (also 0.)

Use the Fonts CSS API to configure different axes values. Take a look at the following examples:

Variable font with Google Fonts

If you're animating icons via CSS, or want finer control over icon features, use the Google Symbols variable font. Using ranges, in the format number..number, we can load the entire variable font. Check out Can I Use’s Variable Fonts support to understand if your users will be capable of loading the variable font, most likely they are. Here are some examples:

Or even animate them!

Self-hosting the font

Host the icon font in a location you control, in order to decide when to update the asset. For example if the URL is, then add the following CSS rule:

@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  src: url( format('woff');

To render the font properly, declare the CSS rules for rendering the icon. These rules are normally served as part of the Google Fonts API stylesheet, but will need to be included manually in your projects when self-hosting:

.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;

Using the icons in HTML

The examples provided above use a typographic feature called ligatures, which allows rendering of an icon glyph simply by using its textual name. The web browser automatically replaces the text ligature with the icon vector and provides more readable code than the equivalent numeric character reference. For example, in your HTML you will have arrow_forward to represent an icon, instead of &#xE5C8;.

This feature is supported in most modern browsers on both desktop and mobile devices. See Can I Use’s ligatures support to see if your users will be capable of processing ligatures, most likely they can.

If you do need to support browsers that do not support ligatures, specify the icons using numeric character references (a.k.a. codepoints) like the example below:

Find both the icon names and codepoints on the Material Symbols Library by selecting any icon and opening the icon font panel. Each icon font has a codepoints index in the Google Fonts git repository showing the complete set of names and character codes.

Styling icons in Material Design

These icons were designed to follow the Material Design guidelines, and they look best when using the recommended icon sizes and colors. The styles below make it easy to apply our recommended sizes, colors, and activity states.

Use in Android

In the Material Symbols Library, all icons are in the Vector Drawable format. To learn more, check out the Android Vector Asset Studio documentation.

Use in iOS

The icons are also available in Apple Symbols format. To learn more about them, check out the official Apple Symbols overview and usage guidance.

Use in Flutter

Flutter support for Material Symbols is planned. Stay tuned for updates.