TL;DR: The default Mastodon web interface uses Roboto as its primary UI font, with a system font fallback stack. On mobile apps, posts render in SF Pro (iOS) or Roboto (Android). Because Mastodon is open-source, any instance admin can customize the CSS and swap in a different font entirely. There is no built-in bold or italic formatting for posts.
Mastodon does not have one answer to "what font does it use" the way a centralized platform does. The official default is clear, but the federated nature of the network means the font you actually see depends on which instance you joined, which app you use, and whether your admin has customized anything. Here is how it all works.
The default Mastodon font: Roboto
Out of the box, the Mastodon web interface uses Roboto, Google's open-source neo-grotesque sans-serif. Roboto was originally designed by Christian Robertson for Android, and it has become one of the most widely used fonts on the web thanks to Google Fonts distribution.
If you inspect the CSS on a stock Mastodon instance, the font stack in the default theme looks like this:
"mastodon-font-sans-serif", sans-serif
The mastodon-font-sans-serif custom font-face resolves to Roboto, which is bundled directly in the Mastodon source code. The files live in the app/javascript/fonts/ directory of the Mastodon GitHub repository. Roboto is loaded in Regular (400) and Bold (700) weights with corresponding italic variants.
This means Mastodon does not pull Roboto from Google Fonts at runtime. It ships its own copy. That is a deliberate privacy choice: no requests to Google's servers just to load a typeface.
Why Roboto?
Roboto is a practical pick for a project like Mastodon. A few reasons it works:
- Familiarity. Roboto is the default font on Android, Material Design, and a huge number of web applications. Most people have been reading it for years without knowing its name. It does not demand attention.
- Free and open-source. Roboto is released under the Apache License 2.0. For an open-source project distributed under the AGPL, using a permissively licensed font avoids any licensing headaches.
- Broad language support. Roboto covers Latin, Cyrillic, and Greek scripts, which matters for a global federated network. Mastodon instances exist in dozens of languages.
- Good screen legibility. Roboto was designed from the start for screen rendering, with mechanical skeleton forms and friendly open curves that stay readable at interface-sized text.
There is nothing unusual about the choice. Roboto is the "safe, solid, gets out of the way" pick, and for a platform where the content (posts, images, threads) should be the focus, that is the right call.
The Mastodon logo and wordmark
The Mastodon logo (the elephant/mastodon illustration) and the "Mastodon" wordmark use custom lettering. This is not a publicly available font. You will not find it on Google Fonts or any font marketplace. The wordmark was created specifically for the project's branding and is part of Mastodon's visual identity guidelines.
If you want to replicate the wordmark style for a fan project, you would need to trace or reference it manually. There is no "download the Mastodon logo font" option.
What about mobile apps?
Mastodon does not have one official mobile app in the way centralized platforms do. There are several popular clients:
| App | Platform | What renders your posts |
|---|
| Mastodon for iOS (official) | iOS | SF Pro (Apple's system font) |
| Mastodon for Android (official) | Android | Roboto (system font) |
| Ivory | iOS | SF Pro |
| Tusky | Android | Roboto |
| Ice Cubes | iOS | SF Pro |
| Web browser | Any | Roboto (bundled) or instance custom font |
The pattern is the same as other social platforms: mobile apps default to the operating system's built-in typeface. This keeps app downloads smaller and ensures text renders consistently with the rest of the device's UI. Bluesky does the same thing with Inter on web and system fonts on mobile, and X (Twitter) follows the same pattern with Chirp.
Instance admins can change the font
This is where Mastodon differs from every centralized platform. Because Mastodon is open-source (Ruby on Rails backend, React frontend) and federated, each instance is run independently. The admin of your instance can customize the CSS to swap out Roboto for any font they prefer.
Some instances use system font stacks to reduce page weight. Others load a branded typeface that matches their community's aesthetic. A few use serif fonts or monospace fonts for a distinctive look. If the font on your Mastodon instance looks different from another one, this is why.
You can check what font your instance uses by right-clicking any text in the web UI and selecting "Inspect" (or "Inspect Element") in your browser. The computed styles panel will show you the active font-family.
Mastodon also supports custom themes at the instance level. An admin can create an entirely different visual experience, including fonts, colors, and layout changes, without forking the codebase. They just override the default styles.
Can you format text in Mastodon posts?
Mastodon's compose box is plain text with Markdown-like support that varies by instance and client. Some instances enable limited HTML formatting (bold, italic, strikethrough) in posts through server-side configuration. But the default behavior is plain text, and most instances do not enable rich formatting.
If you want styled text that works everywhere regardless of instance settings, the approach is the same as on other platforms: Unicode look-alike characters. A text generator or font generator converts your plain text into Unicode bold (𝗯𝗼𝗹𝗱), italic (𝘪𝘵𝘢𝘭𝘪𝘤), script, or other decorative alphabets. You copy and paste the result.
Our Mastodon text formatter handles this for you. Pick a style, type your text, and paste the output into your post or display name.
The usual caveats apply. Unicode styled text:
- Is not accessible. Screen readers often skip or misread these characters. Read are Unicode fonts accessible? for the full picture.
- Is not searchable. Posts written in Unicode styled letters will not appear in search results for the plain-text version of those words.
- May render as boxes. If a reader's device or browser lacks support for a specific Unicode block, they will see empty rectangles instead of letters. Why fancy text shows as boxes explains this in detail.
- Breaks hashtags. A hashtag written in Unicode characters will not function as a clickable tag.
Use it for a display name flourish or a single emphasized word. Do not write entire posts in it.
| Platform | Web font | Open source? | Can admin change font? |
|---|
| Mastodon | Roboto (bundled) | Yes (AGPL) | Yes |
| Bluesky | Inter | Yes (MIT) | No (centralized app) |
| X (Twitter) | Chirp (proprietary) | No | No |
| Discord | gg sans (proprietary) | No | No |
Mastodon is the only major social platform where the font can change from one server to another. That is a direct consequence of federation and open-source licensing. If you care about typographic customization, Mastodon gives admins more control than any centralized alternative.
FAQ
What font does Mastodon use?
The default Mastodon web interface uses Roboto, bundled directly in the source code rather than loaded from Google Fonts. Mobile apps use the device system font (SF Pro on iOS, Roboto on Android).
Is the Mastodon font the same on every instance?
No. Because Mastodon is open-source and federated, each instance admin can customize the CSS and swap Roboto for any font they choose. Some instances use system font stacks, custom typefaces, or serif fonts.
Can I download the Mastodon logo font?
No. The Mastodon wordmark uses custom lettering that is not a publicly available typeface. It was created specifically for the project's branding.
Does Mastodon support bold or italic text in posts?
It depends on the instance. Some instances enable limited HTML formatting. The default is plain text. For styled text that works everywhere, people use Unicode look-alike characters from a generator like the Mastodon text formatter.
Why does Mastodon bundle Roboto instead of loading it from Google Fonts?
Privacy. Loading fonts from Google Fonts sends requests to Google's servers, which can track users. Mastodon bundles its own copy of Roboto so no external font requests are made.
Can I change the font on my own Mastodon instance?
Yes, if you are the admin. You can override the default CSS to load any font you want. Some admins use system font stacks, custom web fonts, or entirely different themes.
What is the difference between the Mastodon font and the Discord font?
Mastodon uses Roboto, a free open-source font. Discord uses gg sans, a proprietary custom typeface. Mastodon's font can be changed by instance admins; Discord's cannot be changed by users.