features-1

PreviousNext

Minimal feature card with icon, title, and subtle grid background.

Docs
efferdblock

Preview

Loading preview…
registry/features/1/feature-section.tsx
// https://magicui.design/docs/components/grid-pattern
import { GridPattern } from "@/components/ui/grid-pattern";
import { cn } from "@/lib/utils";
import {
	Cpu,
	Fingerprint,
	Pencil,
	Settings2,
	Sparkles,
	Zap,
} from "lucide-react";
import type React from "react";

type FeatureType = {
	title: string;
	icon: React.ComponentType<React.SVGProps<SVGSVGElement>>;
	description: string;
};

export function FeatureSection() {
	return (
		<div className="mx-auto w-full max-w-5xl space-y-8">
			<div className="mx-auto max-w-3xl text-center">
				<h2 className="text-balance font-medium text-2xl md:text-4xl lg:text-5xl">
					Power. Speed. Control.
				</h2>
				<p className="mt-4 text-balance text-muted-foreground text-sm md:text-base">
					Everything you need to build fast, secure, scalable apps.
				</p>
			</div>

			<div className="overflow-hidden rounded-lg border">
				<div className="grid grid-cols-1 gap-px bg-border sm:grid-cols-2 md:grid-cols-3">
					{features.map((feature) => (
						<FeatureCard feature={feature} key={feature.title} />
					))}
				</div>
			</div>
		</div>
	);
}

export function FeatureCard({
	feature,
	className,
	...props
}: React.ComponentProps<"div"> & {
	feature: FeatureType;
}) {
	return (
		<div
			className={cn("relative overflow-hidden bg-background p-6", className)}
			{...props}
		>
			<div className="-mt-2 -ml-20 mask-[radial-gradient(farthest-side_at_top,white,transparent)] pointer-events-none absolute top-0 left-1/2 size-full">
				<GridPattern
					className="absolute inset-0 size-full stroke-foreground/20"
					height={40}
					width={40}
					x={5}
				/>
			</div>
			<feature.icon
				aria-hidden
				className="size-6 text-foreground/75"
				strokeWidth={1}
			/>
			<h3 className="mt-10 text-sm md:text-base">{feature.title}</h3>
			<p className="relative z-20 mt-2 font-light text-muted-foreground text-xs">
				{feature.description}
			</p>
		</div>
	);
}

const features: FeatureType[] = [
	{
		title: "Faaast",
		icon: Zap,
		description: "It supports an entire helping developers and innovate.",
	},
	{
		title: "Powerful",
		icon: Cpu,
		description: "It supports an entire helping developers and businesses.",
	},
	{
		title: "Security",
		icon: Fingerprint,
		description: "It supports an helping developers businesses.",
	},
	{
		title: "Customization",
		icon: Pencil,
		description: "It supports helping developers and businesses innovate.",
	},
	{
		title: "Control",
		icon: Settings2,
		description: "It supports helping developers and businesses innovate.",
	},
	{
		title: "Built for AI",
		icon: Sparkles,
		description: "It supports helping developers and businesses innovate.",
	},
];

Installation

npx shadcn@latest add @efferd/features-1

Usage

import { Features1 } from "@/components/features-1"
<Features1 />