FreeCAD / FreeCAD/FreeCAD

UI/UX: Consolidate color settings

Open
#22,529 3 comments 0 reactions 0 assignees View on GitHub
Mod: Core Requires: UI/UX review Topic: Color Topic: Draw Style Topic: Preferences
Dominant language
C++
Stars
33.6k
Forks
6k
Avg merge
3d 17h
Merged PRs (30d)
196

Description

### Problem description

In issue #22478 a user posited, "I don't care about eye candy. I do care if I can't do any work", a position which I agree with. I know CSS, I have themed a GTK+ program using stylesheets (RawTherapee), so I'm not completely clueless about these things. Yet when it comes to FreeCAD's "color scheme" (a broad term meant to include everything), I get confused. I don't understand how "Theme" differs from "Stylesheet", and why the two are in different places, and how they relate. And I don't want to have to refer to documentation to do something simple like making the UI dark and expect it to not be broken. And it's not explained in the otherwise excellent documentation anyway.

The current state is that there are color settings scattered all throughout the Preferences panel, e.g.:
General > Application > Theme
Display > UI > Theme
Display > UI > Colors
Python > Editor > Display Items
Measure > Appearance > Default property values
Sketcher > Grid
Sketcher > Appearance

As a user, I want to select a theme that just works. I should be able to just select "FreeCAD Dark" and know that everything is clear and readable, from Sketcher geometry to text in the Report view.

But that is not the case, and cannot be the case, if co-dependent color settings lie in discontiguous places. The legibility of the Report view's text entirely depends on the background color which is not configured in the same place. Legible treeview selection colors depend on the background color. As do Sketcher colors, grid colors, etc. And some color settings are not in intuitive places, e.g. Preferences > Part/Part Design affect the preview in other workbenches as well -- this is fine once you learn it, but it is not intuitive, and could be improved.

Please consider consolidating all these color settings into one place, where the user can just select a theme that works, see everything in that theme, and edit it somehow (even directly in CSS at first, if you don't want to code GUI widgets for every element).

### Full version info

```shell
OS: Manjaro Linux (KDE/plasma/xcb)
Architecture: x86_64
Version: 1.1.0dev.42581 (Git)
Build date: 2025/07/16 02:43:57
Build type: Release
Branch: main
Hash: f2d0a69e015f528bba171c3d894445b0177f1b37
Python 3.13.5, Qt 6.9.1, Coin 4.0.3, Vtk 9.5.0, boost 1_88, Eigen3 3.4.0, PySide 6.9.1
shiboken 6.9.1, SMESH 7.7.1.0, xerces-c 3.3.0, OCC 7.9.1
Locale: English/United States (en_US)
Navigation Style/Orbit Style/Rotation Mode: Blender/Trackball/Drag at cursor
Stylesheet/Theme/QtStyle: unset/FreeCAD Classic/fusion
Logical DPI/Physical DPI/Pixel Ratio: 96/108.888/1.5
Installed mods:
* OpenDark 2023.12.17
* A2plus 0.4.68
* fasteners 0.5.38
* Woodworking 0.21.2.33771
* CurvedShapes 1.0.13
* Curves 0.6.64
```

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Preferences paths named in the issue, including General > Application, Display > UI, Python > Editor, Measure, Sketcher, and Part/Part Design. Done would mean the related color settings are consolidated into a coherent theme selection and editing workflow, with the affected UI elements remaining clear and readable.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, css
Domain
design, desktop-dev, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.