Skip to content

Conversation

@RKBoss6
Copy link
Contributor

@RKBoss6 RKBoss6 commented Dec 22, 2025

This adds support for dark mode to the app loader, helping blend into native ui, especially on phones, and making the site feel more fresh and modern. This PR is in conjunction with AppLoaderCore #84

This PR currently has different commits to make the index.js changes from testing appear in-site for my app loader, when everyone's happy with this, I'll make a new, final PR to get this in.
Check it out on my personal app loader!
I've tested this in safari and chrome, but not in firefox or gadgetbridge web view. Testing on those would be appreciated, as I'm not 100% positive that the dark mode will work on all those browsers.
Todo:

  • Add dark mode support for site
  • Add setting to choose device, light or dark
  • Save setting for future use
  • Update device chooser to use theming (make device favicons transparent)

Screenshots:

Screenshot 2025-12-22 at 1 54 05 PM Screenshot 2025-12-22 at 1 54 14 PM Screenshot 2025-12-22 at 1 54 22 PM

@bobrippling
Copy link
Collaborator

Very cool! Shall leave to @gfwilliams to have the final review (I think you already know but he's on holiday so might be a little while)

@RKBoss6 RKBoss6 marked this pull request as ready for review December 22, 2025 20:27
Copilot AI review requested due to automatic review settings December 22, 2025 20:27
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds comprehensive dark mode support to the app loader, including a user-configurable theme setting (light/dark/device) that persists across sessions. The implementation uses CSS light-dark() functions and media queries to support system-level dark mode preferences.

  • Adds a theme selector with Light, Dark, and Device (system preference) options
  • Updates CSS to support both light and dark color schemes using light-dark() function
  • Points to a forked AppLoaderCore repository for testing (noted in description as temporary)

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
index.html Adds theme selector dropdown UI and missing spacing between form elements
css/main.css Implements dark mode color scheme using light-dark() CSS function throughout the interface
core Updates submodule commit reference to new version with dark mode support
.gitmodules Temporarily points to forked AppLoaderCore repository for testing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

RKBoss6 and others added 3 commits December 22, 2025 15:36
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
@RKBoss6 RKBoss6 marked this pull request as draft December 23, 2025 00:58
@gfwilliams
Copy link
Member

Just posted some comments on espruino/EspruinoAppLoaderCore#84

I think it's not on https://rkboss6.github.io/BangleApps now as I can't see the theme chooser? But do the interface/custom menus work ok? I see you added some code for them but I wonder whether any of them hard-code any colours?

@RKBoss6
Copy link
Contributor Author

RKBoss6 commented Jan 6, 2026

Oh, sorry! It should be up now. Custom menus are injected with the style, and most that I've seen so far look good - it is subject to whether or not they have hard-coded any styles in, but the majority of them look promising.

Edit: Just looked at some more, and tables aren't looking good on dark mode. Would you say it's better to inject all possible styles, or try and blend the light Iframes into the dark site somehow?

[submodule "EspruinoAppLoaderCore"]
path = core
url = https://github.com/espruino/EspruinoAppLoaderCore.git
url = https://github.com/RKBoss6/EspruinoAppLoaderCore.git
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You'd need to back this out before we merge - although I know it's handy for testing at the moment

@gfwilliams
Copy link
Member

gfwilliams commented Jan 8, 2026

I think if we're doing dark mode, we're going to have to change the colours on tables and other UI elements too - I don't see how we can really 'blend' the submenus in nicely. Even as-is it looks a bit rough - buttons don't look that great in the main app loader:

image

Just checking the apps with menus that I have installed...

recorder:

image

replies:

image

terminal:

image

scheduler:

image

They don't look great. Not to mention when they load there's a big flash of bright grey.

Personally, I think if we merge this, we're just going to get a bunch of complaints about how it looks at the moment.

I guess as these apps basically all include css/spectre.min.css and interface/custom.js something might have to go in there?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants