diff --git a/crates/agent-gateway/web/src/components/hub/HubChrome.tsx b/crates/agent-gateway/web/src/components/hub/HubChrome.tsx index ad295d273..b49340216 100644 --- a/crates/agent-gateway/web/src/components/hub/HubChrome.tsx +++ b/crates/agent-gateway/web/src/components/hub/HubChrome.tsx @@ -1,4 +1,4 @@ -import type { ReactNode } from "react"; +import type { ButtonHTMLAttributes, ReactNode } from "react"; import { useLocale } from "../../i18n"; import { cn } from "../../lib/shared/utils"; import { PanelLeft } from "../icons"; @@ -6,15 +6,14 @@ import { Button } from "../ui/button"; export function HubBackdrop(props: { tone?: "amber" | "violet" | "neutral" }) { const { tone = "neutral" } = props; - // macOS frosted-glass: subtle monochrome wash; tone provides only the faintest temperature shift. - // Dark: the canvas drops below --background (--hub-canvas) so background-tinted glass reads - // elevated, and the halos stay a whisper above the canvas instead of a gray fog. + // Cool monochrome wash; tone only shifts temperature slightly. + // Dark canvas sits below --background so glass panels read elevated. const haloClass = tone === "amber" - ? "bg-[radial-gradient(circle_at_top_left,hsl(0_0%_100%/0.85),transparent_60%)] dark:bg-[radial-gradient(circle_at_top_left,hsl(222_18%_14%/0.55),transparent_60%)]" + ? "bg-[radial-gradient(circle_at_top_left,hsl(40_30%_98%/0.9),transparent_58%)] dark:bg-[radial-gradient(circle_at_top_left,hsl(36_18%_14%/0.45),transparent_58%)]" : tone === "violet" - ? "bg-[radial-gradient(circle_at_top_left,hsl(220_18%_98%/0.85),transparent_60%)] dark:bg-[radial-gradient(circle_at_top_left,hsl(224_20%_14%/0.55),transparent_60%)]" - : "bg-[radial-gradient(circle_at_top_left,hsl(0_0%_100%/0.8),transparent_60%)] dark:bg-[radial-gradient(circle_at_top_left,hsl(224_18%_14%/0.5),transparent_60%)]"; + ? "bg-[radial-gradient(circle_at_top_left,hsl(250_28%_98%/0.9),transparent_58%)] dark:bg-[radial-gradient(circle_at_top_left,hsl(250_18%_14%/0.45),transparent_58%)]" + : "bg-[radial-gradient(circle_at_top_left,hsl(240_12%_98%/0.88),transparent_58%)] dark:bg-[radial-gradient(circle_at_top_left,hsl(240_12%_14%/0.4),transparent_58%)]"; return ( <>
@@ -26,7 +25,7 @@ export function HubBackdrop(props: { tone?: "amber" | "violet" | "neutral" }) { /> @@ -45,9 +44,10 @@ export function HubHeader(props: { }) { const { icon, title, subtitle, actions, sidebarOpen, onOpenSidebar } = props; const { t } = useLocale(); + // Web has no macOS title-bar overlay; always show the open-sidebar control when closed. const showSidebarButton = !sidebarOpen; return ( -+
{subtitle}
) : null} @@ -92,31 +95,61 @@ export function GlassPanel(props: { className?: string; }) { const { children, tone = "default", active = false, className } = props; - const toneClass = (() => { - switch (tone) { - case "muted": - return "border-border/40 bg-muted/40"; - case "error": - return "border-destructive/30 bg-destructive/5"; - case "amber": - case "violet": - case "neutral": - return active - ? "border-border/55 bg-background/80 shadow-[0_1px_0_rgba(255,255,255,0.6)_inset,0_6px_22px_-14px_rgba(15,23,42,0.18)] dark:border-white/[0.09] dark:bg-white/[0.06] dark:shadow-[0_1px_0_rgba(255,255,255,0.06)_inset,0_6px_22px_-14px_rgba(0,0,0,0.55)]" - : "border-border/40 bg-background/60"; - default: - return "border-border/40 bg-background/60"; - } - })(); return (