AvengeMedia / AvengeMedia/DankMaterialShell

dank16: light-mode color3 (yellow) only meets the accent contrast target (~3:1 on the light background)

Open Beginner friendly
#3,406 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
QML
Stars
8.1k
Forks
515
Avg merge
1d 8h
Merged PRs (30d)
102

Description

### Compositor

Niri

### Distribution

Fedora

### If Other, please specify

_No response_

### Select your Installation Method

Distro Packaging

### Was this your original Installation method?

Yes

### If no, specify

_No response_

### dms doctor -vC

dms doctor -v (home directory shortened to ~)

```
System Health Check

──────────────────────────────────────

System
● Operating System ····· Fedora Linux 44 (Forty Four)
└─ ID: fedora, Version: 44, Arch: amd64
● Architecture ········· amd64
● Display Server ······· Wayland
└─ WAYLAND_DISPLAY=wayland-1

Versions
● DMS CLI ·············· dms v1.6.1
└─ /usr/bin/dms
● Quickshell ··········· Quickshell 0.3.1 (revision , distributed by Fedora COPR (avengemedia/quickshell))
└─ /usr/bin/qs
● DMS Shell ············ v1.6.1
└─ /run/user/1000/danklinux-shell/d83248ba9119b48a

Installation
● DMS Configuration ···· Found
└─ /run/user/1000/danklinux-shell/d83248ba9119b48a
● shell.qml ············ Present
└─ /run/user/1000/danklinux-shell/d83248ba9119b48a/shell.qml
○ Install Type ········· Unknown
└─ /run/user/1000/danklinux-shell/d83248ba9119b48a

Compositor
● niri ················· 26.04
└─ /usr/bin/niri
○ Active ··············· niri
● Background Blur ······ Supported
└─ Compositor supports ext-background-effect-v1

Quickshell Features
● Polkit ··············· Available
└─ Authentication prompts
● IdleMonitor ·········· Available
└─ Idle detection
● IdleInhibitor ········ Available
└─ Prevent idle/sleep
● ShortcutInhibitor ···· Available
└─ Allow shortcut management (niri)
● BackgroundBlur ······· Available
└─ Background blur API support in Quickshell

Optional Features
● accountsservice ······ Available
└─ User accounts
● power-profiles-daemon Available
└─ Power profile management
● logind ··············· Available
└─ Session management
● cups-pk-helper ······· Available
└─ Printer management
○ I2C/DDC ·············· No monitors detected
└─ External monitor brightness control
● qt6-imageformats ····· Installed (5 formats)
└─ Formats: WebP, TIFF, GIF, JP2, ICNS (/usr/lib64/qt6/plugins/imageformats)
● kimageformats ········ Installed (4 formats)
└─ Formats: AVIF, HEIF, JXL, EXR (/usr/lib64/qt6/plugins/imageformats)
● Terminal ············· kitty
● Network ·············· NetworkManager
└─ NetworkManager present. Using NM API.
● matugen ·············· Installed
└─ Dynamic theming
● cava ················· Installed
└─ Audio visualizer
○ khal ················· Not installed
└─ Calendar events
● danksearch ··········· Installed
└─ File search
○ dankcalendar ········· Not installed
└─ Calendar app
○ fprintd ·············· Not installed
└─ Fingerprint auth
● adw-gtk3 ············· Installed
└─ GTK3 dynamic theming (user copy)

Config Files
● settings.json ········ Present
└─ ~/.config/DankMaterialShell/settings.json
○ clsettings.json ······ Not yet created
└─ ~/.config/DankMaterialShell/clsettings.json
● plugin_settings.json · Present
└─ ~/.config/DankMaterialShell/plugin_settings.json
● session.json ········· Present
└─ ~/.local/state/DankMaterialShell/session.json
● dms-colors.json ······ Present
└─ ~/.cache/DankMaterialShell/dms-colors.json

Services
● dms.service ·········· enabled, active
● greetd ··············· enabled

Environment
○ QT_QPA_PLATFORMTHEME · qt6ct
● qt6ct plugin (Qt6) ··· Installed
└─ /usr/lib64/qt6/plugins/platformthemes/libqt6ct.so
○ QT_QPA_PLATFORMTHEME… Not set
○ QS_ICON_THEME ········ Not set
● XDG_MENU_PREFIX ······ plasma- (menu file not found)
└─ Dolphin 'Open with…' dialog may be empty. Ensure /etc/xdg/menus/plasma-applications.menu exists.
→ https://danklinux.com/docs/dankmaterialshell/cli-doctor#xdg-menu-prefix

Fonts
● Normal Font ·········· Rubik
└─ Available via fontconfig
● Monospace Font ······· JetBrainsMono Nerd Font Mono
└─ Available via fontconfig

──────────────────────────────────────
1 warning(s), 36 ok
```

### Description

In light mode dank16 `color3` measures about 3:1 against the light background (`#998e00` on `#f5fafc`, 3.21:1), so yellow text in terminals is hard to read. Man pages rendered through bat and fzf's counters use it heavily.

**Cause**

- The light branch picks `color3` with `ensureContrastBidirectional(…, accentTarget, …)` ([dank16.go:573](https://github.com/AvengeMedia/DankMaterialShell/blob/f864dc22338e3f5c81f14478f4566f6a1717f982/core/internal/dank16/dank16.go#L573)); the dark branch uses `ensureContrastAuto(…, normalTextTarget, …)` ([dank16.go:628](https://github.com/AvengeMedia/DankMaterialShell/blob/f864dc22338e3f5c81f14478f4566f6a1717f982/core/internal/dank16/dank16.go#L628)).
- It is independent of the background issue: generating the light palette against the light surface gives the same `#998e00`.
- If the lower target is deliberate to keep the hue recognisably yellow, it still leaves yellow text below the normal-text target the dark branch uses (4.5:1 in its WCAG path).

Reproduced on 5 wallpapers: 2.88–3.21:1.

### Expected Behavior

Light yellow meets the same normal-text target that dark mode uses.

### Steps to Reproduce

1. Use a wallpaper-based dynamic theme in light mode.
2. Check `color3` in the generated kitty theme, or `.color3.light` from `dms dank16 --variants …`.

### Error Messages/Logs

_No response_

### Screenshots/Recordings

_No response_

Contributor guide

Open the contributing guide

Research direction

Start in core/internal/dank16/dank16.go at the light and dark color3 paths around lines 573 and 628, and compare their contrast-target handling. Run dms dank16 --variants … and inspect .color3.light or the generated kitty theme across wallpapers. Done means light-mode color3 meets the normal-text contrast target described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
accessibility, cli, desktop
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
85/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.