# Logo 4

> logo

A shadcn/ui block from the [@cnippet-blocks](https://blocks.cnippet.dev/?utm_source=shadcn.exchange) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/cnippet-blocks/logo-4).

- Page, with a live preview: https://shadcn.exchange/r/cnippet-blocks/logo-4
- Screenshot: https://shadcn.exchange/shot/cnippet-blocks/logo-4/light.png
- Registry item: https://blocks.cnippet.dev/r/logo-4.json
- Categories: logo
- Listed: 2026-11-01, source last changed 2026-11-01

## Install

```bash
npx shadcn@latest add https://shadcn.exchange/r/cnippet-blocks/logo-4.json
```

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

## Dependencies

- Registry items: `@cnippet/badge`, `@cnippet/button`, `@cnippet/utils`

## Files

### `registry/default/sections/logo-4.tsx`

```tsx
"use client";

import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";

// Law firm logos/names
const lawFirms = [
  { hasLogo: true, id: "1", name: "MANNHEIMER\nSWARTLING" },
  { id: "2", name: "Pérez-Llorca", style: "serif" },
  { id: "3", name: "Bird&Bird", style: "ampersand" },
  { id: "4", name: "BORENIUS", style: "spaced" },
  { id: "5", name: "BORENIUS", style: "spaced" },
  { id: "6", name: "Bird&Bird", style: "ampersand" },
  { hasLogo: true, id: "7", name: "MANNHEIMER\nSWARTLING" },
  { id: "8", name: "Pérez-Llorca", style: "serif" },
];

function MannheimerLogo({ className }: { className?: string }) {
  return (
    <svg className={cn("h-8 w-8", className)} viewBox="0 0 40 40">
      <path
        d="M8 8h8v24H8V8zm16 0h8v24h-8V8zM16 12h8v4h-8v-4zm0 8h8v4h-8v-4zm0 8h8v4h-8v-4z"
        fill="currentColor"
      />
    </svg>
  );
}

function FirmLogo({ firm }: { firm: (typeof lawFirms)[0] }) {
  if (firm.hasLogo) {
    return (
      <div className="flex items-center gap-2">
        <MannheimerLogo className="text-neutral-700" />
        <span className="whitespace-pre-line font-semibold text-neutral-700 text-xs leading-tight">
          {firm.name}
        </span>
      </div>
    );
  }

  return (
    <span
      className={cn(
        "font-semibold text-neutral-700 text-xl",
        firm.style === "serif" && "font-serif",
        firm.style === "spaced" && "text-lg tracking-[0.25em]",
        firm.style === "ampersand" && "font-serif",
      )}
    >
      {firm.name}
    </span>
  );
}

export function Logo4() {
  return (
    <section className="w-full bg-[#f4f7f9] py-16 md:py-24">
      <div className="mx-auto w-full max-w-6xl px-6">
        {/* Header */}
        <div className="mb-10">
          <Badge
            className="mb-6 rounded-full border-blue-200 bg-white px-4 py-1 text-blue-600"
            variant="outline"
          >
            Logo
          </Badge>
          <h2 className="font-normal text-3xl text-gray-900 leading-tight md:text-4xl lg:text-5xl dark:text-gray-100">
            <span className="text-blue-500">50+</span> companies use Echo
          </h2>
        </div>

        {/* Logo Grid - 4x2 */}
        <div className="mb-12 grid grid-cols-2 gap-4 md:grid-cols-4">
          {lawFirms.map((firm) => (
            <div
              className="flex h-24 items-center justify-center rounded-2xl border-2 border-gray-200 border-dashed bg-white transition-colors hover:border-neutral-300 md:h-28 dark:border-neutral-700"
              key={firm.id}
            >
              <FirmLogo firm={firm} />
            </div>
          ))}
        </div>

        {/* Footer */}
        <div className="flex flex-col items-start justify-between gap-6 md:flex-row md:items-center">
          <Button className="h-11 rounded-xl bg-neutral-900 px-6 text-white hover:bg-neutral-800">
            View case study
          </Button>
          <p className="max-w-md text-gray-600 text-sm md:text-right dark:text-gray-400">
            Echo is a perfect partner for businesses in digital compliance and
            workforce management.
          </p>
        </div>
      </div>
    </section>
  );
}

export default Logo4;
```
