2020-07-16 22:31:39 +02:00
|
|
|
# Changing the fonts
|
|
|
|
|
2020-07-16 23:55:37 +02:00
|
|
|
Material for MkDocs makes it easy to change the typeface of your project
|
2021-10-10 17:39:53 +02:00
|
|
|
documentation, as it directly integrates with [Google Fonts]. Alternatively,
|
2020-07-20 19:28:13 +02:00
|
|
|
fonts can be custom-loaded if self-hosting is preferred for data privacy reasons
|
|
|
|
or another destination should be used.
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
[Google Fonts]: https://fonts.google.com
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2020-07-16 22:31:39 +02:00
|
|
|
## Configuration
|
|
|
|
|
2020-07-16 23:55:37 +02:00
|
|
|
### Regular font
|
|
|
|
|
2023-09-14 19:09:18 +02:00
|
|
|
<!-- md:version 0.1.2 -->
|
|
|
|
<!-- md:default [`Roboto`][Roboto] -->
|
2020-07-16 22:31:39 +02:00
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
The regular font is used for all body copy, headlines, and essentially
|
2021-02-19 14:57:40 +01:00
|
|
|
everything that does not need to be monospaced. It can be set to any
|
2021-10-10 17:39:53 +02:00
|
|
|
valid [Google Font][Google Fonts] via `mkdocs.yml`:
|
2020-07-16 22:31:39 +02:00
|
|
|
|
|
|
|
``` yaml
|
|
|
|
theme:
|
|
|
|
font:
|
2020-07-16 23:55:37 +02:00
|
|
|
text: Roboto
|
2020-07-16 22:31:39 +02:00
|
|
|
```
|
|
|
|
|
2020-07-17 13:08:27 +02:00
|
|
|
The typeface will be loaded in 300, 400, _400i_ and __700__.
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
[Roboto]: https://fonts.google.com/specimen/Roboto
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2021-02-19 14:57:40 +01:00
|
|
|
### Monospaced font
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2023-09-14 19:09:18 +02:00
|
|
|
<!-- md:version 0.1.2 -->
|
|
|
|
<!-- md:default [`Roboto Mono`][Roboto Mono] -->
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2021-02-19 14:57:40 +01:00
|
|
|
The _monospaced font_ is used for code blocks and can be configured separately.
|
2021-10-10 17:39:53 +02:00
|
|
|
Just like the regular font, it can be set to any valid [Google Font]
|
|
|
|
[Google Fonts] via `mkdocs.yml`:
|
2020-07-16 22:31:39 +02:00
|
|
|
|
|
|
|
``` yaml
|
|
|
|
theme:
|
2020-07-16 23:55:37 +02:00
|
|
|
font:
|
|
|
|
code: Roboto Mono
|
2020-07-16 22:31:39 +02:00
|
|
|
```
|
|
|
|
|
2020-07-16 23:55:37 +02:00
|
|
|
The typeface will be loaded in 400.
|
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
[Roboto Mono]: https://fonts.google.com/specimen/Roboto+Mono
|
2020-07-16 22:31:39 +02:00
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
### Autoloading
|
2020-07-21 16:01:22 +02:00
|
|
|
|
2023-09-14 19:09:18 +02:00
|
|
|
<!-- md:version 1.0.0 -->
|
|
|
|
<!-- md:default none -->
|
2020-07-21 16:01:22 +02:00
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
If you want to prevent typefaces from being loaded from [Google Fonts], e.g.
|
|
|
|
to adhere to [data privacy] regulations, and fall back to system fonts, add the
|
|
|
|
following lines to `mkdocs.yml`:
|
2020-07-16 23:55:37 +02:00
|
|
|
|
|
|
|
``` yaml
|
|
|
|
theme:
|
|
|
|
font: false
|
|
|
|
```
|
|
|
|
|
2022-02-20 19:49:23 +01:00
|
|
|
!!! tip "Automatically bundle Google Fonts"
|
|
|
|
|
2023-01-01 17:44:37 +01:00
|
|
|
The [built-in privacy plugin] makes it easy to use Google Fonts
|
2022-02-20 19:49:23 +01:00
|
|
|
while complying with the __General Data Protection Regulation__ (GDPR),
|
|
|
|
by automatically downloading and self-hosting the web font files.
|
|
|
|
|
2021-10-10 22:32:32 +02:00
|
|
|
[data privacy]: https://developers.google.com/fonts/faq#what_does_using_the_google_fonts_api_mean_for_the_privacy_of_my_users
|
2023-09-15 09:25:50 +02:00
|
|
|
[built-in privacy plugin]:../plugins/privacy.md
|
2020-07-21 16:01:22 +02:00
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
## Customization
|
|
|
|
|
|
|
|
### Additional fonts
|
2020-07-21 16:01:22 +02:00
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
If you want to load an (additional) font from another destination or override
|
|
|
|
the system font, you can use an [additional style sheet] to add the
|
2020-07-21 16:01:22 +02:00
|
|
|
corresponding `@font-face` definition:
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2022-09-11 19:25:40 +02:00
|
|
|
=== ":octicons-file-code-16: `docs/stylesheets/extra.css`"
|
2021-10-10 17:39:53 +02:00
|
|
|
|
|
|
|
``` css
|
|
|
|
@font-face {
|
|
|
|
font-family: "<font>";
|
|
|
|
src: "...";
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2022-09-11 19:25:40 +02:00
|
|
|
=== ":octicons-file-code-16: `mkdocs.yml`"
|
2021-10-10 17:39:53 +02:00
|
|
|
|
|
|
|
``` yaml
|
|
|
|
extra_css:
|
|
|
|
- stylesheets/extra.css
|
|
|
|
```
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2023-09-14 19:09:18 +02:00
|
|
|
The font can then be applied to specific elements, e.g. only headlines, or
|
2021-10-10 17:39:53 +02:00
|
|
|
globally to be used as the site-wide regular or monospaced font:
|
2020-07-16 23:55:37 +02:00
|
|
|
|
2020-07-21 18:39:27 +02:00
|
|
|
=== "Regular font"
|
2020-07-16 23:55:37 +02:00
|
|
|
|
|
|
|
``` css
|
2021-03-21 17:14:32 +01:00
|
|
|
:root {
|
2021-12-30 10:54:36 +01:00
|
|
|
--md-text-font: "<font>"; /* (1)! */
|
2020-07-16 23:55:37 +02:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
1. Always define fonts through CSS variables and not `font-family`, as
|
|
|
|
this would disable the system font fallback.
|
|
|
|
|
2021-02-19 14:57:40 +01:00
|
|
|
=== "Monospaced font"
|
2020-07-16 23:55:37 +02:00
|
|
|
|
|
|
|
``` css
|
2021-03-21 17:14:32 +01:00
|
|
|
:root {
|
2021-12-30 10:54:36 +01:00
|
|
|
--md-code-font: "<font>";
|
2020-07-16 23:55:37 +02:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2021-10-10 17:39:53 +02:00
|
|
|
[additional style sheet]: ../customization.md#additional-css
|