Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Scope Estimate Contact Block for React

Six audit checkboxes for an SEO consultancy that add hours, a rate-card price and a delivery date in words under the list.

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 scoped audit form for React with Base UI, for Crawlmint. A centred header sits over a framed card. Six Checkbox rows (search visibility, page speed, accessibility, content, a technical crawl and a competitor set) each show their hours and price. A Data List under the checks totals the hours, the price and a delivery date in words, counted forward from a fixed anchor and skipping weekends. The fee line says it comes from the published rate card. A site address, a name and an email follow. Submitting checks every field, shows each problem under its control and moves focus to the first one. A valid request confirms in the same space. The studio's email, phone and hours stay under the frame. Rails and the top rule come from Guides, and the card's corners are marked. It's built from Field, Input, Checkbox, Data List, Frame, Guides, Shine Button and Button, with a CSS entrance on the header and your theme's tokens for every colour. For consultancies that price a study from a menu of parts.

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 your own call. details holds the name, email, site address and which scopes are ticked. Show the confirmation when the request succeeds, and an error line in the form when it doesn't.

How are the hours, price and date worked out?

Each ticked row adds its own hours and price, and the list shows the sums. The delivery date walks forward from Tuesday 13 October 2026, the day this example is anchored to, skipping Saturdays and Sundays. It takes at least four business days, or one day for every six hours, whichever is more. Nothing is booked: the line under the list says the figures come from the published rate card.

How is each checkbox labelled?

The row's name is the checkbox's accessible name, and the smaller line under it is the description. Both are wired with aria-labelledby and aria-describedby, so the hours and the price aren't the only thing a screen reader hears. At least one row has to be ticked. Ticking a row clears that message.

What does the confirmation say, and who hears it?

It thanks the visitor by first name and repeats the scopes they ticked, the rate-card price and the worksheet date, then the email. It's a status region that takes focus when it appears, and "Send another request" brings back an empty form and puts focus on its heading. It describes the estimate they built, not a job a server has accepted.

Are the email address and phone number real?

No. hello@crawlmint.example uses the .example domain, which is reserved for examples, and +1 (555) 010-0162 is in the 555-0100 to 555-0199 range set aside for fiction. Replace EMAIL, PHONE, PHONE_HREF and HOURS at the top of the file with yours. Prices and the phone number keep their order in a right-to-left layout.

How does it fit on a phone?

The six rows stay one per line, with the hours and the price at the end of each row. The estimate stays directly under the checks. Name and email stack below sm, and the submit button goes full width. The header fades up once on load. With reduced motion it simply appears.

  • Pro

    Document Checklist Contact

    Finance and property

    A tax-return checklist as a card in a card: three ways of filing, eight documents with a tag that says which are needed, a bar of the needed ones ready and a switch to send the rest later.

  • 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.

  • 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.

  • Pro

    Request a Callback Contact

    Calls and meetings

    A callback request with a status band and a form that asks when to ring: as soon as possible, later today from a select of 15-minute times, or on a chosen day, with a time zone.

  • 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

    Repair Triage Contact

    Repairs and claims

    A repair report for a lettings agent: six category cells on shared hairlines, each with its published reply time, a callout with safety advice that follows the choice, and a form with a searchable list of homes.