📈 GH Trending Explorer 🎲 Surprise me

← all repos

mcer12 / PixelFonts

git clone https://github.com/mcer12/PixelFonts.git

Pixel perfect AdafruitGFX & u8g2 fonts for the tiniest displays

+3
stars, 24h · #8,289
+~16
stars, 7 days · #9,092
+270
stars, 30 days · #2,954
270
★ total · +6% this week
7
forks · 0 open issues

Star history (as recorded here)

2026-10-20 · 263 ★ 2026-10-23 · 270 ★
LanguageC
LicenseMIT
Created2026-10-01 (21d ago)
Last push18d ago
Watchers3
OwnerUser

GitHub topics

Links

README excerpt
**PixelFont** is a family of **AdafruitGFX & u8g2 compatible** fonts, **hand crafted for tiny low-res displays**. The fonts are designed
to be **slender and condensed** to fit as much text on a line as possible. And to also look awesome.
You can also use AI to scale the fonts up, add spacing between pixels, makes pixels larger, rounded etc. So it’s a great way to make a faux-low-res display or a retro arcade kind of look.
## Language support
Supported languages are: **English, Spanish, French, Italian, Czech** and more. 
NOTE 1: Accented characters are available for **lowercase letters only** - capital letters with accents are not included as this requires modification of the letters.
NOTE 2: I have personally hand-crafted only the Czech special characters. Other extended Latin glyphs are AI generated, so PRs with corrections from native speakers are welcome!
## Usage
### AdafruitGFX
There are two options for each font - **english version**, which works with basic AdafruitGFX library and **extended latin version** which requires **UTF-8 fork of AdafruitGFX**. 
Using extended latin version with standard library still works for english glyphs but because of extra data, it's taking more memory space, so it's recommended to use english version with it.
 [code] 
**Scaling up for a low-res look:** `setTextSize()` draws every font pixel as a square block, so a small font turns
into big, chunky pixel text with no extra flash:
 [code] 
`setTextSize(x, y)` scales width and height separately; the line height scales with it.
### u8g2
The same fonts in **u8g2 format**: the font name + `_u8g2`. You can use english fonts or extended latin fonts with no limitations.
 [code] 
Each u8g2 font comes with its line height, e.g. `PIXELFONT_13X7_SEMIBOLD_U8G2_LINE_HEIGHT`.
### BDF
The `bdf/` folder has **every font as a BDF file** (Unicode encoded), for u8g2's `bdfconv`, FontForge, the LVGL font
converter and other tools. `FONT_ASCENT` + `FONT_DESCENT` is the line height.
## Fonts
Names follow `pixelfont[_3d | _3d_condensed][_extended_latin]_ROWSxCOLS_WEIGHT`:
- `ROWSxCOLS` - size of the letter grid in pixels: capital height x capital width
- `WEIGHT` - stroke width: `thin` = 1px, `semibold` = 2px, `bold` = 3px
- `_3d` - outline + shadow version, 3 px taller, 1 px gap between characters and lines
- `_3d_condensed` - the same 3D version with no gap between characters and lines
- `_extended_latin` - adds the accented lowercase letters and punctuation (see Language support)
In the table: **Height** = pixel height of the capitals (3D versions include the outline and shadow), **Weight** =
stroke width, **English** = ASCII only, **Extended Latin** = ASCII + accented letters.
### 
| Height | Weight | English | Extended Latin |
|---|---|---|---|
| 5 px | 1px | `pixelfont_5x5_thin` | - |
| 7 px | 1px | `pixelfont_7x5_thin` | `pixelfont_extended_latin_7x5_thin` |
| 9 px | 1px | `pixelfont_9x5_thin` | `pixelfont_extended_latin_9x5_thin` |
| 11 px | 1px | `pixelfont_11x5_thin` | `p