From a00c7c9897b93a57d58acd6bf1d6daa879f27777 Mon Sep 17 00:00:00 2001 From: Avi Date: Mon, 24 Aug 2026 11:56:16 -0500 Subject: [PATCH] Sidebar brand mark: hummingbird-key artwork replaces the shield icon --- frontend/src/assets/logo.png | Bin 0 -> 10477 bytes frontend/src/components/Sidebar.tsx | 3 ++- frontend/src/styles.css | 17 +++++++++++++++-- frontend/src/vite-env.d.ts | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 frontend/src/assets/logo.png create mode 100644 frontend/src/vite-env.d.ts diff --git a/frontend/src/assets/logo.png b/frontend/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d02f1d6303d0f7e307c9b0ce7889fea392d63159 GIT binary patch literal 10477 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 literal 0 HcmV?d00001 diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx index 4d06c24..cce4bca 100644 --- a/frontend/src/components/Sidebar.tsx +++ b/frontend/src/components/Sidebar.tsx @@ -4,6 +4,7 @@ import { shortenNpub } from '../lib/format'; import { Avatar } from './Avatar'; import { CopyButton } from './CopyButton'; import { Icon, type IconName } from './Icon'; +import logoUrl from '../assets/logo.png'; const NAV_ITEMS: { id: Screen; label: string; icon: IconName }[] = [ { id: 'home', label: 'Home', icon: 'home' }, @@ -29,7 +30,7 @@ export function Sidebar({ screen, onNavigate }: SidebarProps) {