# Stack List

> Sectioned tools/stack definition list.

A shadcn/ui block from the [@atroui](https://www.atroui.com) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/atroui/stack-list).

- Page, with a live preview: https://shadcn.exchange/r/atroui/stack-list
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/atroui/stack-list-light-1616e724ad5b70e0.png
- Registry item: https://www.atroui.com/r/stack-list.json
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://www.atroui.com/r/stack-list.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Files

### `registry/default/blocks/stack-list.tsx`

```tsx
const CONTENT = {
  stamp: "Stack",
}

const SECTIONS = [
  {
    title: "Everyday",
    entries: [
      { label: "Editor", value: "Cursor / VS Code" },
      { label: "Runtime", value: "Node · pnpm · Next.js" },
      { label: "UI", value: "React · Tailwind · AtroUI" },
    ],
  },
  {
    title: "Ship",
    entries: [
      { label: "Hosting", value: "Vercel" },
      { label: "Repo", value: "GitHub" },
      { label: "Design", value: "Figma" },
    ],
  },
]

export function StackList({
  stamp = CONTENT.stamp,
  sections = SECTIONS,
  className,
}: {
  stamp?: string
  sections?: Array<{
    title: string
    entries: Array<{ label: string; value: string }>
  }>
  className?: string
} = {}) {
  return (
    <div className={className ?? "mx-auto max-w-[640px] space-y-12"}>
      {stamp ? (
        <h2 className="font-mono text-[10.5px] tracking-[0.12em] text-muted-foreground uppercase">
          {stamp}
        </h2>
      ) : null}
      {sections.map((section) => (
        <section key={section.title}>
          <h3 className="mb-4 font-mono text-[10.5px] tracking-[0.12em] text-muted-foreground uppercase">
            {section.title}
          </h3>
          <dl className="divide-y divide-border-subtle border-y border-border-subtle">
            {section.entries.map((e) => (
              <div
                key={e.label}
                className="grid grid-cols-[96px_1fr] gap-4 py-3 sm:grid-cols-[140px_1fr]"
              >
                <dt className="pt-[4px] font-mono text-[10.5px] tracking-[0.1em] text-muted-foreground uppercase">
                  {e.label}
                </dt>
                <dd className="text-[14.5px] leading-[1.55] text-foreground">
                  {e.value}
                </dd>
              </div>
            ))}
          </dl>
        </section>
      ))}
    </div>
  )
}
```
