Files
mb-grid-solutions.com/components/sections/ManifestSection.tsx
Marc Mintel 5fb73d57dd
Some checks failed
🚀 Build & Deploy / 🔍 Prepare (push) Successful in 4s
🚀 Build & Deploy / 🚀 Deploy (push) Has been cancelled
🚀 Build & Deploy / 🧪 Post-Deploy Verification (push) Has been cancelled
🚀 Build & Deploy / 🏗️ Build (push) Has been cancelled
🚀 Build & Deploy / 🔔 Notify (push) Has been cancelled
🚀 Build & Deploy / 🧪 QA (push) Has been cancelled
feat: complete migration to static MDX, stabilize local infrastructure and fix i18n issues
2026-05-04 10:26:45 +02:00

81 lines
2.3 KiB
TypeScript

"use client";
import React from "react";
import {
Award,
Clock,
Lightbulb,
Truck,
MessageSquare,
ShieldCheck,
} from "lucide-react";
import { Reveal } from "@/components/Reveal";
import { TechBackground } from "@/components/TechBackground";
import { Counter } from "@/components/Counter";
const manifestIcons = [
Award,
Clock,
Lightbulb,
Truck,
MessageSquare,
ShieldCheck,
];
interface ManifestItem {
title: string;
desc: string;
}
interface ManifestSectionProps {
tagline: string;
title: string;
subtitle: string;
items: ManifestItem[];
}
export function ManifestSection({
tagline,
title,
subtitle,
items,
}: ManifestSectionProps) {
return (
<section className="bg-slate-950 text-accent relative overflow-hidden">
<TechBackground />
<div className="container-custom relative z-10">
<Counter value={3} className="section-number !text-white/5" />
<Reveal className="mb-20">
<span className="text-accent font-bold uppercase tracking-widest text-sm mb-4 block">
{tagline}
</span>
<h2 className="text-3xl md:text-5xl font-bold text-white mb-6">
{title}
</h2>
<p className="text-slate-400 text-base md:text-lg">{subtitle}</p>
</Reveal>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
{items.map((item, i) => {
const Icon = manifestIcons[i % manifestIcons.length];
return (
<Reveal key={i} delay={i * 0.1}>
<div className="bg-white/5 p-10 rounded-3xl border border-white/10 group hover:-translate-y-1 transition-[box-shadow,transform] duration-300 h-full motion-fix relative overflow-hidden">
<div className="absolute top-0 left-0 w-full h-1 bg-accent/0 group-hover:bg-accent/50 transition-all duration-500" />
<div className="text-accent mb-6">
<Icon size={32} />
</div>
<h3 className="text-xl font-bold text-white mb-4">
{i + 1}. {item.title}
</h3>
<p className="text-slate-400 leading-relaxed">{item.desc}</p>
</div>
</Reveal>
);
})}
</div>
</div>
</section>
);
}