fix(ui): adaptive text color for breadcrumb pills (#200)
Some checks failed
Build and Test / build (pull_request) Has been cancelled

Use WCAG relative luminance to choose dark or light text color based
on pill background brightness. Bright backgrounds (Green, Yellow,
Mauve, Teal, Peach) now get dark text (#1e1e2e) instead of the
previous fixed light text (#cdd6f4) that caused poor contrast.

Closes #200
This commit is contained in:
forbes
2026-02-15 03:01:46 -06:00
parent 3de92325a3
commit 7bbe856ba4

View File

@@ -42,7 +42,13 @@ using namespace Gui;
static QString chipStyle(const QString& bgHex)
{
QColor bg(bgHex);
QColor textColor(QStringLiteral("#cdd6f4")); // Catppuccin Text
// Choose text color based on background luminance (WCAG relative luminance)
// Dark text on bright backgrounds, light text on dark backgrounds
double luminance = 0.2126 * bg.redF() + 0.7152 * bg.greenF() + 0.0722 * bg.blueF();
QColor textColor(luminance > 0.5
? QStringLiteral("#1e1e2e") // Catppuccin Base (dark)
: QStringLiteral("#cdd6f4")); // Catppuccin Text (light)
return QStringLiteral(
"QToolButton {"