diff --git a/apps/web/src/components/ActivityCard.tsx b/apps/web/src/components/ActivityCard.tsx index 409c45f..3d65587 100644 --- a/apps/web/src/components/ActivityCard.tsx +++ b/apps/web/src/components/ActivityCard.tsx @@ -33,9 +33,13 @@ function UpdateCard({ update }: { update: ProjectUpdateResponse }) { Update #{update.number} - + + {update.author && ( @@ -69,9 +73,9 @@ function BuzzCard({ buzz }: { buzz: ProjectBuzzResponse }) { {buzz.project.title} · Buzz · - + + @@ -89,6 +93,7 @@ function BuzzCard({ buzz }: { buzz: ProjectBuzzResponse }) {

{buzz.headline} + (opens in new tab)

{hostname}

diff --git a/apps/web/src/components/AppFooter.tsx b/apps/web/src/components/AppFooter.tsx index 11fbe62..b381912 100644 --- a/apps/web/src/components/AppFooter.tsx +++ b/apps/web/src/components/AppFooter.tsx @@ -182,7 +182,7 @@ export function AppFooter() { Open source — view this site on GitHub + (opens in new tab) diff --git a/apps/web/src/components/AppHeader.tsx b/apps/web/src/components/AppHeader.tsx index bdde238..2a303e3 100644 --- a/apps/web/src/components/AppHeader.tsx +++ b/apps/web/src/components/AppHeader.tsx @@ -182,8 +182,10 @@ function AboutDropdown() { ); } +// `block` so each link fills its row: inside the sheet's
  • s an inline +// anchor would shrink the tap target to the width of its text. const navLinkClass = ({ isActive }: { isActive: boolean }) => - `text-sm font-medium transition-colors hover:text-primary ${ + `block text-sm font-medium transition-colors hover:text-primary ${ isActive ? 'text-primary' : 'text-muted-foreground' }`; @@ -197,7 +199,7 @@ function GitHubLink() { href={GITHUB_URL} target="_blank" rel="noopener noreferrer" - aria-label="Code for Philly on GitHub" + aria-label="Code for Philly on GitHub (opens in new tab)" > @@ -235,20 +237,33 @@ export function AppHeader() { {/* Desktop content cluster. The parent gap is the only source of spacing between children — no per-child margins. */} + {/* A nav is a list of destinations — the