A modern theming library for Tkinter that adds sleek, responsive styles inspired by Bootstrap. Includes ready-to-use widgets, 20+ themes, and tools for building beautiful, cross-platform desktop apps with ease.
ttkbootstrap Modern, themed tkinter — style any ttk widget with one keyword. ttkbootstrap is a theming extension for tkinter. It generates flat, Bootstrap-inspired light and dark themes on demand and adds a single bootstyle keyword to every ttk widget, so you describe intent — "primary", "success", "outline" — instead of hand-tuning colors or long ttk style names. Why ttkbootstrap 🎨 30 curated themes — fifteen…
Modern, themed tkinter — style any ttk widget with one keyword.
ttkbootstrap is a theming extension for tkinter. It generates flat,
Bootstrap-inspired light and dark themes on demand and adds a single bootstyle
keyword to every ttk widget, so you describe intent — "primary",
"success", "outline" — instead of hand-tuning colors or long ttk style
names.
Why ttkbootstrap
🎨 30 curated themes — fifteen families, each in a coordinated light and dark variant, that switch at runtime.
⌨️ One-keyword styling — bootstyle="success", bootstyle="info outline", bootstyle="round toggle". The same keyword means the same thing on every widget.
🧩 Batteries-included — styled ttk widgets plus a few extras (Meter, DateEntry, Floodgauge, Tableview) and fully themed dialogs.
🛠️ Your own themes & styles — a declarative Theme(...) API and a public toolkit for building custom widget styles.
🪶 Pure Python — one dependency (Pillow), Python 3.10+, no native extensions.
It’s a styling layer for vanilla tkinter, not a new framework: the widgets stay
tkinter’s, and everything you already know about tkinter still applies.
Install
python -m pip install ttkbootstrap
Then see it running — this opens a window with every widget and a theme picker:
A bootstyle value is a small grammar — a color, plus an optional modifier
and widget type — and the same keyword carries the same meaning across widgets:
Add a modifier or a type for variants: "info outline", "success round toggle",
"warning striped". The vocabulary is closed, so a typo fails loudly instead of
silently doing nothing. See the
bootstyle grammar
for the full reference.
Themes
Thirty curated light and dark themes, switchable at runtime:
app.theme_use("bootstrap-dark") # any theme by name
app.toggle_theme() # flip light <-> dark
2.0 is a cleanup-and-consolidation release with some breaking changes — a canonical
bootstyle grammar, a new theme catalog, and App alongside Window. Most code
keeps working: legacy theme names and older spellings are accepted with a
deprecation warning. The
Migrating to 2.0
guide sorts every change into breaking / deprecated / notable / new.
Custom themes moved out of the package and into your own code. To bring one
forward, convert the file 1.x saved:
ttkb convert-theme user.py -o brand.py
Icons
ttkbootstrap ships with the full Bootstrap Icons
set (2,000+ glyphs), rendered from a bundled font — theme-following, crisp at any
size, and no extra dependency. Add one with the icon= keyword:
Need other icon families — Font Awesome, Material, Lucide, and more? The
tkinter-icons extension adds
sixteen icon sets (61,000+ icons) alongside the built-in set.
Contributing
Contributions are welcome — please check out our contributing guidelines.
Support
This project is proudly developed with the support of the
PyCharm IDE, generously provided by JetBrains.
评论