Skip to main content
Clever Ops

Event CFP Block

A call-for-proposals block, poster heading, mono deadline rail, talk formats with durations, and one submit CTA. React and Tailwind CFP section for conference sites.

Preview & code

Loading Event CFP Block preview

Installation

pnpm dlx shadcn@latest add @cleverui/event-cfp-block

Requires the @cleverui registry in your components.json, a one-off, two-line setup.

Usage

tsx
import { EventCfpBlock } from '@/components/blocks/event-cfp-block'
Exampletsx
import { EventCfpBlock } from '@/components/blocks/event-cfp-block'

export default function EventCfpBlockDemo() {
  return (
    <div className="mx-auto w-full">
      <EventCfpBlock
        eyebrow="CFP OPEN · CLOSES 31 JAN 2027"
        heading="Call for proposals"
        pitch="If you shipped it, broke it, or fixed it this year, we want the talk."
        dates={[
          { label: 'Opens', value: '1 Dec 2026' },
          { label: 'Closes', value: '31 Jan 2027' },
          { label: 'Notifications', value: '15 Feb 2027' },
          { label: 'Event', value: '8–9 Oct 2027' },
        ]}
        formats={[
          {
            name: 'Talk',
            duration: '30 MIN',
            description:
              'A focused stage session with 5 minutes for questions. One idea, well told.',
          },
          {
            name: 'Workshop',
            duration: '3 HRS',
            description:
              'Hands-on room of 40. Bring exercises, not slides-only monologues.',
          },
          {
            name: 'Lightning',
            duration: '10 MIN',
            description:
              'One sharp story or demo. No Q&A on stage, hallway conversations after.',
          },
        ]}
        formatsLabel="Formats"
        note="First time speaking? Every new speaker gets a mentor and a full dry run."
        ctaLabel="Submit a proposal"
        ctaHref="#submit"
      />
    </div>
  )
}

API reference

EventCfpBlock accepts the following props.

PropTypeDefaultDescription
eyebrowstringdated mono kicker, preformatted, never derived from Date
headingstring'Call for proposals'
pitchstringone confident sentence recruiting speakers
dates*CfpDate[]deadline rail as term-value pairs, every value preformatted
formats*CfpFormat[]
formatsLabelstring'Formats'
notestringwelcoming line under the CTA
ctaLabelstring'Submit a proposal'
ctaHrefstring'#'

…plus everything from React.HTMLAttributes<HTMLElement>: className, event handlers, aria attributes and the rest pass straight through.

Referenced types

Typestsx
export interface CfpDate {
  label: string
  /** preformatted, e.g. '31 Jan 2027' */
  value: string
}

export interface CfpFormat {
  name: string
  /** preformatted, e.g. '30 MIN' */
  duration?: string
  description?: string
}

Frequently asked questions

How do I install the Event CFP Block component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/event-cfp-block`. The shadcn CLI copies the source into your project, you own the code from that point. You can also copy the source directly from this page.

What dependencies does Event CFP Block require?

Event CFP Block uses motion on top of React and Tailwind CSS. You don't need to install it manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme Event CFP Block to match my brand?

Yes. The component is styled entirely with Tailwind utilities over standard design tokens (primary, background, muted, border), so it inherits your existing shadcn/ui theme automatically. Change your CSS variables and the component follows, no source edits needed for palette, radius, or fonts.

Want this built for you?

CleverUI is built by the Clever Ops web team. If you'd rather ship a hand-coded, fast, custom website than assemble one, we build them for Australian businesses every week.

Explore web development services