diff --git a/web/components/brand-mark.tsx b/web/components/brand-mark.tsx new file mode 100644 index 0000000..e46fba6 --- /dev/null +++ b/web/components/brand-mark.tsx @@ -0,0 +1,57 @@ +/** + * BrandMark — The Disclosure Bureau wordmark + mark. + * + * Small inline SVG (three offset gold bars suggesting a redaction edge / a + * classification stamp) paired with the serif wordmark and a tiny + * monospace "CLASSIFIED · PUBLIC RECORD" microline beneath. Used in + * SiteHeader on every page and inside the mobile drawer header. Keeps the + * brand presence consistent without depending on an external asset. + * + * Two sizes: `default` (header) and `compact` (mobile drawer). + */ +interface BrandMarkProps { + size?: "default" | "compact"; + className?: string; +} + +export function BrandMark({ size = "default", className = "" }: BrandMarkProps) { + const isCompact = size === "compact"; + return ( + + + + + The Disclosure Bureau + + {!isCompact && ( + + Classified · public record + + )} + + + ); +} diff --git a/web/components/mobile-nav.tsx b/web/components/mobile-nav.tsx index bc573ae..692ef06 100644 --- a/web/components/mobile-nav.tsx +++ b/web/components/mobile-nav.tsx @@ -22,6 +22,7 @@ import { usePathname } from "next/navigation"; import { useEffect, useRef, useState } from "react"; import { Menu, X } from "lucide-react"; import { AuthBar } from "./auth-bar"; +import { BrandMark } from "./brand-mark"; import { LocaleToggleClient } from "./locale-toggle-client"; interface NavItem { @@ -94,10 +95,7 @@ export function MobileNav({ {/* Panel */}