From e0172486167e6b2017c954edd369599ab2bde940 Mon Sep 17 00:00:00 2001 From: Michael Han <107991372+shimmyshimmer@users.noreply.github.com> Date: Fri, 12 Jun 2026 10:32:11 -0700 Subject: [PATCH] Studio: polish update banner layout and sidebar icons (#6266) Polishes the in-app update notification banners and the sidebar account menu. Update banners (web and llama.cpp): - Add a download icon next to the title, aligned with the title text. - Even out the action row so the buttons share balanced padding and equal spacing. - Let the row wrap on narrow viewports so Copy command is never clipped under overflow-hidden. Sidebar: - Use the setting-07 cog for the profile button and the Settings menu item. - Use the sun-03 icon for the Light Mode menu item. - Slightly enlarge the profile cog. Frontend only. Build and typecheck pass. --- studio/frontend/src/app/provider.tsx | 2 +- .../frontend/src/components/app-sidebar.tsx | 16 +++-- .../src/components/llama-update-banner.tsx | 53 ++++++++++------- .../src/components/web/update-banner.tsx | 59 +++++++++++-------- 4 files changed, 76 insertions(+), 54 deletions(-) diff --git a/studio/frontend/src/app/provider.tsx b/studio/frontend/src/app/provider.tsx index f806a0f405..39e04843a9 100644 --- a/studio/frontend/src/app/provider.tsx +++ b/studio/frontend/src/app/provider.tsx @@ -259,7 +259,7 @@ function TauriWrapper({ children }: { children: ReactNode }) { <> {children} -
+
{displayTitle} Unsloth
- + {/* settings cog (replaces the up/down chevron) */} + useSettingsDialogStore.getState().openDialog()} > - + {t("shell.navigation.settings")} ⌘, @@ -1239,7 +1245,7 @@ export function AppSidebar() { ref={anchorRef as React.Ref} onSelect={(e) => { e.preventDefault(); toggleTheme(); }} > - {isDark ? : } + {isDark ? : } {isDark ? t("shell.navigation.lightMode") diff --git a/studio/frontend/src/components/llama-update-banner.tsx b/studio/frontend/src/components/llama-update-banner.tsx index 88826e57e5..8f8bc5ca7f 100644 --- a/studio/frontend/src/components/llama-update-banner.tsx +++ b/studio/frontend/src/components/llama-update-banner.tsx @@ -6,6 +6,7 @@ import { useLlamaUpdateCheck } from "@/hooks/use-llama-update-check"; import { useShowLlamaUpdateBanner } from "@/hooks/use-llama-update-pref"; import { toast } from "@/lib/toast"; import { cn } from "@/lib/utils"; +import { Download } from "lucide-react"; import { AnimatePresence, motion } from "motion/react"; import { type ReactElement, useEffect, useRef, useState } from "react"; @@ -132,12 +133,12 @@ export function LlamaUpdateBanner({ transition={{ duration: 0.35, ease: EASE_OUT_QUART }} className={cn( positioned - ? "fixed bottom-4 right-4 z-[9998] w-[calc(100vw-2rem)] max-w-[340px]" + ? "fixed bottom-4 right-4 z-[9998] w-[calc(100vw-2rem)] max-w-[400px]" : "pointer-events-auto w-full", )} data-testid="llama-update-banner" > -
+
{applying ? null : ( +
+
)}
diff --git a/studio/frontend/src/components/web/update-banner.tsx b/studio/frontend/src/components/web/update-banner.tsx index 4aa3943d4f..57fcb98e95 100644 --- a/studio/frontend/src/components/web/update-banner.tsx +++ b/studio/frontend/src/components/web/update-banner.tsx @@ -7,6 +7,7 @@ import { useWebUpdateCheck } from "@/hooks/use-web-update-check"; import { isTauri } from "@/lib/api-base"; import { copyToClipboard } from "@/lib/copy-to-clipboard"; import { cn } from "@/lib/utils"; +import { Download } from "lucide-react"; import { AnimatePresence, motion } from "motion/react"; import { type ReactElement, useEffect, useRef, useState } from "react"; @@ -78,12 +79,12 @@ export function WebUpdateBanner({ transition={{ duration: 0.35, ease: EASE_OUT_QUART }} className={cn( positioned - ? "fixed bottom-4 right-4 z-[9999] w-[calc(100vw-2rem)] max-w-[340px]" + ? "fixed bottom-4 right-4 z-[9999] w-[calc(100vw-2rem)] max-w-[400px]" : "pointer-events-auto w-full", )} data-testid="web-update-banner" > -
+
-
-

- New Unsloth version -

-
-

+

+
-
- + Release notes + +