shadcn.io is an independent project built on shadcn/ui
The header holds the Title label and, at the end, the text 0/60. The count does not change as someone types. The input stops at 60 characters. Clicking Title focuses the field.
Use it for a headline with the cap shown next to the name. If the count should sit under a long note, use a Textarea. In React, Base UI does not update 0/60 while someone types.
Installation
Sign in to get your install command
Free with an account. It carries your token, so the CLI installs everything in one go.
Anatomy

Usage
<InputGroup className="w-full max-w-sm bg-background">
<InputGroupInput
id="input-group-counter-title"
maxLength={60}
placeholder="Enter title"
type="text"
/>
<InputGroupAddon align="block-start">
<Label className="text-foreground" htmlFor="input-group-counter-title">
Title
</Label>
<InputGroupText className="ms-auto">0/60</InputGroupText>
</InputGroupAddon>
</InputGroup>FAQ
How do the label and the count share the header?
Both sit in one block-start InputGroupAddon; ms-auto on the count pushes it to the end.
API Reference
Input Group
Sets id="input-group-counter-title", maxLength={60}, placeholder="Enter title", type="text" and align="block-start". The rest is on the Input Group page.
Label
Sets htmlFor="input-group-counter-title". The rest is on the Label page.





