# Organization Profile Card

> Company profile card with a logo mark, verified badge, stat strip, member avatar stack, and website and contact links.

A shadcn/ui block from the [@7ovr](https://7ovr.com) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/7ovr/profile-3).

- Page, with a live preview: https://shadcn.exchange/r/7ovr/profile-3
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/7ovr/profile-3-light-e7ddc8c7288861df.png
- Registry item: https://7ovr.com/r/profile-3.json
- Categories: profile
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://7ovr.com/r/profile-3.json
```

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

## Dependencies

- npm packages: `@base-ui/react`
- Registry items: `avatar`, `badge`, `button`, `separator`

## Notes from the registry

Requires a `base-*` style in components.json (the `shadcn init` default). Legacy `new-york`/`radix-*` styles install Radix primitives, which reject the `render` prop this block uses.

## Files

### `registry/blocks/profile/3/profile-block.tsx`

```tsx
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Badge } from "@/components/ui/badge"
import { Button } from "@/components/ui/button"
import { Separator } from "@/components/ui/separator"
import { IconPlaceholder } from "@/components/icons/icon-placeholder"

const stats = [
  { label: "Clients", value: "4k" },
  { label: "Projects", value: "126" },
  { label: "Founded", value: "2019" },
]

const team = [
  { name: "Ada", src: "https://i.pravatar.cc/64?img=47" },
  { name: "Leo", src: "https://i.pravatar.cc/64?img=12" },
  { name: "Mara", src: "https://i.pravatar.cc/64?img=32" },
  { name: "Owen", src: "https://i.pravatar.cc/64?img=53" },
]

export default function ProfileBlock() {
  return (
    <section className="flex w-full items-center justify-center bg-background px-6 py-16 text-foreground">
      <div className="mx-auto w-full max-w-lg rounded-xl border border-border bg-background p-6">
        <div className="flex items-start gap-4">
          <span
            className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground"
            aria-hidden="true"
          >
            <IconPlaceholder
              lucide="Sparkles"
              tabler="IconSparkles"
              hugeicons="SparklesIcon"
              phosphor="Sparkle"
              remixicon="RiSparkling2Fill"
              className="size-7"
            />
          </span>
          <div className="flex flex-1 flex-col gap-1">
            <div className="flex items-center gap-2">
              <h1 className="font-heading text-lg font-semibold tracking-tight">
                Acme Labs
              </h1>
              <Badge variant="secondary" className="gap-1">
                <IconPlaceholder
                  lucide="Check"
                  tabler="IconCheck"
                  hugeicons="Tick02Icon"
                  phosphor="Check"
                  remixicon="RiCheckLine"
                  className="size-3"
                  aria-hidden="true"
                />
                Verified
              </Badge>
            </div>
            <p className="text-sm text-muted-foreground">
              Design tools for product teams
            </p>
          </div>
        </div>

        <p className="mt-4 text-sm/relaxed text-foreground/80">
          We build calm, reliable software for the teams that ship the products
          you use every day. Trusted by more than 4,000 companies worldwide.
        </p>

        <div className="mt-5 grid grid-cols-3 divide-x divide-border border-y border-border">
          {stats.map((stat) => (
            <div
              key={stat.label}
              className="flex flex-col items-center gap-0.5 py-3"
            >
              <span className="text-sm font-semibold tabular-nums">
                {stat.value}
              </span>
              <span className="text-xs text-muted-foreground">
                {stat.label}
              </span>
            </div>
          ))}
        </div>

        <div className="mt-5 flex items-center justify-between gap-4">
          <div className="flex items-center gap-2.5">
            <div className="flex -space-x-2">
              {team.map((member) => (
                <Avatar
                  key={member.name}
                  className="size-7 border-2 border-background"
                >
                  <AvatarImage
                    src={member.src}
                    alt={member.name}
                    className="grayscale"
                  />
                  <AvatarFallback className="text-[10px]">
                    {member.name[0]}
                  </AvatarFallback>
                </Avatar>
              ))}
            </div>
            <span className="text-sm text-muted-foreground">44 Members</span>
          </div>
          <a
            href="#"
            className="text-sm font-medium text-foreground transition-colors hover:text-foreground/80"
          >
            View all
          </a>
        </div>

        <Separator className="my-5" />

        <div className="flex items-center gap-2">
          <Button
            className="flex-1"
            render={<a href="#" />}
            nativeButton={false}
          >
            Visit Website
            <IconPlaceholder
              lucide="ArrowUpRight"
              tabler="IconArrowUpRight"
              hugeicons="ArrowUpRightIcon"
              phosphor="ArrowUpRight"
              remixicon="RiArrowRightUpLine"
              data-icon="inline-end"
              aria-hidden="true"
            />
          </Button>
          <Button
            variant="outline"
            className="flex-1"
            render={<a href="#" />}
            nativeButton={false}
          >
            Contact
          </Button>
        </div>
      </div>
    </section>
  )
}
```
