Skip to contents

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

Glass intensity changing from clear to tinted

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