Switch dashboard theme on embedded dashboard

We embed the dashboards into our react based portal. Now our customers want to have different styling. Switching themes on our react portal can be implemented but when it is switched we should also switch the theme of the displayed quicksight dashboard.

Is there a way to implement that currently or does quicksight need to build support for it first?

Hi @Jeroen
You can use the update dashboard API to switch the theme. However, this switches the dashboard theme every where, for all users. Currently, there is no support to change the theme only for the embedding session.


@n_vetri Thanks for the response.

Is there any feature request for this? And is this something that would be possible in the (near) future?

Using the UpdateDashboard API call is probably not something we can use, but I will check it out.


@Jeroen is the ask to change the theme of the embedded dashboard based on who is accessing this dashboard (for that embedding session) and the parent page? Trying to understand why UpdateDashboard API call will not work?

@KareemAWS_QS Yes indeed. Depending which user logs into our portal defines the theme which will be loaded in the portal. So userA can see the portal in a light theme while userB logs in and sees a dark theme.

So for userA we would load the dasboard in a light theme where userB would see the same dashboard in a dark theme.

With the updateDashboard API we could come close but it would fail if users with different themes log in at the same time.

@Jeroen got it. We have this in the roadmap and will update the documentation when this is made available.

@KareemAWS_QS Is there any update on this subject? It is becoming more important for us and at the moment the only solution we have is to basically duplicate a dashboard which only has a different theme. Which is not really a maintainable solution.

Would love to hear if this is something which will be available anywhere soon or is on the roadmap but basically will take months/years before it will be available.