feat(marketing): add hint text below Go page form labels (#48824)

## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Small feature addition to `packages/marketing` (Go page form
schema/renderer), plus a copy/layout change on
`/go/select-2026/partner-day`. Supersedes #48821 (closed), which is
folded in here.

## What is the current behavior?

Go page form fields only support a `description` string rendered *below
the input*. There's no way to put a short note directly under a field's
label, above the input — so the Partner Day RSVP's "attending" question
crammed "(your Partner Day invite covers it)" into the question text
itself.

## What is the new behavior?

- Adds an optional `hint` string to the Go page form field schema
(`packages/marketing/src/go/schemas.ts`), rendered as small italic text
directly beneath the label, above the input
(`packages/marketing/src/forms/MarketingForm.tsx`).
- Updates the Partner Day RSVP's "attending" field to use it: the
question is now "Would you like to attend Supabase Select on October 2?"
with "Your Partner Day invite covers it" as a separate grey/italic hint
line underneath.
- No other fields set `hint`, so this is backward compatible — verified
`vip-experience`'s identical select field (no `hint` set) renders
unchanged.

## Additional context

- Verified locally in the browser: the new hint renders correctly on
Partner Day, and other `_go` pages with form fields are unaffected.
- `prettier --check` and `tsc --noEmit` both pass on the changed files.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added optional hint text beneath form field labels, displayed in
smaller italic text.
* Updated the Select RSVP question to clearly distinguish the attendance
prompt from invite coverage details.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
shaziya authored and GitHub committed 2026-08-07 05:33:47 +00:00
1 parent 3a383c87c7
commit a71636f5a0
3 files changed
+8 -3

No files matched your search

@@ -153,8 +153,8 @@ const page: GoPageInput = {
{
type: 'select',
name: 'attending',
label:
'Are you attending Supabase Select on October 2? (your Partner Day invite covers it)',
label: 'Would you like to attend Supabase Select on October 2?',
hint: 'Your Partner Day invite covers it',
placeholder: 'Select an option',
required: true,
options: [
@@ -169,7 +169,10 @@ function Field({
return (
<div className="flex flex-col gap-2">
<label className="text-sm text-foreground font-medium">{field.label}</label>
<div className="flex flex-col gap-0.5">
<label className="text-sm text-foreground font-medium">{field.label}</label>
{field.hint && <p className="text-xs text-foreground-lighter italic">{field.hint}</p>}
</div>
<FieldInput field={field} value={value} onChange={onChange} />
{field.description && (
<p className="text-xs text-foreground-lighter leading-relaxed">{field.description}</p>
+2
View File
@@ -134,6 +134,8 @@ export const showWhenSchema = z
const formFieldBase = z.object({
name: z.string().min(1),
label: z.string().min(1),
/** Small italicized note rendered directly beneath the label, above the input. */
hint: z.string().optional(),
/** Helper text rendered beneath the input. */
description: z.string().optional(),
placeholder: z.string().optional(),