Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Ranked Interview Slots Contact Block for React

An interview scheduler where the candidate ranks up to three of eight offered times, reorders them with buttons, and picks a time zone from a searchable list, in two cells that share their hairlines.

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

An interview scheduling section for React with Base UI, built from two cells that share their hairlines under a start-aligned header. In the first, a listbox of eight offered times on the next three working days: up to three can be chosen, each chosen time shows its rank, and once three are chosen the rest turn unavailable. In the second, the ranking itself: three numbered rows that fill in the order the times were chosen, each with buttons to move it up, move it down or remove it, a live count ("2 of 3 chosen"), then a name, an email and a time zone picked from a searchable combobox. Submitting checks every field, shows each problem under its field, marks the control invalid and moves focus to the first one; a valid request turns into a confirmation in the same space that repeats the ranking as a numbered list, takes focus, and offers "Rank different times". The offered days are worked out from today once the page is in the browser. It's built from Listbox, Combobox, Field, Input, Button, Guides and Shine Button, with CSS transitions for the entrances and your theme's tokens for every colour. For hiring pages, admissions interviews and any request where the visitor gives you several options in order.

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 recruiting tool: ranked holds the chosen times in order, with name, email and zone. Show the confirmation when the request succeeds, and an error line in the form when it doesn't.

How are the offered times worked out?

offeredFrom takes the next three working days after today (skipping Saturdays and Sundays) and pairs them with the times in DAY_TIMES, once the page is in the browser. Until then the list shows eight grey placeholder rows of the same height, so nothing shifts when the real times arrive, and no date is written into the file. In production, build the list from your interviewers' calendars.

How does the ranking work?

The rank is the order in which times were chosen. A time you remove leaves the others in place, and a time you add goes last. The up and down buttons swap neighbours; at the top or bottom of the ranking they are marked aria-disabled and ignore presses, so keyboard focus is never lost. At three, the other times turn unavailable and a line explains why. The count is a polite status message, so screen reader users hear "2 of 3 chosen" as they choose.

How does the time zone picker differ between libraries?

It's a searchable list of ten zones whose label points at it, and a chosen zone is shown by name. The field is a text input with a list under it: type to filter, arrow keys to move, Enter to choose, and the combobox filters its own items.

Is the email address real?

No. talent@hexmere.example uses the .example domain, which is reserved for examples. Replace EMAIL at the top of the file with yours.

How does it fit on a phone?

Below md the two cells stack: the offered times first, then the ranking and the fields. The ranking rows truncate a long time instead of wrapping, the name and email go one per row, and the submit button goes full width, so nothing scrolls sideways at 320 pixels.

  • Pro

    A scheduling split: a host panel at the start; a month calendar that closes weekends and past days, the open times of the chosen day and a name and email at the end, with Confirm unavailable until a day and time are chosen.

  • Pro

    Stylist Booking Contact

    Visits and services

    A salon booking that starts with the person: three stylists in hairline cells, each with their next three openings as chips, a live appointment line, and a form that checks itself and confirms in place.

  • 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

    A robotics hiring form that starts with a single PDF dropzone, then a role combobox, a start date and an optional LinkedIn field.

  • 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

    A coaching request that starts with three scored sliders: Career, Health and Relationships, each with a level meter, and a computed line naming where there is most room.