94 lines
3.1 KiB
TypeScript
94 lines
3.1 KiB
TypeScript
import {
|
|
Gauge,
|
|
Handshake,
|
|
MapPinned,
|
|
Search,
|
|
Smartphone,
|
|
} from "lucide-react";
|
|
|
|
import { cn } from "@/lib/utils";
|
|
|
|
const featureData = [
|
|
{
|
|
desc: "Die Startseite sagt schnell, für wen Sie arbeiten, was Sie anbieten und wie Interessenten Kontakt aufnehmen.",
|
|
title: "Klare Positionierung",
|
|
badgeTitle: "01",
|
|
icon: MapPinned,
|
|
},
|
|
{
|
|
desc: "Gestaltung, Texte und Struktur wirken seriös, ohne den Charakter eines regionalen Betriebs glattzubügeln.",
|
|
title: "Glaubwürdiger Auftritt",
|
|
badgeTitle: "02",
|
|
icon: Handshake,
|
|
},
|
|
{
|
|
desc: "Telefonnummer, Formular und zentrale Informationen bleiben auf Smartphone und Desktop leicht erreichbar.",
|
|
title: "Mobil sauber geführt",
|
|
badgeTitle: "03",
|
|
icon: Smartphone,
|
|
},
|
|
{
|
|
desc: "Technik, Bilder und Inhalte werden so umgesetzt, dass die Seite schnell lädt und stabil bleibt.",
|
|
title: "Schnell und robust",
|
|
badgeTitle: "04",
|
|
icon: Gauge,
|
|
},
|
|
{
|
|
desc: "Google findet die richtigen Inhalte: Leistungen, Region, Kontakt und die wichtigsten Suchbegriffe.",
|
|
title: "Für Suche vorbereitet",
|
|
badgeTitle: "05",
|
|
icon: Search,
|
|
},
|
|
];
|
|
|
|
interface Feature284Props {
|
|
className?: string;
|
|
}
|
|
|
|
const Feature284 = ({ className }: Feature284Props) => {
|
|
return (
|
|
<section className={cn("px-4 py-20 sm:px-6 lg:px-8 lg:py-28", className)}>
|
|
<div className="mx-auto max-w-6xl">
|
|
<div className="grid gap-8 border-t border-border/80 pt-10 lg:grid-cols-[minmax(0,0.8fr)_minmax(0,1.4fr)] lg:gap-16">
|
|
<div className="max-w-md">
|
|
<p className="text-xs font-semibold uppercase tracking-[0.16em] text-primary">
|
|
Was die Seite leisten muss
|
|
</p>
|
|
<h2 className="mt-4 text-3xl font-semibold tracking-tight text-balance sm:text-4xl">
|
|
Professionell heißt hier: verständlich, erreichbar, belastbar.
|
|
</h2>
|
|
</div>
|
|
<div className="grid gap-3 sm:grid-cols-2">
|
|
{featureData.map((feature, index) => (
|
|
<div
|
|
key={index}
|
|
className="group flex min-h-52 flex-col justify-between rounded-lg border border-border bg-card p-5 transition-colors hover:border-primary/40"
|
|
>
|
|
<div className="flex items-center justify-between">
|
|
<p className="text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground">
|
|
{feature.badgeTitle}
|
|
</p>
|
|
<feature.icon
|
|
className="size-5 text-primary transition-transform group-hover:-translate-y-0.5"
|
|
aria-hidden
|
|
/>
|
|
</div>
|
|
<div className="mt-10 space-y-3">
|
|
<h3 className="text-xl font-semibold tracking-tight">
|
|
{feature.title}
|
|
</h3>
|
|
<p className="text-sm leading-6 text-muted-foreground">
|
|
{feature.desc}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export { Feature284 };
|