GUI ans Mockup-Design angepasst (GEFIM-Branding)

- GEFIM-Farbwelt aus dem Mockup als shadcn-Theme: Violett #5d52a3 als
  Primärfarbe, Magenta/Hellblau-Akzente, Ink-Text, #f5f6fa-Hintergrund,
  Verlaufs-Utilities (bg-grad, bg-grad-soft), Karten-Schatten
- Fonts Poppins (Überschriften/Buttons) + Open Sans (Text), self-hosted
  über next/font — kein Google-CDN-Aufruf zur Laufzeit (DSGVO)
- Sidebar mit extrahiertem GEFIM-Logo (public/gefim-logo.png), aktive
  Navigation in Violett wie im Prototyp
- Sticky Topbar mit globaler Suche (leitet vorerst auf die Asset-Suche),
  Nutzer-Info und Verlaufs-Avatar mit Initialen; Logout in die Topbar
- Primär-Buttons mit Verlaufshintergrund, Level-Badges als Pillen in
  Mockup-Farben, Login-Seite im GEFIM-Look
- Dashboard im Mockup-Stil: KPI-Karten (Assets, Prozesse, kritische
  Prozesse, Risiken-Platzhalter) und Letzte-Aktivitäten-Feed aus dem
  echten Audit-Log

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Martin
2026-07-02 13:51:11 +02:00
co-authored by Claude Fable 5
parent 392bb246cf
commit 0befcc6a2c
13 changed files with 293 additions and 163 deletions
+10 -7
View File
@@ -1,17 +1,20 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import { Open_Sans, Poppins } from "next/font/google";
import { NextIntlClientProvider } from "next-intl";
import { getLocale } from "next-intl/server";
import "./globals.css";
const geistSans = Geist({
variable: "--font-geist-sans",
// Self-hosted über next/font (kein Google-CDN-Aufruf zur Laufzeit, DSGVO)
const openSans = Open_Sans({
variable: "--font-open-sans",
subsets: ["latin"],
weight: ["300", "400", "600", "700"],
});
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
const poppins = Poppins({
variable: "--font-poppins",
subsets: ["latin"],
weight: ["300", "500", "600", "700"],
});
export const metadata: Metadata = {
@@ -30,9 +33,9 @@ export default async function RootLayout({
return (
<html
lang={locale}
className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`}
className={`${openSans.variable} ${poppins.variable} h-full antialiased`}
>
<body className="min-h-full flex flex-col bg-slate-50 text-slate-900">
<body className="min-h-full flex flex-col bg-background text-foreground">
<NextIntlClientProvider>{children}</NextIntlClientProvider>
</body>
</html>