Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Theme: move hard-coded colours into tokens, prepare a light or high-contrast variant

Open
#680 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
47/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
csharp
Domain
frontend

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

enhancement ux

Split out of #605, whose wording half shipped on its own (#678, #679).

Problem

  • App.axaml:5 hard-locks RequestedThemeVariant="Dark".
  • Theme/Tokens.axaml is one flat ResourceDictionary with no ThemeDictionaries: 25 Colors 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.cs uses the status colours as string literals.
  • Documents/Sections/CoMessprotokollSection.cs duplicates the Amber, SignalHot and Signal tokens for the PDF. The PDF is not themed, so that part can stay.

Plan

  1. 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.
  2. ThemeDictionaries. Move the tokens under Dark, and switch views from StaticResource to DynamicResource where a variant has to swap at runtime.
  3. 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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CodeForFire/lagebuch

All issues in CodeForFire/lagebuch

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.