Scaling dashboard to fit different size screens


I am building a shiny dashboard. It looks great on my standard desktop monitor. However, the images don’t fit on my 13-inch laptop. I suspect that the dashboard won’t fit on many of the screens my clients will be using. (Of course, I can’t predict which screen a client will be using.)

What strategies exist to scale the dashboard images (the dashboardPage, sidebar and body, , the component boxes and the images within the boxes) to a user’s screen?



Hi @adambickford, are you referring to actual pictures (jpeg, png)? or to dashboard elements? If the second one, then shinydashboard should already automatically adapt the layout to the size of the screen, check out the screenshots at the top of this article:


I am referring to actual dashboard elements. My charts (primarily ggplot objects) scale to fit within their boxes, but I need a way to scale the boxes (typically 4 per panel) to the size of the display.


Oh ok, what will typically happen is that if you have 4 elements in 4 quadrants, they will become stacked automatically once the screen resolution is narrow enough, is that not the desired outcome?



As @edgararuiz pointed out, the contents of the dashboard are responsive items, so they should automatically adapt according to the screen resolution. Are your boxes defined inside fluidRow() and/or column() elements?

For an example, check out the Layout section of the shinydashboard documentation.


Here’s my situation. My dashboard has 8 main panels, with between 2 and 6 boxes on each panel (although the majority of the panels have 4 boxes).
All of the panels are rendered using a single fluidRow call (specifically “fluidRow(uiOutput(“ui”))”, where “ui” is a complex list of the panels, boxes, plots and tables to be displayed).

When I look at my dashboard on my desktop screen, everything is visible. However, when I look at my smaller laptop screen, the boxes are cut off, They extend beyond the vertical dimension of the screen. A similar thing happens when I display the dashboard on a much larger LCD screen in a conference room.

I was wondering if there was any way to scale the dashboard elements so that they display on any screen?