Skip to content

Commit 65e3ddb

Browse files
Sai Sridhar Tarraclaude
authored andcommitted
Feat: rotating logo every 2 min — cycles all 3 Mailair icon variants
Layout.tsx: - LOGOS / LOGOS_DARK arrays hold all 3 logo SVG paths - logoIdx state cycles 0→1→2→0 on a 2-minute setInterval - All 4 img tags (desktop sidebar, mobile sidebar) use logoIdx - transition-opacity duration-500 for smooth crossfade feel New logo files (light + dark for each variant): - logo-v2.svg / logo-dark-v2.svg ← Signal Arcs (current primary) - logo-v3.svg / logo-dark-v3.svg ← Send Mark (arrow polygon) Rotation order: Signal Arcs → Send Mark → Antenna M → repeat Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 90f9ccc commit 65e3ddb

5 files changed

Lines changed: 76 additions & 2 deletions

File tree

frontend/components/Layout.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ export default function Layout({ children, title }: LayoutProps) {
6363
const router = useRouter();
6464
const user = useUser();
6565
const [sidebarOpen, setSidebarOpen] = useState(false);
66+
67+
const LOGOS = ['/logo.svg', '/logo-v2.svg', '/logo-v3.svg'];
68+
const LOGOS_DARK = ['/logo-dark.svg', '/logo-dark-v2.svg', '/logo-dark-v3.svg'];
69+
const [logoIdx, setLogoIdx] = useState(0);
70+
useEffect(() => {
71+
const t = setInterval(() => setLogoIdx(i => (i + 1) % LOGOS.length), 2 * 60 * 1000);
72+
return () => clearInterval(t);
73+
}, []);
6674
const [profileOpen, setProfileOpen] = useState(false);
6775
const [bellOpen, setBellOpen] = useState(false);
6876
const [signingOut, setSigningOut] = useState(false);
@@ -178,8 +186,8 @@ export default function Layout({ children, title }: LayoutProps) {
178186
<aside className="hidden lg:flex lg:w-64 lg:flex-col lg:border-r lg:border-gray-200 dark:border-gray-700 lg:bg-white dark:lg:bg-gray-900 lg:fixed lg:inset-y-0">
179187
{/* Logo */}
180188
<div className="flex items-center px-4 py-5 animate-fade-in">
181-
<img src="/logo.svg" alt="Mailair" className="h-8 w-auto dark:hidden" />
182-
<img src="/logo-dark.svg" alt="Mailair" className="h-8 w-auto hidden dark:block" />
189+
<img src={LOGOS[logoIdx]} alt="Mailair" className="h-8 w-auto dark:hidden transition-opacity duration-500" />
190+
<img src={LOGOS_DARK[logoIdx]} alt="Mailair" className="h-8 w-auto hidden dark:block transition-opacity duration-500" />
183191
</div>
184192

185193
<div className="flex flex-1 flex-col overflow-y-auto">

frontend/public/logo-dark-v2.svg

Lines changed: 16 additions & 0 deletions
Loading

frontend/public/logo-dark-v3.svg

Lines changed: 15 additions & 0 deletions
Loading

frontend/public/logo-v2.svg

Lines changed: 18 additions & 0 deletions
Loading

frontend/public/logo-v3.svg

Lines changed: 17 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)