Theme: move hard-coded colours into tokens, prepare a light or high-contrast variant
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 47/100
Research direction
Start with Theme/Tokens.axaml and Theme/Styles.axaml, then use the file counts and colour values in the issue to locate hard-coded colours across the listed views. Compare each value with existing tokens and move the colours into tokens while preserving their rendered values. Check that views use the appropriate resources and compare before and after renders for pixel identity; the issue says the light or high-contrast variant and setting are separate steps.
Written by the indexing model from the issue text.
Description
Split out of #605, whose wording half shipped on its own (#678, #679).
Problem
App.axaml:5hard-locksRequestedThemeVariant="Dark".Theme/Tokens.axamlis one flatResourceDictionarywith noThemeDictionaries: 25Colors and 26 brushes.- Views hard-code hex colours instead of using the tokens.
Direct sun or glare in a vehicle calls for a light or high-contrast variant. Today that is not possible without touching every view.
Survey (main at 95a6845)
There are 114 hard-coded colour values in .axaml outside Tokens.axaml. That count excludes #123 issue references in comments.
| File | Count |
|---|---|
Theme/Styles.axaml |
39 |
Views/CoMessprotokollView.axaml |
15 |
Views/MasterDataEditorView.axaml |
12 |
Views/EtbView.axaml |
7 |
Views/RolesView.axaml |
6 |
Views/TasksView.axaml, Views/ForcesView.axaml |
4 each |
ScbaView, HomeView, FilesView |
3 each |
| 12 more views | 1–2 each |
The most common values:
| Value | Uses | Token with the same value? |
|---|---|---|
#0F141D |
25 | none (closest: AppBgColor2 #10141C) |
#0C1119 |
25 | none |
#241608 |
10 | AmberWashColor |
#F87171 |
8 | ErrorColor |
#FFFFFF |
7 | none |
#B3070A10 |
7 | none (scrim) |
#2A1013 |
3 | ErrorWashColor |
#FF0000, #92D050, #FFC000 |
3 / 3 / 1 | none (CO-Messprotokoll status colours) |
C# has hex colours only for the CO-Messprotokoll:
CoMessprotokollViewModel.csuses the status colours as string literals.Documents/Sections/CoMessprotokollSection.csduplicates the Amber, SignalHot and Signal tokens for the PDF. The PDF is not themed, so that part can stay.
Plan
- Tokens first, no visual change. Move every hard-coded colour into
Tokens.axaml, reusing the existing token where the value matches. Give#0F141D/#0C1119(panel and grid backgrounds) and the scrim their own tokens. A before/after render of every view should be pixel-identical. ThemeDictionaries. Move the tokens underDark, and switch views fromStaticResourcetoDynamicResourcewhere a variant has to swap at runtime.- A light or high-contrast variant, plus a setting to pick it. This needs a palette decision, ideally checked in a vehicle in daylight.
Each step can be its own PR.
- Dominant language
- C#
- Stars
- 1
- Forks
- 3
- Avg merge
- 4h 34m
- Merged PRs (30d)
- 182
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CodeForFire/lagebuch
-
bug ux
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
CodeForFire/lagebuch#714 ·
Maintainers usually reply within 1 day
-
bug ux
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
CodeForFire/lagebuch#713 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
CodeForFire/lagebuch#405 ·
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
CodeForFire/lagebuch#349 ·
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
CodeForFire/lagebuch#348 ·
Maintainers usually reply within 1 day
All issues in CodeForFire/lagebuch
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
KnifeLemon/Filee#363 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
-
area-Native untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
dotnet/machinelearning#7837 ·
Maintainers usually reply within 2 days
-
[CI] .trgen-ignore required for several grammars.Possibly taken @kaby76 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
antlr/grammars-v4#5073 ·
Maintainers usually reply within 1 day
-
[Enhancement]: Add a search box to the Time Zone dropdownPossibly taken @idumlupinar claimed this today. OpenStatus: New
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
dnnsoftware/Dnn.Platform#7579 ·
Maintainers usually reply within 2 days