Skip to content

Fluted wave split

Split waitlist with a fluted glass shader card.

Usage

Usage
import { WaitlistFluted } from '@/components/blocks/waitlist-01'


<WaitlistFluted />


// Send the email to your own endpoint
<WaitlistFluted
  onSubmit={async (email) => {
    const response = await fetch('/api/waitlist', {
      method: 'POST',
      body: JSON.stringify({ email }),
    })
    if (!response.ok) throw new Error('We couldn’t save your spot. Try again.')
  }}
/>


// Your own brand, copy and wave colours
<WaitlistFluted
  brand="Moonrise"
  headline={['Be first through\nthe ', 'door']}
  colors={{ sky: '#7C5CFF', blue: '#3B2BD9', mist: '#C9BEFF' }}
/>

Install

pnpm dlx shadcn@latest add @pastaui-pro/waitlist-01

Source

Props

Fluted wave split props
PropTypeDefaultDescription
brandReactNode= 'Longboard'A name shown next to the default wave mark, or your own logo node. It sits on the light top of the card, so it uses dark ink.
statusstring | null= 'Now in public beta'Pill above the headline with a glowing dot. Pass null to hide it.
headline[before: string, accent: string, after?: string]= ['Ride in on the\nfirst ', 'wave']Headline parts. The accent is set in italic with a light-blue tint. Use \n for a line break.
descriptionstring= A short line about launch emailsMuted text under the headline.
heading / subtitlestring= 'Get early access' / 'Early members skip the queue…'Form heading and the muted line under it.
emailLabel / placeholderstring= 'Email address' / 'you@company.com'Visually hidden label and placeholder for the email field.
buttonLabel / loadingLabelstring= 'Save my spot' / 'Saving your spot…'Button text, and the text shown with the spinner while submitting.
successTitle / successMessagestring= 'You’re on the list' / 'We’ll write to {email}…'Shown after a successful submit. {email} is replaced with the address.
notestring= 'One email at launch. Unsubscribe any time.'Small print under the form.
onSubmit(email: string) => void | Promise<void>= Simulated successCalled with the trimmed, validated email. Throw or reject to show the error message. Without it, the form simulates a successful submit after a short delay.
colorsPartial<{ navy, blue, sky, mist, light }>= { navy: '#040F1E', blue: '#1D5FD6', sky: '#4C9BFF', mist: '#A9CBF2', light: '#F1F2F1' }Hex colours for the fluted wave, from the light top down to the navy base.
speednumber= 1Multiplier for how fast the wave undulates. 0 freezes it.
classNamestring= —Additional classes for the section.
styleCSSProperties= —Inline styles, handy for overriding the --pp-* color and type variables.