Change the FreeCAD UI font to any system-installed font. Works on all platforms (Linux, Windows, macOS) and all packaging formats (AppImage, Flatpak, native).
# Linux
cd ~/.local/share/FreeCAD/Mod/
git clone https://github.com/arcanorca/FontBook.git
# Windows
# cd %APPDATA%\FreeCAD\Mod\
# git clone https://github.com/arcanorca/FontBook.git
# macOS
# cd ~/Library/Application\ Support/FreeCAD/Mod/
# git clone https://github.com/arcanorca/FontBook.gitRestart FreeCAD after installing.
- Edit → Preferences → Display → find the FontBook tab
- Enable, pick a font, set the size, click OK
- The font changes immediately — no restart needed
Settings are saved to user.cfg and re-applied on every startup.
If a saved font is not available on the current OS, FontBook falls back to
the active system UI font instead of failing silently.
FontBook appends a stylesheet block (QSS) to FreeCAD's stylesheet:
/* FontBook:start */
QWidget { font-family: "YourFont"; font-size: 11pt; }
QLabel, QAbstractButton, QListView, QTreeView { color: #CB333B; }
/* FontBook:end */The injection is tag-delimited so it can be updated or removed via string processing.
Applying global colors blindly to * or QWidget can mess up colors in the Python console or Spreadsheets.
FontBook instead overrides text colors on a limited set of widgets:
- General text elements (
QLabel) - All buttons (
QAbstractButtonsubclasses includingQPushButton,QCheckBox,QRadioButton) - Structural dialog lists and trees (
QListView,QTreeView) used in the Tasks Panel and UI sidebars. - Data-heavy text inputs and views (like
QTextEdit,QTableView) are excluded.