fix(editor): uniform card bg + jian-standard button_hover row washes
A consistency audit found per-item/per-token hover regressions from the jian migration: provider cards gave ClaudeCode a permanent muted fill while others were transparent (now all transparent + one button_hover wash); layer-panel page/layer rows, the flex padding-mode popover rows, and the builtin-preset rows washed with theme.muted instead of the jian-standard theme.button_hover. Hover now reads identically across the chrome.
This commit is contained in:
parent
153e3f72a8
commit
26c39966e7
|
|
@ -153,8 +153,10 @@ pub fn paint_preset_menu(
|
|||
let item = preset_item_rect(card, i);
|
||||
let active = agent.preset == preset.key;
|
||||
let hovered = settings.builtin_preset_menu_hover == Some(preset.key);
|
||||
if active || hovered {
|
||||
if active {
|
||||
cx.backend.fill_round_rect(item, 5.0, theme.muted);
|
||||
} else if hovered {
|
||||
cx.backend.fill_round_rect(item, 5.0, theme.button_hover);
|
||||
}
|
||||
if active {
|
||||
draw_icon(
|
||||
|
|
|
|||
|
|
@ -29,16 +29,12 @@ pub(super) fn paint_agent_card(
|
|||
card: Rect,
|
||||
index: usize,
|
||||
) {
|
||||
let outlined = matches!(provider, AgentProvider::ClaudeCode);
|
||||
let card_hovered = settings.hover_provider == index;
|
||||
// Chrome via jian Card; the fill choice stays caller-side so the look is
|
||||
// preserved exactly: outlined ClaudeCode -> muted, hover -> accent wash,
|
||||
// else transparent. The whole-card hover wash keeps the row reading as
|
||||
// "pointing at this card" rather than only the trailing button.
|
||||
let fill = if outlined {
|
||||
Some(theme.muted)
|
||||
} else if card_hovered {
|
||||
Some(theme.accent)
|
||||
// Every provider card looks the same: transparent by default + a single
|
||||
// jian-standard `button_hover` wash on hover (no per-provider special fill),
|
||||
// so hovering any card reads identically.
|
||||
let fill = if card_hovered {
|
||||
Some(theme.button_hover)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
|
|
|||
|
|
@ -513,7 +513,8 @@ impl Widget for LayerPanel {
|
|||
cx.backend
|
||||
.fill_round_rect(row, 6.0, self.theme.row_selected);
|
||||
} else if page.hovered {
|
||||
cx.backend.fill_round_rect(row, 6.0, self.theme.muted);
|
||||
cx.backend
|
||||
.fill_round_rect(row, 6.0, self.theme.button_hover);
|
||||
}
|
||||
let label_x = row.origin.x + 12.0;
|
||||
let label_max_x = rect.origin.x + rect.size.x - ROW_PAD_X - 18.0;
|
||||
|
|
@ -602,7 +603,8 @@ impl Widget for LayerPanel {
|
|||
cx.backend
|
||||
.fill_round_rect(row, 6.0, self.theme.row_selected_primary);
|
||||
} else if item.hovered {
|
||||
cx.backend.fill_round_rect(row, 6.0, self.theme.muted);
|
||||
cx.backend
|
||||
.fill_round_rect(row, 6.0, self.theme.button_hover);
|
||||
}
|
||||
|
||||
let indent = ROW_PAD_X + item.depth as f32 * 12.0;
|
||||
|
|
|
|||
|
|
@ -570,9 +570,8 @@ pub fn paint_padding_mode_popover(
|
|||
for (i, rect) in rows.iter().enumerate() {
|
||||
let mode = PaddingEditMode::ALL[i];
|
||||
if hover == Some(i) {
|
||||
// Muted row wash matching the other dropdown hovers
|
||||
// (file menu / locale / shape picker).
|
||||
cx.backend.fill_round_rect(*rect, 6.0, theme.muted);
|
||||
// jian-standard button_hover row wash, matching the other dropdowns.
|
||||
cx.backend.fill_round_rect(*rect, 6.0, theme.button_hover);
|
||||
}
|
||||
paint_radio_circle(
|
||||
cx,
|
||||
|
|
|
|||
Loading…
Reference in a new issue