Breaking the Chains

Redefining Show/Hide in Tableau Dashboards

One small frustration I’ve run into with Tableau dashboards is the show/hide functionality: the show and hide icons are locked together and must always be the same container. The image used when the container is hidden will change to the hide image when container is shown, because they both live in the same container. If you plan to tile that show/hide container, the hide icon will always pop up in that same spot — like two links in a chain you just can’t break apart.

This can quickly become a problem if you’re using a pop-up container triggered by logic. For example, imagine you’ve built an announcements container to alert users of important information tied to the visualization. When I tried this, I ran into an issue: the show/hide container was tiled, but once I clicked to show it, the pop-up overlapped the tiled show/hide button itself.

Sure, you could float the container and force it to sit on top of everything else, or move the overlay out of the way of the show/hide tile. But let’s be honest—those are band-aid fixes. Quick, “not fully thought out” decisions like that usually lead to poor design and, ultimately, a frustrating user experience.


Today we’re going to execute a method that functions the same way a show/hide container functions. At the end of this post you will be able to have icons that show/hide containers while being placed independently in your dashboard.


Quick Look at the Default Show/Hide Functionality

When you click on the extra options of a dashboard container there is an option for Show/Hide functionality; when you click on that the following box appears:

Choose between Text or Image

Now by default, you have a good variety of options when customizing your Show/Hide button, there is just one limitation that kind of frustrates me:

The icons you select when the container is shown or hidden stay in the same button container.


Below is what we will need to create independent icons that control the same container:

  • Two Containers: Show/Hide Icons
  • One Parameter: Boolean (T | F) (used for DZV)
    • Dynamic Zone Visibility (DZV) was introduced in Tableau 2022.3, which was released in October 2022.
  • Four Calculations: Source for Parameter and Shapes
  • Two Dashboard Actions

TWO CONTAINERS

These containers will act as your icons to signal users show and hide functionality. In this method, you have the creative liberty to choose the icons you want. I usually select a filter icon or a magnifying glass icon with a plus in the middle. I use the filter icon when I am working with a container of multiple filters that I want to hide. The magnifying glass icon I use when I try to add a ‘zoom out’ feature for visuals that I want users to have a closer look. Below is an example of the zoom out feature I have done on a recent visualization I created.

Supplemental line/area graph in the bottom right is shown when the zoom out feature is activated (using a duplicated visual on another container)

BOOLEAN PARAMETER

You will create a True/False Parameter to serve as the conduit for the Dynamic Zone Visibility action. Since you have a parameter whose values are either TRUE or FALSE, this will be your field to turn on your DZV execution in your dashboard pane.

FOUR CALCULATIONS

Two calculations will be used for shapes in the two containers. I usually create the following calcs:

(1) Name: Blank Value: ”; (2) Name: Blank2 Value: ” [SHAPES]

**Since you’re choosing two different shapes; its cleaner to have separate calcs for separate shapes**

(3) Name: TRUE Value: TRUE ; (4) Name: FALSE Value: FALSE

**Placed in the details card; TRUE for the Show Shape; FALSE for the Hide Shape**

TWO DASHBOARD ACTIONS

You will need to use two Change Parameter actions that will execute the boolean parameter change, your source field will be the two calculations referenced above (#3 and #4). You will have one action that will change the parameter to TRUE (I usually title this as Change Parameter Action -SHOW). When clicking on the filter icon shape; your TRUE calculation will change your T/F parameter to TRUE.

Make sure you choose the option to keep the value. Clicking the other container/shape will action the other change parameter action (HIDE) because the FALSE calculation will serve as the value the T/F Parameter will change to .

Below is a quick example of the action, for this example I just placed the text to the calcs to show that clicking on each container changes the parameter.


So now you have successfully created a customized action that will change a parameter driven by a user. Now remember with Dynamic Zone Visibility you can select the parameter to ‘trigger’ the container you want to appear when the parameter changes to TRUE.

Shape Container Location:

This is where your creativity comes into play! With two separate containers both driving the same parameter, you have the flexibility to place them wherever they best fit your dashboard design.

What I like to do is place the shape icon container alongside the controlled container. You can float it over the controlled container so it only appears when your parameter is TRUE—triggering DZV for both the controlled container and the HIDE shape container. An even cleaner approach is to tile the controlled container and the HIDE shape container together inside a new container, then let DZV control that entire group (shown in the gif above off the dashboard I created).

CLOSING THOUGHTS

How cool is this? 🎉

With Dynamic Zone Visibility and a couple of parameter-driven actions, we’ve finally broken the chain that keeps Tableau’s default show/hide stuck in one container. Now you get the freedom to drop your show and hide icons wherever they work best for your dashboard.

The best part? You’re not just unlocking more design flexibility—you’re creating cleaner, smoother, and way more intuitive interactions for your users. No more awkward overlaps, no more clunky workarounds.

Leave a comment