From 432879b27f687d191b1bfee9db01d43b23ab00da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Sat, 9 May 2026 21:58:26 -0400 Subject: [PATCH] Mark topbar nav arrows as visibly disabled until history wires up MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The back/forward arrows in the topbar were styled as live buttons (cursor_pointer, hover swap) but they had no on_click — they were clickable affordances that did nothing. Per the "no fake handlers" rule that's worse than no button at all: it lies to the user. Pull the cursor and hover off, drop the text color to INK_5 so they read as the design's `disabled` state (`var(--ely-ink-5)`), and leave them untouched until real per-tab history lands in BrowserCore. When the navigation API arrives the call site can swap to a live variant. --- crates/ely_app/src/shell/chrome/topbar.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/crates/ely_app/src/shell/chrome/topbar.rs b/crates/ely_app/src/shell/chrome/topbar.rs index d3638b9..d9af1e7 100644 --- a/crates/ely_app/src/shell/chrome/topbar.rs +++ b/crates/ely_app/src/shell/chrome/topbar.rs @@ -203,6 +203,11 @@ where .into_any_element() } +/// Topbar nav arrow placeholder. Per-tab back/forward history is not yet +/// wired through `BrowserCore`, so the buttons render in the design's +/// `disabled` state — visible at INK_5, no hover, no cursor pointer — +/// to honor the "no fake handlers, no mockup" rule. When real history +/// navigation lands the caller can flip these to a clickable variant. fn render_nav_arrow(id: &'static str, icon: IconName) -> AnyElement { div() .id(SharedString::from(id)) @@ -211,10 +216,7 @@ fn render_nav_arrow(id: &'static str, icon: IconName) -> AnyElement { .flex() .items_center() .justify_center() - .cursor_pointer() - .text_color(rgb(colors::INK_3)) - .hover(|style| style.bg(rgba(OMNIBAR_BG)).text_color(rgb(colors::INK))) - .active(|style| style.opacity(0.82)) + .text_color(rgb(colors::INK_5)) .child(icon) .into_any_element() }