98 lines
3.7 KiB
PHP
98 lines
3.7 KiB
PHP
@props([
|
||
'brand' => 'pressekonto',
|
||
'variant' => 'auto',
|
||
'serif' => true,
|
||
])
|
||
|
||
@php
|
||
/**
|
||
* Zentrale Brand-Wortmarke für alle drei Marken der Verlags-Familie.
|
||
*
|
||
* Schreibweise (verbindlich):
|
||
* - presseecho → "presse" + "echo" (echo grün)
|
||
* - businessportal24 → "businessportal" + "24" (24 orange)
|
||
* - pressekonto → "presse" + "konto" (konto bernstein)
|
||
*
|
||
* Keine TLD-Endung (".de", ".com") direkt am Markennamen. Diese gehören
|
||
* – falls überhaupt – getrennt in den juristischen Bereich (Impressum, Kontakt).
|
||
*
|
||
* Schriftart:
|
||
* - Standard `font-serif` (Source Serif 4) – passt zum Editorial-Charakter
|
||
* aller drei Portale.
|
||
* - `:serif="false"` schaltet auf font-sans (Inter Tight) – etwa für die
|
||
* Top-Utility-Bar, in der die Marken sehr klein erscheinen.
|
||
*
|
||
* Variant:
|
||
* - `auto` → Name + Akzent in den Marken-Standardfarben (auf hellem Grund)
|
||
* - `on-dark` → Name in Weiß (Negativ), Akzent in der dunkel-tauglichen Variante
|
||
* - `mono` → Name + Akzent erben vom Parent (z. B. wenn beides weiß sein soll)
|
||
*
|
||
* Logo-Farben (siehe Brand-Manual):
|
||
* - businessportal: #232A33 (auf hell) / #FFFFFF (negativ)
|
||
* - presse (Echo): #1B2417 (auf hell) / #FFFFFF (negativ)
|
||
* - presse (Konto): #1A2540 (auf hell) / #FFFFFF (negativ)
|
||
* - 24: #C84A1E immer
|
||
* - echo: #345636 (auf hell) / #9BD5B2 (negativ)
|
||
* - konto: #B07A3A immer
|
||
*/
|
||
$marks = [
|
||
'presseecho' => [
|
||
'name' => 'presse',
|
||
'accent' => 'echo',
|
||
'name_color_auto' => '#1B2417',
|
||
'name_color_on_dark' => '#FFFFFF',
|
||
'accent_color_auto' => '#345636',
|
||
'accent_color_on_dark' => '#9BD5B2',
|
||
],
|
||
'businessportal24' => [
|
||
'name' => 'businessportal',
|
||
'accent' => '24',
|
||
'name_color_auto' => '#232A33',
|
||
'name_color_on_dark' => '#FFFFFF',
|
||
'accent_color_auto' => '#C84A1E',
|
||
'accent_color_on_dark' => '#C84A1E',
|
||
],
|
||
'pressekonto' => [
|
||
'name' => 'presse',
|
||
'accent' => 'konto',
|
||
'name_color_auto' => '#1A2540',
|
||
'name_color_on_dark' => '#FFFFFF',
|
||
'accent_color_auto' => '#B07A3A',
|
||
'accent_color_on_dark' => '#B07A3A',
|
||
],
|
||
];
|
||
|
||
$mark = $marks[$brand] ?? $marks['pressekonto'];
|
||
|
||
$nameColor = match ($variant) {
|
||
'on-dark' => $mark['name_color_on_dark'],
|
||
'mono' => 'inherit',
|
||
default => $mark['name_color_auto'],
|
||
};
|
||
|
||
$accentColor = match ($variant) {
|
||
'on-dark' => $mark['accent_color_on_dark'],
|
||
'mono' => 'inherit',
|
||
default => $mark['accent_color_auto'],
|
||
};
|
||
|
||
$fontClass = $serif ? 'font-serif' : 'font-sans';
|
||
|
||
$baseAttributes = $attributes->merge(['class' => $fontClass]);
|
||
|
||
/**
|
||
* Variant=auto: Inline-Color über CSS-Custom-Property mit Light-Fallback.
|
||
* Damit kann das Portal im Dark Mode `--brand-mark-name-color` global auf
|
||
* weiß setzen, ohne dass das Hub-Frontend (Light-Only) tangiert wird —
|
||
* dort ist die Variable nie definiert und der Fallback (Marken-Standardfarbe)
|
||
* greift. Bei `on-dark` und `mono` bleibt der Inline-Style hart, weil der
|
||
* Aufrufer dort explizit eine Farb-Intention setzt.
|
||
*/
|
||
$nameStyle = $variant === 'auto'
|
||
? "color: var(--brand-mark-name-color, {$nameColor});"
|
||
: "color: {$nameColor};";
|
||
@endphp
|
||
|
||
<span {{ $baseAttributes }}><span
|
||
style="{{ $nameStyle }}">{{ $mark['name'] }}</span><span
|
||
style="color: {{ $accentColor }};">{{ $mark['accent'] }}</span></span>
|