Components

Getting started

Blocks21

Components154

More

A username picker with a penguin holding a sign: your name appears on it as you type; if it’s taken, its smug owner slides in hugging a sign with your name on it.

Used forOnboardingProfile settingsWorkspace URLsCreator links

Install with the shadcn CLI

$ npx shadcn@latest add https://hairlineui.com/r/username.json

Templates

Need the whole page?

43 Next.js landing pages, each designed from scratch. Try any of them live; one is $39, all of them $99, and 5 are free.

All 43 templates

Where it’s used

  • Onboarding

    Choose a handle right after signing up.

  • Profile settings

    Change your username, with suggestions when it’s gone.

  • Workspace URLs

    Claim your team’s slug (relay.app/northwind).

  • Creator links

    Pick the link people will share.

What it handles for you

A username field usually waits until submit to say a name is taken, and leaves people guessing what to try. This block checks as they type, says why a name won’t do, and offers names that are free.

Instead of wiring upa username fieldan availability checkdebounce and abortsuggestionsa claim button
  1. Checked as you type

    check runs 380ms after typing stops; a newer name aborts the older request.

  2. Rules said plainly

    Lowercase as you type; too short, too long or a character that isn’t allowed says so before any check.

  3. Something to try

    When a name is taken, the suggestions your check returns are one-tap chips.

  4. Your prefix

    prefix shows @, or your domain for workspace URLs.

  5. Claim with states

    Claim @name → Claiming → Claimed, or the server’s reason under the field.

  6. A check that failed

    If check throws, the field says it couldn’t check instead of guessing.

Overview

Picking a username is a field, a spinner and a red “taken”. This one hands the name to Handle, an illustrated penguin holding a blank sign on the lit stage. As you type, the name appears on his sign letter by letter. When the check says it’s free he beams and a green tick lands on the corner of the sign. When it’s taken his sign goes blank and his face falls, and its owner, a smug penguin in a red scarf, slides in from the side hugging a sign with your name on it: “@ana is mine.” The suggestions your check returns come back as chips under the field, and one tap writes them on the sign. Under the penguins it is a careful picker: lowercase as you type, a length range and allowed characters with a plain hint, a debounced, abortable check, and Claim wired to your function.

States

empty
Handle holds up a sign with just “@”; “Handle will hold it up”.
typing
The name appears on his sign as you type (letters rise in through Text morph), shrinking to fit longer names; “Handle is asking around” while the check runs.
free
He beams (pose crossfade, 220ms), a green tick springs onto the sign’s corner, the hint says Available and Claim @name lights up.
taken
His sign goes blank and his face falls; the owner slides in from the right (520ms) hugging a sign with the name; “@ana is mine.” Suggestions rise in under the field, 50ms apart.
not allowed
A character outside the pattern: he looks lost, and the field shows the hint (“Letters, numbers and _ only.”) with no check.
claimed
Claim → Claiming → Claimed with a drawn check; “Hello, @ana”. If onClaim throws, the message shows under the field.

Usage

usage.tsx
import { Username } from "@/components/username";<Username  check={(name, signal) => fetch(`/api/usernames/${name}`, { signal }).then((r) => r.json())}  onClaim={(name) => fetch("/api/me/username", { method: "PUT", body: JSON.stringify({ name }) })}/>

Works with

With your users table

Return { available, suggestions } from one endpoint and let a unique index have the last word on claim.

