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.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low friction: pure Python with only Pillow as a runtime dependency, distributed as a wheel, and actively maintained with a recent release.
License · maintenance · safety
MIT AND (Apache-2.0 OR BSD-2-Clause) (permissive) — Dual-licensed under MIT and (Apache-2.0 OR BSD-2-Clause), permissive terms that allow commercial and private use with minimal restrictions.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 2,638 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 198,511 downloads/mo, #9,728 on PyPI
Alternatives
Verify before relying
pip install ttkbootstrap
import ttkbootstrap as ttk
app = ttk.App(title="Hello")
ttk.Button(app, text="Primary", bootstyle="primary").pack()
app.mainloop()- 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.
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 on it.
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
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.
Requires Python 3.10 or later.
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()
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 packagepillow |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: Win32 (MS Windows)Environment :: X11 Applications :: GTKIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: User Interfaces |
Evidence: ttkbootstrap-2.2.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “tkinter theming”
- ttkbootstrapApplies Bootstrap-inspired themes and a one-keyword styling system to…
- sv-ttkApplies a modern, Windows 11-inspired visual theme to Tkinter ttk…
- tkinterdnd2Adds native drag-and-drop support to Tkinter applications on Windows,…
Give your agent the search over MCP, or paste the wish link into any chat.
More User Interfaces packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Formats and parses numbers, file sizes, timespans, and other values into human-readable text; provides terminal interaction utilities including ANSI text styling and user prompts.
Adds colored output to Python's standard logging module using ANSI escape sequences, with automatic fallback support for Windows terminals.
However, it is abandoned and receives no maintenance, so it will not adapt to future Python changes or platform updates.
Formats argparse and optparse help output with rich styling, colors, and markup to improve CLI readability with minimal code changes.
progressbar2 renders text-based progress bars in the terminal, handling custom widgets, concurrent bars, unknown-length progress, and clean output around logs and prints.
InquirerPy provides interactive command-line prompts (text input, confirmations, selections, checkboxes, fuzzy search) for building conversational CLI interfaces in Python.
However, the project is dormant (last release 2022-06-27), so adopt it only if you need its specific feature set (especially the fuzzy prompt) and can tolerate no…
See also customtkinter · shinyswatch · sv-ttk · tkinterdnd2 · darkdetect · tkcalendar · dash-bootstrap-templates · crispy-tailwind · qt-material · click-extra