feat: add new components for navigation, contact, customer segments, hero section, and service overview

- Implement Navigation component for main navigation links.
- Create ContactSection for displaying contact information and a contact form.
- Add CustomerSegments to showcase target customer groups.
- Develop HeroSection for the landing page with a background image and call-to-action buttons.
- Introduce ServiceOverview to present available services with icons and descriptions.
- Create PageHero for consistent page headers with optional background images.
- Implement TariffTable for displaying internet and phone tariff plans.
- Add TeamGrid to showcase team members with images and roles.
- Create TrustSection to highlight company statistics.
- Implement ValueProposition to present company values with icons.
- Add reusable UI components: Badge, Button, Card, Container, and SectionHeading.
- Define constants for company information, services, and tariffs.
- Create utility function for class name management.
- Define TypeScript types for navigation links, team members, tariff plans, and service cards.
- Configure TypeScript settings for the project.
This commit is contained in:
1elle1
2026-02-06 13:59:08 +01:00
parent d63eb85218
commit 11bbd1cf3f
69 changed files with 9055 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
import Container from "@/components/ui/Container";
const stats = [
{ value: "20+", label: "Jahre Erfahrung" },
{ value: "1.000+", label: "Kunden in der Region" },
{ value: "Reutte", label: "Unser Standort" },
{ value: "24/7", label: "Netzüberwachung" },
];
export default function TrustSection() {
return (
<section className="bg-primary-950 py-16 lg:py-20" aria-labelledby="trust-heading">
<Container>
<h2 id="trust-heading" className="sr-only">
TeleNetSystems in Zahlen
</h2>
<div className="grid grid-cols-2 gap-8 lg:grid-cols-4">
{stats.map((stat) => (
<div key={stat.label} className="text-center">
<p className="text-3xl font-bold text-primary-400 sm:text-4xl">
{stat.value}
</p>
<p className="mt-2 text-sm text-neutral-300">
{stat.label}
</p>
</div>
))}
</div>
</Container>
</section>
);
}