diff --git a/apps/og-generator/app/api/og/route.tsx b/apps/og-generator/app/api/og/route.tsx index d585c740dc3..8feecf9ba28 100644 --- a/apps/og-generator/app/api/og/route.tsx +++ b/apps/og-generator/app/api/og/route.tsx @@ -128,7 +128,7 @@ export async function GET(req: Request) { const template = TEMPLATE_MAP[searchParams.get('template') ?? ''] ?? TEMPLATE_MAP[DEFAULT_TEMPLATE_ID] const rawHeadline = (searchParams.get('headline') ?? DEFAULT_HEADLINE).slice(0, 200) - const eyebrow = searchParams.get('eyebrow')?.trim() || null + const eyebrow = template.noEyebrow ? null : searchParams.get('eyebrow')?.trim() || null const sentenceCase = searchParams.get('sentenceCase') !== '0' const manualBreaks = searchParams.get('manual') === '1' || /\n/.test(rawHeadline) diff --git a/apps/og-generator/app/page.tsx b/apps/og-generator/app/page.tsx index a8d9d341ac8..c870ffb81a8 100644 --- a/apps/og-generator/app/page.tsx +++ b/apps/og-generator/app/page.tsx @@ -470,6 +470,7 @@ export default function Page() { // Fixed-logo templates render the Supabase wordmark directly — there's no // user-selectable icon for them to affect, so hide the control entirely. const showIconControl = !selectedTemplateObj?.noIcon + const showEyebrowControl = !selectedTemplateObj?.noEyebrow const selectedIcon = useMemo(() => allIcons.find((i) => i.name === icon) ?? null, [allIcons, icon]) // Load the shared asset library (uploaded icons) for the active brand; empty @@ -961,7 +962,7 @@ export default function Page() { )} - {showContentControls && ( + {showContentControls && showEyebrowControl && (