Files
mkdocs-material/docs/reference/icons-emojis.md
2021-10-04 23:36:31 +02:00

5.6 KiB
Raw Blame History

template
template
overrides/main.html

Icons + Emojis

One of the best features of Material for MkDocs is the possibility to use more than 8.000 icons 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.

    :octicons-light-bulb-16: **Tip:** Enter some keywords to find icons and emojis and click on the shortcode to copy it to your clipboard.

    Configuration

    This configuration enables the use of icons and emojis by using simple shortcodes which can be discovered through the icon search. Add the following lines to mkdocs.yml:

    markdown_extensions:
      - pymdownx.emoji:
          emoji_index: !!python/name:materialx.emoji.twemoji
          emoji_generator: !!python/name:materialx.emoji.to_svg
    

    The following icon sets are bundled with Material for MkDocs:

    See additional configuration options:

    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.

    Example:

    :smile: 
    

    Result:

    😄

    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][1] directory, and replacing / with -:

    Example:

    - :material-account-circle:  `.icons/material/account-circle.svg`
    - :fontawesome-regular-laugh-wink:  `.icons/fontawesome/regular/laugh-wink.svg`
    - :octicons-repo-push-16:  `.icons/octicons/repo-push-16.svg`
    

    Result:

    with colors

    When the Attribute List extension is enabled, custom CSS classes and attributes can be added to icons by suffixing the icon with a special syntax. While HTML and CSS allow to use inline styles, it's always best to add an additional stylesheet and put styles into dedicated CSS classes:

    .medium {
      color: #00AB6C;
    }
    .twitter {
      color: #1DA1F2;
    }
    .facebook {
      color: #4267B2;
    }
    

    Then, simply add the CSS class to the icon.

    <style> .medium { color: #00AB6C; } .twitter { color: #1DA1F2; } .facebook { color: #4267B2; } </style>

    Example:

    - :fontawesome-brands-medium:{ .medium }  Medium
    - :fontawesome-brands-twitter:{ .twitter }  Twitter
    - :fontawesome-brands-facebook:{ .facebook }  Facebook
    

    Result:

    • :fontawesome-brands-medium:{ .medium } Medium

    • :fontawesome-brands-twitter:{ .twitter } Twitter

    • :fontawesome-brands-facebook:{ .facebook } Facebook

    with animations

    Similar to adding colors, it's just as easy to add CSS animations to icons by using an [additional stylesheet][6], defining a #!css @keyframes rule and adding the 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;
    }
    

    Then, simply add the CSS class to the icon.

    Example:

    :octicons-heart-fill-24:{ .heart }
    

    Result:

    :octicons-heart-fill-24:{ .mdx-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][1] with Jinja's include function and wrap it with the twemoji class:

    <span class="twemoji">
      {% include ".icons/fontawesome/brands/twitter.svg" %}
    </span>
    

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