Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Eligibility Checklist Scholarship Contact Block for React

A scholarship application on a card in card: four eligibility criteria as ruled checkbox rows with a verdict line, an essay with a word count that fills a bar toward its minimum, and a form that checks itself and confirms in place.

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 scholarship application for React with Base UI, on a card in card: a muted shell with + marks on its corners wraps a raised panel, under a start-aligned header. The panel opens with eligibility, four criteria as ruled checkbox rows (each with a line on what it means) and a verdict line under them: "Not yet" with how many are met, then "You qualify" when all four are ticked. Beside it, behind a hairline, sits the essay: a text area with a word count that fills a bar toward 250 words (a tick marks the minimum) and calls the count in range up to 500, then a name, an email and the apply button. The button reads as unavailable until all four criteria are ticked; pressing it anyway says so and moves focus to the first unticked criterion. A complete application replaces the name, the email and the button with a confirmation, takes focus, and leaves the criteria and the essay in view, locked. The page's rails and top rule come from the Guides spine. It's built from Frame, Checkbox, Field, Textarea, Progress, Status, Input, Guides, Button and Shine Button, with CSS transitions for the entrance and your theme's tokens for every colour. For scholarship funds, grant programmes, bursaries and any application with rules the applicant should check first.

FAQ

Where does the form send its data?

Nowhere yet. The submit handler waits 800 milliseconds, as a stand-in for a request, then shows the confirmation. Replace that timer in submit with a call to your application system: details (name, email, essay) and ticked (the criteria the applicant confirmed) hold everything. Show the confirmation when the request succeeds, and an error line in the form when it doesn't.

How do I change the criteria?

Edit CRITERIA at the top of the file: each entry is a title, a detail and an id. The verdict line, the "N of N criteria met" count and the gate on the button all follow the length of the list, so four can become three or five. The fund, the $4,000 award and its rules are made up and marked as an example in the header.

Why does the apply button look unavailable but still react?

The button uses aria-disabled rather than disabled, so it stays in the tab order and a screen reader can reach it and hear why ("Tick all four criteria to apply"). Pressing it while a criterion is missing does not send anything: it shows the problem under the list and moves focus to the first unticked box. Everything else (a short essay, a missing email) is reported in the same pass, in the order it appears on the page.

How is the word count worked out?

The text is trimmed and split on whitespace, so a run of spaces or a line break counts once. The bar is Progress with a maximum of 500 and a tick at 250; under 250 the count reads "N more to reach 250", from 250 to 500 it reads "Within the range" with a success dot, and over 500 it says by how many. The count is linked to the text area with aria-describedby, so it is read when the field is focused, not on every keystroke. Change MIN_WORDS and MAX_WORDS to suit your rules; the tick is placed from them.

How are the checkbox rows labelled on each library?

Each row's title is the box's name and its detail line the box's description. The row's label points at the box with htmlFor and the box has an id, so clicking anywhere in the row ticks it.

How does it fit on a phone?

The panel is one column: the criteria and the verdict, then a rule, then the essay, the name, the email and the button full width. Nothing scrolls sideways at 320 pixels. The header and the card fade up once on load; with reduced motion they simply appear.

  • Pro

    A grant application split by a hairline: four budget lines that add up against a $50,000 cap in a framed panel with a bar, a project length, a summary with a word count and a form that checks itself.

  • Pro

    An enrolment request for a day school in four steps: the student, the programme, the parent and a review where every answer has an Edit button.

  • Pro

    An internship application with no frame: a band of three start seasons, a graduation date field, a weeks stepper and a tags field for skills with one-tap suggestions, checked on submit and confirmed in place.

  • 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

    A new-matter enquiry for a law firm on a card in card: other parties as chips for a conflict check, urgency, a voicemail switch and an engagement acknowledgement signed on a pad or typed.

  • Pro

    Warranty Meter Contact

    Repairs and claims

    A warranty claim where the purchase date works out your cover on one line: a meter of the 24 months used, the month cover ends, and issue types that change with it.