diff --git a/app/renderer/assets/flame.png b/app/renderer/assets/flame.png new file mode 100644 index 00000000..9ed6583c Binary files /dev/null and b/app/renderer/assets/flame.png differ diff --git a/app/renderer/components/Sidebar.tsx b/app/renderer/components/Sidebar.tsx index 48c92e27..223459fa 100644 --- a/app/renderer/components/Sidebar.tsx +++ b/app/renderer/components/Sidebar.tsx @@ -1,20 +1,40 @@ import type { ReactNode } from 'react' +import flameLogo from '../assets/flame.png' + export type Section = 'overview' | 'spend' | 'optimize' | 'models' | 'plans' | 'settings' -export const NAV_ITEMS: Array<{ id: Section; label: string; key: string }> = [ - { id: 'overview', label: 'Overview', key: '⌘1' }, - { id: 'spend', label: 'Spend', key: '⌘2' }, - { id: 'optimize', label: 'Optimize', key: '⌘3' }, - { id: 'models', label: 'Models', key: '⌘4' }, - { id: 'plans', label: 'Plans', key: '⌘5' }, - { id: 'settings', label: 'Settings', key: '⌘,' }, +export const NAV_ITEMS: Array<{ id: Section; label: string; key: string; icon: ReactNode }> = [ + { id: 'overview', label: 'Overview', key: '⌘1', icon: ( + + ) }, + { id: 'spend', label: 'Spend', key: '⌘2', icon: ( + + ) }, + { id: 'optimize', label: 'Optimize', key: '⌘3', icon: ( + + ) }, + { id: 'models', label: 'Models', key: '⌘4', icon: ( + + ) }, + { id: 'plans', label: 'Plans', key: '⌘5', icon: ( + + ) }, + { id: 'settings', label: 'Settings', key: '⌘,', icon: ( + + ) }, +] + +const SOCIALS: Array<{ label: string; icon: ReactNode }> = [ + { label: 'GitHub', icon: }, + { label: 'Discord', icon: }, + { label: 'X', icon: }, + { label: 'YouTube', icon: }, ] export function Sidebar({ active, onNavigate, - status, }: { active: Section onNavigate: (section: Section) => void @@ -22,8 +42,7 @@ export function Sidebar({ }) { return ( ) } diff --git a/app/renderer/styles/plain.css b/app/renderer/styles/plain.css index 63bd36f7..158968de 100644 --- a/app/renderer/styles/plain.css +++ b/app/renderer/styles/plain.css @@ -102,6 +102,19 @@ body { overflow: hidden; background: var(--bg); color: var(--ink); } .lights { display: none; } .sb { padding-top: 12px; } +/* Sidebar brand (flame logo + wordmark), nav icons, and About/social footer. */ +.app { gap: 6px; } +.app .logo { width: 20px; height: 20px; object-fit: contain; flex: 0 0 auto; } +.ni svg { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } +.ni.on svg { stroke: var(--accent); } +.foot { display: flex; align-items: center; gap: 10px; margin-top: 4px; padding: 11px 8px 2px; border-top: 1px solid var(--hair); } +.foot .about { color: var(--t2); text-decoration: none; font-size: 12px; font-weight: 520; cursor: pointer; } +.foot .about:hover { color: var(--t1); } +.foot .social { display: flex; gap: 2px; margin-left: auto; } +.foot .social a { color: var(--t3); display: flex; padding: 5px; border-radius: 6px; cursor: pointer; } +.foot .social a:hover { color: var(--accent); background: var(--hover); } +.foot .social svg { width: 15px; height: 15px; fill: currentColor; stroke: none; } + /* macOS integrated title bar (hiddenInset): clear the traffic lights and make the top chrome draggable, keeping interactive controls clickable. */ :root[data-platform='darwin'] .sb { padding-top: 34px; -webkit-app-region: drag; }