Search code examples
rshinyshinydashboard

Hide sidebar in default in shinydashboard


I used shinydashboard to create my app. I would like to hide the sidedar in default on desktop environment (e.g. windows), but not to disable it. On the mobile device, the sidebar is hide in default. I think I need to change the css class, but don't know how to do it.

Thanks for any suggestions.

This is my playing codes:

library(shiny)

library(shinydashboard)
ui <- shinyUI(dashboardPage(
    dashboardHeader(),
    dashboardSidebar(),
    dashboardBody()
))

server <- shinyServer(function(input, output, session) {
})

shinyApp(ui = ui, server = server)

Solution

  • This is very similar to my answer from another SO thread: "disabling/enabling sidebar from server side"

    Here's code that can do what you want by hiding the sidebar when the app starts (using the package shinyjs)

    library(shiny)
    library(shinydashboard)
    library(shinyjs)
    
    ui <- shinyUI(dashboardPage(
      dashboardHeader(),
      dashboardSidebar(),
      dashboardBody(
        useShinyjs()
      )
    ))
    
    server <- shinyServer(function(input, output, session) {
      addClass(selector = "body", class = "sidebar-collapse")
    })
    
    shinyApp(ui = ui, server = server)