'use client' import Image from 'next/image' import { cn } from '@/lib/utils' import { useBranding } from '@/lib/branding/brand-context' interface BrandWordmarkProps { /** * Visual size. `'hero'` is for landing/auth/onboarding hero slots (~the * same vertical weight as the old 240px logo image). `'inline'` matches * the old 30px image used in top-left nav contexts. */ size?: 'hero' | 'inline' /** * Force lowercase rendering. Defaults to true to match the existing * font-display + `.toLowerCase()` pattern used elsewhere in the app. */ lowercase?: boolean className?: string } /** * Wordmark used in place of the legacy logo image on auth / onboarding / * sandbox / invite surfaces. On a branded host with an uploaded logo it * renders the logo image ALONE (founder call 2026-08-05: byrÄ logos usually * carry their own name, so logo + text read as a duplicate); otherwise it * renders exactly the text-only wordmark: the active brand's `appName` in * Hedvig Letters Serif at weight 700 (the display font is single-weight on * Google Fonts so 700 ends up synthetically bolded, but that matches the * requested aesthetic). */ export function BrandWordmark({ size = 'hero', lowercase = true, className, }: BrandWordmarkProps) { const branding = useBranding() const name = lowercase ? branding.appName.toLowerCase() : branding.appName if (branding.logoUrl) { // The logo carries the brand alone; the app name moves into alt text so // the image keeps an accessible name. return ( {name} ) } return ( {name} ) }