119 lines
6.8 KiB
PHP
119 lines
6.8 KiB
PHP
@props([
|
||
'industry' => null,
|
||
'stats' => null,
|
||
'releases' => [],
|
||
'study' => null,
|
||
])
|
||
|
||
@php
|
||
$industry ??= 'Energie & Klima';
|
||
$stats ??= [
|
||
['label' => 'Meldungen heute', 'value' => '47', 'sub' => '+18 ggü. Wochenschnitt'],
|
||
['label' => 'Investitionsvolumen', 'value' => '€8,4 Mrd.', 'sub' => 'Q4 2025 angekündigt'],
|
||
['label' => 'Aktive Unternehmen', 'value' => '23', 'sub' => 'in dieser Branche heute'],
|
||
];
|
||
|
||
$releases = collect($releases);
|
||
if ($releases->isEmpty()) {
|
||
$releases = collect([
|
||
['time' => '14:12', 'date' => '12. Mai', 'category' => 'Energie', 'title' => 'RWE startet 1,8 GW Offshore-Windpark vor Helgoland — größtes Projekt in der Nordsee 2025', 'company' => 'RWE AG', 'city' => 'Essen', 'minutes' => 4, 'href' => '#'],
|
||
['time' => '12:28', 'date' => '12. Mai', 'category' => 'Energie', 'title' => 'EnBW unterzeichnet Wasserstoff-Lieferabkommen mit Air Liquide', 'company' => 'EnBW Energie', 'city' => 'Karlsruhe', 'minutes' => 3, 'href' => '#'],
|
||
['time' => '10:55', 'date' => '12. Mai', 'category' => 'Klima', 'title' => 'Stadtwerke München erreichen 100 % Ökostrom-Ziel für Privatkunden', 'company' => 'SWM', 'city' => 'München', 'minutes' => 2, 'href' => '#'],
|
||
]);
|
||
}
|
||
|
||
$study ??= [
|
||
'kicker' => 'STUDIE · ENERGIE',
|
||
'title' => 'Energiewende-Monitor 2025: Investitionen, Engpässe, Potenziale im DACH-Raum',
|
||
'source' => 'Fraunhofer-Institut für Solare Energiesysteme',
|
||
'meta' => 'PDF · 84 Seiten · Veröffentlicht 11. Nov 2025',
|
||
'href' => '#',
|
||
];
|
||
@endphp
|
||
|
||
<section class="max-w-layout mx-auto px-8 mt-16">
|
||
<header class="flex items-baseline justify-between mb-4 flex-wrap gap-3">
|
||
<h2 class="font-serif text-[28px] font-semibold m-0 tracking-[-0.3px] text-ink">
|
||
Heute im Fokus <span class="text-brand">· {{ $industry }}</span>
|
||
</h2>
|
||
<div class="eyebrow muted">Aktualisiert {{ now()->format('H:i') }} Uhr · {{ $stats[0]['value'] ?? '47' }} Meldungen heute</div>
|
||
</header>
|
||
<hr class="rule-strong">
|
||
|
||
<div class="grid grid-cols-1 md:grid-cols-3 border-b border-bg-rule">
|
||
@foreach ($stats as $idx => $stat)
|
||
<div class="px-6 py-5 {{ $idx < count($stats) - 1 ? 'md:border-r border-bg-rule' : '' }}">
|
||
<div class="eyebrow muted mb-2">{{ $stat['label'] }}</div>
|
||
<div class="font-serif text-[32px] font-semibold leading-none tracking-[-0.5px] text-ink">{{ $stat['value'] }}</div>
|
||
<div class="text-[11.5px] text-ink-3 mt-1.5">{{ $stat['sub'] }}</div>
|
||
</div>
|
||
@endforeach
|
||
</div>
|
||
|
||
<div class="grid gap-9 mt-6 grid-cols-1 lg:grid-cols-[1.7fr_1fr]">
|
||
<div>
|
||
@foreach ($releases as $release)
|
||
<a href="{{ $release['href'] }}" @class([
|
||
'grid items-start border-b border-bg-rule py-4',
|
||
'cursor-pointer transition-colors group hover:bg-bg-elev',
|
||
'pl-1.5 pr-2 sm:pl-2',
|
||
'max-md:grid-cols-[auto_minmax(0,1fr)] max-md:gap-x-3',
|
||
'md:grid-cols-[3.75rem_6.25rem_minmax(0,1fr)] md:gap-x-4',
|
||
])>
|
||
<div class="flex min-w-0 shrink-0 flex-col gap-0.5 tabular-nums pt-0.5">
|
||
<span class="font-mono text-[11px] leading-none text-ink-3 sm:text-[12px]">{{ $release['time'] }}</span>
|
||
@if (($release['date'] ?? '') !== '')
|
||
<span class="text-[9px] leading-tight text-ink-4 sm:text-[10px]">{{ $release['date'] }}</span>
|
||
@endif
|
||
<span class="bp-cat self-start whitespace-nowrap leading-snug max-md:mt-1 max-md:text-[9px] max-md:tracking-[0.1em] md:hidden">{{ $release['category'] }}</span>
|
||
</div>
|
||
<span class="bp-cat hidden self-start whitespace-nowrap leading-snug md:inline">{{ $release['category'] }}</span>
|
||
<div class="min-w-0">
|
||
<div class="font-serif text-[16px] font-medium leading-[1.3] tracking-[-0.1px] text-ink transition-colors group-hover:text-brand">
|
||
{{ $release['title'] }}
|
||
</div>
|
||
<div class="text-[11.5px] text-ink-3 mt-1 flex items-center gap-1.5 flex-wrap">
|
||
<svg width="10" height="10" viewBox="0 0 11 11" class="text-ok" aria-hidden="true">
|
||
<circle cx="5.5" cy="5.5" r="5" fill="currentColor" />
|
||
<path d="M3 5.5l1.8 1.8L8 4" stroke="white" stroke-width="1.4" fill="none" stroke-linecap="round" />
|
||
</svg>
|
||
<span>{{ $release['company'] }}</span>
|
||
@if ($release['city'] ?? null)
|
||
<span aria-hidden="true">·</span>
|
||
<span>{{ $release['city'] }}</span>
|
||
@endif
|
||
@if ($release['minutes'] ?? null)
|
||
<span aria-hidden="true">·</span>
|
||
<span>{{ $release['minutes'] }} Min.</span>
|
||
@endif
|
||
</div>
|
||
</div>
|
||
</a>
|
||
@endforeach
|
||
</div>
|
||
|
||
<aside>
|
||
<div class="bg-bg-card-warm p-6 border-t-[3px] border-brand">
|
||
<div class="eyebrow mb-2.5">{{ $study['kicker'] }}</div>
|
||
<h3 class="font-serif text-[20px] font-semibold m-0 mb-3 tracking-[-0.2px] leading-[1.25] text-ink">
|
||
{{ $study['title'] }}
|
||
</h3>
|
||
<div class="text-[12px] text-ink-3 mb-3.5">
|
||
{{ $study['source'] }}<br>
|
||
<span class="font-mono text-[11px]">{{ $study['meta'] }}</span>
|
||
</div>
|
||
<a href="{{ $study['href'] }}"
|
||
class="w-full inline-flex items-center justify-center gap-2 px-[18px] py-2.5 text-[13px] font-semibold bg-transparent text-ink border border-ink rounded-[2px] cursor-pointer hover:bg-ink hover:text-bg transition-colors">
|
||
↓ Studie herunterladen
|
||
</a>
|
||
<div class="mt-2.5 text-[10.5px] leading-[1.45] flex items-center gap-1.5 text-ink-3">
|
||
<svg width="11" height="11" viewBox="0 0 12 12" fill="none" class="flex-shrink-0 text-ink-4" aria-hidden="true">
|
||
<rect x="1.5" y="3" width="9" height="6.5" stroke="currentColor" stroke-width="1" />
|
||
<path d="M1.5 3l4.5 3.5L10.5 3" stroke="currentColor" stroke-width="1" fill="none" />
|
||
</svg>
|
||
<span>Kostenlos · Anmeldung per E-Mail erforderlich</span>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|