---
name: "@pulld"
slug: "pulld"
description: "Typed, accessible, theme-aware React/Tailwind components installable by the shadcn CLI or your AI coding agent. Free atoms plus composed Pro blocks."
category: "AI/chat UI"
tags: ["accessibility", "ai", "auth", "blocks", "buttons", "cards", "forms", "loaders", "media", "onboarding", "overlays", "pro-available", "theming"]
framework: "react"
license: null
author: null
website: "https://pulld.pages.dev"
github: null
registry: "https://pulld.pages.dev/r/registry.json"
pro: true
pro_url: "https://pulld.pages.dev/go/pro"
github_stars: null
component_count: 42
generated_at: "2026-07-28T08:00:50.948Z"
---

# @pulld

Typed, accessible, theme-aware React/Tailwind components installable by the shadcn CLI or your AI coding agent. Free atoms plus composed Pro blocks.

## Links

- Website: https://pulld.pages.dev
- Registry JSON: https://pulld.pages.dev/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/pulld
- This file: https://sh4dcn.vercel.app/md/pulld.md
- Pro / pricing: https://pulld.pages.dev/go/pro

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://pulld.pages.dev/r/registry.json
pnpm dlx shadcn@latest add https://pulld.pages.dev/r/registry.json
bunx shadcn@latest add https://pulld.pages.dev/r/registry.json
# fetch the raw registry index
curl -s https://pulld.pages.dev/r/registry.json
```

## Components (42)

| name | type | description | install |
| --- | --- | --- | --- |
| copy-button | registry:ui | Accessible icon button that copies a string to the clipboard and shows a transient copied state. Has aria-label, an aria-live announcement, keyboard focus ring… | `npx shadcn@latest add https://pulld.pages.dev/r/copy-button.json` |
| kbd | registry:ui | Inline keyboard key hint that renders a styled <kbd> element for showing shortcuts, hotkeys, and keybindings like Cmd+K, Ctrl+S, or ⇧⌘P. Use it in command pale… | `npx shadcn@latest add https://pulld.pages.dev/r/kbd.json` |
| empty-state | registry:ui | Centered empty/zero-data placeholder with an optional icon, title, description, and call-to-action slot. Use it when a list, table, search result, inbox, or da… | `npx shadcn@latest add https://pulld.pages.dev/r/empty-state.json` |
| stat-card | registry:ui | The single-number tile at the top of a dashboard: a label, one big value, and an optional percentage change with an up or down arrow — green when the number mo… | `npx shadcn@latest add https://pulld.pages.dev/r/stat-card.json` |
| theme-toggle | registry:ui | Self-contained light/dark mode toggle button. Persists the choice to localStorage, respects the OS prefers-color-scheme on first load, and toggles the 'dark' c… | `npx shadcn@latest add https://pulld.pages.dev/r/theme-toggle.json` |
| avatar-stack | registry:ui | Row of overlapping circular avatars (a facepile) that collapses the overflow into a '+N' badge past a max count, with a letter-initial fallback when an avatar … | `npx shadcn@latest add https://pulld.pages.dev/r/avatar-stack.json` |
| password-input | registry:ui | Password text input with a built-in show/hide toggle button. Toggles between password and text, has an accessible aria-label and aria-pressed, and the toggle s… | `npx shadcn@latest add https://pulld.pages.dev/r/password-input.json` |
| spinner | registry:ui | Accessible loading spinner (animated lucide Loader2) with role=status, aria-live, and a configurable screen-reader-only label so assistive tech announces the b… | `npx shadcn@latest add https://pulld.pages.dev/r/spinner.json` |
| code-block | registry:ui | Code snippet container with an optional language label and a hover/focus-revealed copy button (composes pulld's copy-button). Use it in docs, changelogs, and d… | `npx shadcn@latest add https://pulld.pages.dev/r/code-block.json` |
| loading-button | registry:ui | Button that shows a spinner and disables itself while an async action is pending. Set loading=true during submit, save, or checkout to prevent double-clicks; a… | `npx shadcn@latest add https://pulld.pages.dev/r/loading-button.json` |
| confirm-button | registry:ui | Two-step confirm button for destructive actions: the first click arms it and swaps the label to a confirmation prompt, the second click runs onConfirm. Auto-re… | `npx shadcn@latest add https://pulld.pages.dev/r/confirm-button.json` |
| command-palette | registry:ui | A production-ready ⌘K command palette: accessible (combobox/listbox roles, aria-activedescendant, focus trapped and restored), full keyboard navigation with wr… | `npx shadcn@latest add https://pulld.pages.dev/r/command-palette.json` |
| toast | registry:ui | A production-ready toast/notification system: call toast(), toast.success/error/info/warning/loading or toast.promise() from anywhere — no provider or context … | `npx shadcn@latest add https://pulld.pages.dev/r/toast.json` |
| search-input | registry:ui | Search field with a leading search icon and a trailing clear (✕) button that appears once there's text and empties the field, refocusing it. Works controlled o… | `npx shadcn@latest add https://pulld.pages.dev/r/search-input.json` |
| number-input | registry:ui | Number field with − and + stepper buttons that respect min, max, and step (including decimal steps), so users adjust a value without selecting and retyping. Wo… | `npx shadcn@latest add https://pulld.pages.dev/r/number-input.json` |
| otp-input | registry:ui | One-time passcode / verification code input split into individual single-character slots (default 6). Use it for two-factor authentication (2FA), email confirm… | `npx shadcn@latest add https://pulld.pages.dev/r/otp-input.json` |
| tag-input | registry:ui | Multi-value text input that turns typed entries into removable chips — press Enter or comma to add a tag, click the × or press Backspace on an empty field to r… | `npx shadcn@latest add https://pulld.pages.dev/r/tag-input.json` |
| copy-field | registry:ui | Read-only input that shows a value with a copy button docked at its right edge — one click copies, and focusing or clicking the field selects the whole value f… | `npx shadcn@latest add https://pulld.pages.dev/r/copy-field.json` |
| segmented-control | registry:ui | Horizontal group of 2–4 mutually exclusive options rendered as one pill/track — a lighter switch than Tabs for toggling a view, time range, unit, sort order, o… | `npx shadcn@latest add https://pulld.pages.dev/r/segmented-control.json` |
| step-indicator | registry:ui | Horizontal stepper that shows progress through a fixed sequence — numbered circle markers joined by a line, with each step rendered as complete (filled with a … | `npx shadcn@latest add https://pulld.pages.dev/r/step-indicator.json` |
| rating | registry:ui | Star rating for both input and display, with half-star support. Use it to collect a score — rate this product, leave a review, a satisfaction or feedback ratin… | `npx shadcn@latest add https://pulld.pages.dev/r/rating.json` |
| timeline | registry:ui | Vertical timeline that renders a list of events as dots on a connecting line, each with an optional time, title, and description. Use it for an activity feed, … | `npx shadcn@latest add https://pulld.pages.dev/r/timeline.json` |
| announcement-bar | registry:ui | Dismissible top-of-page announcement / notice bar for a site-wide message: a new feature or launch, a promo/sale/campaign, a scheduled-maintenance or downtime … | `npx shadcn@latest add https://pulld.pages.dev/r/announcement-bar.json` |
| file-dropzone | registry:ui | Drag-and-drop file upload area that also opens the native file picker on click, Enter, or Space. Use it wherever a user uploads a file: an avatar or image uplo… | `npx shadcn@latest add https://pulld.pages.dev/r/file-dropzone.json` |
| progress-ring | registry:ui | Circular (radial) progress indicator drawn with SVG stroke-dasharray, showing completion as a ring that fills clockwise from 12 o'clock with a smooth animated … | `npx shadcn@latest add https://pulld.pages.dev/r/progress-ring.json` |
| pricing-card | registry:ui | A pricing plan card for a pricing page, upsell, or paywall/subscription row: plan name, a big price with a billing period (e.g. $29 /mo), an optional short des… | `npx shadcn@latest add https://pulld.pages.dev/r/pricing-card.json` |
| feature-card | registry:ui | An icon + title + description feature card for a "why us", benefits, or features grid on a landing or marketing page: a tinted icon square, a heading, and a li… | `npx shadcn@latest add https://pulld.pages.dev/r/feature-card.json` |
| gauge | registry:ui | A semicircular (half-circle) gauge / dial that shows a single measurement within a known range, drawn with an SVG arc that fills from the left with a smooth an… | `npx shadcn@latest add https://pulld.pages.dev/r/gauge.json` |
| time-ago | registry:ui | Auto-updating relative timestamp — "3 minutes ago", "just now", "in 2 days" — that re-renders on a timer so the label stays fresh without a reload. Use it wher… | `npx shadcn@latest add https://pulld.pages.dev/r/time-ago.json` |
| multi-select | registry:ui | Searchable multi-select dropdown — pick several options from a list, shown as removable badges in the trigger. Use it wherever a form needs "choose one or more… | `npx shadcn@latest add https://pulld.pages.dev/r/multi-select.json` |
| countdown | registry:ui | A live countdown timer to a future moment — it re-renders every second, ticks down, never goes negative, and fires an onComplete callback once when it reaches … | `npx shadcn@latest add https://pulld.pages.dev/r/countdown.json` |
| inline-edit | registry:ui | Click-to-edit text that stays in place: it shows a value as plain text with a subtle pencil affordance, then swaps to an input right where the text was when yo… | `npx shadcn@latest add https://pulld.pages.dev/r/inline-edit.json` |
| autosize-textarea | registry:ui | A textarea that auto-grows as you type and stops at a maximum height, then scrolls. Use it wherever a fixed-height box is wrong: a chat, message, or AI prompt … | `npx shadcn@latest add https://pulld.pages.dev/r/autosize-textarea.json` |
| currency-input | registry:ui | A money input that shows a grouped, currency-formatted amount ($1,234.50) when idle and the raw number while you're editing, so the cursor never fights the tho… | `npx shadcn@latest add https://pulld.pages.dev/r/currency-input.json` |
| floating-label-input | registry:ui | A text input whose label rests inside the field like a placeholder, then shrinks and floats up onto the top border the moment the field is focused or has a val… | `npx shadcn@latest add https://pulld.pages.dev/r/floating-label-input.json` |
| bulk-action-bar | registry:ui | The bar that appears once rows are selected in a table or list — it shows "3 items selected", holds your bulk actions (delete, archive, export, assign, move, a… | `npx shadcn@latest add https://pulld.pages.dev/r/bulk-action-bar.json` |
| save-status | registry:ui | The small inline "Saving… / Saved 2 minutes ago / Couldn't save · Retry" indicator that sits beside an autosaving surface. Use it wherever edits persist in the… | `npx shadcn@latest add https://pulld.pages.dev/r/save-status.json` |
| form-error-summary | registry:ui | The block that appears above a form after a failed submit — "There are 3 problems with your submission" followed by one link per error that jumps focus straigh… | `npx shadcn@latest add https://pulld.pages.dev/r/form-error-summary.json` |
| type-to-confirm | registry:ui | The confirmation step in front of an irreversible action: the user has to type the resource's own name ("acme-prod") before the destructive button turns on. Us… | `npx shadcn@latest add https://pulld.pages.dev/r/type-to-confirm.json` |
| keyboard-shortcuts | registry:ui | The help sheet that opens when the user presses ? — a modal listing every keyboard shortcut in the app, grouped by area, with the key caps drawn per platform. … | `npx shadcn@latest add https://pulld.pages.dev/r/keyboard-shortcuts.json` |
| upload-list | registry:ui | The list of files under a dropzone or file picker — one row each with the file name, its size, a progress bar while it uploads, an error with a retry button wh… | `npx shadcn@latest add https://pulld.pages.dev/r/upload-list.json` |
| bento-grid | registry:ui | The asymmetric panel grid behind most modern feature sections: a set of cards on one grid where a few cells are deliberately two columns wide or two rows tall,… | `npx shadcn@latest add https://pulld.pages.dev/r/bento-grid.json` |

## For AI agents

```text
You are adding components from @pulld to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/pulld.md) for the component list.
2. Fetch the machine-readable index: https://pulld.pages.dev/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: pulld).
```
