Skip to content

Icons, Emojis

One of the best features of Material for MkDocs is the possibility to use [more than 8,000 icons][icon search] and thousands of emojis in your project documentation with practically zero additional effort. Moreover, custom icons can be added and used in mkdocs.yml, documents and templates.

Usage

Using emojis

Emojis can be integrated in Markdown by putting the shortcode of the emoji between two colons. If you're using Twemoji (recommended), you can look up the shortcodes at Emojipedia:

Emoji
:smile: 

😄

Using icons

When [Emoji] is enabled, icons can be used similar to emojis, by referencing a valid path to any icon bundled with the theme, which are located in the .icons directory, and replacing / with -:

Icon
:fontawesome-regular-face-laugh-wink:

with colors

When [Attribute Lists] is enabled, custom CSS classes can be added to icons by suffixing the icon with a special syntax. While HTML allows to use inline styles, it's always recommended to add an [additional style sheet] and move declarations into dedicated CSS classes:

.twitter {
  color: #1DA1F2;
}
extra_css:
  - stylesheets/extra.css

After applying the customization, add the CSS class to the icon shortcode:

Icon with color
:fontawesome-brands-twitter:{ .twitter }

with animations

Similar to adding colors, it's just as easy to add animations to icons by using an [additional style sheet], defining a @keyframes rule and adding a dedicated CSS class to the icon:

@keyframes heart {
  0%, 40%, 80%, 100% {
    transform: scale(1);
  }
  20%, 60% {
    transform: scale(1.15);
  }
}
.heart {
  animation: heart 1000ms infinite;
}
extra_css:
  - stylesheets/extra.css

After applying the customization, add the CSS class to the icon shortcode:

Icon with animation
:octicons-heart-fill-24:{ .heart }

Customization

Using icons in templates

When you're [extending the theme] with partials or blocks, you can simply reference any icon that's [bundled with the theme][icon search] with Jinja's include function and wrap it with the .twemoji CSS class:

<span class="twemoji">
  {% include ".icons/fontawesome/brands/twitter.svg" %} <!-- (1)! -->
</span>
  1. Enter a few keywords to find the perfect icon using our [icon search] and click on the shortcode to copy it to your clipboard:

    This is exactly what Material for MkDocs does in its templates.


    Last update: 2023-07-21

    Comments