Plan icon indicating copy to clipboard operation
Plan copied to clipboard

Theme system overhaul

Open AuroraLS3 opened this issue 6 months ago • 0 comments

I would like to be able to..

  • Customize the theme in UI rather than via Html Customization or file modifications.
  • Replace current theme.yml

These are things I would like to be able to accomplish:

  • Defining colors
    • Change base colors (red, green, light-green, etc)
    • Choose from a list of existing colors
    • Add my own colors
      • Support CSS properties such as url for background images & gradient function etc.
    • Define contrast reduction for night mode colors
  • Defining element colors
    • Change colors of elements (e.g. Sidebar)
    • Change night mode colors separately
    • Change colors of specific types of data (e.g. Kills from red to something else)
    • Graph color sets
  • See a preview of the theme
  • Define entire themes
    • JSON storage structure
    • Saving themes to a file
    • Loading themes from a file

Here's a list of predefined themes I'd like to create

  • The default (current theme)
  • Night mode theme (current night mode)
  • Color blind mode
  • High contrast mode
  • High contrast night mode (https://github.com/plan-player-analytics/Plan/issues/2876)

Is your feature request related to a problem? Please describe.

theme.yml dates back to when the website was rendered in HTML, and it has not stayed up to date on how the theming of the website works. Many of the settings in the file are applied in slightly odd fashion by including colors in data endpoints.

It would be good if the whole system was unified so that elements that have colors use css variables and those variables can be overridden via the theme system.

AuroraLS3 avatar Jun 01 '25 05:06 AuroraLS3

I feel like if you're just renaming items, then /itemname would be more useful (which has support for color code permissions). The name field in the anvil is really limited and not really designed for color codes and, to my knowledge, can't easily be increased.

Chew avatar Jun 09 '25 23:06 Chew

That's understandable. I don't have too much insight into the technical limitations of the anvil UI, so I can imagine it's not as easy as it looks. /itemname is another possibility, although it's not as "immersive" as using the anvil directly. Plus it doesn't cost xp levels and overall feels more like an OP tool. I found a plugin (AnvilColors) which implements this, so it's not a pressing issue. However, after your comment about the name field, I'm curious to see its limits and shortcomings.

Thank you for your quick reaction, I will leave the status of this ticket up to you :)

takatalvi avatar Jun 10 '25 08:06 takatalvi