example.tsx
"use client";import { Username } from "@/components/username";export function PickUsername({ onDone }: { onDone: () => void }) {  return (    <Username      check={async (name, signal) => {        const res = await fetch(`/api/usernames/${encodeURIComponent(name)}`, { signal });        if (!res.ok) throw new Error("Couldn’t check");        return res.json(); // { available: boolean, suggestions?: string[] }      }}      onClaim={async (name) => {        const res = await fetch("/api/me/username", { method: "PUT", body: JSON.stringify({ name }) });        if (res.status === 409) throw new Error("Someone just took it. Try another.");        if (!res.ok) throw new Error("Couldn’t save that.");        setTimeout(onDone, 900);      }}    />  );}

Props

PropTypeDescription
check(name: string, signal: AbortSignal) => Promise<{ available: boolean; suggestions?: string[] }>Is the name free? Called 380ms after typing stops; aborted when a newer name starts.
onClaim(name: string) => Promise<unknown>Keep the name. Throw an Error to show its message.
minLength / maxLengthnumberdefault 3 / 20The length range, said in the line under the title.
pattern / patternHintRegExp / stringdefault /^[a-z0-9_]+$/ / "Letters, numbers and _ only."What the whole name may contain, and what to say when it doesn’t.
prefixstringdefault "@"Shown in the field and on the signs; use your domain for workspace URLs.
defaultValue / title / namestringdefault "" / "Pick a username" / "Handle"A starting name, the heading, and the penguin’s name in his lines.

Accessibility and motion

  • The field is a labelled username input; its hint says Available or Taken and its error says why a name won’t do. A status region announces availability and the claim.
  • The penguins are decoration (aria-hidden). Their poses are illustrations shipped inside handle-art.ts as WebP data URIs (37KB of images), with each sign’s position and tilt measured so the name is written on it in code.
  • The scene is drawn at 364 × 176 and scaled to the stage; the owner slides in with a transform.
  • With reduced motion the poses and the owner change in place.
  • Built from Input, Status button and Text morph, which the CLI installs with it. No animation library.

Requirements

React 19, Tailwind CSS v4 and shadcn/ui theme variables (any style, light and dark). Icons from lucide-react.

The CLI also installs Input, Status button, Text morph.

Source

components/username.tsx
"use client";import * as React from "react";import { HANDLE_ART as ART, HANDLE_GEO as GEO } from "./handle-art";import { Input } from "./input";import { StatusButton, type ActionStatus } from "./status-button";import { TextMorph } from "./text-morph";import { EASE_OUT, useInteractionReducedMotion } from "./ui-interaction-motion";/* ───────────────────────────────────────────────────────── * USERNAME: a penguin holds up the name you want * *   write    as you type, the name appears on Handle's sign, *            letter by letter *   free     check() says it's available: he beams, a green tick *            lands on the corner of his sign *   taken    it isn't: his sign goes blank and his face falls, *            and its owner, a smug penguin in a scarf, slides in *            hugging a sign with your name on it ("@ana is mine") *   try      suggestions come back as chips; one tap writes it *   claim    Claim @name → Claiming → Claimed * * check(name, signal) and onClaim(name) are yours; the field * lowercases as you type and keeps to the characters you allow. * ───────────────────────────────────────────────────────── */export interface UsernameProps {  /** Is the name free? Aborted when a newer name starts. Suggestions show when it isn't. */  check: (name: string, signal: AbortSignal) => Promise<{ available: boolean; suggestions?: string[] }>;  /** Keep the name; throw to say why not. */  onClaim: (name: string) => Promise<unknown>;  defaultValue?: string;  minLength?: number;  maxLength?: number;  /** Characters allowed (the whole name is tested). */  pattern?: RegExp;  /** Says what's allowed when the pattern fails. */  patternHint?: string;  /** "@", or your domain ("relay.app/"). */  prefix?: string;  title?: string;  /** What the penguin is called in his lines. */  name?: string;  className?: string;}type Phase = "empty" | "short" | "invalid" | "checking" | "free" | "taken" | "error";const mix = (color: string, amount: number, into = "transparent") => `color-mix(in oklab, ${color} ${amount}%, ${into})`;const PF = "var(--primary-foreground)";const CARD: React.CSSProperties = {  backgroundImage: `linear-gradient(180deg, var(--card), ${mix("var(--card)", 95, "var(--foreground)")})`,  boxShadow: `0 0 0 1px var(--border), inset 0 1px 0 ${mix("var(--background)", 85)}`,};/* The one lit surface: an ice floe's soft glow under the penguins, and faint snow. */const STAGE: React.CSSProperties = {  backgroundColor: "var(--primary)",  backgroundImage: [    `radial-gradient(60% 40% at 50% 100%, ${mix(PF, 26)} 0%, transparent 70%)`,    `linear-gradient(175deg, transparent 40%, ${mix("black", 20)} 100%)`,    `radial-gradient(circle, ${mix(PF, 28)} 0 1px, transparent 1.5px)`,    `radial-gradient(circle, ${mix(PF, 18)} 0 1px, transparent 1.5px)`,  ].join(", "),  backgroundSize: "auto, auto, 46px 38px, 31px 27px",  backgroundPosition: "0 0, 0 0, 0 0, 14px 9px",  boxShadow: `inset 0 1px 0 ${mix(PF, 36)}, inset 0 0 0 1px ${mix(PF, 12)}`,};const LIT: React.CSSProperties = {  backgroundImage: `linear-gradient(180deg, ${mix(PF, 16)}, transparent 60%)`,  boxShadow: `inset 0 1px 0 ${mix(PF, 32)}, inset 0 0 0 1px ${mix("black", 10)}`,};const INK = "oklch(0.25 0.02 260)";/* the scene, drawn at 364 × 176 and scaled to the stage */const W = 364;const H = 176;const GROUND = 172;const OURS = { x: 118, h: 124 };const OWNER = { x: 272, out: W + 80, h: 124 };type Pose = "hope" | "joy" | "sad" | "owner";/** A penguin, standing with its feet at (x, GROUND), with `text` written on its sign. */function Penguin({ pose, x, h, text, tick, style }: { pose: Pose; x: number; h: number; text: string; tick?: boolean; style?: React.CSSProperties }) {  const g = GEO[pose];  const k = h / g.h;  const w = g.w * k;  const b = g.board;  const len = Math.max(1, text.length);  const font = Math.min(17, ((b.w * k * 0.82) / len) * 1.6);  return (    <div className="absolute left-0 top-0" style={{ transform: `translate(${x - w / 2}px, ${GROUND - h}px)`, width: w, height: h, ...style }}>      {/* eslint-disable-next-line @next/next/no-img-element */}      <img src={ART[pose]} alt="" draggable={false} className="pointer-events-none absolute inset-0 size-full max-w-none select-none" />      <div        className="absolute flex items-center justify-center whitespace-nowrap font-semibold tracking-[-0.02em]"        style={{          left: (b.x - b.w / 2) * k,          top: (b.y - b.h / 2) * k,          width: b.w * k,          height: b.h * k,          transform: `rotate(${b.angle}deg)`,          color: INK,          fontSize: font,        }}      >        <TextMorph>{text || " "}</TextMorph>        <span          className="absolute -right-1.5 -top-1.5 grid size-[18px] place-items-center rounded-full text-white"          style={{ background: "var(--color-emerald-500, oklch(0.7 0.16 162))", opacity: tick ? 1 : 0, transform: tick ? "scale(1) rotate(0deg)" : "scale(0.3) rotate(-30deg)", transition: "opacity 200ms, transform 420ms cubic-bezier(0.34,1.36,0.64,1)" }}        >          <svg viewBox="0 0 16 16" className="size-3" fill="none">            <path d="M3.8 8.3 6.6 11 12.2 5" stroke="currentColor" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round" />          </svg>        </span>      </div>    </div>  );}export function Username({  check,  onClaim,  defaultValue = "",  minLength = 3,  maxLength = 20,  pattern = /^[a-z0-9_]+$/,  patternHint = "Letters, numbers and _ only.",  prefix = "@",  title = "Pick a username",  name = "Handle",  className = "",}: UsernameProps) {  const reduced = useInteractionReducedMotion();  const baseId = React.useId();  const [value, setValue] = React.useState(defaultValue.toLowerCase());  const [result, setResult] = React.useState<{ name: string; available: boolean; suggestions: string[] } | null>(null);  const [failed, setFailed] = React.useState<string | null>(null);  const [claim, setClaim] = React.useState<{ status: ActionStatus; error?: string }>({ status: "idle" });  const checkRef = React.useRef(check);  React.useEffect(() => {    checkRef.current = check;  });  const valid = value.length >= minLength && pattern.test(value);  React.useEffect(() => {    if (!valid) return;    const ctrl = new AbortController();    const timer = window.setTimeout(() => {      checkRef.current(value, ctrl.signal).then(        (r) => !ctrl.signal.aborted && setResult({ name: value, available: r.available, suggestions: r.suggestions ?? [] }),        () => !ctrl.signal.aborted && setFailed(value),      );    }, 380);    return () => {      window.clearTimeout(timer);      ctrl.abort();    };  }, [value, valid]);  const known = result && result.name === value ? result : null;  const phase: Phase = !value    ? "empty"    : !pattern.test(value)      ? "invalid"      : value.length < minLength        ? "short"        : failed === value          ? "error"          : !known            ? "checking"            : known.available              ? "free"              : "taken";  const claimed = claim.status === "success";  const pose: Pose = claimed || phase === "free" ? "joy" : phase === "taken" || phase === "invalid" ? "sad" : "hope";  const handle = `${prefix}${value}`;  const mood = claimed    ? `Hello, ${handle}`    : phase === "free"      ? `${handle} is all yours`      : phase === "taken"        ? `“${handle} is mine.”`        : phase === "checking"          ? `${name} is asking around`          : phase === "invalid"            ? `${name} can’t write that`            : phase === "short"              ? "A little longer"              : phase === "error"                ? `${name} couldn’t check`                : `${name} will hold it up`;  const set = (next: string) => {    setValue(next.toLowerCase().slice(0, maxLength));    if (claim.status !== "idle" && claim.status !== "pending") setClaim({ status: "idle" });  };  const submit = async (e: React.FormEvent) => {    e.preventDefault();    if (phase !== "free" || claim.status === "pending" || claimed) return;    setClaim({ status: "pending" });    try {      await onClaim(value);      setClaim({ status: "success" });    } catch (err) {      setClaim({ status: "error", error: err instanceof Error && err.message ? err.message : "Couldn’t claim that. Try again." });    }  };  const fade = reduced ? "none" : `transform 520ms cubic-bezier(0.22,1,0.36,1), opacity 300ms ${EASE_OUT}`;  const ownerIn = phase === "taken";  const error = phase === "invalid" ? patternHint : phase === "error" ? "Couldn’t check that name. Try again." : claim.status === "error" ? claim.error : undefined;  return (    <section aria-labelledby={`${baseId}-title`} className={`relative w-full max-w-[380px] rounded-[28px] p-2 text-card-foreground ${className}`} style={CARD}>      {/* Its natural width where the parent sizes to its content, without forcing it on narrow screens. */}      <div aria-hidden="true" data-natural-width className="grid h-0" style={{ gridTemplateColumns: "minmax(0, 380px)" }} />      <div className="@container w-full">        <div className="relative overflow-clip rounded-[22px] text-primary-foreground" style={STAGE}>          <Scene>            {(["hope", "joy", "sad"] as const).map((p) => (              <Penguin                key={p}                pose={p}                x={OURS.x}                h={OURS.h}                text={phase === "taken" ? "" : value ? handle : prefix}                tick={p === "joy" && (phase === "free" || claimed)}                style={{ opacity: p === pose ? 1 : 0, transition: reduced ? "none" : `opacity 220ms ${EASE_OUT}` }}              />            ))}            {/* the one who already has it */}            <Penguin              pose="owner"              x={ownerIn ? OWNER.x : OWNER.out}              h={OWNER.h}              text={known && !known.available ? `${prefix}${known.name}` : ""}              style={{ opacity: ownerIn ? 1 : 0, transition: fade }}            />          </Scene>          <p className="absolute left-3.5 top-3 z-10 max-w-[70%] text-[12.5px] font-medium text-primary-foreground/85">            <TextMorph>{mood}</TextMorph>          </p>        </div>        <form className="px-3 pb-1 pt-3" onSubmit={submit} noValidate>          <h2 id={`${baseId}-title`} className="text-[15px] font-medium tracking-[-0.01em]">            {title}          </h2>          <p className="mt-0.5 text-[12.5px] text-muted-foreground">            {minLength} to {maxLength} characters. You can change it later.          </p>          <Input            className="mt-3"            aria-label="Username"            leading={<span className="text-[13.5px]">{prefix}</span>}            placeholder="yourname"            value={value}            onValueChange={set}            autoComplete="username"            autoCapitalize="off"            spellCheck={false}            maxLength={maxLength}            error={error}            hint={phase === "taken" ? "Taken. Try one of these:" : phase === "free" ? "Available." : undefined}          />          {phase === "taken" && known && known.suggestions.length > 0 && (            <div className="mt-2 flex flex-wrap gap-1.5" aria-label="Suggestions">              {known.suggestions.slice(0, 4).map((s, i) => (                <button                  key={s}                  type="button"                  onClick={() => set(s)}                  className="h-7 cursor-pointer rounded-full border border-border bg-background px-2.5 text-[12.5px] hover:bg-accent"                  style={reduced ? undefined : { animation: `ui-fade-up 320ms ${EASE_OUT} ${i * 50}ms backwards` }}                >                  {prefix}                  {s}                </button>              ))}            </div>          )}          <StatusButton            type="submit"            status={claim.status}            labels={{ idle: phase === "free" ? `Claim ${handle}` : "Claim", pending: "Claiming", success: "Claimed", error: "Try again" }}            disabled={phase !== "free" && claim.status !== "pending" && !claimed}            className="mt-3 h-10 w-full text-[13.5px] disabled:bg-[color-mix(in_oklab,var(--foreground)_7%,transparent)] disabled:text-muted-foreground"            style={phase === "free" && claim.status !== "error" ? LIT : undefined}          />        </form>      </div>      <span className="sr-only" role="status">        {phase === "free" ? `${handle} is available.` : phase === "taken" ? `${handle} is taken.` : claimed ? `${handle} is yours.` : ""}      </span>    </section>  );}/** The stage's scene, drawn at 364 × 176 and scaled to fit. */function Scene({ children }: { children: React.ReactNode }) {  const host = React.useRef<HTMLDivElement>(null);  const scene = React.useRef<HTMLDivElement>(null);  React.useLayoutEffect(() => {    const h = host.current;    const s = scene.current;    if (!h || !s) return;    const fit = () => s.style.setProperty("transform", `scale(${h.clientWidth / W})`);    fit();    const ro = new ResizeObserver(fit);    ro.observe(h);    return () => ro.disconnect();  }, []);  return (    <div ref={host} aria-hidden="true" className="relative w-full" style={{ aspectRatio: `${W} / ${H}` }}>      <div ref={scene} className="absolute left-0 top-0 origin-top-left" style={{ width: W, height: H }}>        {children}      </div>    </div>  );}export default Username;
components/handle-art.ts
/* Handle's art: an illustrated penguin with a blank sign, hopeful, overjoyed and let down, and the smug penguin who already has your name. As WebP data URIs so one install brings everything; sizes in each image's own pixels, and the sign's middle, size and tilt so a name can be written on it. */export const HANDLE_ART = {  hope: "data:image/webp;base64,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",  joy: "data:image/webp;base64,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",  sad: "data:image/webp;base64,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",  owner: "data:image/webp;base64,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",};export const HANDLE_GEO = {  hope: { w: 193, h: 241, board: { x: 96, y: 154.7, w: 140.1, h: 70.8, angle: 0 } },  joy: { w: 198, h: 244, board: { x: 98.5, y: 139.9, w: 152.5, h: 73.1, angle: -2.9 } },  sad: { w: 186, h: 248, board: { x: 93.2, y: 165.9, w: 125.8, h: 66, angle: 0 } },  owner: { w: 208, h: 250, board: { x: 100, y: 150, w: 92, h: 66, angle: -8 } },} as const;
components/ui-interaction-motion.ts
'use client';import * as React from 'react';export const EASE_OUT = 'cubic-bezier(0.16, 1, 0.3, 1)';export const EASE_SETTLE = 'cubic-bezier(0.22, 1.18, 0.36, 1)';/** Thrown things (indicators, thumbs): a slight overshoot on transform only. */export const EASE_THROW = 'cubic-bezier(0.34, 1.36, 0.64, 1)';/** * The press every button primitive shares: a 3% give that eases in and settles back. * Tailwind v4's scale-* writes the `scale` property, so `scale` has to be in the list * or the press snaps. */export const INTERACTION_PRESS =  'transition-[background-color,color,box-shadow,opacity,scale] duration-200 ease-[cubic-bezier(0.16,1,0.3,1)] active:scale-[0.97] motion-reduce:transition-none motion-reduce:active:scale-100';export const INTERACTION_FOCUS ='focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background';const query = '(prefers-reduced-motion: reduce)';const subscribe = (notify: () => void) => {  const media = window.matchMedia(query);  media.addEventListener('change', notify);  return () => media.removeEventListener('change', notify);};export const useInteractionReducedMotion = () => React.useSyncExternalStore(subscribe, () => window.matchMedia(query).matches, () => false);export function useInteractionActivity<T extends Element>() {  const ref = React.useRef<T>(null);  const [visible, setVisible] = React.useState(false);  const [hidden, setHidden] = React.useState(false);  React.useEffect(() => {    const el = ref.current;    if (!el) return;    const observer = new IntersectionObserver(([entry]) => setVisible(entry.isIntersecting));    observer.observe(el);    const visibility = () => setHidden(document.hidden);    visibility(); document.addEventListener('visibilitychange', visibility);    return () => { observer.disconnect(); document.removeEventListener('visibilitychange', visibility); };  }, []);  return { ref, active: visible && !hidden };}export function interactionIcon(on: boolean, reduced: boolean): React.CSSProperties {  return { opacity: on ? 1 : 0, transform: on ? 'none' : 'scale(0.6)', filter: on ? 'blur(0px)' : 'blur(3px)', transition: reduced ? 'none' : `opacity 220ms ${EASE_OUT}, transform 380ms ${EASE_OUT}, filter 220ms ${EASE_OUT}` };}/** Sample recent movement rather than averaging a long drag and losing its release velocity. */export type PointerSample = { x: number; time: number };export function samplePointer(samples: PointerSample[], x: number, time: number) {  samples.push({ x, time });  while (samples.length > 2 && time - samples[0].time > 100) samples.shift();}export function releaseVelocity(samples: PointerSample[], now: number) {  if (samples.length < 2 || now - samples[samples.length - 1].time > 100) return 0;  const first = samples[0], last = samples[samples.length - 1];  return (last.x - first.x) / Math.max(1, last.time - first.time);}/** Smooth Apple/rational rubber-band curve: continuous exponential-like resistance without linear kinks. */export function rubberBand(overshoot: number, dimension = 320, constant = 0.55): number {  const d = dimension || 320;  const abs = Math.abs(overshoot);  return Math.sign(overshoot) * (1 - 1 / ((abs * constant) / d + 1)) * d;}/** Projects resting travel from release velocity (velocity in px/ms; time in seconds). */export function projectInertia(distance: number, velocity: number, time = 0.12): number {  return distance + velocity * 1000 * time;}/** Smooths incoming release velocity toward a boundary so springs don't slam or clip into walls. */export function softenVelocity(velocity: number, distanceToTarget: number, factor = 10): number {  const maxAllowed = Math.abs(distanceToTarget) * factor;  return Math.sign(velocity) * Math.min(Math.abs(velocity), maxAllowed);}/** A damped spring sampled by WAAPI: tuned for organic lightness with a hint of life (3% breath). */export function springFrames(  from: number,  to: number,  velocity = 0,  duration = 480,  config: { omega?: number; damping?: number; steps?: number } = {},) {  const { omega = 16, damping = 0.74, steps = 36 } = config;  const damped = omega * Math.sqrt(Math.max(0.001, 1 - damping * damping));  const displacement = from - to;  const coefficient = (velocity * 1000 + damping * omega * displacement) / damped;  return Array.from({ length: steps + 1 }, (_, i) => {    const t = (i / steps) * (duration / 1000);    const value = to + Math.exp(-damping * omega * t) * (displacement * Math.cos(damped * t) + coefficient * Math.sin(damped * t));    return { value: i === steps ? to : value, offset: i / steps };  });}

Registry item: /r/username.json