diff --git a/apps/web/index.html b/apps/web/index.html index 3a97171..1eebeb2 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -3,6 +3,7 @@ + Code for Philly diff --git a/apps/web/public/favicon.png b/apps/web/public/favicon.png new file mode 100644 index 0000000..14831ed Binary files /dev/null and b/apps/web/public/favicon.png differ diff --git a/apps/web/public/img/logo-horizontal.png b/apps/web/public/img/logo-horizontal.png new file mode 100644 index 0000000..e1ae0e7 Binary files /dev/null and b/apps/web/public/img/logo-horizontal.png differ diff --git a/apps/web/public/img/logo.png b/apps/web/public/img/logo.png new file mode 100644 index 0000000..7f9d470 Binary files /dev/null and b/apps/web/public/img/logo.png differ diff --git a/apps/web/src/components/AppHeader.tsx b/apps/web/src/components/AppHeader.tsx index 26da256..c6946ef 100644 --- a/apps/web/src/components/AppHeader.tsx +++ b/apps/web/src/components/AppHeader.tsx @@ -187,16 +187,18 @@ export function AppHeader() { return (
- {/* Logo */} + {/* Wordmark — always visible. The horizontal lockup includes + the icon + text, so no separate text node is needed. */} - - - Code for Philly - + Code for Philly {/* Desktop nav */} diff --git a/apps/web/tests/AppHeader.test.tsx b/apps/web/tests/AppHeader.test.tsx index 9d040c4..5b58ff4 100644 --- a/apps/web/tests/AppHeader.test.tsx +++ b/apps/web/tests/AppHeader.test.tsx @@ -28,9 +28,12 @@ describe('AppHeader', () => { vi.restoreAllMocks(); }); - it('renders the site name', async () => { + it('renders a labelled home link with the logo image', async () => { renderWithRouter(); - expect(screen.getByText('Code for Philly')).toBeInTheDocument(); + const home = screen.getByRole('link', { name: /code for philly home/i }); + expect(home).toBeInTheDocument(); + expect(home).toHaveAttribute('href', '/'); + expect(home.querySelector('img')).toHaveAttribute('alt', 'Code for Philly'); }); it('renders primary nav links', async () => {