fix(tui): replace brightBlack with white for terminal contrast
brightBlack (dark gray) is invisible on gray/medium terminal backgrounds. Replace all instances with white for borders, hints, and secondary text. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
21d3814da4
commit
0a2e8fbd90
2 changed files with 22 additions and 20 deletions
|
|
@ -3,4 +3,6 @@ id: DEW-0016
|
||||||
title: test
|
title: test
|
||||||
type: epic
|
type: epic
|
||||||
created: 2026-04-25T17:56:14.779844Z
|
created: 2026-04-25T17:56:14.779844Z
|
||||||
|
labels:
|
||||||
|
- test, label, system
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -917,7 +917,7 @@ class TuiCommand extends DewCommand {
|
||||||
// Top border of the ticket box — proper corners so the box closes cleanly
|
// Top border of the ticket box — proper corners so the box closes cleanly
|
||||||
cells.add(_Cell(
|
cells.add(_Cell(
|
||||||
'┌${'─' * innerW}┐',
|
'┌${'─' * innerW}┐',
|
||||||
fg: isSelected ? color : ConsoleColor.brightBlack,
|
fg: isSelected ? color : ConsoleColor.white,
|
||||||
));
|
));
|
||||||
|
|
||||||
// ── Ticket area ────────────────────────────────────────────────────────
|
// ── Ticket area ────────────────────────────────────────────────────────
|
||||||
|
|
@ -940,7 +940,7 @@ class TuiCommand extends DewCommand {
|
||||||
final msg = _trunc(' ↑ $scroll above', innerW);
|
final msg = _trunc(' ↑ $scroll above', innerW);
|
||||||
cells.add(_Cell('│${msg.padRight(innerW)}│', fg: ConsoleColor.brightYellow));
|
cells.add(_Cell('│${msg.padRight(innerW)}│', fg: ConsoleColor.brightYellow));
|
||||||
} else {
|
} else {
|
||||||
cells.add(_Cell('│${' ' * innerW}│', fg: isSelected ? color : ConsoleColor.brightBlack));
|
cells.add(_Cell('│${' ' * innerW}│', fg: isSelected ? color : ConsoleColor.white));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Visible tickets
|
// Visible tickets
|
||||||
|
|
@ -951,7 +951,7 @@ class TuiCommand extends DewCommand {
|
||||||
|
|
||||||
// Empty state
|
// Empty state
|
||||||
if (tickets.isEmpty) {
|
if (tickets.isEmpty) {
|
||||||
final borderFg = isSelected ? color : ConsoleColor.brightBlack;
|
final borderFg = isSelected ? color : ConsoleColor.white;
|
||||||
cells.add(_Cell('│${' ' * innerW}│', fg: borderFg));
|
cells.add(_Cell('│${' ' * innerW}│', fg: borderFg));
|
||||||
final hint = _trunc(' ··· empty ···', innerW).padRight(innerW);
|
final hint = _trunc(' ··· empty ···', innerW).padRight(innerW);
|
||||||
cells.add(_Cell(
|
cells.add(_Cell(
|
||||||
|
|
@ -968,19 +968,19 @@ class TuiCommand extends DewCommand {
|
||||||
final msg = _trunc(' ↓ $remaining below', innerW);
|
final msg = _trunc(' ↓ $remaining below', innerW);
|
||||||
cells.add(_Cell('│${msg.padRight(innerW)}│', fg: ConsoleColor.brightYellow));
|
cells.add(_Cell('│${msg.padRight(innerW)}│', fg: ConsoleColor.brightYellow));
|
||||||
} else {
|
} else {
|
||||||
cells.add(_Cell('│${' ' * innerW}│', fg: isSelected ? color : ConsoleColor.brightBlack));
|
cells.add(_Cell('│${' ' * innerW}│', fg: isSelected ? color : ConsoleColor.white));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fill remaining space before bottom border
|
// Fill remaining space before bottom border
|
||||||
while (cells.length < areaH - 1) {
|
while (cells.length < areaH - 1) {
|
||||||
cells.add(_Cell('│${' ' * innerW}│', fg: isSelected ? color : ConsoleColor.brightBlack));
|
cells.add(_Cell('│${' ' * innerW}│', fg: isSelected ? color : ConsoleColor.white));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bottom border (always at areaH - 1)
|
// Bottom border (always at areaH - 1)
|
||||||
if (cells.length > areaH - 1) cells.length = areaH - 1;
|
if (cells.length > areaH - 1) cells.length = areaH - 1;
|
||||||
cells.add(_Cell(
|
cells.add(_Cell(
|
||||||
isSelected ? '╘${'═' * innerW}╛' : '└${'─' * innerW}┘',
|
isSelected ? '╘${'═' * innerW}╛' : '└${'─' * innerW}┘',
|
||||||
fg: isSelected ? color : ConsoleColor.brightBlack,
|
fg: isSelected ? color : ConsoleColor.white,
|
||||||
));
|
));
|
||||||
|
|
||||||
// Pad to exact height
|
// Pad to exact height
|
||||||
|
|
@ -1026,7 +1026,7 @@ class TuiCommand extends DewCommand {
|
||||||
}
|
}
|
||||||
cells.add(_Cell(
|
cells.add(_Cell(
|
||||||
'│${_trunc(tagLine, innerW).padRight(innerW)}│',
|
'│${_trunc(tagLine, innerW).padRight(innerW)}│',
|
||||||
fg: isSel ? ConsoleColor.brightCyan : ConsoleColor.brightBlack,
|
fg: isSel ? ConsoleColor.brightCyan : ConsoleColor.white,
|
||||||
bg: bg,
|
bg: bg,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
@ -1066,7 +1066,7 @@ class TuiCommand extends DewCommand {
|
||||||
console.writeLine();
|
console.writeLine();
|
||||||
|
|
||||||
// Separator
|
// Separator
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write('─' * w);
|
console.write('─' * w);
|
||||||
console.resetColorAttributes();
|
console.resetColorAttributes();
|
||||||
console.writeLine();
|
console.writeLine();
|
||||||
|
|
@ -1091,7 +1091,7 @@ class TuiCommand extends DewCommand {
|
||||||
console.resetColorAttributes();
|
console.resetColorAttributes();
|
||||||
} else {
|
} else {
|
||||||
// Column position indicator + help
|
// Column position indicator + help
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
final pos = numCols > numVisible ? ' [${colIdx + 1}/$numCols cols]' : '';
|
final pos = numCols > numVisible ? ' [${colIdx + 1}/$numCols cols]' : '';
|
||||||
const help = ' [j/k] nav [h/l] col [</>] move [↵] detail [n] new [e] edit [a] archive [c] comment [?] filter [q] quit';
|
const help = ' [j/k] nav [h/l] col [</>] move [↵] detail [n] new [e] edit [a] archive [c] comment [?] filter [q] quit';
|
||||||
console.write(_trunc('$pos$help', w).padRight(w));
|
console.write(_trunc('$pos$help', w).padRight(w));
|
||||||
|
|
@ -1141,11 +1141,11 @@ class TuiCommand extends DewCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Footer
|
// Footer
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write('─' * w);
|
console.write('─' * w);
|
||||||
console.resetColorAttributes();
|
console.resetColorAttributes();
|
||||||
console.writeLine();
|
console.writeLine();
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
final scrollInfo = lines.isNotEmpty
|
final scrollInfo = lines.isNotEmpty
|
||||||
? ' [${s + 1}-${min(s + contentH, lines.length)}/${lines.length}]'
|
? ' [${s + 1}-${min(s + contentH, lines.length)}/${lines.length}]'
|
||||||
: '';
|
: '';
|
||||||
|
|
@ -1162,7 +1162,7 @@ class TuiCommand extends DewCommand {
|
||||||
final dashes = max(0, w - tag.length + 2);
|
final dashes = max(0, w - tag.length + 2);
|
||||||
lines.add(_Cell(' ─$tag${'─' * dashes}', fg: ConsoleColor.brightBlue, bold: true));
|
lines.add(_Cell(' ─$tag${'─' * dashes}', fg: ConsoleColor.brightBlue, bold: true));
|
||||||
} else {
|
} else {
|
||||||
lines.add(_Cell(' ${'─' * w}', fg: ConsoleColor.brightBlack));
|
lines.add(_Cell(' ${'─' * w}', fg: ConsoleColor.white));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1317,7 +1317,7 @@ class TuiCommand extends DewCommand {
|
||||||
// Background dim — draw dim overlay (spaces) first
|
// Background dim — draw dim overlay (spaces) first
|
||||||
for (var row = 1; row <= h; row++) {
|
for (var row = 1; row <= h; row++) {
|
||||||
console.cursorPosition = Coordinate(row, 1);
|
console.cursorPosition = Coordinate(row, 1);
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write('░' * w);
|
console.write('░' * w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1381,7 +1381,7 @@ class TuiCommand extends DewCommand {
|
||||||
console.setForegroundColor(accentColor);
|
console.setForegroundColor(accentColor);
|
||||||
console.write('${label.padRight(12)} ');
|
console.write('${label.padRight(12)} ');
|
||||||
} else {
|
} else {
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write(prefix);
|
console.write(prefix);
|
||||||
console.setForegroundColor(ConsoleColor.white);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write('${label.padRight(12)} ');
|
console.write('${label.padRight(12)} ');
|
||||||
|
|
@ -1406,7 +1406,7 @@ class TuiCommand extends DewCommand {
|
||||||
console.write('$prev$value$next');
|
console.write('$prev$value$next');
|
||||||
} else if (isMulti) {
|
} else if (isMulti) {
|
||||||
if (items.isEmpty) {
|
if (items.isEmpty) {
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write('(none) ');
|
console.write('(none) ');
|
||||||
if (focused) {
|
if (focused) {
|
||||||
console.setForegroundColor(accentColor);
|
console.setForegroundColor(accentColor);
|
||||||
|
|
@ -1421,13 +1421,13 @@ class TuiCommand extends DewCommand {
|
||||||
console.write(' ${items[i]} ');
|
console.write(' ${items[i]} ');
|
||||||
console.resetColorAttributes();
|
console.resetColorAttributes();
|
||||||
} else {
|
} else {
|
||||||
console.setForegroundColor(focused ? textColor : ConsoleColor.brightBlack);
|
console.setForegroundColor(focused ? textColor : ConsoleColor.white);
|
||||||
console.write('• ${items[i]} ');
|
console.write('• ${items[i]} ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (focused) {
|
if (focused) {
|
||||||
console.resetColorAttributes();
|
console.resetColorAttributes();
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write(' [Enter +] [d] del');
|
console.write(' [Enter +] [d] del');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1438,10 +1438,10 @@ class TuiCommand extends DewCommand {
|
||||||
final maxLen = innerW - 15;
|
final maxLen = innerW - 15;
|
||||||
console.write(_trunc(disp, maxLen));
|
console.write(_trunc(disp, maxLen));
|
||||||
if (focused && field != _EditorField.body) {
|
if (focused && field != _EditorField.body) {
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write(' [Enter to edit]');
|
console.write(' [Enter to edit]');
|
||||||
} else if (focused && field == _EditorField.body) {
|
} else if (focused && field == _EditorField.body) {
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write(' [Enter → \$EDITOR]');
|
console.write(' [Enter → \$EDITOR]');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1465,7 +1465,7 @@ class TuiCommand extends DewCommand {
|
||||||
final dirtyMarker = es.isDirty ? ' ● unsaved' : '';
|
final dirtyMarker = es.isDirty ? ' ● unsaved' : '';
|
||||||
final footerHints = '[j/k] field [h/l] value [Enter] edit [d] del [s] save [Esc] discard$dirtyMarker';
|
final footerHints = '[j/k] field [h/l] value [Enter] edit [d] del [s] save [Esc] discard$dirtyMarker';
|
||||||
at(modalTop + modalH - 2, modalLeft + 1, () {
|
at(modalTop + modalH - 2, modalLeft + 1, () {
|
||||||
console.setForegroundColor(ConsoleColor.brightBlack);
|
console.setForegroundColor(ConsoleColor.white);
|
||||||
console.write(_trunc(footerHints, innerW));
|
console.write(_trunc(footerHints, innerW));
|
||||||
console.resetColorAttributes();
|
console.resetColorAttributes();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue