Skip to content

Comments

Initial theming implementation#6200

Draft
PJacek wants to merge 12 commits intoPathOfBuildingCommunity:devfrom
PJacek:ui-refactor
Draft

Initial theming implementation#6200
PJacek wants to merge 12 commits intoPathOfBuildingCommunity:devfrom
PJacek:ui-refactor

Conversation

@PJacek
Copy link
Contributor

@PJacek PJacek commented May 6, 2023

This can now be considered an alpha version. Rebased on top of dev. The overall architecture is finished but there are still some WIP leftovers and the specific implementation and style are potentially subject to change.

  • The default look is almost indistinguishable from live (apart from making some controls more consistent).
  • Custom themes use the __index metamethod to fall back to the "default" hardcoded colours scheme, so there is always some colour definition available. I plan to add the ability to define a parent theme which would enable the creation of thin derivative themes.
  • The ability to select positive and negative colours should probably be removed. It's set globally and conflicting with the colours set by a theme. The colour-blind features could be implemented as a child theme.
  • The included themes exist mainly to test the system. They aren't quite finished and I'm not advocating for including them.
  • The ultimate goal is to completely eliminate any usage of hardcoded colour values (unless there is a very good reason for doing so). The friction of having to name a new colour and break existing themes is intended. Adding another green colour doesn't actually convey any information unless users can tell it apart from 5 other green colours. If it's meant to act as an accent then one should be used instead.
  • The notes are left unchanged for now. I'm still thinking about the best way to move forward but one idea is to limit the colour selection to a few defined per theme (akin to terminal / current ^0-9 colours). My understanding is that what users actually want is a way to format text rather than specifically make it a particular colour. Some sort of a Markdown-like formatting system would probably be ideal.
  • Skill tree is also unchanged. It looks okay-ish with dark themes but rather jarring with light ones. I was thinking about maybe doing some tinting but I haven't got around to testing it yet.
  • I have considered doing some dynamic tinting (e.g. highlights) but it's currently rather brittle because of how the controls are drawn (borders as a bigger filled rectangle).

@PJacek PJacek added long term Large or strategic commitments wip Unfinished and commited for discussion technical Hidden from release notes user-interface Changes that only affect the UI labels May 6, 2023
@QuickStick123 QuickStick123 added the enhancement New feature, calculation, or mod label May 8, 2023
@PJacek PJacek removed the technical Hidden from release notes label Oct 24, 2023
@qbarbosa
Copy link

qbarbosa commented Oct 31, 2025

Hello!

I'm very interested in this feature since the full black background of PoB has always been a problem for me.

I just found this PR (from #5130) that seems to have done a lot of work already. What is missing here to keep moving forward?

I don't know Lua at all but I can still offer my help if needed if you need some testing. Thanks.

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

Labels

enhancement New feature, calculation, or mod long term Large or strategic commitments user-interface Changes that only affect the UI wip Unfinished and commited for discussion

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants