From e36193a8c00be5c4f88bbc19e10547367ca5a1ad Mon Sep 17 00:00:00 2001 From: Guillaume <4112243+LEI@users.noreply.github.com> Date: Mon, 9 Jun 2025 16:30:03 +0200 Subject: [PATCH] feat: add logo and favicon (#238) --- app/components/Header.tsx | 4 ++-- app/components/Logo.tsx | 10 ++++++++++ app/root.tsx | 1 + public/favicon.ico | Bin 16958 -> 74814 bytes public/logo-dark-bg.svg | 14 ++++++++++++++ public/logo-dark.svg | 13 +++++++++++++ public/logo-light-bg.svg | 14 ++++++++++++++ public/logo-light.svg | 13 +++++++++++++ 8 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 app/components/Logo.tsx create mode 100644 public/logo-dark-bg.svg create mode 100644 public/logo-dark.svg create mode 100644 public/logo-light-bg.svg create mode 100644 public/logo-light.svg diff --git a/app/components/Header.tsx b/app/components/Header.tsx index 3d57642..f02d6e3 100644 --- a/app/components/Header.tsx +++ b/app/components/Header.tsx @@ -2,13 +2,13 @@ import { CircleUser, Globe2, Lock, - PlaneTakeoff, Server, Settings, Users, } from 'lucide-react'; import type { ReactNode } from 'react'; import { NavLink, useSubmit } from 'react-router'; +import Logo from '~/components/Logo'; import Menu from '~/components/Menu'; import { AuthSession } from '~/server/web/sessions'; import cn from '~/utils/cn'; @@ -91,7 +91,7 @@ export default function Header(data: Props) { >
- +

headplane

diff --git a/app/components/Logo.tsx b/app/components/Logo.tsx new file mode 100644 index 0000000..cb44372 --- /dev/null +++ b/app/components/Logo.tsx @@ -0,0 +1,10 @@ +import cn from '~/utils/cn'; +import LogoSvg from '../../public/logo-light.svg'; + +export interface LogoProps { + className?: string; +} + +export default function Logo({ className }: LogoProps) { + return Logo; +} diff --git a/app/root.tsx b/app/root.tsx index 71ebcad..6cccf27 100644 --- a/app/root.tsx +++ b/app/root.tsx @@ -41,6 +41,7 @@ export function Layout({ children }: { readonly children: React.ReactNode }) { + {children} diff --git a/public/favicon.ico b/public/favicon.ico index 8830cf6821b354114848e6354889b8ecf6d2bc61..b13b79180909db61b9017ae43424660dc3065e63 100644 GIT binary patch literal 74814 zcmeHQZF3aI5$*%6bVh)rpp#CAge0Vsu?>1XC4@JL7uy&ofB-oGBocyw`xmInF;3-6 zi~*Oy2J9r2ulWo534Tew#kNwhoqUOniCsy#5-YnaEw{JZJuhlo>)V;5Ry*50-967U zv$K0U^esTf{pWo$kcDmi8EA9M+m-|XYnJ5RA@<4T3eeV;cef6AD?odDySwGxtpoD; zyt{QkM~Al+pitNhn>TktXQ#JyL08un*s`S?y1RRzcWWPP^|yZL>+`lE^!N9>+W-`c zMRyy39Xoco+n~D*!QkK!3=MhPu)B@G@bIv^jljr=w~e~n7>tgNy4x6xjd@!McJJN` zd-izSKG?h0+a_S&K5v_ZiHS*=oZJrw4jhDo2M@u~qsQUcu_-uy`~*x*orDu7PQl5O z({Sq4G)zxF2WQUAz}d62Ff(%wW@l&N+_`h`!VABI7hk*zSFgSVFa7G*@SB&f!OPdK z!?kNS;FVWy!u9K~!i^g@;pWX(;kDOp!L3`j;nwXp;P&fx;Pp4|!W(z)!JWJJ;O@OQ z;mx;x3%~pQAK>kG-i3GGeGlII)1Tol?|^8TiH+D64#&viq;LK5mOMD$vAr8p?IG z1v}c>h6XV}u{P?hCXdVYVvv-!p(fFyjm~I~f=sQQ?#wjcYxTx2QYT{JC6S~C?Lbcy>|kbh&#aSUIFTZvWa`cyWjg7 zY+|=pFqhX<$|jaf@BdV@cBRW{VM^;`tsBC#LkI{oli7LVvy== zb89}|+MFdTNEF=o68A#&#))I6FJAUP7f&DCw^3LbQD*bS?WJ-5Q`%n4YjePjk2Fa` z)cwrQm#_zae|C6_hPkt$cWeoJ@OP|7i$QLDowmm7wjRC^;I8a{@$~oNHF3$hp5>ko z(0lt*&pNzzT*{3f_oyY=HB&(yE}h+}<|a21#$73owyN24KB8{s+sK{5bAFa%s27#U}FH z54b4hME2bHBHs$Sw%GtCy+13s3^oo2FzNlM;4;XKuK-b4

SCqIsHj(M!XwXnJUS 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 EKbET!0{{R3 diff --git a/public/logo-dark-bg.svg b/public/logo-dark-bg.svg new file mode 100644 index 0000000..25dd539 --- /dev/null +++ b/public/logo-dark-bg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/logo-dark.svg b/public/logo-dark.svg new file mode 100644 index 0000000..6178374 --- /dev/null +++ b/public/logo-dark.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/logo-light-bg.svg b/public/logo-light-bg.svg new file mode 100644 index 0000000..70832cd --- /dev/null +++ b/public/logo-light-bg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/logo-light.svg b/public/logo-light.svg new file mode 100644 index 0000000..a106898 --- /dev/null +++ b/public/logo-light.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + +