Redesign: Modernes SaaS-Design für Joachim Hummel Portfolio

Task #4 — vollständiges Redesign von dunkler Terminal-Ästhetik zu modernem SaaS-Look.

Änderungen:
- index.css: Komplette Neudefinition der CSS-Variablen. Helles Farbschema (weißer Hintergrund),
  Primärfarbe Indigo/Blau (hsl 234 89% 60%), neutrale Grautöne, Google Font Inter eingebunden.
  Utility-Klassen .section-number, .hero-gradient, .dot-pattern, .card-hover hinzugefügt.
  Terminal-spezifische Klassen (.glow-text, .glow-box, .bg-grid-pattern) entfernt.

- navbar.tsx: Sticky Nav mit transparentem Start → weißem Hintergrund + Schatten beim Scrollen.
  Logo "JH" als gefülltes Indigo-Badge + "Joachim Hummel" Text. Pill-Style Navigation Links.
  Primär-CTA Button. Vollständiges Mobile-Menü mit Hamburger/X Toggle.

- hero.tsx: Zentriertes Layout, großer Display-Headline mit Indigo-Akzent auf Nachname.
  "Verfügbar für neue Projekte" Badge mit grünem Puls. Skill-Badges (30+ Jahre, ITIL, etc.).
  Zwei CTAs: gefüllter Primärbutton + Outline-Button. Subtiler Radial-Gradient + Dot-Pattern.

- competencies.tsx: Sechs weiße Karten im Grid mit farbigen Icon-Badges (blau, sky, grün, orange,
  violett, rose). Tech-Icon-Leiste (Linux, Ubuntu, Docker, Grafana, Nginx, Ansible, Prometheus)
  mit Hover-Farbeffekt und Labels.

- strengths.tsx: Drei weiße Karten auf hellgrauem Hintergrund. Nummerierung (01/02/03) als
  dekoratives Element. Highlight-Badge je Karte. Kein Glow, kein Neon.

- projects.tsx: Sechs Projektkarten mit farbigen Icon-Badges je Projektkategorie. Externe Links
  für SafeDocs Portal (safedocsportal.com) und zensend.email als ArrowUpRight-Icon-Buttons.
  Pill-Badges für Tags.

- bio.tsx: Zweispaltiges Layout. Links: Fließtext + Kunden-Badges. Rechts: Weißes Highlights-Panel
  mit CheckCircle-Icons (7 Punkte inkl. ITIL, BSI, Tech-Blogger).

- contact.tsx: Primärfarbige E-Mail-Karte + drei kompakte Link-Cards (Tech-Blog, KI-Blog, Website).
  Footer-Zeile mit Name und Standort.

- home.tsx: Vereinfacht — kein Fixed-Background, kein Grid-Pattern, kein Ambient-Glow.
  max-w-6xl Container für alle Sektionen.
This commit is contained in:
joachimhummel
2026-05-15 15:40:45 +00:00
parent 58234b8621
commit 46358579c4
9 changed files with 526 additions and 246 deletions

View File

@@ -1,3 +1,4 @@
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
@import "tailwindcss";
@import "tw-animate-css";
@plugin "@tailwindcss/typography";
@@ -34,7 +35,7 @@
--color-destructive: hsl(var(--destructive));
--color-destructive-foreground: hsl(var(--destructive-foreground));
--font-sans: 'Space Grotesk', 'Inter', sans-serif;
--font-sans: 'Inter', system-ui, sans-serif;
--font-mono: 'JetBrains Mono', 'Menlo', monospace;
--radius-sm: calc(var(--radius) - 4px);
@@ -44,38 +45,37 @@
}
:root {
/* Dark technical industrial theme as default */
--background: 224 25% 6%;
--foreground: 210 40% 98%;
--background: 0 0% 100%;
--foreground: 222 47% 11%;
--card: 224 25% 8%;
--card-foreground: 210 40% 98%;
--card-border: 224 25% 12%;
--card: 0 0% 100%;
--card-foreground: 222 47% 11%;
--card-border: 220 13% 91%;
--popover: 224 25% 6%;
--popover-foreground: 210 40% 98%;
--popover-border: 224 25% 12%;
--popover: 0 0% 100%;
--popover-foreground: 222 47% 11%;
--popover-border: 220 13% 91%;
--primary: 186 100% 42%; /* Cyan */
--primary-foreground: 224 25% 6%;
--primary: 234 89% 60%;
--primary-foreground: 0 0% 100%;
--secondary: 224 25% 12%;
--secondary-foreground: 210 40% 98%;
--secondary: 220 14% 96%;
--secondary-foreground: 222 47% 11%;
--muted: 224 25% 14%;
--muted-foreground: 215 20% 65%;
--muted: 220 14% 96%;
--muted-foreground: 220 9% 46%;
--accent: 224 25% 14%;
--accent-foreground: 210 40% 98%;
--accent: 234 89% 97%;
--accent-foreground: 234 89% 40%;
--destructive: 0 84% 60%;
--destructive-foreground: 210 40% 98%;
--destructive-foreground: 0 0% 100%;
--border: 224 25% 15%;
--input: 224 25% 15%;
--ring: 186 100% 42%;
--border: 220 13% 91%;
--input: 220 13% 91%;
--ring: 234 89% 60%;
--radius: 0.25rem;
--radius: 0.625rem;
}
@layer base {
@@ -83,23 +83,34 @@
@apply border-border;
}
html {
scroll-behavior: smooth;
}
body {
@apply font-sans antialiased bg-background text-foreground selection:bg-primary/30;
@apply font-sans antialiased bg-background text-foreground;
}
}
.glow-text {
text-shadow: 0 0 20px hsl(var(--primary) / 0.5);
.section-number {
@apply text-sm font-semibold tracking-widest uppercase text-primary;
}
.glow-box {
box-shadow: 0 0 30px hsl(var(--primary) / 0.1);
.hero-gradient {
background: radial-gradient(ellipse 80% 60% at 50% -10%, hsl(234 89% 60% / 0.12) 0%, transparent 70%);
}
/* Grid background pattern */
.bg-grid-pattern {
background-size: 40px 40px;
background-image:
linear-gradient(to right, hsl(var(--border) / 0.3) 1px, transparent 1px),
linear-gradient(to bottom, hsl(var(--border) / 0.3) 1px, transparent 1px);
.dot-pattern {
background-image: radial-gradient(circle, hsl(220 13% 91%) 1px, transparent 1px);
background-size: 28px 28px;
}
.card-hover {
transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.card-hover:hover {
box-shadow: 0 8px 30px hsl(234 89% 60% / 0.1);
transform: translateY(-2px);
border-color: hsl(234 89% 60% / 0.3);
}