ttkbootstrap
Modern themes for Tkinter. Sleek, responsive styles inspired by Bootstrap. Includes ready-to-use widgets, 30+ themes, and tools for building beautiful, cross-platform desktop apps with ease.
What it is and what it does
ttkbootstrap is a theming layer for tkinter that replaces the default look of ttk widgets with modern, flat Bootstrap-inspired designs. Instead of manually setting colors or writing verbose ttk style names, you add a single `bootstyle` keyword to any ttk widget—`bootstyle="primary"`, `bootstyle="success outline"`, etc.—and the package handles the rest. It ships with 30 curated light and dark themes that can be switched at runtime, a bundled set of 2,000+ Bootstrap Icons, and a few extra widgets like Meter, DateEntry, and Tableview. The package is pure Python, depends only on Pillow, and works on Python 3.10 and later.
The styling is declarative and consistent: the same keyword means the same visual intent across all widgets, so you describe what you want (success, danger, info) rather than tuning RGB values. You can also build custom themes using a `Theme(...)` API and a command-line theme designer. Version 2.0 introduced a canonical bootstyle grammar and consolidated the theme catalog; older 1.x code still works with deprecation warnings.
Use it for:
- Build a desktop application with a modern, polished look without hand-coding color schemes or style definitions.
- Switch between light and dark themes at runtime to match user preferences or system settings.
- Rapidly prototype a tkinter GUI by using semantic style keywords instead of managing raw ttk styles.
- Create custom branded themes for your application using the bundled theme designer and export them as code.
- Add themed dialogs and extra widgets (date picker, gauge, table) to a tkinter app without external UI libraries.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Applies Bootstrap-inspired themes and a one-keyword styling system to tkinter's ttk widgets, letting you style any widget with a `bootstyle` parameter instead of managing raw colors or style names.
Yes. ttkbootstrap is actively maintained, has no known vulnerabilities, installs with minimal friction, and solves a real pain point in tkinter development—making GUIs look modern without extensive styling boilerplate. It's suitable for production desktop applications and is well-documented.
Install
ttkbootstrap on PyPI
pip
pip install ttkbootstrapuv
uv add ttkbootstrappoetry
poetry add ttkbootstrapInstalling ttkbootstrap
Before you install
Low friction: pure Python with only Pillow as a runtime dependency, distributed as a wheel, and actively maintained with a recent release.
License in practice
Dual-licensed under MIT and (Apache-2.0 OR BSD-2-Clause), permissive terms that allow commercial and private use with minimal restrictions.
Quickstart
pip install ttkbootstrap
import ttkbootstrap as ttk
app = ttk.App(title="Hello")
ttk.Button(app, text="Primary", bootstyle="primary").pack()
app.mainloop()
Requires Python 3.10 or later.
Verify before relying
- Whether the 30 curated themes are all fully functional and visually consistent across all supported Python versions.
- Performance characteristics when rendering large numbers of styled widgets or switching themes at runtime.
Package facts
| License | MIT AND (Apache-2.0 OR BSD-2-Clause) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pillow |
| Maintenance | actively maintained — 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 198,511/month — #9,728 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ttkbootstrap-2.2.1-py3-none-any.whl
Keywords: tkinter, theme, ttk, bootstrap, gui, desktop, python3, ui, widgets, theming, cross-platform, modern, responsive, python-gui
Tags
More User Interfaces packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
humanfriendlyFormats and parses numbers, file sizes,…
permissive · top 1,000 on PyPI
coloredlogsAdds colored output to Python's standard…
permissive · top 1,000 on PyPI
rich-argparseFormats argparse and optparse help output with…
permissive · top 1,000 on PyPI
progressbar2progressbar2 renders text-based progress bars…
permissive · top 5,000 on PyPI
inquirerpyInquirerPy provides interactive command-line…
permissive · top 5,000 on PyPI
customtkinterCustomTkinter wraps Python's Tkinter to provide…
permissive · top 5,000 on PyPI
shinyswatchProvides 25 Bootswatch + Bootstrap 5 themes for…
permissive · top 15,000 on PyPI
sv-ttkApplies a modern, Windows 11-inspired visual…
permissive · top 15,000 on PyPI
tkinterdnd2Adds native drag-and-drop support to Tkinter…
permissive · top 15,000 on PyPI
darkdetectDetects whether the operating system is in Dark…
permissive · top 5,000 on PyPI
tkcalendarProvides Calendar and DateEntry widgets for…
copyleft · top 15,000 on PyPI
dash-bootstrap-templatesProvides Bootstrap-themed Plotly figure…
permissive · top 15,000 on PyPI
crispy-tailwindProvides Tailwind CSS styling templates for…
permissive · top 15,000 on PyPI
qt-materialApplies a Material Design stylesheet to PySide6…
permissive · top 15,000 on PyPI
click-extraClick Extra is a wrapper around Click that adds…
copyleft · top 15,000 on PyPI