16
votes

I found how to change the background color of the User Interface in Shiny. The withdraw I found is that it also colors the background of the tables i'm showing with tableOutput. Here I show a dummy example.

ui.R

shinyUI(pageWithSidebar(
headerPanel("Dummy"),
sidebarPanel( tags$hr() ),

mainPanel(

# This is what I use to change the background color
list(tags$head(tags$style("body {background-color: #ADD8E6; }"))),

tableOutput("dummy")   ) ))

server.R

shinyServer(function(input, output) { output$dummy <- renderTable({ data.frame(A=1:4,B=2:5,C=rep("aaa",4)) }) })

What I get is this

enter image description here

and what I would like to get (I used GIMP to recreate it) is

enter image description here

Thanks everyone for your help!

1

1 Answers

16
votes

A solution has been given on the shiny google group:

runApp(
  list(ui = bootstrapPage(pageWithSidebar(
    headerPanel("Rummy"),
    sidebarPanel( tags$hr() ),

    mainPanel(

      tableOutput("dummy"),
      # change style:    
      tags$head(tags$style("#dummy table {background-color: red; }", media="screen", type="text/css"))
    )

  )
  )

  ,
  server = function(input, output) {
    output$dummy <- renderTable({ data.frame(A=1:4,B=2:5,C=rep("aaa",4)) }) 
  }

  )
)

I also invite you to read this discussion on the shiny google group, which shows how to use the pander package to generate html tables and insert them in a shiny app. This allows a more flexible control of the style.