Change pushed button background color


Is there any chance to change the pushed (active) button background color?

So if my default background color for buttons is white and I have two buttons named A and B. User is clicks button A and then the user can see the right data, and button A background is blue and button B is the default. Is this in any way possible action?

1 Like

Hi @MauriHeinonen, and welcome to the Streamlit community! :balloon::raised_hands:

Not something I have personnaly tried, yet you may want to experiment with that button and these CSS settings, as suggested bu @jrieke in this thread:.

Please let me know how it goes! :slight_smile:


You can change only the default layout with that CSS. But you can’t set different background colors for the selected (active) button.

I would like to use Streamlit session state to select a button background color.

a_pushed = st.button(‘A’, key=‘a_btn’)
b_pushed = st.button(‘B’, key=‘b_btn’)

The default button background color is white.

If a_pushed is true then a_btn background should be blue and b_btn background color is the default.

If the user selects button B, then a_pushed value is False and b_pushed value is True, so b_btn background is now blue and a_btn background color is the default.

1 Like

Thanks for the detaied asnwer @MauriHeinonen!

I’m looping in @okld, as he may know how to achieve what you’re after :slight_smile:


Did you guys get something in this topic?

I did not get yet any solutions to this issue.

I thought that if there is possible to use an HTML link, but somehow store selections to the st.session_state to the next page. If this could be possible, then you can use basic div and a -tags to build this.