🎨 Complete Portfolio Redesign: Modern Dark Theme + Admin Dashboard + Enhanced Markdown Editor

 New Features:
- Complete dark theme redesign with glassmorphism effects
- Responsive admin dashboard with collapsible projects list
- Enhanced markdown editor with live preview
- Project image upload functionality
- Improved project management (create, edit, delete, publish/unpublish)
- Slug-based project URLs
- Legal pages (Impressum, Privacy Policy)
- Modern animations with Framer Motion

🔧 Improvements:
- Fixed hydration errors with mounted state
- Enhanced UI/UX with better spacing and proportions
- Improved markdown rendering with custom components
- Better project image placeholders with initials
- Conditional rendering for GitHub/Live Demo links
- Enhanced toolbar with categorized quick actions
- Responsive grid layout for admin dashboard

📱 Technical:
- Next.js 15 + TypeScript + Tailwind CSS
- Local storage for project persistence
- Optimized performance and responsive design
This commit is contained in:
Dennis Konkol
2025-09-01 23:29:58 +00:00
parent eab0b88f59
commit ded873e6b4
16 changed files with 4050 additions and 1248 deletions

View File

@@ -1,66 +1,86 @@
"use client";
import React from "react";
import { motion } from 'framer-motion';
import { ArrowLeft } from 'lucide-react';
import Header from "../components/Header";
import Footer_Back from "../components/Footer_Back";
import Footer from "../components/Footer";
import Link from "next/link";
export default function LegalNotice() {
return (
<div className="min-h-screen flex flex-col bg-radiant-animated">
<div className="min-h-screen animated-bg">
<Header />
<div className="h-10"></div>
<main className="flex-grow p-10">
<h1 className="text-3xl font-bold">Impressum</h1>
<p className="mt-4">
<strong>
Verantwortlicher für die Inhalte dieser Website (auch Redaktionell):{" "}
<br />
</strong>
<strong>Name:</strong> Dennis Konkol
<br />
<strong>Adresse:</strong> Auf dem Ziegenbrink 2B, 49082 Osnabrück,
Deutschland
<br />
<strong>E-Mail:</strong>{" "}
<Link href={"mailto:info@dki.one"} className="transition-underline">
info@dki.one
</Link>{" "}
<br />
<strong>Website:</strong>{" "}
<Link href={"https://www.dki.one"} className="transition-underline">
{" "}
dki.one{" "}
<main className="max-w-4xl mx-auto px-4 py-20">
<motion.div
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
className="mb-8"
>
<Link
href="/"
className="inline-flex items-center space-x-2 text-blue-400 hover:text-blue-300 transition-colors mb-6"
>
<ArrowLeft size={20} />
<span>Back to Home</span>
</Link>
</p>
<h1 className="text-4xl md:text-5xl font-bold mb-6 gradient-text">
Impressum
</h1>
</motion.div>
<h2 className="text-2xl font-semibold mt-6">Haftung für Links</h2>
<p className="mt-2">
Meine Website enthält Links auf externe Websites. Ich habe keinen
Einfluss auf die Inhalte dieser Websites und kann daher keine Gewähr
übernehmen. Für die Inhalte der verlinkten Seiten ist stets der
Betreiber oder Anbieter der Seiten verantwortlich. Jedoch überprüfe
ich die verlinkten Seiten zum Zeitpunkt der Verlinkung auf mögliche
Rechtsverstöße. Bei Bekanntwerden von Rechtsverletzungen werde ich
derartige Links umgehend entfernen.
</p>
<motion.div
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.2 }}
className="glass-card p-8 rounded-2xl space-y-6"
>
<div>
<h2 className="text-2xl font-semibold text-white mb-4">
Verantwortlicher für die Inhalte dieser Website
</h2>
<div className="space-y-2 text-gray-300">
<p><strong>Name:</strong> Dennis Konkol</p>
<p><strong>Adresse:</strong> Auf dem Ziegenbrink 2B, 49082 Osnabrück, Deutschland</p>
<p><strong>E-Mail:</strong> <Link href="mailto:info@dki.one" className="text-blue-400 hover:text-blue-300 transition-colors">info@dki.one</Link></p>
<p><strong>Website:</strong> <Link href="https://www.dki.one" className="text-blue-400 hover:text-blue-300 transition-colors">dki.one</Link></p>
</div>
</div>
<h2 className="text-2xl font-semibold mt-6">Urheberrecht</h2>
<p className="mt-2">
Alle Inhalte dieser Website, einschließlich Texte, Fotos und Designs,
stehen unter Urheberrechtsschutz. Jegliche Nutzung ohne vorherige
schriftliche Zustimmung des Urhebers ist verboten.
</p>
<div>
<h2 className="text-2xl font-semibold text-white mb-4">Haftung für Links</h2>
<p className="text-gray-300 leading-relaxed">
Meine Website enthält Links auf externe Websites. Ich habe keinen Einfluss auf die Inhalte dieser Websites
und kann daher keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der Betreiber oder
Anbieter der Seiten verantwortlich. Jedoch überprüfe ich die verlinkten Seiten zum Zeitpunkt der Verlinkung
auf mögliche Rechtsverstöße. Bei Bekanntwerden von Rechtsverletzungen werde ich derartige Links umgehend entfernen.
</p>
</div>
<h2 className="text-2xl font-semibold mt-6">Gewährleistung</h2>
<p className="mt-2">
Die Nutzung der Inhalte dieser Website erfolgt auf eigene Gefahr. Als
Diensteanbieter kann ich keine Gewähr übernehmen für Schäden, die
entstehen können, durch den Zugriff oder die Nutzung dieser Website.
</p>
<p className="font-semibold mt-6">Letzte Aktualisierung: 12.02.2025</p>
<div>
<h2 className="text-2xl font-semibold text-white mb-4">Urheberrecht</h2>
<p className="text-gray-300 leading-relaxed">
Alle Inhalte dieser Website, einschließlich Texte, Fotos und Designs, stehen unter Urheberrechtsschutz.
Jegliche Nutzung ohne vorherige schriftliche Zustimmung des Urhebers ist verboten.
</p>
</div>
<div>
<h2 className="text-2xl font-semibold text-white mb-4">Gewährleistung</h2>
<p className="text-gray-300 leading-relaxed">
Die Nutzung der Inhalte dieser Website erfolgt auf eigene Gefahr. Als Diensteanbieter kann ich keine
Gewähr übernehmen für Schäden, die entstehen können, durch den Zugriff oder die Nutzung dieser Website.
</p>
</div>
<div className="pt-4 border-t border-gray-700">
<p className="text-gray-400 text-sm">Letzte Aktualisierung: 12.02.2025</p>
</div>
</motion.div>
</main>
<Footer_Back />
<Footer />
</div>
);
}