chore: capture live server state before migration (2026-06-10)

This commit is contained in:
2026-06-10 23:56:36 +02:00
parent 97bf6da106
commit b6ad1e0b2f
52 changed files with 704 additions and 691 deletions
+28 -28
View File
@@ -170,23 +170,23 @@ export default async function ServicePage({ params }: Props) {
{/* Back Link */}
<Link
href={`/${locale}/leistungen`}
className="inline-flex items-center gap-2 text-zinc-400 hover:text-white transition-colors mb-8"
className="inline-flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors mb-8"
>
<ArrowLeft className="h-4 w-4" />
{locale === 'de' ? 'Alle Leistungen' : locale === 'sr' ? 'Sve usluge' : 'All Services'}
</Link>
<div className="flex items-center gap-4 mb-6">
<div className="p-4 bg-zinc-800/50 rounded-xl">
<IconComponent className="h-8 w-8 text-white" />
<div className="p-4 bg-card/50 rounded-xl">
<IconComponent className="h-8 w-8 text-foreground" />
</div>
</div>
<h1 className="text-4xl md:text-5xl font-bold text-white mb-6">
<h1 className="text-4xl md:text-5xl font-bold text-foreground mb-6">
{service.name[locale as Locale]}
</h1>
<p className="text-xl text-zinc-400 mb-8">
<p className="text-xl text-muted-foreground mb-8">
{service.description[locale as Locale]}
</p>
@@ -195,7 +195,7 @@ export default async function ServicePage({ params }: Props) {
{service.technologies.map((tech) => (
<span
key={tech}
className="px-3 py-1 bg-zinc-800/50 border border-zinc-700 text-sm text-zinc-300 rounded-full"
className="px-3 py-1 bg-card/50 border border-border text-sm text-foreground/80 rounded-full"
>
{tech}
</span>
@@ -205,19 +205,19 @@ export default async function ServicePage({ params }: Props) {
</section>
{/* Features Section */}
<section className="py-16 bg-zinc-800/20">
<section className="py-16 bg-card/20">
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 className="text-2xl font-bold text-white mb-8">
<h2 className="text-2xl font-bold text-foreground mb-8">
{locale === 'de' ? 'Was ich anbiete' : locale === 'sr' ? 'Šta nudim' : 'What I offer'}
</h2>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
{service.features[locale as Locale].map((feature, index) => (
<div
key={index}
className="flex items-start gap-3 p-4 bg-zinc-800/30 rounded-lg"
className="flex items-start gap-3 p-4 bg-card/30 rounded-lg"
>
<CheckCircle className="h-5 w-5 text-green-500 flex-shrink-0 mt-0.5" />
<span className="text-zinc-300">{feature}</span>
<span className="text-foreground/80">{feature}</span>
</div>
))}
</div>
@@ -227,20 +227,20 @@ export default async function ServicePage({ params }: Props) {
{/* Use Cases Section */}
<section className="py-16">
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 className="text-2xl font-bold text-white mb-8">
<h2 className="text-2xl font-bold text-foreground mb-8">
{locale === 'de' ? 'Anwendungsbeispiele' : locale === 'sr' ? 'Primeri primene' : 'Use Cases'}
</h2>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
{service.useCases[locale as Locale].map((useCase, index) => (
<div
key={index}
className="p-6 bg-zinc-800/30 border border-zinc-800 rounded-xl"
className="p-6 bg-card/30 border border-border rounded-xl"
>
<div className="flex items-center gap-3">
<div className="w-8 h-8 bg-zinc-700 rounded-full flex items-center justify-center text-sm font-semibold text-white">
<div className="w-8 h-8 bg-accent rounded-full flex items-center justify-center text-sm font-semibold text-foreground">
{index + 1}
</div>
<span className="text-zinc-200">{useCase}</span>
<span className="text-foreground/90">{useCase}</span>
</div>
</div>
))}
@@ -249,9 +249,9 @@ export default async function ServicePage({ params }: Props) {
</section>
{/* Related Services */}
<section className="py-16 bg-zinc-800/20">
<section className="py-16 bg-card/20">
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 className="text-2xl font-bold text-white mb-8">
<h2 className="text-2xl font-bold text-foreground mb-8">
{locale === 'de' ? 'Weitere Leistungen' : locale === 'sr' ? 'Ostale usluge' : 'Other Services'}
</h2>
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
@@ -261,15 +261,15 @@ export default async function ServicePage({ params }: Props) {
<Link
key={relatedService.slug}
href={`/${locale}/leistungen/${relatedService.slug}`}
className="group p-6 bg-zinc-800/30 border border-zinc-800 rounded-xl hover:border-zinc-700 transition-all duration-300"
className="group p-6 bg-card/30 border border-border rounded-xl hover:border-accent transition-all duration-300"
>
<div className="p-2 bg-zinc-800/50 rounded-lg w-fit mb-3">
<RelatedIcon className="h-5 w-5 text-zinc-400 group-hover:text-white transition-colors" />
<div className="p-2 bg-card/50 rounded-lg w-fit mb-3">
<RelatedIcon className="h-5 w-5 text-muted-foreground group-hover:text-foreground transition-colors" />
</div>
<h3 className="text-lg font-semibold text-white mb-2">
<h3 className="text-lg font-semibold text-foreground mb-2">
{relatedService.name[locale as Locale]}
</h3>
<p className="text-sm text-zinc-400">
<p className="text-sm text-muted-foreground">
{relatedService.shortDescription[locale as Locale]}
</p>
</Link>
@@ -282,7 +282,7 @@ export default async function ServicePage({ params }: Props) {
{/* FAQ Section */}
<section className="py-16">
<div className="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 className="text-2xl font-bold text-white text-center mb-8">
<h2 className="text-2xl font-bold text-foreground text-center mb-8">
{locale === 'de'
? `Häufige Fragen zu ${service.name.de}`
: locale === 'sr'
@@ -293,12 +293,12 @@ export default async function ServicePage({ params }: Props) {
{serviceFaqItems.map((item, index) => (
<div
key={index}
className="bg-zinc-800/30 border border-zinc-800 rounded-lg p-6"
className="bg-card/30 border border-border rounded-lg p-6"
>
<h3 className="text-lg font-semibold text-white mb-2">
<h3 className="text-lg font-semibold text-foreground mb-2">
{item.question}
</h3>
<p className="text-zinc-400">{item.answer}</p>
<p className="text-muted-foreground">{item.answer}</p>
</div>
))}
</div>
@@ -308,14 +308,14 @@ export default async function ServicePage({ params }: Props) {
{/* CTA Section */}
<section className="py-24">
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
<h2 className="text-3xl font-bold text-white mb-4">
<h2 className="text-3xl font-bold text-foreground mb-4">
{locale === 'de'
? `${service.name.de} für Ihr Unternehmen?`
: locale === 'sr'
? `${service.name.sr} za vašu kompaniju?`
: `${service.name.en} for your business?`}
</h2>
<p className="text-zinc-400 mb-8">
<p className="text-muted-foreground mb-8">
{locale === 'de'
? 'Lassen Sie uns besprechen, wie ich Ihnen helfen kann.'
: locale === 'sr'
@@ -324,7 +324,7 @@ export default async function ServicePage({ params }: Props) {
</p>
<Link
href={`/${locale}/contact`}
className="inline-flex items-center px-8 py-4 bg-white text-zinc-900 font-semibold rounded-lg hover:bg-zinc-100 transition-colors"
className="inline-flex items-center px-8 py-4 bg-primary text-background font-semibold rounded-lg hover:bg-accent transition-colors"
>
{locale === 'de' ? 'Projekt besprechen' : locale === 'sr' ? 'Razgovarajte o projektu' : 'Discuss project'}
<ArrowRight className="h-5 w-5 ml-2" />