# Features 18

> A simple features block

A shadcn/ui block from the [@shadcnui-blocks](https://shadcnui-blocks.com) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/shadcnui-blocks/features-18).

- Page, with a live preview: https://shadcn.exchange/r/shadcnui-blocks/features-18
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/shadcnui-blocks/features-18-light-e7922db04fab80ff.png
- Registry item: https://shadcnui-blocks.com/r/features-18.json
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://shadcnui-blocks.com/r/features-18.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: `lucide-react`
- Registry items: `button`

## Files

### `src/registry/blocks/radix/features-18/components/features.tsx`

```tsx
import {
  ArrowUpRightIcon,
  BinocularsIcon,
  GlobeIcon,
  HouseIcon,
  LockIcon,
  ShieldCheckIcon,
  ZapIcon,
} from "lucide-react";
import { cn } from "@/lib/utils";
import { Button } from "@/registry/bases/radix/ui/button";

const plusPoints = [
  {
    icon: ShieldCheckIcon,
    title: "Real-Time Protection",
    description:
      "Stay alert with instant notifications and smart security monitoring.",
  },
  {
    icon: ZapIcon,
    title: "Smart & Simple Setup",
    description: "Install easily in minutes with no complex tools or wiring.",
  },
  {
    icon: BinocularsIcon,
    title: "Peace of Mind Anywhere",
    description: "Monitor and control your home from anywhere, anytime.",
  },
  {
    icon: HouseIcon,
    title: "Smart Home Integration",
    description:
      "Easily connect with your favorite smart home devices and services.",
  },
  {
    icon: GlobeIcon,
    title: "Global Coverage",
    description: "Monitor and control your home from anywhere, anytime.",
  },
  {
    icon: LockIcon,
    title: "Secure & Reliable",
    description:
      "Built with the latest security technologies to protect your home.",
  },
];

export default function Features() {
  return (
    <div
      className="mx-auto max-w-(--breakpoint-xl) overflow-clip px-8 py-24 text-center"
      id="why-choose-us"
    >
      <strong className="font-medium text-muted-foreground text-sm uppercase tracking-wide">
        Why Choose Us
      </strong>
      <h2 className="mx-auto mt-5 max-w-4xl text-balance font-medium text-4xl leading-[1.3] tracking-tight">
        Advanced home security solutions built for modern living
      </h2>
      <p className="mt-4 text-pretty text-muted-foreground text-xl -tracking-[0.01em] sm:text-2xl">
        We are constantly always keep pace with the time
      </p>

      <div className="relative mx-auto mt-16 grid max-w-5xl grid-cols-1 border nth-3:border sm:grid-cols-2 lg:grid-cols-3">
        <div className="mask-y-from-95% absolute -inset-y-14 left-0 -translate-x-px border-s border-dashed" />
        <div className="mask-y-from-95% absolute -inset-y-14 right-0 translate-x-px border-s border-dashed" />
        <div className="mask-x-from-95% absolute -inset-x-14 top-0 -translate-y-px border-t border-dashed" />
        <div className="mask-x-from-95% absolute -inset-x-14 bottom-0 translate-y-px border-b border-dashed" />

        {plusPoints.map((plusPoint, index) => (
          <div
            className={cn(
              "relative -mt-px flex w-full flex-col items-center gap-2 border-t p-6 pt-9 odd:bg-muted/40",
              "lg:not-[&:nth-child(3n+1)]:border-e",
              "max-sm:odd:border-e-0 max-lg:odd:border-e"
            )}
            key={index}
          >
            <plusPoint.icon className="size-12 fill-foreground/10 stroke-[1.5px] text-foreground" />
            <h3 className="mt-6 font-medium text-lg tracking-[-0.005em]">
              {plusPoint.title}
            </h3>
            <p className="mb-6 text-balance text-muted-foreground">
              {plusPoint.description}
            </p>
            <Button className="mt-auto font-medium" variant="link">
              Learn More <ArrowUpRightIcon />
            </Button>
          </div>
        ))}
      </div>
    </div>
  );
}
```
