Skip to main content

turbo-themes

PyPI Python License

Universal design tokens and theme management for Python applications.

Features

  • 9 curated themes from Catppuccin (4 variants), Dracula, GitHub (light/dark), and Bulma (light/dark)
  • Design tokens as typed Python dataclasses
  • CSS variable generation for web integration
  • Type-safe with full type hints and mypy strict mode
  • Lightweight: single runtime dependency (python-dateutil)

Installation

pip install turbo-themes
# or
uv add turbo-themes

Quick Start

Access Theme Colors

from turbo_themes import THEMES

# Get a specific theme
mocha = THEMES["catppuccin-mocha"]
print(mocha.colors.primary)      # "#89b4fa"
print(mocha.colors.background)   # "#1e1e2e"
print(mocha.meta.name)           # "Catppuccin Mocha"
print(mocha.meta.variant)        # "dark"

Theme Manager

from turbo_themes import ThemeManager

manager = ThemeManager()

# Set and apply a theme
manager.set_theme("catppuccin-mocha")
css_vars = manager.apply_theme_to_css_variables()

# Generate CSS custom properties
for var_name, value in css_vars.items():
    print(f"--{var_name}: {value};")

List Available Themes

from turbo_themes import THEMES, list_themes

# Get all theme names
themes = list_themes()
print(themes)
# ['bulma-dark', 'bulma-light', 'catppuccin-frappe', 'catppuccin-latte',
#  'catppuccin-macchiato', 'catppuccin-mocha', 'dracula', 'github-dark', 'github-light']

# Filter by variant
dark_themes = [name for name, theme in THEMES.items() if theme.meta.variant == "dark"]

Available Themes

Theme Variant Source
catppuccin-mocha dark catppuccin.com
catppuccin-macchiato dark catppuccin.com
catppuccin-frappe dark catppuccin.com
catppuccin-latte light catppuccin.com
dracula dark draculatheme.com
github-dark dark primer.style
github-light light primer.style
bulma-dark dark bulma.io
bulma-light light bulma.io

Theme Structure

Each theme provides:

theme.colors.primary       # Primary accent color
theme.colors.secondary     # Secondary accent color
theme.colors.background    # Background color
theme.colors.surface       # Surface/card color
theme.colors.text          # Primary text color
theme.colors.text_muted    # Muted/secondary text
theme.colors.border        # Border color
theme.colors.error         # Error state color
theme.colors.warning       # Warning state color
theme.colors.success       # Success state color
theme.colors.info          # Info state color

theme.meta.name            # Display name
theme.meta.variant         # "light" or "dark"
theme.meta.source          # Source project URL

Integration Examples

Flask/Jinja2

from flask import Flask, render_template
from turbo_themes import ThemeManager

app = Flask(__name__)
manager = ThemeManager()

@app.route("/")
def index():
    manager.set_theme("catppuccin-mocha")
    css_vars = manager.apply_theme_to_css_variables()
    return render_template("index.html", theme_vars=css_vars)

Django

from turbo_themes import THEMES

def get_theme_context(theme_name: str) -> dict:
    theme = THEMES.get(theme_name, THEMES["catppuccin-mocha"])
    return {
        "primary_color": theme.colors.primary,
        "background_color": theme.colors.background,
        "text_color": theme.colors.text,
    }

Multi-Platform

This package is part of the turbo-themes ecosystem:

  • npm: @lgtm-hq/turbo-themes - TypeScript/JavaScript
  • PyPI: turbo-themes - Python (this package)
  • RubyGems: turbo-themes - Ruby/Jekyll
  • Swift: Via Swift Package Manager

All packages share the same design tokens and color values.

License

MIT

Metadata

Release files for turbo-themes 0.44.28

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for turbo-themes 0.44.28
File Size Uploaded
turbo_themes-0.44.28.tar.gz 79.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for turbo-themes 0.44.28
File Interpreter ABI Platform
turbo_themes-0.44.28-py3-none-any.whl Python 3 none any Details

Total release size: 111.5 kB

Release files / turbo_themes-0.44.28.tar.gz

Download URL turbo_themes-0.44.28.tar.gz
Size 79.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5102c989ec3104400bfa0def7820ad92268a90cbcfd82e44b3c2aeacd44f585b
BLAKE2b-256 checksum
How to use checksums
13360c58017d20d478969112f0a3752683f39dc3e20348f222a3fe82922802a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / turbo_themes-0.44.28-py3-none-any.whl

Download URL turbo_themes-0.44.28-py3-none-any.whl
Size 31.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4d04e6c1b7b0204bab57933c7ac77271cd16bf17a4475aa7acfc9194b3c4b1ec
BLAKE2b-256 checksum
How to use checksums
3f37b74da5dc1d35e616d172e8a8e6ed25a63c1afb147831c76dbd814b89d3d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.44.28 This release

2 release files

0.42.5

2 release files

0.42.4

2 release files

0.42.3

2 release files

0.42.2

2 release files

0.42.1

2 release files

0.42.0

2 release files

0.41.9

2 release files

0.41.8

2 release files

0.41.6

2 release files

0.41.5

2 release files

0.41.4

2 release files

0.41.3

2 release files

0.41.2

2 release files

0.41.1

2 release files

0.41.0

2 release files

0.40.9

2 release files

0.40.8

2 release files

0.40.7

2 release files

0.40.6

2 release files

0.40.5

2 release files

0.40.4

2 release files

0.40.3

2 release files

0.40.2

2 release files

0.40.1

2 release files

0.40.0

2 release files

0.39.0

2 release files

0.38.8

2 release files

0.38.7

2 release files

0.38.6

2 release files

0.38.5

2 release files

0.38.4

2 release files

0.38.3

2 release files

0.38.2

2 release files

0.38.1

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.36.2

2 release files

0.36.1

2 release files

0.36.0

2 release files

0.35.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.1

2 release files

0.31.0

2 release files

0.30.2

2 release files

0.30.1

2 release files

0.30.0

2 release files

0.29.3

2 release files

0.29.2

2 release files

0.29.1

2 release files

0.29.0

2 release files

0.28.9

2 release files

0.28.8

2 release files

0.28.7

2 release files

0.28.6

2 release files

0.28.5

2 release files

0.28.4

2 release files

0.28.3

2 release files

0.28.2

2 release files

0.28.1

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.2

2 release files

0.25.1

2 release files

0.25.0

2 release files

0.24.5

2 release files

0.24.4

2 release files

0.24.3

2 release files

0.24.2

2 release files

0.24.1

2 release files

0.24.0

2 release files

0.23.9

2 release files

0.23.8

2 release files

0.23.7

2 release files

0.23.6

2 release files

0.23.5

2 release files

0.23.4

2 release files

0.23.3

2 release files

0.23.2

2 release files

0.23.1

2 release files

0.23.0

2 release files

0.22.1

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.3

2 release files

0.20.2

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.2

2 release files

0.12.9

2 release files

0.12.8

2 release files

0.12.7

2 release files

0.12.6

2 release files

0.12.5

2 release files

0.12.4

2 release files

0.12.3

2 release files

0.11.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page