A Dashboard for all screens
With Tableau 10 came device specific dashboard layouts, and they are great - especially when you want to embrace a mobile first approach and serve up your meticulously designed dashboards perfectly fitting the size of a tablet or smart phone. But what about all the different screen sizes on desktop or laptops, though? Tableau offers some desktop specific resolutions, but there are too many different possible screen sizes out in the wild.
I also don't feel like shuffling the same dashboard content around more than 3 times at most. One time for smart phones, one time for tablets, one time for desktop. So how to craft a dashboard that looks great on all possible screen sizes while maintaining the design I so carefully considered and crafted?
Traditionally I have been an outspoken fan of fixed size dashboards measuring 1200 x 700 px, because they will render on most 13" screens and still look great on 15" screens. But after discovering this neat little trick, I switched over to exclusively working with automatic dashboard sizing. Don't dub me a mad man just yet, hear me out.
Designing on a higher resolution screen and then viewing the dashboard on a smaller screen might work out okay, but oftentimes the result is pretty distorted. Designing a dashboard with fixed width or height of all elements on a smaller screen, presenting the same dashboard on a larger screen will leave you with something like this:
When all elements are set to a fixed size, Tableau can and will not extrapolate those measurements on larger screens and the dashboard cannot grow past its predetermined size. But the one thing Tableau does well is distributing all available space evenly within a layout container for all fixed elements when the total width or height of all elements in it exceeds the width or height of the layout container.
And this is where things get interesting: what if I design my dashboard for an imaginary and huge monitor and fix the size of all elements while using automatic dashboard sizing? Tableau will be forced to downsize it on any screen, keeping the even distribution of elements intact.
Fix the size of any element (viz, text, blank, more layout containers, etc) inside your layout container to, let's say, 5000. One element inside the layout container will take up 100% of the available space, two elements 50% each, three elements 33.3% each and so on; The logic behind this is 1/n, where n is the number of elements.
Lo and behold, our miracle dashboard
As you see, both elements inside the horizontal layout container (blue outline) distribute all available space evenly - two elements taking up 50% of available space each. Inside the vertical layout container (red outline), both elements again evenly take up all available space, following the same rule.
See it in action
Of course those dashboards can get more intricate. In the next example I hid the title of the bottom left tree map and replaced it with a text block and drop down parameter nested in a horizontal layout container (green outline). I have fixed this container to a height of 70 px, which turns out to be a fantastic size for title + dropdown combinations. This horizontal container and the tree map are living inside a vertical layout container (orange outline), which is set to 5000 px in order to get that even distribution inside the red layout container. A bit confusing at first, but it all follows the same simple mechanic.
See it in action
So there it is. Dashboards that can fit all screen sizes. If you want to take a closer look and play with this mechanic yourself, here's the interactive version on Tableau Public. Feel free to download and reverse-engineer it. Happy Vizzing!