Themes for Shiny

Themes for use with Shiny. Includes several Bootstrap themes from <>, which are packaged for use with Shiny applications.

See the documentation at

The shinythemes package provides some Bootstrap themes for use with Shiny. The themes are from from

Using the themes is simple. Use the theme argument to bootstrapPage, fluidPage, navbarPage, or fixedPage. The value should be shinytheme("<theme>"); for example, shinytheme("cerulean").

For example, a single-file app might look like this:

  ui = navbarPage("United",
    theme = shinythemes::shinytheme("united"),  # <--- Specify theme here
    tabPanel("Plot", "Plot tab contents..."),
      tabPanel("Summary", "Summary tab contents..."),
      tabPanel("Table", "Table tab contents...")
  server = function(input, output) { }

Live theme selector

If you want to quickly test out different themes with an application, you can simply add themeSelector() somewhere to the UI. This will add a select box which lets you choose the theme. It will change the theme without having to reload or restart your app. You can see the theme selector in action here.

The theme selector is only meant to be used while developing an application. Once you've decided on which theme to use, pass it to the theme argument as described earlier.

Here's an example app with the theme selector:

  ui = fluidPage(
    shinythemes::themeSelector(),  # <--- Add this somewhere in the UI
      textInput("txt", "Text input:", "text here"),
      sliderInput("slider", "Slider input:", 1, 100, 30),
      actionButton("action", "Button"),
      actionButton("action2", "Button2", class = "btn-primary")
        tabPanel("Tab 1"),
        tabPanel("Tab 2")
  server = function(input, output) {}

Once you've found a theme that you like, use it in the page as shown above, with theme = shinythemes::shinytheme(<theme here>).


shinythemes 1.1.2

  • Added some fonts that were missing, and update all fonts. (#5)

shinythemes 1.1.1

  • Added themeSelector(), which inserts a widget into a Shiny page that lets the user change the theme in an application without reloading.

shinythemes 1.1

  • Updated themes to use Bootstrap 3.3.7. This improves compatibility with Shiny 0.14 and fixes an issue where Shiny's modal dialogs didn't work correctly with shinythemes.

  • Added many more themes from Bootswatch.

shinythemes 1.0.1

  • Fixed a bug where icons from the glyphicons font weren't appearing. (#1)

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.2.0 by Winston Chang, 10 months ago

Browse source code at

Authors: Winston Chang [aut, cre] , RStudio [cph] , Thomas Park [ctb, cph] (Bootswatch themes) , Lukasz Dziedzic [ctb, cph] (Lato font) , Nathan Willis [ctb, cph] (News Cycle font) , Google Corporation [ctb, cph] (Open Sans and Roboto fonts) , Matt McInerney [ctb, cph] (Raleway font) , Adobe Systems Incorporated [ctb, cph] (Source Sans Pro font) , Canonical Ltd [ctb, cph] (Ubuntu font)

Documentation:   PDF Manual  

GPL-3 | file LICENSE license

Imports shiny

Imported by ArchaeoPhases, BayesianFROC, DCEtool, DataEditR, Eagle, FielDHub, GFD, GFDsurv, LFApp, LipidMS, MetSizeR, OpenRepGrid.ic, PKconverter, ProjectionBasedClustering, SPARTAAS, SpNetPrep, abstractr, animaltracker, bestSDP, cmsaf, cocktailApp, gestate, gridsampler, html2R, immunarch, isobxr, kindisperse, memapp, mlr3shiny, oceanis, papci, precisely, qqvases, rcbayes, regexTestR, santaR, shinystan, skpr, teachingApps, wallace, wildviz, wppExplorer.

Depended on by kgc, multichull, sdcHierarchies, stmgui.

Suggested by AmpGram, CNVScope, CancerGram, Clustering, ImportExport, OpenSpecy, PROsetta, RDML, TestDesign, arulesViz, bayesmove, beanz, bibliometrix, bsem, compareGroups, countfitteR, idem, influential, lime, mirtCAT, nse2r, polmineR, prettifyAddins, rco, shinyMergely, shinyMonacoEditor, shinyPredict, signalHsmm, weco, wiad, xROI, xplorerr, zscorer.

See at CRAN