About this site
Why this site exists
A company founded in Europe needs a typeface for its website, logo and printed matter, and that typeface has to grow with the business. At the latest when you enter new markets, it becomes clear whether it contains every character you need: French accents, Polish and Romanian diacritics, the Greek and Cyrillic alphabets. If they are missing, the brand breaks exactly where it needs to convince.
Until now there was no overview of which fonts meet this requirement. CloudEurope.eu closes that gap: Fonts for Europe lists every open-source font from Google Fonts that fully covers all 24 official EU languages, checked character by character.
Why self-host your fonts?
Google Fonts did the important work: it publishes high-quality open-source fonts and keeps their sources on GitHub. We use it as the source for this site. But we recommend that you don't load fonts from Google's servers on your website. Download them and serve them yourself.
Privacy and the GDPR
When a page loads a font from fonts.googleapis.com, every visitor's browser sends their IP address to Google. In January 2022 the Munich Regional Court (LG München I, 3 O 17493/20) ruled that doing this without consent violates the GDPR and awarded the plaintiff damages. Self-hosted fonts don't send anything to a third party.
No speed advantage from a CDN
It used to be argued that a shared CDN was faster because the font was already in the visitor's cache from another site. That is no longer true: all major browsers now partition their cache by site, so a font from a shared CDN is downloaded again for every website. Serving from your own domain saves a DNS lookup and a TLS handshake, so it is usually faster.
Control
Self-hosted fonts don't change unexpectedly and don't break if a third-party service changes. They also allow a strict Content-Security-Policy without exceptions for external domains. This site follows its own advice: it makes no third-party requests.
How it works
- Open a font and click Download .zip.
- Unzip it into your website, for example as
/fonts/<name>/. - Include the provided
fonts.css, then use the font family in your CSS.
The zip contains unmodified WOFF2 conversions of the original files from google/fonts, the license text and the @font-face rules. The originals are linked on every font page, both on GitHub and on Google Fonts. The licenses (OFL, Apache 2.0, UFL) allow you to use and redistribute the fonts. Keep the license file next to the fonts.
How we choose the fonts
We check every font family in google/fonts automatically, once a month. A family is listed only if every one of its style files contains all the characters needed for each of the 24 official EU languages:
Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Irish, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish.
Source: European Union – Languages. The official languages are set by Regulation No 1 of 1958, as amended.
The character sets come from the Unicode CLDR via Google's gflanguages database: the letters of each alphabet in upper and lower case, numerals, punctuation and the euro sign €. In practice that means Latin with many accents (for example Romanian ș ț with comma below, Maltese ħ ċ ġ ż, Hungarian ő ű), plus Greek and Bulgarian Cyrillic.
CLDR also lists some characters that ordinary text rarely needs. A font without them is still listed, and its page shows its character coverage, at least 98.9%. Fonts that have these characters too have 100% coverage:
- ́
U+0301combining acute accent – only needed for the Dutch íj́ (accented ij) - ẞ
U+1E9Ecapital sharp s – optional in German since 2017 - ‟
U+201Freversed double quotation mark – listed for Slovenian, practically unused - №
U+2116numero sign – Bulgarian, usually written as “No” - −
U+2212minus sign – the hyphen-minus is used in practice