5.4 (Teil 4): page-header size=lg-Variante + press-releases/* + companies/index

Component um size-Prop erweitert: md (30px, Standard) | lg (34px, Landing-
Header). lg vergroessert zusaetzlich Beschreibung (13.5px) und Button-Abstand
(gap-3) — exakt die bisherige Sonderoptik der Listen-Landing-Header.

Umgestellt:
- press-releases/create (md), press-releases/edit (md, Status-Badge + ID via
  :meta, 3 Aktionen inkl. Modal-Trigger)
- press-releases/index (lg) und companies/index (lg) — Letzterer war zuvor
  bewusst ausgelassen, ist mit der lg-Variante jetzt originalgetreu abbildbar.

Bewusst NICHT umgestellt: press-releases/show (zusaetzlicher Untertitel +
mehrteilige Firma/Kategorie/Autor-Beschreibung, bleibt bespoke).

md-Ausgabe unveraendert (nur Klassenreihenfolge). 321 Tests gruen.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-01 09:16:40 +00:00
parent 2a3b5612cb
commit 1eb2243959
5 changed files with 61 additions and 74 deletions

View file

@ -10,10 +10,25 @@
/** Optionaler Beschreibungstext unter dem Titel */
'description' => '',
/**
* Titel-Größe: md (Standard, 30px) | lg (Landing/Hero-Listen, 34px).
* lg vergrößert zusätzlich die Beschreibung und den Button-Abstand.
*/
'size' => 'md',
])
@php
$size = in_array($size, ['md', 'lg'], true) ? $size : 'md';
$titleClass = $size === 'lg'
? 'text-[34px] tracking-[-0.7px] leading-[1.1]'
: 'text-[30px] tracking-[-0.6px] leading-[1.15]';
$descriptionClass = $size === 'lg' ? 'text-[13.5px]' : 'text-[13px]';
$actionsGap = $size === 'lg' ? 'gap-3' : 'gap-2';
@endphp
{{--
Einheitlicher Seitenkopf des Admin-Backends. Ersetzt den 35-fach kopierten
Einheitlicher Seitenkopf des Admin-Backends. Ersetzt den vielfach kopierten
page-header-Block. Variable Teile über Slots:
<x-slot:meta> – zusätzliche Badges hinter dem Eyebrow (ID, Zähler …)
<x-slot:actions> – Buttons rechts (Zurück, Speichern …)
@ -32,19 +47,19 @@
{{ $meta ?? '' }}
</div>
<h1 class="text-[30px] font-bold tracking-[-0.6px] leading-[1.15] m-0 text-[color:var(--color-ink)] break-words">
<h1 class="{{ $titleClass }} font-bold m-0 text-[color:var(--color-ink)] break-words">
{{ $title }}
</h1>
@if (filled($description))
<p class="text-[13px] leading-[1.55] mt-2 m-0 max-w-[640px] text-[color:var(--color-ink-2)]">
<p class="{{ $descriptionClass }} leading-[1.55] mt-2 m-0 max-w-[640px] text-[color:var(--color-ink-2)]">
{{ $description }}
</p>
@endif
</div>
@isset($actions)
<div class="flex items-center gap-2 flex-shrink-0">
<div class="flex items-center {{ $actionsGap }} flex-shrink-0">
{{ $actions }}
</div>
@endisset