Improve sidebar workspace readability and host identity (#2790)
* fix(app): align turn footer actions Keep running-turn actions in the same position as completed-turn actions and use the shared small icon size for both copy and fork controls. * feat(app): improve sidebar workspace identity Make dense sidebar workspace rows easier to scan and let each device control how connected hosts are identified. * fix(app): keep host badges readable Use a compact display menu and keep identity color on the host icon so translated controls fit and badge text retains standard contrast. * fix(app): announce selected sidebar badge mode * fix(app): retain icon-only host names for screen readers * fix(app): name hoisted workspace rows * fix(app): retain host identity in workspace labels * fix(app): retain workspace status in row labels * fix(app): defer host appearance until identity resolves * fix(app): serialize host appearance writes * fix(app): serialize host registry writes * fix(app): bound sidebar host badge labels * test(app): match workspace status labels * fix(app): consolidate sidebar identity behavior * test(app): assert status grouping behavior * fix(app): keep sidebar row actions accessible * fix(app): stabilize optimistic message layout
This commit is contained in:
@@ -109,15 +109,25 @@ export const baseColors = {
|
||||
|
||||
export type ThemeName = "light" | "dark" | "zinc" | "midnight" | "claude" | "ghostty";
|
||||
|
||||
// Diff stat colors — light uses muted tones, dark uses the brighter palette values
|
||||
// Diff colors — light uses muted tones, dark uses the brighter palette values.
|
||||
//
|
||||
// Two tiers, because the +/- serves two jobs. In the diff view the color *is* the signal and
|
||||
// has to survive being scanned line by line, so it stays saturated. In a row's metadata the
|
||||
// counts are a footnote next to a title and a subtitle; at full saturation they read as the
|
||||
// loudest thing in the row. The Stat tier keeps the hue but drops the chroma to roughly the
|
||||
// weight of foregroundMuted, so it sits with the subtitle instead of shouting over it.
|
||||
const lightDiffColors = {
|
||||
diffAddition: "#15803d", // green-700 — readable on white without screaming
|
||||
diffDeletion: "#b91c1c", // red-700
|
||||
diffStatAddition: "#32794a", // softened green-700
|
||||
diffStatDeletion: "#a43c39", // softened red-700
|
||||
};
|
||||
|
||||
const darkDiffColors = {
|
||||
diffAddition: "#4ade80", // green-400
|
||||
diffDeletion: "#ef4444", // red-500
|
||||
diffStatAddition: "#61bf82",
|
||||
diffStatDeletion: "#d36461",
|
||||
};
|
||||
|
||||
// Status colors — semantic signals for success/danger/warning/merged. Used by
|
||||
|
||||
Reference in New Issue
Block a user