Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Freelancer Rates Budget Profile Block for Ark UI

A freelancer profile that turns a budget into hours: six skills with proficiency and hourly rate, the whole hours the budget buys in each, and an Open for work switch that decides the action.

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

Let a client see what their money buys before they write, with this freelancer profile for React with Ark UI. Inside a hairline frame with a plus mark on each corner, the first band names the freelancer. A budget goes in a Number Input with steppers, from $500 to $20,000, next to an Open for work Switch. A table lists six skills, each with a read-only Rating for proficiency, an hourly rate and the whole hours the budget buys in it, and a line says how many of the six cover a typical project of 38 hours. The foot, ruled by Guides, holds a status line beside the one action: a Shine Button to start a project while she is open, and an outline Join the waitlist button while she is not. It's built from Number Input, Switch, Rating, Badge, Avatar, Shine Button, Button and Guides, with a CSS entrance only. For a freelancer marketplace, a studio rate card or any service priced by the hour.

FAQ

How do I change the skills and rates?

Edit SKILLS at the top: each has a name, a proficiency in halves from 0 to 5 and a rate in dollars an hour. MIN_BUDGET, MAX_BUDGET and TYPICAL_HOURS set the field's range and the project length the summary compares against. Hours are the budget divided by the rate, rounded down, so there is nothing else to keep in step.

What if I type a number outside the range?

The table uses the nearest allowed value and the line under the field says so, for example Using the least, $500. A blank field counts as the least. Digits typed in a right-to-left locale are read correctly. On React Aria the field commits on blur, Enter or an arrow rather than on each keystroke.

What does the Open for work switch change?

Only the foot's action. While it is on, the one primary button reads Start a project; when you turn it off it is replaced by an outline Join the waitlist button, and the status line says when she takes work again. Both answer in the page and nothing is sent, so you can wire the first to your project form and the second to a waitlist.

What stays local, and how do I make it real?

The budget, the switch and both buttons. The status line says Project noted in this demo, nothing was sent, or the same for the waitlist. To make it real, post the budget and the chosen skills to your API from the button handlers and show its answer in the same line.

Is it accessible?

The field and the switch have visible and spoken names, the table has column and row headers, and each skill's proficiency is spoken as a number out of 5 while the drawn stars are hidden from assistive technology. The status line is a polite live region present from the start. Every control works from the keyboard.

How does it look on a phone?

The budget and the switch wrap onto two lines, the proficiency column is dropped (it is still spoken), and the table keeps its skill, rate and hours. The foot stays pinned to the bottom of the screen. Rates keep their order in a right-to-left layout.