shadcn.io is not affiliated with official shadcn/ui
Resume Drop Contact Block for React
A robotics hiring form that starts with a single PDF dropzone, then a role combobox, a start date and an optional LinkedIn field.
Installation
Overview
A resume form for React with Base UI, for Cinderfall Robotics. A centred header sits over a framed card, and the dropzone is the first field. File Upload accepts one PDF up to 5 MB and, once a file is in, shows it as a chip with its name, its size and a remove button. A Combobox picks the role, a Date Picker picks the first day the visitor can start, and an Input Group shows linkedin.com/in/ in front of an optional profile slug. Name and 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 and repeats the file name, the role and the date. It's built from Field, Input, File Upload, Combobox, Date Picker, Input Group, Frame, Guides, Shine Button and Button, with a CSS entrance on the header and your theme's tokens for every colour. For hiring pages that should take a resume before they ask anything else.
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, role id, start date and optional profile slug, and the file state holds the PDF. Show the confirmation when the request succeeds, and an error line in the form when it doesn't.
What can the dropzone accept?
One PDF, up to 5 MB. Until a file is chosen, the dropzone reads Drop a resume, or choose a PDF. After one is accepted, that dropzone is replaced by a chip with the file name, the size and a remove button. Removing the chip brings the dropzone back. A second file, a file that isn't a PDF, or a file over 5 MB shows that message under the field. Submit with nothing attached asks for the PDF and moves focus to the dropzone.
How is the role combobox labelled?
The word Role names the combobox, and focus can land on its input when the role is missing.
The input takes the id, and the label points to it with htmlFor.
Which days can be a start date?
The calendar closes Saturdays, Sundays and any day before today, read from the visitor's clock. Today itself can be chosen. Submit also refuses a closed day if one is already in the field. The confirmation speaks the date as a weekday and a month, from the stored year-month-day text.
Is the LinkedIn field required?
No. The label says optional. Empty, it passes. Filled, it has to be 3 to 40 characters of letters, numbers and hyphens, the part that follows linkedin.com/in/. The addon is the prefix, so the visitor doesn't type it. The confirmation mentions the profile only when they filled it in.
How does it fit on a phone?
The card stays a single column. The LinkedIn prefix is set smaller so linkedin.com/in/ fits at 320 pixels. 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. hello@cinderfall.example and +1 (555) 010-0136 are fictional. Replace EMAIL, PHONE, PHONE_HREF and HOURS with yours.
Related
- Pro
File Attachments Contact
Support and feedbackA support request on a card in card with a file drop zone: up to four PDFs or images, a progress bar per file, an error row for a wrong type, and a form that waits for the files before it sends.
- Pro
Visitor Pass Contact
Visits and servicesA visitor pre-registration for an office building: pick a host from a directory, a weekday on a calendar and an arrival window, and get a check-in pass with a QR code.
- Pro
Talk to Sales Contact
Contact formsA 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
Photo Access Repair Contact
Repairs and claimsA repair request for a housing association: three photo slots with thumbnails, two access switches, a visit window, and a what-happens-next panel that rewrites itself as you choose.
- Pro
Warranty Meter Contact
Repairs and claimsA 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 meetingsA 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.