The discussion revolves around improving theme settings on the user front-end in Discourse. erlend_sh initiated the conversation, suggesting a more user-friendly interface for changing theme settings, such as dark/light mode and font sizes, citing an example from GitBook.
awesomerobot noted that the <big> fix might have caused issues, but sam explained that the plan is to add “user selectable theme components,” which would allow users to customize their theme preferences.
erlend_sh suggested that the font sizer, a key accessibility feature, should be a default feature for every theme, either bundled into core or made a default theme component.
tshenry proposed a drop-down menu for each set of selectable theme components, making it a cleaner presentation for users.
david mentioned that per-user font size selection is now part of core, but user-selectable theme preferences are still planned for the future.
danekhollas inquired about the status of user-selectable theme preferences and was informed by david that it has been taken off the short-term roadmap. However, david provided an example of using cookies or localStorage to save per-device data.
It shouldn’t have ruined anything except scaling for <big> and <small> tags, which should be avoided because they’re obsolete specifications that can be removed at any moment. <big> specifically is very bad because it will nest and scale infinitely if defined with ems.
I can probably change the <big> definition to a rem unit to prevent the exploit and allow at least some scaling based on the root font-size, but it still should be considered as relevant as the <blink> tag.
I suspected that might be a prerequisite for this feature.
Wouldn’t we want this front end widget (in particular the font sizer, which is a key accessibility feature) to be a default feature for every theme? So either (a) it should be bundled into core somehow, or (b) that theme component would be a default for all themes somehow, but the former sounds a lot easier to me.
I like this so much it hurts. Having a drop-down for each set of selectable theme components would make it a much cleaner presentation for the user. This is extreme granted, but instead of having a single dropdown with:
Standard Theme (Light w/ Normal Font)
Standard Theme (Light w/ Large Font)
Standard Theme (Dark w/ Normal Font)
Standard Theme (Dark w/ Large Font)
Standard Theme (Other Color Scheme w/ Normal Font)
Standard Theme (Other Color Scheme w/ Large Font)
Sam’s Simple Theme (Light w/ Normal Font)
Sam’s Simple Theme (Light w/ Large Font)
Sam’s Simple Theme (Dark w/ Normal Font)
Sam’s Simple Theme (Dark w/ Large Font)
Sam’s Simple Theme (Other Color Scheme w/ Normal Font)
Sam’s Simple Theme (Other Color Scheme w/ Large Font)
Material Design Theme (Light w/ Normal Font)
Material Design Theme (Light w/ Large Font)
Material Design Theme (Dark w/ Normal Font)
Material Design Theme (Dark w/ Large Font)
Material Design Theme (Other Color Scheme w/ Normal Font)
Material Design Theme (Other Color Scheme w/ Large Font)
Vincent Theme (Light w/ Normal Font)
Vincent Theme (Light w/ Large Font)
Vincent Theme (Dark w/ Normal Font)
Vincent Theme (Dark w/ Large Font)
Vincent Theme (Other Color Scheme w/ Normal Font)
Vincent Theme (Other Color Scheme w/ Large Font)
etc…