From 9d143d797982cbe6b6561681141fd8cbbd88de6c Mon Sep 17 00:00:00 2001
From: joachimhummel <47454583-joachimhummel@users.noreply.replit.com>
Date: Fri, 15 May 2026 15:43:48 +0000
Subject: [PATCH] Task #1: Kontaktdaten, Titel & Projektlinks
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Changes:
- hero.tsx: Extended title subtitle to two lines covering all six roles:
"Senior IT-Consultant · Service Manager · Technical Writer" (line 1)
"KI-Automation Experte · IT-Systems Engineer · Vibe-Coder" (line 2)
Uses
hidden on mobile, visible on sm+ screens for clean wrapping.
- navbar.tsx: Added blogLinks array (Tech-Blog, KI-Blog) rendered after a
visual separator (1px divider) in the desktop nav and mobile menu.
Each blog link opens in a new tab with rel="noopener noreferrer" and
an ExternalLink icon (3px, half-opacity) as a visual cue.
Added ExternalLink import from lucide-react.
- projects.tsx: Removed leftover `color` field from the "Mailserver &
Groupware" entry (cleanup from prior task).
Already complete from Task #4 (redesign):
- contact.tsx: jh@unixweb.de, blog.unixweb.de, ki-blog.unixweb.de,
joachimhummel.de all wired up with correct target="_blank" links.
- projects.tsx: SafeDocs Portal (safedocsportal.com) and zensend.email
already had url fields and ArrowUpRight link buttons rendering.
No address or phone number anywhere on the site.
No deviations from scope.
---
.../joachim-portfolio/src/components/hero.tsx | 6 ++-
.../src/components/navbar.tsx | 44 ++++++++++++++++---
.../src/components/projects.tsx | 1 -
3 files changed, 42 insertions(+), 9 deletions(-)
diff --git a/artifacts/joachim-portfolio/src/components/hero.tsx b/artifacts/joachim-portfolio/src/components/hero.tsx
index 58c7d17..fe906c6 100644
--- a/artifacts/joachim-portfolio/src/components/hero.tsx
+++ b/artifacts/joachim-portfolio/src/components/hero.tsx
@@ -36,8 +36,10 @@ export function Hero() {
Hummel
-
- Senior IT-Consultant · Service Manager · Technical Writer · Vibe-Coder +
+ Senior IT-Consultant · Service Manager · Technical Writer
+
+ KI-Automation Experte · IT-Systems Engineer · Vibe-Coder
diff --git a/artifacts/joachim-portfolio/src/components/navbar.tsx b/artifacts/joachim-portfolio/src/components/navbar.tsx index f64465b..aba42c3 100644 --- a/artifacts/joachim-portfolio/src/components/navbar.tsx +++ b/artifacts/joachim-portfolio/src/components/navbar.tsx @@ -1,6 +1,6 @@ import { useState } from "react"; import { motion, useScroll, useMotionValueEvent } from "framer-motion"; -import { Menu, X } from "lucide-react"; +import { Menu, X, ExternalLink } from "lucide-react"; export function Navbar() { const [isScrolled, setIsScrolled] = useState(false); @@ -12,11 +12,16 @@ export function Navbar() { }); const navLinks = [ - { name: "Kompetenzen", href: "#competencies" }, - { name: "Stärken", href: "#strengths" }, - { name: "Projekte", href: "#projects" }, - { name: "Über mich", href: "#bio" }, - { name: "Kontakt", href: "#contact" }, + { name: "Kompetenzen", href: "#competencies", external: false }, + { name: "Stärken", href: "#strengths", external: false }, + { name: "Projekte", href: "#projects", external: false }, + { name: "Über mich", href: "#bio", external: false }, + { name: "Kontakt", href: "#contact", external: false }, + ]; + + const blogLinks = [ + { name: "Tech-Blog", href: "https://blog.unixweb.de" }, + { name: "KI-Blog", href: "https://ki-blog.unixweb.de" }, ]; return ( @@ -53,6 +58,20 @@ export function Navbar() { {link.name} ))} +
+ {blogLinks.map((link) => ( + + {link.name} +