Glass themes for Shiny, built on bslib. Add translucent surfaces, live light/dark switching, and adjustable glass intensity to your app.
Documentation · Theming guide · Release notes

Install
install.packages("shinyglass")For the latest development features:
# install.packages("remotes")
remotes::install_github("ericrayanderson/shinyglass")Quick start
library(shiny)
library(shinyglass)
ui <- fluidPage(
theme = glass_theme(preset = "auto", intensity = 0.45),
titlePanel("Hello, glass"),
glass_theme_toggle(selected = "auto"),
glass_intensity_slider("glass_intensity"),
sliderInput("n", "Bars", 5, 30, 15),
plotOutput("plot")
)
server <- function(input, output, session) {
observe_glass_theme_toggle(input, session)
observe_glass_intensity(input, session, "glass_intensity")
output$plot <- renderPlot(barplot(seq_len(input$n)))
}
shinyApp(ui, server)Live demos
Apps may take a moment to wake up.
| Demo | Explore |
|---|---|
| Basics | Theme switching and core controls |
| Dashboard | Cards, plots, and tables |
| Intensity | Clear-to-tinted glass |
| Inputs | Shiny input controls |
| Olympic medals | A complete dashboard |
| plotly + gt | Interactive charts and tables |
Built for Bootstrap 5 and bslib. See compatibility for supported widgets and older layouts.
More: examples · experimental Python package · testing · deployment