19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration
Umbenennung presseportale → pressekonto in Domains, Themes und Dokumentation. Design-Tokens, Portal-Shell, Customer-Dashboard, Auth- und Admin-PM-Views. Artisan-Befehl migrate:legacy-media mit Tests und Hub-Flux-Entwicklungsdocs. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
092ee0e918
commit
0a3e52d603
112 changed files with 8464 additions and 1649 deletions
154
resources/views/components/layouts/auth/pressekonto.blade.php
Normal file
154
resources/views/components/layouts/auth/pressekonto.blade.php
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
@props([
|
||||
'title' => null,
|
||||
'eyebrow' => 'Publisher-Hub',
|
||||
'heading' => null,
|
||||
'topRightLabel' => null,
|
||||
'topRightLinkText' => null,
|
||||
'topRightLinkHref' => null,
|
||||
'showFromBanner' => true,
|
||||
])
|
||||
|
||||
@php
|
||||
$brand = config('domains.domains.pressekonto.brand', []);
|
||||
$from = request()->query('from');
|
||||
|
||||
$brandLabelMap = [
|
||||
'presseecho' => 'presseecho.de',
|
||||
'businessportal24' => 'businessportal24.com',
|
||||
];
|
||||
$fromBrandLabel = $brandLabelMap[$from] ?? null;
|
||||
|
||||
$pageTitle = $title ?? ($brand['meta_title'] ?? 'pressekonto – Publisher-Hub');
|
||||
|
||||
config([
|
||||
'app.theme' => 'pressekonto',
|
||||
'app.view_prefix' => 'web',
|
||||
]);
|
||||
$themeCssPath = \App\Helpers\ThemeHelper::getThemeCssPath();
|
||||
$assetsDir = config('domains.domains.pressekonto.assets_dir', 'build/web');
|
||||
\Illuminate\Support\Facades\Vite::useBuildDirectory($assetsDir);
|
||||
@endphp
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}" />
|
||||
|
||||
<title>{{ $pageTitle }}</title>
|
||||
|
||||
<link rel="icon" href="{{ asset(\App\Helpers\ThemeHelper::getFaviconPath()) }}" />
|
||||
|
||||
<link rel="preconnect" href="https://fonts.bunny.net" />
|
||||
<link rel="preconnect" href="https://fonts.bunny.net" crossorigin />
|
||||
<link href="https://fonts.bunny.net/css?family=inter-tight:400,500,600,700|source-serif-4:400,500,600,700|jetbrains-mono:400,500,600" rel="stylesheet" />
|
||||
|
||||
{{-- Nur CSS aus dem Web-Build laden. Alpine bringt @livewireScripts mit;
|
||||
würden wir hier zusätzlich resources/js/app.js mit Alpine.start()
|
||||
laden, gäbe es zwei Alpine-Instanzen und wire:submit, x-data,
|
||||
wire:model würden brechen (siehe Browser-Logs vor diesem Fix). --}}
|
||||
@vite([$themeCssPath], $assetsDir)
|
||||
@livewireStyles
|
||||
</head>
|
||||
|
||||
<body class="font-sans text-ink antialiased" style="background-color: #f6f4ef;">
|
||||
|
||||
<div class="relative min-h-screen flex flex-col overflow-hidden bg-bg">
|
||||
|
||||
{{-- Atmosphäre: subtiles Raster --}}
|
||||
<div class="auth-grid" aria-hidden="true"></div>
|
||||
|
||||
{{-- Atmosphäre: konzentrische Kreise um die Bildmitte --}}
|
||||
<svg class="absolute inset-0 w-full h-full pointer-events-none" preserveAspectRatio="xMidYMid slice" viewBox="0 0 1280 880" aria-hidden="true">
|
||||
<g opacity="0.09" stroke="#1A2540" fill="none" stroke-width="1">
|
||||
<circle cx="640" cy="470" r="160" />
|
||||
<circle cx="640" cy="470" r="260" />
|
||||
<circle cx="640" cy="470" r="380" />
|
||||
<circle cx="640" cy="470" r="510" />
|
||||
<circle cx="640" cy="470" r="660" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
{{-- 3px Hub-Blau-Streifen --}}
|
||||
<div class="relative h-[3px] bg-hub z-10"></div>
|
||||
|
||||
{{-- Header --}}
|
||||
<header class="relative z-10 px-6 sm:px-10 py-[22px] flex items-center justify-between gap-4">
|
||||
<a href="{{ route('home') }}" class="flex items-baseline gap-2.5 no-underline" wire:navigate>
|
||||
<span class="text-[19px] font-bold tracking-[-0.4px] leading-none">
|
||||
<x-web.brand-mark brand="pressekonto" :serif="false" />
|
||||
</span>
|
||||
<span class="hidden sm:inline-block w-px h-[14px] bg-bg-rule"></span>
|
||||
<span class="hidden sm:inline-block text-[9.5px] font-bold tracking-[0.22em] uppercase text-ink-3">
|
||||
{{ $brand['tagline_short'] ?? 'Publisher · Hub' }}
|
||||
</span>
|
||||
</a>
|
||||
|
||||
@if ($topRightLinkText && $topRightLinkHref)
|
||||
<span class="text-[13px] text-ink-3">
|
||||
@if ($topRightLabel)
|
||||
{{ $topRightLabel }}
|
||||
@endif
|
||||
<a href="{{ $topRightLinkHref }}" class="link-hub" wire:navigate>{{ $topRightLinkText }}</a>
|
||||
</span>
|
||||
@endif
|
||||
</header>
|
||||
|
||||
{{-- Auth-Card --}}
|
||||
<main class="relative z-10 flex-1 flex items-center justify-center px-6 sm:px-10 py-5">
|
||||
<div class="w-full max-w-[440px]">
|
||||
|
||||
@if ($showFromBanner && $fromBrandLabel)
|
||||
<div class="from-banner mb-3.5">
|
||||
Sie kommen von <strong class="font-semibold text-ink">{{ $fromBrandLabel }}</strong>.
|
||||
Ihr Konto funktioniert für <strong class="font-semibold text-ink">beide Portale</strong> –
|
||||
presseecho.de und businessportal24.com.
|
||||
</div>
|
||||
@elseif ($showFromBanner)
|
||||
<div class="from-banner mb-3.5">
|
||||
Ihr Konto funktioniert auch für
|
||||
<strong class="font-semibold text-ink">presseecho.de</strong>
|
||||
und
|
||||
<strong class="font-semibold text-ink">businessportal24.com</strong>.
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="auth-card">
|
||||
@if ($eyebrow)
|
||||
<div class="eyebrow-hub mb-2.5">{{ $eyebrow }}</div>
|
||||
@endif
|
||||
|
||||
@if ($heading)
|
||||
<h1 class="text-[26px] font-bold tracking-[-0.5px] leading-[1.2] m-0 mb-7 text-ink">
|
||||
{{ $heading }}
|
||||
</h1>
|
||||
@endif
|
||||
|
||||
{{ $slot }}
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
{{-- Micro-Footer --}}
|
||||
<footer class="relative z-10 px-6 sm:px-10 pt-[18px] pb-[26px] flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 text-[11.5px] text-ink-3">
|
||||
<span>
|
||||
SSL <span class="text-ink-4 mx-2">·</span>
|
||||
Daten in DE <span class="text-ink-4 mx-2">·</span>
|
||||
2-Faktor verfügbar
|
||||
</span>
|
||||
<span class="flex flex-wrap items-center gap-x-1 gap-y-1">
|
||||
<a href="{{ route('impressum') }}" class="text-ink-3 no-underline hover:text-ink">Impressum</a>
|
||||
<span class="text-ink-4 mx-2">·</span>
|
||||
<a href="{{ route('datenschutz') }}" class="text-ink-3 no-underline hover:text-ink">Datenschutz</a>
|
||||
<span class="text-ink-4 mx-2">·</span>
|
||||
<a href="{{ route('agb') }}" class="text-ink-3 no-underline hover:text-ink">AGB</a>
|
||||
<span class="text-ink-4 mx-2">·</span>
|
||||
<a href="{{ route('hilfe') }}" class="text-ink-3 no-underline hover:text-ink">Support</a>
|
||||
</span>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
@livewireScripts
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue