shinyglass

License: GPL-3

Liquid Glass themes for Shiny. glass_theme() returns a bslib theme with translucent surfaces, backdrop blur, and system typography. Pass it as theme = glass_theme() to fluidPage(), navbarPage(), or other page functions that accept a bslib theme.

Documentation · GitHub

Glass dashboard, light Glass dashboard, dark

Quick start

# install.packages("remotes")
remotes::install_github("ericrayanderson/shinyglass")

library(shiny)
library(shinyglass)

ui <- fluidPage(
  theme = glass_theme(),  # or glass_theme(preset = "dark")
  titlePanel("Liquid Glass"),
  sliderInput("n", "Bars", 5, 30, 15),
  plotOutput("plot")
)

server <- function(input, output, session) {
  output$plot <- renderPlot(barplot(seq_len(input$n), col = "#007AFF", border = NA))
}

shinyApp(ui, server)

Shiny for Python (experimental)

Package under python/ (not on CRAN). Shares inst/scss + inst/js; wheels vendor precompiled CSS so default themes need no libsass at runtime.

cd python
pip install -e ".[dev,theme]"
python scripts/vendor_assets.py   # → src/shinyglass/static/
shiny run examples/app_sidebar.py
from shiny import App, ui
from shinyglass import glass_theme

app_ui = ui.page_sidebar(
    ui.sidebar("Filters"),
    ui.card("Hello glass"),
    theme=glass_theme(preset="light"),
)
app = App(app_ui, None)

See python/README.md for wheel builds and CI isolation tests.