Professionalize landing page design
This commit is contained in:
@@ -1,44 +1,43 @@
|
||||
import { HelpCircleIcon } from "lucide-react";
|
||||
import React from "react";
|
||||
import {
|
||||
Gauge,
|
||||
Handshake,
|
||||
MapPinned,
|
||||
Search,
|
||||
Smartphone,
|
||||
} from "lucide-react";
|
||||
|
||||
import { GlowingEffect } from "@/components/ui/glowing-effect";
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
const featureData = [
|
||||
{
|
||||
desc: "Ihre Website erklaert in wenigen Sekunden, fuer wen Sie arbeiten und was Sie konkret anbieten.",
|
||||
img: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/guri3/img1.jpeg",
|
||||
desc: "Die Startseite sagt schnell, für wen Sie arbeiten, was Sie anbieten und wie Interessenten Kontakt aufnehmen.",
|
||||
title: "Klare Positionierung",
|
||||
badgeTitle: "Vorteil 01",
|
||||
gridClass: "md:col-span-1",
|
||||
badgeTitle: "01",
|
||||
icon: MapPinned,
|
||||
},
|
||||
{
|
||||
desc: "Ein zeitgemaesses Design sorgt fuer einen starken ersten Eindruck und passt zu Ihrem Unternehmen.",
|
||||
img: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/guri3/img7.jpeg",
|
||||
title: "Modernes Erscheinungsbild",
|
||||
badgeTitle: "Vorteil 02",
|
||||
gridClass: "lg:col-span-2",
|
||||
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: "Ihre Inhalte funktionieren sauber auf Smartphone, Tablet und Desktop - ohne Umwege fuer Besucher.",
|
||||
img: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/guri3/img11.jpeg",
|
||||
title: "Mobil optimiert",
|
||||
badgeTitle: "Vorteil 03",
|
||||
gridClass: "md:col-span-1 lg:row-span-2 ",
|
||||
desc: "Telefonnummer, Formular und zentrale Informationen bleiben auf Smartphone und Desktop leicht erreichbar.",
|
||||
title: "Mobil sauber geführt",
|
||||
badgeTitle: "03",
|
||||
icon: Smartphone,
|
||||
},
|
||||
{
|
||||
desc: "Klare Kontaktwege mit gut sichtbaren Handlungsaufforderungen machen den naechsten Schritt leicht.",
|
||||
img: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/guri3/img2.jpeg",
|
||||
title: "Anfragen ohne Huerden",
|
||||
badgeTitle: "Vorteil 04",
|
||||
gridClass: "lg:col-span-2",
|
||||
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: "Die Seite bleibt wartbar aufgebaut, damit Inhalte spaeter schnell angepasst oder erweitert werden koennen.",
|
||||
img: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/guri3/img4.jpeg",
|
||||
title: "Pflegeleicht aufgebaut",
|
||||
badgeTitle: "Vorteil 05",
|
||||
gridClass: "md:col-span-1",
|
||||
desc: "Google findet die richtigen Inhalte: Leistungen, Region, Kontakt und die wichtigsten Suchbegriffe.",
|
||||
title: "Für Suche vorbereitet",
|
||||
badgeTitle: "05",
|
||||
icon: Search,
|
||||
},
|
||||
];
|
||||
|
||||
@@ -48,45 +47,43 @@ interface Feature284Props {
|
||||
|
||||
const Feature284 = ({ className }: Feature284Props) => {
|
||||
return (
|
||||
<section className={cn("h-full overflow-hidden py-32", className)}>
|
||||
<div className="container flex h-full w-full items-center justify-center">
|
||||
<div className="grid w-full max-w-6xl grid-cols-1 grid-rows-2 gap-4 md:grid-cols-2 lg:h-[800px] lg:grid-cols-4">
|
||||
<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={cn(
|
||||
"relative flex flex-col gap-2 rounded-3xl border p-4",
|
||||
feature.gridClass,
|
||||
)}
|
||||
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"
|
||||
>
|
||||
<GlowingEffect
|
||||
spread={40}
|
||||
glow={true}
|
||||
disabled={false}
|
||||
proximity={64}
|
||||
inactiveZone={0.01}
|
||||
/>
|
||||
<div className="flex w-full items-center justify-between">
|
||||
<p className="text-muted-foreground">{feature.badgeTitle}</p>
|
||||
<HelpCircleIcon className="size-4 text-muted-foreground" />
|
||||
</div>
|
||||
<div
|
||||
className={cn(
|
||||
"w-full flex-1 overflow-hidden rounded-3xl bg-muted",
|
||||
)}
|
||||
>
|
||||
<img
|
||||
src={feature.img}
|
||||
alt={feature.title}
|
||||
className="pointer-events-none h-full w-full object-cover"
|
||||
<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>
|
||||
<h3 className="mt-4 text-2xl font-semibold tracking-tight">
|
||||
{feature.title}
|
||||
</h3>
|
||||
<p className="text-muted-foreground">{feature.desc}</p>
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user