presseportale/resources/views/components/web/industry-spotlight.blade.php
Kevin Adametz 5b8bdf4182
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run
12-05-2026 Frontend dev
2026-05-12 18:32:33 +02:00

119 lines
6.8 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@props([
'industry' => null,
'stats' => null,
'releases' => [],
'study' => null,
])
@php
$industry ??= 'Energie & Klima';
$stats ??= [
['label' => 'Meldungen heute', 'value' => '47', 'sub' => '+18 ggü. Wochenschnitt'],
['label' => 'Investitions­volumen', '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>