I’m trying to implement user-specific themes (Light/Dark/System) in my app and have hit a roadblock where the app’s visual theme doesn’t update, even though the user’s preference is correctly saved.
Here’s my setup:
User Profile Table (Admins):
Contains a user-specific Text column named Theme.
This column correctly stores values like “Light”, “Dark”, or “System”.
Settings Screen:
Has a Choice component (Style: Segmented/Pills).
Data > Writes to: Admins > Theme (the user-specific column).
Content > Options from: Theme Options table (which has rows for “Light”, “Dark”, “System”).
Confirmation: When a user selects an option (e.g., “Dark”) on this screen, the Theme column in their Admins row updates correctly in the Data Editor.
Global App Settings > Appearance:
Environment: Set to “Auto” .
Issue: I cannot find any explicit UI option within the “Appearance” panel to directly link this “Auto” environment to my Admins > Theme column. I’ve scrolled and checked all sub-settings under “Style,” “Environment,” etc.
The Problem:
When a user changes their theme preference via the Choice component on the Settings screen, their Admins > Theme column updates successfully.
However, the actual visual theme of the app does not change to reflect this new value.
BUT, if I manually go into the Data Editor and change the value in the Admins > Theme column for a user, and then reload the app (as that user, or by switching “Viewing As”), the theme does apply correctly.
This suggests the global “Auto” environment can read the Theme column, but it’s not reactively updating when the Choice component changes the data, OR there’s a missing link that the builder UI isn’t showing me for the “Auto” setting.
My Question:
Is there a known reason why the app’s visual theme wouldn’t reactively update when a user-specific column (linked to “Auto” environment) is changed by a component, even if manual data changes work?
Is there a specific trick or setting I’m missing in Global Appearance to ensure “Environment: Auto” correctly and dynamically uses the value from Admins > Theme when that value is changed by a user action within the app?
Could this be a caching issue within the live app preview, even if the data itself is updating? (I have tested in incognito, but the issue persists when the user makes the change in-app).
Any insights or similar experiences would be hugely appreciated! I’m on the Free plan.
That’s because there isn’t any. Auto will set a light or dark theme depending on the user’s device or browser settings. It is not reading it from a value in your table. If the user chose a light or dark theme on their device or browser settings, then that’s what should be kicking in when Auto is selected.
Not sure how you are pulling that off. I’d have to see a video of it in action to believe it. I feel that something else is in play here.
Not sure how you are pulling that off. I’d have to see a video of it in action to believe it. I feel that something else is in play here.
After reading your answer Jeff and testing again, it definately is the auto making it seem like manually entering the data allows it to apply. Thanks.
Thanks for the clarification again. So, if “Auto” only uses the OS/browser setting, is there any other way in Glide (perhaps using the “Light” or “Dark” global Environment settings in combination with a user-profile column) to allow users to select a specific “Light” or “Dark” theme within the app that overrides their OS setting? I have users storing “Light”, “Dark”, or “System” in a user-specific column. How can I make the app’s theme engine use this stored preference?
There is no other option to control the overall app theme. The best you can do is use that stored value to control the visibility of different container components, each with different backgrounds, but you are going to be duplicating a lot of components and adding a lot more maintenance to make sure each container looks the way you want it to.
Maybe you could do something with CSS, but I’m not sure if it’s possible. It’s not something I’ve explored.
That will be a huge battle, not to mention the various other stuff like separators, list elements (search/filter/pill tags), button labels and icons etc.
I just had to configure that for a client who wants a card container background color that is rather dark yesterday.
In my company for example the PCs are shared between employees, so the settings/addons/theme for each PC is super random, and tbh got a lot of non-tech people in my firm who doesn’t even know how to change a theme, so it would be a great Idea to add it as a choice for each user inside the app