mkdocs-material/docs/setup/changing-the-logo-and-icons.md

134 lines
4.3 KiB
Markdown
Raw Normal View History

2020-07-21 19:39:27 +03:00
# Changing the logo and icons
2022-03-22 21:05:37 +03:00
When installing Material for MkDocs, you immediately get access to _over 8,000
2020-07-21 19:39:27 +03:00
icons_ ready to be used for customization of specific parts of the theme and/or
2021-10-10 18:39:53 +03:00
when writing your documentation in Markdown. Not enough? You can also add
[additional icons] with minimal effort.
2020-07-21 19:39:27 +03:00
2021-10-10 18:39:53 +03:00
[additional icons]: #additional-icons
2020-07-21 19:39:27 +03:00
## Configuration
### Logo
2022-09-11 20:25:40 +03:00
[:octicons-tag-24: 0.1.0][Logo support] ·
:octicons-milestone-24: Default: :material-library: `material/library`
2020-07-21 19:39:27 +03:00
2021-10-10 18:39:53 +03:00
The logo can be changed to a user-provided image (any type, incl. `*.png` and
2021-03-07 17:40:20 +03:00
`*.svg`) located in the `docs` folder, or to any icon bundled with the theme.
Add the following lines to `mkdocs.yml`:
2021-10-10 18:39:53 +03:00
=== ":octicons-image-16: Image"
2020-07-21 19:39:27 +03:00
``` yaml
theme:
logo: assets/logo.png
2020-07-21 19:39:27 +03:00
```
2021-10-10 18:39:53 +03:00
=== ":octicons-package-16: Icon, bundled"
2020-07-21 19:39:27 +03:00
``` yaml
theme:
icon:
logo: material/library # (1)!
2020-07-21 19:39:27 +03:00
```
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:
<div class="mdx-iconsearch" data-mdx-component="iconsearch">
<input class="md-input md-input--stretch mdx-iconsearch__input" placeholder="Search icon" data-mdx-component="iconsearch-query" value="material library" />
<div class="mdx-iconsearch-result" data-mdx-component="iconsearch-result" data-mdx-mode="file">
<div class="mdx-iconsearch-result__meta"></div>
<ol class="mdx-iconsearch-result__list"></ol>
</div>
</div>
2022-09-11 20:25:40 +03:00
[Logo support]: https://github.com/squidfunk/mkdocs-material/releases/tag/0.1.0
[icon search]: ../reference/icons-emojis.md#search
2020-07-21 19:39:27 +03:00
2021-03-14 16:09:13 +03:00
Normally, the logo in the header and sidebar links to the homepage of the
documentation, which is the same as `site_url`. This behavior can be changed
with the following configuration:
``` yaml
extra:
homepage: https://example.com
```
2020-07-21 19:39:27 +03:00
### Favicon
2022-09-11 20:25:40 +03:00
[:octicons-tag-24: 0.1.0][Favicon support] ·
:octicons-milestone-24: Default: [`assets/images/favicon.png`][Favicon default]
2020-07-21 19:39:27 +03:00
2021-10-10 18:39:53 +03:00
The favicon can be changed to a path pointing to a user-provided image, which
must be located in the `docs` folder. Add the following lines to `mkdocs.yml`:
2020-07-21 19:39:27 +03:00
``` yaml
theme:
favicon: images/favicon.png
```
2022-09-11 20:25:40 +03:00
[Favicon support]: https://github.com/squidfunk/mkdocs-material/releases/tag/0.1.0
[Favicon default]: https://github.com/squidfunk/mkdocs-material/blob/master/material/assets/images/favicon.png
2020-07-21 19:39:27 +03:00
## Customization
### Additional icons
2021-10-10 18:39:53 +03:00
In order to use custom icons, [extend the theme] and create a new folder named
`.icons` in the [`custom_dir`][custom_dir] you want to use for overrides.
Next, add your `*.svg` icons into a subfolder of the `.icons` folder. Let's say
2022-02-27 17:08:31 +03:00
you downloaded and unpacked the [Bootstrap] icon set, and want to add it to
2020-07-21 19:39:27 +03:00
your project documentation. The structure of your project should look like this:
``` { .sh .no-copy }
2020-07-21 19:39:27 +03:00
.
├─ overrides/
│ └─ .icons/
│ └─ bootstrap/
│ └─ *.svg
└─ mkdocs.yml
```
Then, add the following lines to `mkdocs.yml`:
``` yaml
markdown_extensions:
- pymdownx.emoji:
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:materialx.emoji.to_svg
options:
custom_icons:
- overrides/.icons
```
2022-04-02 15:42:13 +03:00
You can now use all :fontawesome-brands-bootstrap: Bootstrap icons anywhere in
Markdown files, as well as everywhere icons can be used in `mkdocs.yml`.
However, note that the syntaxes are slightly different:
- __Using icons in configuration__: take the path of the `*.svg` icon file
starting at the `.icons` folder and drop the file extension, e.g. for
`.icons/bootstrap/envelope-paper.svg`, use:
``` yaml
theme:
icon:
2022-04-02 16:19:49 +03:00
logo: bootstrap/envelope-paper
2022-04-02 15:42:13 +03:00
```
- __Using icons in Markdown files__: additionally to taking the path from the
`.icons` folder as noted above, replace all `/` with `-` and enclose the icon
shortcode in two colons:
```
2022-04-02 16:19:49 +03:00
:bootstrap-envelope-paper:
2022-04-02 15:42:13 +03:00
```
For further notes on icon usage, please consult the [icon reference].
2020-07-21 19:39:27 +03:00
2021-10-10 18:39:53 +03:00
[extend the theme]: ../customization.md#extending-the-theme
[custom_dir]: https://www.mkdocs.org/user-guide/configuration/#custom_dir
[Bootstrap]: https://icons.getbootstrap.com/
2022-04-02 15:42:13 +03:00
[icon reference]: ../reference/icons-emojis.md#using-icons