shinyswatch
Bootswatch + Bootstrap 5 themes for Shiny.
What it is and what it does
shinyswatch wraps Bootswatch themes—pre-built Bootstrap 5 CSS designs—into Python objects that integrate directly with Shiny for Python applications. Instead of writing or managing CSS, you pass a theme object (like `shinyswatch.theme.darkly` or `shinyswatch.theme.minty`) to your app's UI definition, and the entire visual appearance changes instantly. The package includes 25 themes covering a range of aesthetics from minimal to bold.
Each theme also exposes a `.colors` attribute, letting you extract the theme's color palette for use in plots and other custom UI elements. This keeps your app's visual identity consistent across all components. Installation is straightforward—a single pip command—and the package has no heavy dependencies beyond Shiny itself, htmltools, packaging, and typing-extensions.
Use it for:
- Apply a dark theme to a Shiny dashboard without writing custom CSS.
- Build a theme picker UI that lets end users switch between 25 pre-built themes at runtime.
- Extract theme colors to style matplotlib or plotly charts to match your app's visual design.
- Quickly prototype a web app with a professional, cohesive look using Bootswatch designs.
- Ensure consistent Bootstrap 5 styling across multiple Shiny applications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides 25 Bootswatch + Bootstrap 5 themes for Shiny Python applications, allowing you to apply pre-designed visual themes to your web UI.
Yes. shinyswatch is a low-friction, actively maintained utility that solves a real problem—applying polished, pre-built themes to Shiny apps without CSS expertise. No known vulnerabilities, permissive MIT license, and recent releases. Install it if you're building Shiny applications and want professional-looking themes out of the box.
Install
shinyswatch on PyPI
pip
pip install shinyswatchuv
uv add shinyswatchpoetry
poetry add shinyswatchInstalling shinyswatch
Before you install
Low friction installation with a pure-Python wheel. Active maintenance with a recent release (16 days old) and clean repository history. Supports current Python versions (3.10–3.14).
License in practice
MIT license permits unrestricted use, modification, and distribution in both open and closed projects with minimal attribution requirements.
Quickstart
pip install shinyswatch
from shiny import App, ui, render
import shinyswatch
app_ui = ui.page_fluid(
ui.input_slider("num", "Number:", min=10, max=100, value=30),
theme=shinyswatch.theme.darkly
)
def server(input, output, session):
@output
@render.text
def slider_val():
return f"{input.num()}"
app = App(app_ui, server)
Requires Shiny for Python to be installed; works with Python 3.10 or later.
Verify before relying
- Whether all 25 themes are fully documented or discoverable programmatically.
- Performance impact of theme switching at runtime in large applications.
- Compatibility with custom CSS or third-party Bootstrap extensions.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — typing-extensions, packaging, htmltools, shiny |
| Maintenance | actively maintained — 16 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 132,913/month — #11,534 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: shinyswatch-0.12.0-py3-none-any.whl
Keywords: html
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
ttkbootstrapApplies Bootstrap-inspired themes and a…
permissive · top 15,000 on PyPI
sphinx-bootstrap-themeA Sphinx theme that applies Bootstrap CSS and…
permissive · top 15,000 on PyPI
dash-bootstrap-templatesProvides Bootstrap-themed Plotly figure…
permissive · top 15,000 on PyPI
shinychatshinychat provides a chat UI component for…
permissive · top 15,000 on PyPI
shinyShiny for Python is a web development framework…
permissive · top 15,000 on PyPI
faiconsProvides Font Awesome 6.2.0 icons as SVG…
permissive · top 15,000 on PyPI
shinywidgetsEmbeds ipywidgets (Jupyter interactive widgets)…
permissive · top 15,000 on PyPI
django-jazzminA drop-in Django admin theme that reskins the…
permissive · top 15,000 on PyPI
rsconnect-pythonrsconnect-python is a command-line tool for…
unclear · top 15,000 on PyPI
brand-ymlParses and manages brand guidelines from a YAML…
permissive · top 15,000 on PyPI