shadcn.io is not affiliated with official shadcn/ui
Designer Availability Composer Profile Block for React
A designer profile as an availability composer: the visitor's card on top re-renders as you choose a status, the engagements you take and the next opening, with Save and Discard that stay local.
Installation
Overview
Let a designer decide what visitors are told, and see it as they will, with this availability profile for React with Base UI. A compact header holds the title and one sentence, and the hairline frame under it opens on the visitor's card: initials, name, role and place, a status chip with a dot (filled when open, half when booked, hollow when not taking work), the engagements taken, the next opening in words and the button a visitor would see ("Start a project", "Join the waitlist", or none). Under it are the owner's controls: a status on a Segment Group, the engagements on a Toggle Group where at least one stays on, and the next opening on a Date Picker. The card re-renders as you choose. The foot, ruled by Guides, holds a status line that counts what is not saved beside a Shine Button and a Discard button, both always there and quiet when nothing changed. It's built from Segment Group, Toggle Group, Date Picker, Badge, Button, Avatar, Shine Button and Guides, with a CSS entrance only. The designer is invented, and there is no project grid: this block is about availability. For a designer network, a freelancer's own settings or any profile that says whether you are taking work.
FAQ
How do I fill it with my own statuses and dates?
Edit STATUSES for the labels and ENGAGEMENTS for the kinds of work, and set START to what is saved when the page loads. BOOKED_UNTIL is the last day of the current booking: when the status is Booked and no date is picked, the card says the next opening is the day after it. AS_OF is the day the page treats as today, so days up to it cannot be picked and nothing reads the clock. The card's words, the counts in the foot and the button are worked out from the choices, so nothing is typed twice.
What does the card show for each status?
Open shows "Taking projects now" and the button "Start a project". Booked shows the next opening, the picked day or the day after the booking, and the button "Join the waitlist". Not taking work shows "Not taking new work" (or "Back from" the picked day) and no button, only a dashed "No requests" placeholder. The card is a picture of what visitors see: the button on it does nothing, and a screen reader is told in words what visitors would see.
What do Save and Discard do?
Save keeps the choices in the page and says "Saved in this demo. Nothing published." Discard puts back the last saved choices. Both buttons are always on screen and stay quiet when nothing has changed; pressing one then says "No changes to save." or "Nothing to discard." The foot counts the choices that differ from the saved ones ("2 changes not saved yet."). To make it real, send the draft to your own API in the submit handler and show its answer in the same line.
How does the date picker behave?
It opens a calendar from the button; days up to today cannot be picked. Clear empties the date and Discard puts back the saved one. After either, the calendar starts again with no day marked, while the button always shows the date that is in effect. When the calendar closes, focus returns to the button.
Is it accessible?
Every control is named: the status group and the engagement group by their headings, the date picker by "Next opening" with the date in its name, and Clear and Discard by their labels. The engagement group never turns the last item off. The status line is a polite live region present from the start. Dates and counts keep their order in a right-to-left layout. The status dot is never the only cue: the state is also a word.
How does it look on a phone?
The card comes first, with the status chip under the name and the button under the words, then the three bands of controls one under the other; the status segments wrap their words to two lines. The foot stays pinned to the bottom of the screen while the panel scrolls, so Save is always in reach, and settles at the panel's end from the medium breakpoint.
Related
- Pro
Portfolio Showcase Profile
Visual portfoliosA designer profile with an identity cell beside a two-level project area: a category filter with counts over six drawn covers, and a project's case opened in place with a drawn spread, and a Back button that returns focus to the cover.
- Pro
Consultant Availability Profile
Schedules and bookingA consultant profile that shows capacity, not slots: eight weeks as cells with a bar of hours booked, an engagement menu that marks every week with room for it, and a request for the week you pick.
- Pro
Profile Settings
Privacy and consentA profile visibility page: five parts of a profile, each with a menu for who sees it (Everyone, Workspace, Only me), beside a drawn profile card with a Preview as choice (Public, Teammate, Me) that hides what that viewer cannot see.
- Pro
Graphic Designer Annotated Poster Profile
Visual portfoliosA graphic designer profile as an annotated poster: one drawn poster in a frame and four principles (grid, scale, contrast, restraint) that switch on as layers over it, each with one line whose numbers are worked out from the poster itself.
- Pro
Mentor Availability Profile
Schedules and bookingA mentor profile that books across time zones: slots set once in UTC, a zone menu, a month grid marking the days with times, times that roll into the next day where they must, and session types with prices.
- Pro
Lawyer Practice and Consultation Profile
Schedules and bookingAn attorney profile with a consultation request beside her practice areas: four areas as an accordion with matters won, settled and not won, and a request with a practice area menu, a matter field with a counter, a contact choice and a draft summary.