Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Campaign Planner Fundraiser Contact Block for React

A fundraising planner as a split: a goal, a length and four channels on one side, a live projection with a bar on the other, and a form that sends the plan to a coach.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

A fundraising contact section for React with Base UI, built as a split behind a solid divider that meets the top rule with a plus. At the start, a numbered plan in three steps joined by a hairline: a goal in a "$" number field with steppers, a length (2, 4 or 8 weeks) in a segmented control, and four channels (email, social posts, events, matching gifts) as toggle tiles that each show the share of the goal they should raise. At the end, the projection: a large percentage that rolls, a bar, the sentence "Plan reaches 78% of goal" with what is raised and what is missing, and one line per channel with its dollars (or "Not in plan"). Under it, the form that sends the plan to a coach: name, email and the campaign's name, checked on submit, with each problem under its field and focus on the first one; a valid plan becomes a confirmation that repeats the goal, the length and the projected share, in the same space, and the plan locks until you start another. It's built from Number Input, Segment Group, Toggle Group, Progress, Sliding Number, Field, Input, Guides, Shine Button and Button, with CSS transitions for the entrances and your theme's tokens for every colour; the bar, the pressed channels and the segments use the foreground colour so the button stays the one primary. For fundraising platforms, schools and charities that coach a campaign before it starts.

FAQ

How is the projection worked out, and how do I change it?

Each channel has a raise in dollars for a 4-week plan (CHANNELS), and each length scales every channel by a pace (LENGTHS: 0.7, 1 and 1.25). The projection adds the dollars of the channels in the plan, rounds each to the hundred, and divides by the goal, capped at 100%. The numbers are invented: replace them with your own results and the rest follows.

What can the goal field hold?

Whole dollars from $2,000 to $200,000 (MIN_GOAL, MAX_GOAL), grouped with commas as you leave the field; the steppers move it by $500. Leaving it empty shows "Enter the amount you want to raise" on submit and moves focus to the field. The plan stays editable until the form is sent.

What does a screen reader hear as I change the plan?

The big percentage and the bar are decorative; the sentence under them is the readout. A hidden status line repeats it about 600 milliseconds after the visitor stops changing something, and says nothing on load, so typing a goal does not read every digit.

Can I send a plan with no channel?

No. At least one channel must be on: otherwise submit shows "Pick at least one channel to carry the plan" under the tiles and moves focus to the first tile. The tiles are a group of toggle buttons that keep their pressed state in the foreground colour; with none on, the projection reads 0%.

Does it work in right-to-left layouts?

Yes. Dollar figures sit in left-to-right spans, the goal field keeps its "$" before the number, the segment labels and the "+24% of goal" lines are isolated with bdi, and the step markers and the hairline between them use logical positions.

Where does the plan go?

Nowhere yet: the submit handler waits 800 milliseconds, then shows the confirmation. Replace that timer in submit with a call to your campaign desk; details and channels hold everything the visitor chose.

  • Pro

    A donation card in card: amount presets in a 2x2 grid beside a custom amount, a monthly switch, an impact line that rolls with the amount, a card-fee box and a total the button repeats.

  • Pro

    An "I want to" router for a charity: four radio tiles (donate, volunteer, partner, fundraise), and one form whose first fields change with the choice while the panel keeps its height.

  • Pro

    A sponsorship builder: four priced add-ons with the reach each adds, a live total that rolls, the campaign goal and a form that confirms in place.

  • Pro

    Spend management for a usage-billed product: this period's spend per project, a budget bar with a tick at the alert threshold, the trend against last period, inline budget editing and the account's hard cap.

  • Pro

    Budget Range Slider Contact

    Quotes and estimates

    A roofing quote request as a card in a card: three kinds of job, a two-thumb budget slider that says in words what the range covers, and a short form that checks itself.

  • Pro

    A talk-to-sales split for a scheduling platform: what happens next as three numbered steps and a band of contact details beside a form that checks itself, shows each problem under its field and confirms in place.