Skip to content

Improve global UI consistency and add theme selector - #866

Open
Lyrkan wants to merge 11 commits into
Carvera-Community:developfrom
Lyrkan:ui-improvements
Open

Lyrkan wants to merge 11 commits into
Carvera-Community:developfrom
Lyrkan:ui-improvements

Conversation

@Lyrkan

@Lyrkan Lyrkan commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

theme_selector

The theme editor allows to configure all the colors, grouped by categories as well as some fonts (the main one, one for the top bar indicators, and one for the gcode/mdi lists) and a few behaviors (such as coloring the jogging pads background/texts).

All themes are stored as JSON files that can extend a base theme.

For now only one theme can be saved as the customized version of a selected base theme. Ideally I would have liked to add an import/export feature but I prefer to wait for a good common save/load widget that would also work on iOS/Android and that we could use everywhere we need to (CMM/Backup/...). In the meantime the theme can be retrieved from the themes folder of the app dir (on Linux: ~/.config/makera/themes/custom.json).

Before starting this I also fixed a few things that annoyed me in the current UI (style inconsistencies, some things overflowing on smaller devices, etc.), so some elements are a bit different even in the base theme (that'll be called "Dark" from now on).


Some screenshots:


Theme editor:
theme_selector_01
theme_selector_02
theme_selector_03

Dark:
dark-01
dark-02
dark-03

Light:
light-01
light-02
light-03

Monokai:
monokai-01
monokai-02
monokai-03

Nord:
nord-01
nord-02
nord-03

Solarized Dark:
solarized-dark-01
solarized-dark-02
solarized-dark-03

Solarized Light:
solarized-light-01
solarized-light-02
solarized-light-03

Also, an example of how the main screen now looks on a smaller screen (colors are not up-to-date with the latest Monokai theme, but that's not important here):
image


I tested this on Linux with my CA1 and used Cursor when developing it.

Contributor checklist

  • I am a human submitting this pull request.
  • I have read and understand every changed line, and I take responsibility
    for the complete change.
  • Pre-commit checks (poetry run pre-commit run --all-files) passes with no errors.
  • The changes have been tested with real hardware.
  • I have read and understood the contributions guidelines

@SergeBakharev

Copy link
Copy Markdown
Contributor

Maybe it's nostalgia, but the rounded buttons in the top bar makes it look less like a status bar. Maybe that's a good thing, as it signals that they can be clicked, but looks just a bit off to me.

I'm not sure about the dropdown on the main burger menu (in the top right), it looks better than what we have now, but something doesn't look quite right. Maybe the spacing is too much?

Else where the rounded buttons looks very nice!

@Lyrkan

Lyrkan commented Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

Maybe it's nostalgia, but the rounded buttons in the top bar makes it look less like a status bar. Maybe that's a good thing, as it signals that they can be clicked, but looks just a bit off to me.

Hmm, I don't find it weird but I'll see if I can think of something else. I could add a way to configure their radius separately (currently they use radius_m from the theme), but I'm not sure it'd look good with one that is different from other buttons.

I'm not sure about the dropdown on the main burger menu (in the top right), it looks better than what we have now, but something doesn't look quite right. Maybe the spacing is too much?

It may be the really thin border around the menu buttons? I added it because without it you could not distinguish the buttons from some elements behind them (for instance the screen select button). I'll also see if I can think of another design here.

@Lyrkan Lyrkan changed the title [WIP] Improve global UI consistency and add theme selector Improve global UI consistency and add theme selector Oct 17, 2026
@Lyrkan

Lyrkan commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor Author

Pushed my last changes which update a few things on the bundled themes (see screenshots in the main post) and add a theme editor.

I still left the PR as a draft because I've only tested the fonts customization on Linux and let's say it's probably the most annoying part of those changes... I didn't find anything in Kivy that would allow us to list available fonts easily so I had to do it manually which involves things that are quite specific to each OS. I'll try to do some tests on Windows and Android but will need help for this on Mac/iOS.

fonts

Smaller change but I also added a splitter between the MDI text input and list: Recording 2026-10-17 at 23 14 09

@SergeBakharev Regarding your previous points, I didn't change them (yet) in the default themes but added ways to:

  • set (and remove) the radius for the buttons present in the top bar
  • group the burger menu items using a switch in the theme's "Behaviors" settings
top_bar_buttons_radius grouped_menu

@SergeBakharev

Copy link
Copy Markdown
Contributor

I can help with the MacOS/iOS font code

@Lyrkan
Lyrkan marked this pull request as ready for review October 18, 2026 21:03
@Lyrkan

Lyrkan commented Oct 18, 2026

Copy link
Copy Markdown
Contributor Author

Font selection is now working fine on Android (at least on my tablet):

image

I also did some tests on Windows tonight and saw no issue there either.

Pre-built binaries for the last commit (005deca) are available here: https://github.com/Lyrkan/Carvera_Controller/actions/runs/39158720873#artifacts

This branch has not been deployed

No deployments
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.

2 participants