Skip to main content

CI Downloads Downloads

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.

A ttkbootstrap window: color swatches above themed buttons, inputs, a meter, a table, and a notebook

Why ttkbootstrap

  • 🎨 30 curated themes — fifteen families, each in a coordinated light and dark variant, that switch at runtime.
  • ⌨️ One-keyword stylingbootstyle="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

Quickstart

import ttkbootstrap as ttk

app = ttk.App(title="Hello")

ttk.Label(app, text="Hello from ttkbootstrap!").pack(padx=16, pady=(16, 8))
ttk.Button(app, text="Primary", bootstyle="primary").pack(padx=16, pady=4)
ttk.Button(app, text="Success", bootstyle="success").pack(padx=16, pady=4)
ttk.Button(app, text="Danger Outline", bootstyle="danger outline").pack(padx=16, pady=(4, 16))

app.mainloop()
The Hello window: a greeting label above primary, success, and danger-outline buttons

The bootstyle keyword

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:

ttk.Button(app, bootstyle="success")
ttk.Progressbar(app, bootstyle="success")
ttk.Entry(app, bootstyle="success")

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

Browse them in the themes gallery.

Documentation

Upgrading from 1.x

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.

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:

ttk.Button(app, text="Settings", icon="gear-fill", bootstyle="primary")

Need other icon families — Font Awesome, Material, Lucide, and more? The ttkbootstrap-icons extension is still available and adds installable icon providers 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.

JetBrains logo

© 2025 JetBrains s.r.o. JetBrains and the JetBrains logo are registered trademarks of JetBrains s.r.o.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ttkbootstrap-2.1.1.tar.gz (590.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ttkbootstrap-2.1.1-py3-none-any.whl (546.2 kB view details)

Uploaded Python 3

File details

Details for the file ttkbootstrap-2.1.1.tar.gz.

File metadata

  • Download URL: ttkbootstrap-2.1.1.tar.gz
  • Upload date:
  • Size: 590.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for ttkbootstrap-2.1.1.tar.gz
Algorithm Hash digest
SHA256 9702f292db148ad7bc73d41fc9c94c47fb7bbcf8ee7d0d6d280abcbee8204b84
MD5 0f4dfe7e3042462c24cb31c9c509f424
BLAKE2b-256 e719015a7dd72806103a38d215888a8ca5372a71c017eee994ba728b284e7b53

See more details on using hashes here.

File details

Details for the file ttkbootstrap-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: ttkbootstrap-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 546.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for ttkbootstrap-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a785672bd8e9f53ad0407673716abbee1bfa5f99cb3fd031f01889b0eec68a4b
MD5 a45098925356224286e1fddfc8561846
BLAKE2b-256 a19d65fc0fcc31eb42b051e6cf12fca15b35502eaa98ae23aacab0164d5beda5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.1.1

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page