Brand: replace PawPrint mark with the new clawmates claw logo

Swapped the placeholder PawPrint icon for the new claw logo everywhere it
appears: the marketing nav (mobile + desktop), the footer, the login card,
and the app left rail. The supplied PNG was a red claw on a solid near-black
background, so I flood-filled the background to transparent (the dark-red
outline survives the black threshold) and exported a trimmed, optimized
public/images/clawmates-mark.png (321x256, 88KB from 1.7MB). It reads cleanly
on both light (nav/login) and dark (footer/rail) surfaces.

Also regenerated the favicon + PWA icons from the new mark:
- src/app/icon.png (Next uses it as the favicon; removed the old favicon.ico)
- public/icons/icon-192.png and icon-512.png (claw on #0a0a0a, maskable)

Roster-card avatars on the login panel stay as PawPrint (decorative, not the
brand). Regenerated all seven @visual baselines that contain the mark — the
swap is sub-threshold for maxDiffPixelRatio, so I deleted and recaptured them
rather than relying on update-snapshots.

typecheck/lint/build green · all @visual green · deployed and verified live
(mark, /icon.png, and PWA icons all 200).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Omar Sobh
2026-06-13 18:43:14 -05:00
co-authored by Claude Opus 4.8
parent 8d9ea7faaa
commit 34b8d2f903
16 changed files with 31 additions and 22 deletions
+12 -7
View File
@@ -1,7 +1,6 @@
"use client";
import Link from "next/link";
import { PawPrint } from "lucide-react";
import { useState } from "react";
/** Sticky rounded-pill nav matching WorkClaw's layout: brand mark + wordmark
@@ -24,9 +23,12 @@ export function MarketingNav() {
<div className="sm:hidden">
<nav className="flex w-full items-center justify-between rounded-full border border-[rgba(22,29,39,0.06)] bg-white/95 p-3 shadow-[0_4px_24px_0_rgba(22,29,39,0.04)] backdrop-blur-[11.5px]">
<Link href="/" aria-label="clawmates" className="flex items-center gap-2 px-2 py-1">
<span className="flex size-8 items-center justify-center rounded-lg bg-marketing-ink">
<PawPrint aria-hidden size={18} className="text-marketing-coral" />
</span>
{/* eslint-disable-next-line @next/next/no-img-element */}
<img
src="/images/clawmates-mark.png"
alt=""
className="h-7 w-auto"
/>
<span className="text-base font-bold tracking-tight text-marketing-ink">
clawmates
</span>
@@ -100,9 +102,12 @@ export function MarketingNav() {
{/* Desktop pill */}
<nav className="hidden w-full items-center justify-between rounded-full border border-solid border-[rgba(22,29,39,0.06)] bg-white/[0.96] p-3 shadow-[0_4px_24px_0_rgba(22,29,39,0.04)] sm:flex">
<Link href="/" aria-label="clawmates" className="flex h-12 items-center gap-2 pl-2">
<span className="flex size-10 items-center justify-center rounded-xl bg-marketing-ink">
<PawPrint aria-hidden size={22} className="text-marketing-coral" />
</span>
{/* eslint-disable-next-line @next/next/no-img-element */}
<img
src="/images/clawmates-mark.png"
alt=""
className="h-9 w-auto"
/>
<span className="text-xl font-bold tracking-tight text-marketing-ink">
clawmates
</span>
@@ -1,6 +1,5 @@
import Image from "next/image";
import Link from "next/link";
import { PawPrint } from "lucide-react";
/* Marketing landing — WorkClaw's full section layout/styling reproduced 1:1,
Clawmates-branded with honest claims (no borrowed customer logos, no
@@ -531,9 +530,12 @@ export function Footer() {
<div className="flex w-full max-w-[1100px] flex-col gap-[48px] sm:gap-[72px]">
<div className="flex items-center justify-between gap-8">
<Link href="/" aria-label="clawmates" className="flex items-center gap-3">
<span className="flex size-12 items-center justify-center rounded-2xl bg-white/10 sm:size-16">
<PawMark />
</span>
{/* eslint-disable-next-line @next/next/no-img-element */}
<img
src="/images/clawmates-mark.png"
alt=""
className="h-10 w-auto sm:h-12"
/>
<span className="text-2xl font-bold tracking-tight text-white sm:text-3xl">
clawmates
</span>
@@ -570,10 +572,6 @@ export function Footer() {
);
}
function PawMark() {
return <PawPrint aria-hidden size={28} className="text-marketing-coral" />;
}
const SOCIALS = [
{ label: "Instagram", icon: (<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-5 w-5"><rect x="2" y="2" width="20" height="20" rx="5" /><circle cx="12" cy="12" r="5" /><circle cx="17.5" cy="6.5" r="1.5" fill="currentColor" stroke="none" /></svg>) },
{ label: "X", icon: (<svg viewBox="0 0 24 24" fill="currentColor" className="h-5 w-5"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" /></svg>) },