Formula Won Labs

shadcn/ui blocks

Copy-paste UI primitives from the shadcn/ui MIT-licensed library.

23 blocks·visit source ↗
Button
Button

Use for every primary and secondary action across the library. Six variants and four sizes cover text buttons, icon buttons, and destructive actions without hand-rolled CSS.

Card Container
Card Container

Base container for stat blocks, list rows, and form wrappers across the library. Compose with CardHeader, CardContent, and CardFooter instead of overriding the base padding by hand.

Dialog Modal
Dialog Modal

Standard modal for confirmations, short forms, and detail views triggered by a button click. Ships with an overlay, focus trap, and close button already wired, do not rebuild those by hand.

Tabs
Tabs

Switches between related content panels in place, no page navigation. Use the default segmented look on dashboards, keep to two or three tabs before it belongs in a sidebar instead.

Tooltip
Tooltip

Short hint text on hover or keyboard focus. Wrap the app root in one TooltipProvider, do not nest a provider per tooltip, and skip tooltips for anything a mobile user needs to read since hover does not exist there.

Sheet Slide-Over Panel
Sheet Slide-Over Panel

Slide-in panel for mobile nav, filters, or a secondary form without leaving the page. Defaults to the right edge, pass side to dock left, top, or bottom instead.

Badge
Badge

Small status or count label inline with text or in a card corner. Do not use it for anything clickable, reach for Button size sm instead.

Text Input
Text Input

Single-line text field for forms, already themed for light and dark. Pair with the Field and FieldLabel primitives for consistent spacing instead of wrapping it by hand.

Textarea
Textarea

Multi-line field that grows with its content via field-sizing-content, no manual rows tuning needed. Use for messages, notes, and longer form answers.

Select Dropdown
Select Dropdown

Dropdown for choosing one option from a list, keyboard and screen-reader accessible out of the box via Radix. Use a native select instead when the form is short and the extra JS is not worth it.

Avatar
Avatar

User or brand image with a text fallback when the image fails to load. Use AvatarGroup (same registry entry) to stack several for team or reviewer lists.

Accordion
Accordion

Collapsible sections for FAQs, settings groups, or long-form content. Keep only one item open at a time on marketing pages, allow multiple open on dashboards and settings screens.

Switch Toggle
Switch Toggle

On/off toggle for settings and preferences that apply immediately. Use Checkbox instead when the choice is part of a form that still needs a submit step.

Checkbox
Checkbox

Standard checkbox for form selections and multi-select lists. Pair with Label and wrap both in a Field container so the whole row is a click target, not just the box.

Alert Banner
Alert Banner

Inline banner for page-level warnings or confirmations that should stay visible until the user acts. Use it for form-level errors, not for a transient success message, that belongs in a toast instead.

Dropdown Menu
Dropdown Menu

Contextual menu triggered by a button or icon, supports nested submenus and checkbox items. Use it for user menus and row actions, not as a stand-in for primary site navigation.

Form with Validation
Form with Validation

Wires react-hook-form and zod validation into the Input, Select, and Textarea primitives with accessible error messages tied to each field. Skip this and use plain Field and Label if the form has no validation rules to enforce.

Simple Login Form
Simple Login Form

Single-card login form with email and password only. Good default for internal tools where there is no social auth to wire up.

Two-Column Login with Image
Two-Column Login with Image

Two-column login with a full-height image on desktop that collapses to a single column on mobile. Swap the placeholder image and company name, the form itself is a separate login-form component pulled from the same source URL.

Email-Only Login with Social
Email-Only Login with Social

Centered login card built around one email field plus social login buttons and a legal footer. Use it when the client wants one-click sign-in via Google or Apple instead of a password.

Signup Card Form
Signup Card Form

Card-based signup form with name, email, password, and confirm password fields. Swap the field description copy for the client's own password rules and privacy language.

Signup with Social Buttons
Signup with Social Buttons

Compact signup form built around one email field with Apple and Google buttons below it. Use for low-friction signups where password creation happens later, after email verification.

Dashboard Sidebar Shell
Dashboard Sidebar Shell

Full dashboard shell: collapsible icon sidebar, team switcher, nested nav sections, and a user menu in the footer. Ships as five files (app-sidebar, nav-main, nav-projects, nav-user, team-switcher) plus the base sidebar primitive, pull all of them from the source URL, not just this one.

Want a site built by the same team that curates shadcn/ui blocks?

FWON ships full production sites in 3 weeks. No contract, no credit card.