This package contains Bootstrap themes from https://bootswatch.com/, which are packaged for use with Shiny applications. The themes included are:

Details

To use the themes, use the theme argument to bootstrapPage, fluidPage, navbarPage, or fixedPage. The value should be shinytheme("cerulean"), where the theme name takes the place of "cerulean".

Examples

if (FALSE) { library(shiny) library(shinythemes) # A very basic navbar page with different themes shinyApp( ui = navbarPage("Default theme", tabPanel("Plot", "Plot tab contents..."), navbarMenu("More", tabPanel("Summary", "Summary tab contents..."), tabPanel("Table", "Table tab contents...") ) ), server = function(input, output) { } ) shinyApp( ui = navbarPage("United", theme = shinytheme("united"), tabPanel("Plot", "Plot tab contents..."), navbarMenu("More", tabPanel("Summary", "Summary tab contents..."), tabPanel("Table", "Table tab contents...") ) ), server = function(input, output) { } ) shinyApp( ui = navbarPage("Cerulean", theme = shinytheme("cerulean"), tabPanel("Plot", "Plot tab contents..."), navbarMenu("More", tabPanel("Summary", "Summary tab contents..."), tabPanel("Table", "Table tab contents...") ) ), server = function(input, output) { } ) # A more complicated app with the flatly theme shinyApp( ui = fluidPage( theme = shinytheme("flatly"), titlePanel("Tabsets"), sidebarLayout( sidebarPanel( radioButtons("dist", "Distribution type:", c("Normal" = "norm", "Uniform" = "unif", "Log-normal" = "lnorm", "Exponential" = "exp")), br(), sliderInput("n", "Number of observations:", value = 500, min = 1, max = 1000) ), mainPanel( tabsetPanel(type = "tabs", tabPanel("Plot", plotOutput("plot")), tabPanel("Summary", verbatimTextOutput("summary")), tabPanel("Table", tableOutput("table")) ) ) ) ), server = function(input, output) { data <- reactive({ dist <- switch(input$dist, norm = rnorm, unif = runif, lnorm = rlnorm, exp = rexp, rnorm) dist(input$n) }) output$plot <- renderPlot({ dist <- input$dist n <- input$n hist(data(), main=paste('r', dist, '(', n, ')', sep='')) }) output$summary <- renderPrint({ summary(data()) }) output$table <- renderTable({ data.frame(x=data()) }) } ) }