Logo-Downloadseite /logo mit Erzeuger-Skript

Damit die Abteilungen das Wappen selbst holen können, statt jedes Mal zu fragen:
drei Varianten (farbig, einfarbig schwarz, einfarbig weiß) in SVG, PDF, PNG und JPG,
dazu ein ZIP über alles und die Vereinsfarben. Verlinkt nur in der Fußzeile.

Bisher lag das Logo genau einmal im Projekt, als eine einzige SVG. Es gab kein PNG,
kein JPG, kein PDF und keine einfarbige Fassung.

bin/logo-build.php erzeugt alle Dateien aus einer Master-SVG unter storage/logo-quellen/.
Gerastert wird mit headless Chrome, weil GD kein SVG lesen kann und weder Inkscape noch
rsvg-convert noch ImageMagick verfügbar sind; das PDF ist dabei echter Vektor. Das Skript
läuft einmalig lokal, nichts davon im Request-Pfad. bin/preflight.php meldet als Fehler,
wenn eine Download-Datei fehlt: die Komponente ließe den Knopf sonst still weg.

Die beiden einfarbigen Fassungen sind exakte Negative voneinander, nur Linien, alle
Flächen frei. EPS gibt es bewusst nicht, dafür fehlt jedes Werkzeug; SVG und PDF decken
die Druckereien ab. Frühere Vereinslogos sind vorbereitet, aber im Projekt liegt bisher
kein einziges historisches Wappen vor.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J9mubC8gtpjtJntbhSJBRS
This commit is contained in:
2026-09-17 10:10:08 +02:00
parent e6ac00b248
commit 75fce4f680
35 changed files with 1141 additions and 2 deletions

View File

@@ -60,6 +60,7 @@ selbst gehosteter Stack ohne Abhängigkeiten von Drittanbietern.
| Veranstaltungen (`/veranstaltungen` + Detailseiten) | `data/veranstaltungen.json` + `public/assets/img/veranstaltungen/` | Termin, Texte, Programm, Turnierpläne (`turniere[]`, nur fürs Heft), Abschnitte von Claude im Chat gepflegt — **außer `plakate` und `galerie`: die schreibt ausschließlich `bin/veranstaltung-bilder.php`**. Adresse nie in die Texte schreiben (steht in `club.json`) |
| News (`/news` + optionale Detailseiten) | `data/news.json` (redaktionelle Meldungen; `artikel[]` = Fließtext-Blöcke, `status` = Entwurf/veröffentlicht) — Instagram-Posts und Ergebnisse kommen weiterhin nur aus `data/instagram.json`/`data/matchcenter.json`, werden auf der News-Seite nur gemergt | Von Claude im Chat gepflegt wie `events.json`/`teams.json` — **keine** Automatisierung, kein Bin-Skript. Instagram/Ergebnisse nie hier duplizieren. `text` bleibt der Teaser (Feed, Meta-Description, Article-Schema), der Artikel steht in `artikel[]` |
| Dateiablage `/dateien` (Konfiguration) | `public/dateien/_filesconfig.php` (Rechte pro Konto: `storage/dateien/system/users/admin/config.php`) | **`storage/dateien/system/config/config.php` von Hand editieren** — die App generiert sie selbst und überschreibt sie bei jedem Update. Passwörter/Lizenz gehören in `config.php` (`dateien.*`) |
| Logo-Downloads (`/logo`) | Texte: `data/logo.json` · Master: `storage/logo-quellen/*.svg` | Die Dateien unter `public/assets/downloads/logo/` sind **maschinenverwaltet von `bin/logo-build.php`** — nie von Hand skalieren, nie von Hand umfärben, nie einzeln nachlegen. Auch keine Dateiliste in die JSON schreiben: welche Formate es gibt, entscheidet das Skript, Größen liest die Seite von der Platte |
| Icons | `public/assets/icons/` (Bootstrap Icons, lokal) via `icon()`-Helper | Inline-SVG-Pfade von Hand ins Markup, Emoji/Unicode-Glyphen, gezeichnete CSS-Icons, Icon-Font/CDN |
Per-Page-Meta (Title/Description/OG) lebt in der jeweiligen Page-Datei (`app/pages/*.php`) im `$meta`-Array.
@@ -239,7 +240,7 @@ Funktion, sie ist die einzige Stelle, an der aus JSON HTML entsteht.
Web wie CLI. Kein `error_log()`, kein `file_put_contents()` auf eine Logdatei, keine eigene
Log-Closure in einem neuen Skript.
- Kanal = Dateiname unter `storage/logs/`: `mail` · `spam` · `instagram` · `matchcenter` ·
`stadionzeitung` · `veranstaltungen` · `chronik` · `filesgallery` · `logrotate`
`stadionzeitung` · `veranstaltungen` · `chronik` · `filesgallery` · `logo` · `logrotate`
(letzterer nur für den Übersprungen-Hinweis des Cron-Endpoints, der seinen Kanal aus dem
Job-Namen bildet)
(`php-errors.log` schreibt PHP selbst, eigenes Format).
@@ -1180,6 +1181,66 @@ funktionieren hier **nicht** — sie brauchen eine öffentliche URL, unser `stor
`public/dateien/.htaccess` (braucht `'unsafe-inline'` für Scripts/Styles: die App interpoliert
Inline-Code per PHP und kennt keine Nonces) — sie gilt nur dort, die Seiten behalten die strikte.
## Logo-Downloadseite `/logo`
Damit die Abteilungen das Wappen selbst holen können, statt jedes Mal zu fragen: eine
öffentliche Seite mit jeder Variante in jedem gängigen Format, dazu die Farbwerte und die
Nutzungsregeln. Verlinkt **nur in der Fußzeile** (`navigation.json` → `legal`), nicht im
Hauptmenü. Die Dateien werden **einmalig lokal** erzeugt und committet; nichts davon läuft
auf dem Server, es gibt keinen Cron und keine Laufzeit-Abhängigkeit.
**Drei Varianten, alle aus EINER Master-SVG** (`storage/logo-quellen/aktuell.svg`, identisch
zum Website-Asset `public/assets/img/logo.svg`): `farbig`, `einfarbig-schwarz` und
`einfarbig-weiss`. Die Umfärbung passiert durch Austausch der Farbklassen im `<defs>`-Block
der CorelDRAW-Datei (`.fil0`/`.fil3` schwarz, `.fil1` weiß, `.fil2` rot) —
`bin/logo-build.php` bricht ab, wenn eine erwartete Klasse fehlt, sonst entstünde stillschweigend
dreimal dasselbe Logo.
**Die beiden einfarbigen Fassungen sind exakte Negative voneinander:** nur Linien, ALLE
Flächen frei. Zwei Irrwege dahin, beide am 17.09.2026 korrigiert: eine Fassung „für dunklen
Grund" behielt das rote Schild und war damit keine einfarbige, sondern ein farbiges Logo mit
weißen Konturen; und `einfarbig-schwarz` ersetzte Rot durch **Weiß**, wodurch im PNG eine
deckend weiße Schildfläche steckte (auf farbigem Papier ein weißer Klotz). **Einfarbig heißt
einfarbig:** ein Vollton, der Rest transparent. Nachweisbar über die Volltonfarben im PNG,
je Variante darf genau eine vorkommen.
**Gerastert wird mit headless Chrome, nicht mit GD.** `bin/img-resize.php` kann keine SVG lesen,
und Inkscape, rsvg-convert oder ImageMagick gibt es hier nicht (auf dem Shared Hosting erst
recht nicht). Chrome kann beides, was gebraucht wird: transparent rastern (`--screenshot` +
`--default-background-color=00000000`) und ein **echtes Vektor-PDF** drucken (`--print-to-pdf`,
nachgemessen: Kurven-Operatoren im Inhaltsstrom, kein eingebettetes Pixelbild).
**Kein `--user-data-dir`** — der naheliegende eigene Profilordner lässt Chrome 152 beim ersten
Aufruf endlos hängen, ohne Bild und ohne Meldung. Ohne den Schalter läuft jeder Aufruf in
Sekunden durch, auch bei geöffnetem Chrome. Wer das ändert, misst die Laufzeit nach.
**Der JPG-Hintergrund gehört zur Variante**, nicht zum Format: JPG kann keine Transparenz, und
die weiße Fassung auf weißem Grund wäre ein leeres Blatt. `einfarbig-weiss` wird deshalb auf
Anthrazit (`#222`) flachgelegt, alle anderen auf Weiß (`jpg_bg` je Eintrag in `$OUTPUTS`).
**EPS gibt es bewusst nicht.** Dafür bräuchte es Illustrator, Inkscape oder Ghostscript; ein
Composer-Paket verbietet Regel 1. Druckereien nehmen PDF oder SVG, beides liegt als Vektor
bereit. Steht die Frage doch im Raum, beantwortet sie die FAQ auf der Seite.
**Retro-Logos:** `retro[]` in `data/logo.json` ist vorbereitet und vorerst leer — im Projekt
existiert kein einziges historisches Wappen (weder im Repo noch in `.context/`, der alten
CMS-Datenbank oder der Chronik-Sammlung). Kommt ein Scan, wird er eine weitere Datei in
`storage/logo-quellen/` plus ein Eintrag in `$OUTPUTS`; liegt er nur als Pixelbild vor, erzeugt
das Skript PNG und JPG über `resize_image_variants()` und lässt SVG und PDF weg.
**Die Seite ist bewusst karg** (Felix, 17.09.2026): Einleitungstext, Nutzungshinweis
(„nicht verzerren, nicht einfärben"), die Abschnittsüberschrift über den Karten und eine
fünfteilige FAQ waren gebaut und sind alle wieder entfernt worden; das ZIP über alle
Varianten hatte ebenfalls eine eigene Sektion samt Überschrift „Alles auf einmal" und ist
jetzt nur noch ein Knopf unter dem Karten-Raster (Prop `paket` der Komponente) — „alles
davon" gehört direkt unter das, worauf es sich bezieht. Eine Downloadseite ist ein
Regal, kein Text: Wappen, Knöpfe, Farben, fertig. Die Variantenbeschreibungen sind auf drei
Wörter gekürzt („Stempel, Gravur, einfarbiger Druck."). Die Überschrift steht noch als
`visually-hidden` im DOM, damit die Heading-Kette nicht von `h1` auf `h3` springt.
**Nichts davon wieder hinzuerklären.**
`bin/preflight.php` prüft, dass zu jeder Variante die Dateien existieren (**Fehler**, nicht
Warnung: die Komponente lässt einen Knopf ohne Datei still weg, man sähe es der Seite nicht an)
und warnt, wenn eine Master-SVG neuer ist als das Erzeugte.
## Chronik 2028 (Materialsammlung fürs Jubiläum)
Sammelt Fundstücke für die Vereinschronik zum 120-jährigen Bestehen. **Reine Recherche-Werkzeuge,

View File

@@ -91,7 +91,7 @@ $extraLinks = array_merge($extraLinks, $nav['ctas'] ?? []);
<div class="site-footer__bottom">
<div class="container site-footer__bottom-inner">
<p>&copy; <?= e(date('Y')) ?> <?= e($club['legal_name']) ?></p>
<ul class="site-footer__legal" aria-label="Rechtliches">
<ul class="site-footer__legal" aria-label="Service und Rechtliches">
<?php foreach ($nav['legal'] as $item): ?>
<li><a href="<?= e(url($item['slug'])) ?>"><?= e($item['label']) ?></a></li>
<?php endforeach; ?>

View File

@@ -0,0 +1,136 @@
<?php
declare(strict_types=1);
/**
* Logo-Varianten mit ihren Download-Knöpfen. Props:
* $varianten array [{key, title, text, grund?: 'hell'|'dunkel'}, …]
* `key` ist zugleich das Dateinamen-Suffix unter assets/downloads/logo/
* und der Schlüssel in bin/logo-build.php. `grund` steuert nur, worauf die
* Vorschau liegt: 'hell' zeigt ein Karomuster (der Grund ist frei),
* 'dunkel' eine dunkle Fläche (sonst sähe man die weiße Variante nicht).
* $title string — Überschrift des Abschnitts
* $title_hidden bool (optional) — Überschrift nur für Screenreader. Hält die
* Heading-Kette heil (h1 → h2 → Kartentitel), ohne sie zu zeigen: über
* drei Wappen-Karten muss nicht „Das aktuelle Wappen" stehen.
* $text string (optional) — Einleitung darunter
* $anchor string (optional, Default 'varianten')
* $tinted bool (optional) — abgesetzte Sektionsfläche
* $paket array{label, href, meta} (optional) — ein Knopf unter dem Raster, für das
* ZIP über alle Varianten. Steht bewusst HIER und nicht in einer eigenen
* Sektion mit Überschrift (die war gebaut und ist am 17.09.2026 wieder raus):
* „alles davon" gehört direkt unter das, worauf es sich bezieht.
*
* Die Dateiliste steht bewusst NICHT in data/logo.json: welche Formate es gibt,
* entscheidet bin/logo-build.php, und Größe und Maße liest die Seite direkt von der
* Platte. Eine zweite Liste in der JSON könnte nur noch falsch werden. Fehlt eine
* Datei, entfällt ihr Knopf still (und bin/preflight.php meldet es vor dem Deploy).
*/
$varianten = array_values(array_filter($varianten ?? [], static fn (array $v): bool => !empty($v['key'])));
if ($varianten === []) {
return;
}
$anchor = $anchor ?? 'varianten';
$text = trim((string) ($text ?? ''));
$titleHidden = !empty($title_hidden);
$paket = $paket ?? [];
$tinted = !empty($tinted);
$dir = PUBLIC_PATH . '/assets/downloads/logo';
/** Dateigröße menschenlesbar: unter 1 MB in KB, darüber mit einer Nachkommastelle in MB. */
$size = static function (string $file): string {
$bytes = (int) filesize($file);
return $bytes < 1024 * 1024
? number_format($bytes / 1024, 0, ',', '.') . ' KB'
: number_format($bytes / 1024 / 1024, 1, ',', '.') . ' MB';
};
// Reihenfolge der Knöpfe = Reihenfolge der Empfehlung: erst Vektor (das Richtige für
// die Druckerei), dann PNG (freigestellt), zuletzt JPG (mit gefülltem Rechteck drumherum).
$formate = static function (string $base) use ($dir): array {
$liste = [];
foreach ([
['datei' => "{$base}.svg", 'label' => 'SVG', 'hint' => 'Vektor'],
['datei' => "{$base}.pdf", 'label' => 'PDF', 'hint' => 'Vektor'],
['datei' => "{$base}-500.png", 'label' => 'PNG', 'hint' => '500 px'],
['datei' => "{$base}-1000.png", 'label' => 'PNG', 'hint' => '1000 px'],
['datei' => "{$base}-2000.png", 'label' => 'PNG', 'hint' => '2000 px'],
['datei' => "{$base}-1000.jpg", 'label' => 'JPG', 'hint' => '1000 px'],
['datei' => "{$base}-2000.jpg", 'label' => 'JPG', 'hint' => '2000 px'],
] as $format) {
if (is_file($dir . '/' . $format['datei'])) {
$liste[] = $format;
}
}
return $liste;
};
?>
<section class="section<?= $tinted ? ' section--tinted' : '' ?> logo-downloads" id="<?= e($anchor) ?>">
<div class="container">
<header class="logo-downloads__head">
<h2<?= $titleHidden ? ' class="visually-hidden"' : '' ?>><?= e($title) ?></h2>
<?php if ($text !== ''): ?>
<p class="logo-downloads__intro"><?= e($text) ?></p>
<?php endif; ?>
</header>
<ul class="logo-downloads__grid" role="list">
<?php foreach ($varianten as $variante): ?>
<?php
$base = 'tsv08-kulmbach-logo-' . $variante['key'];
$formats = $formate($base);
if ($formats === []) {
continue;
}
$preview = is_file($dir . '/' . $base . '.svg')
? 'downloads/logo/' . $base . '.svg'
: 'downloads/logo/' . $base . '-1000.png';
$dunkel = ($variante['grund'] ?? 'hell') === 'dunkel';
?>
<li class="logo-card">
<div class="logo-card__preview logo-card__preview--<?= $dunkel ? 'dunkel' : 'karo' ?>">
<?php component('img', [
'image' => [
'src' => $preview,
'width' => 300,
'height' => 388,
'alt' => 'Unser Vereinswappen, Variante ' . ($variante['title'] ?? $variante['key']),
],
'class' => 'logo-card__img',
]); ?>
</div>
<div class="logo-card__body">
<h3 class="logo-card__title"><?= e($variante['title'] ?? $variante['key']) ?></h3>
<?php if (!empty($variante['text'])): ?>
<p class="logo-card__text"><?= e($variante['text']) ?></p>
<?php endif; ?>
<ul class="logo-card__files" role="list">
<?php foreach ($formats as $format): ?>
<li>
<a class="btn btn--outline btn--sm logo-card__btn"
href="<?= e(asset('downloads/logo/' . $format['datei'])) ?>" download>
<?= icon('download') ?>
<span class="logo-card__format"><?= e($format['label']) ?></span>
<span class="logo-card__meta"><?= e($format['hint']) ?> · <?= e($size($dir . '/' . $format['datei'])) ?></span>
</a>
</li>
<?php endforeach; ?>
</ul>
</div>
</li>
<?php endforeach; ?>
</ul>
<?php if (!empty($paket['href'])): ?>
<p class="logo-downloads__paket">
<a class="btn btn--lg" href="<?= e($paket['href']) ?>" download>
<?= icon('download') ?><?= e($paket['label']) ?>
</a>
<?php if (!empty($paket['meta'])): ?>
<span class="logo-downloads__paket-meta"><?= e($paket['meta']) ?></span>
<?php endif; ?>
</p>
<?php endif; ?>
</div>
</section>

96
app/pages/logo.php Normal file
View File

@@ -0,0 +1,96 @@
<?php
declare(strict_types=1);
/**
* Logo zum Herunterladen. Inhalt: data/logo.json.
* Struktur: Hero → Varianten mit Downloads (samt ZIP-Knopf) → Farben → frühere Logos.
*
* Bewusst KARG (Entscheidung Felix, 17.09.2026): Einleitungstext, Nutzungshinweis,
* Abschnittsüberschrift und FAQ waren gebaut und sind wieder raus. Eine Downloadseite
* ist ein Regal, kein Text: Wappen, Knöpfe, Farben. Wer etwas fragen will, findet den
* Weg über die Fußzeile. Die Überschrift steht noch im DOM, aber visually-hidden,
* damit die Heading-Kette nicht von h1 auf h3 springt.
*
* Die DATEIEN erzeugt bin/logo-build.php nach public/assets/downloads/logo/; diese Seite
* kennt nur die Variantenschlüssel und liest Größen beim Rendern von der Platte.
*/
$page = json_load('logo');
$zip = 'downloads/logo/tsv08-kulmbach-logo-paket.zip';
$zipFile = PUBLIC_PATH . '/assets/' . $zip;
$zipSize = is_file($zipFile) ? number_format(filesize($zipFile) / 1024 / 1024, 1, ',', '.') . ' MB' : '';
// Farbfläche über eine Klasse, nie über ein style-Attribut: die CSP verwirft Inline-Styles
// in Produktion stillschweigend. Die Klasse holt sich den Wert aus dem Token in tokens.css,
// die JSON nennt nur den Namen. Unbekannte Namen fallen still weg.
$farbKlassen = ['accent' => 'accent', 'black' => 'black', 'bg' => 'bg', 'white' => 'white'];
$meta = [
'title' => 'Logo herunterladen',
'description' => 'Unser Vereinswappen zum Herunterladen: als Vektor für die Druckerei, als PNG und JPG für Dokumente und Aushänge, dazu unsere Vereinsfarben.',
'og_image' => 'downloads/logo/tsv08-kulmbach-logo-farbig-1000.jpg',
'schema' => page_schema([
['name' => 'Startseite', 'slug' => ''],
['name' => 'Der Verein', 'slug' => 'verein'],
['name' => 'Logo herunterladen', 'slug' => 'logo'],
]),
];
component('hero', ['hero' => $page['hero']]);
?>
<?php
component('logo-downloads', [
'varianten' => $page['varianten'] ?? [],
'title' => $page['varianten_title'] ?? 'Das aktuelle Wappen',
'title_hidden' => true,
'anchor' => 'varianten',
'paket' => $zipSize === '' ? [] : [
'label' => $page['paket']['label'] ?? 'Alle Dateien als ZIP',
'href' => asset($zip),
'meta' => 'ZIP, ' . $zipSize,
],
]);
?>
<?php if (!empty($page['farben']['items'])): ?>
<section class="section logo-farben" id="farben">
<div class="container">
<header class="logo-farben__head">
<h2><?= e($page['farben']['title']) ?></h2>
<?php if (!empty($page['farben']['text'])): ?>
<p class="logo-farben__intro"><?= e($page['farben']['text']) ?></p>
<?php endif; ?>
</header>
<ul class="logo-farben__grid" role="list">
<?php foreach ($page['farben']['items'] as $farbe): ?>
<?php $klasse = $farbKlassen[$farbe['token'] ?? ''] ?? null; ?>
<li class="logo-farbe">
<?php if ($klasse !== null): ?>
<span class="logo-farbe__swatch logo-farbe__swatch--<?= e($klasse) ?>"></span>
<?php endif; ?>
<div class="logo-farbe__body">
<h3 class="logo-farbe__name"><?= e($farbe['name']) ?></h3>
<dl class="logo-farbe__werte">
<div><dt>HEX</dt><dd><?= e($farbe['hex']) ?></dd></div>
<div><dt>RGB</dt><dd><?= e($farbe['rgb']) ?></dd></div>
<div><dt>CMYK</dt><dd><?= e($farbe['cmyk']) ?></dd></div>
</dl>
<?php if (!empty($farbe['hinweis'])): ?>
<p class="logo-farbe__hinweis"><?= e($farbe['hinweis']) ?></p>
<?php endif; ?>
</div>
</li>
<?php endforeach; ?>
</ul>
</div>
</section>
<?php endif; ?>
<?php
// Rendert nichts, solange retro[] leer ist: alte Vereinslogos liegen bisher nirgends vor.
component('logo-downloads', [
'varianten' => $page['retro'] ?? [],
'title' => $page['retro_title'] ?? 'Frühere Vereinslogos',
'text' => $page['retro_text'] ?? '',
'anchor' => 'frueher',
'tinted' => true,
]);

View File

@@ -34,6 +34,7 @@ return [
'veranstaltungen' => ['file' => 'veranstaltungen.php', 'sitemap' => true],
'kontakt' => ['file' => 'kontakt.php', 'sitemap' => true],
'partner-werden' => ['file' => 'partner-werden.php', 'sitemap' => true],
'logo' => ['file' => 'logo.php', 'sitemap' => true],
'mitglied-werden' => ['file' => 'mitglied-werden.php', 'sitemap' => true],
'impressum' => ['file' => 'impressum.php', 'sitemap' => true],
'datenschutz' => ['file' => 'datenschutz.php', 'sitemap' => true],

368
bin/logo-build.php Normal file
View File

@@ -0,0 +1,368 @@
<?php
declare(strict_types=1);
/**
* Alle Download-Dateien des Vereinslogos aus den Master-Dateien erzeugen (nur CLI).
*
* php bin/logo-build.php [-v]
*
* Quelle: storage/logo-quellen/<datei>.svg — die Master-Dateien. `aktuell.svg` ist
* das heutige Logo (identisch zu public/assets/img/logo.svg, das bleibt das
* Website-Asset und wird hier nicht angefasst). Alte Vereinslogos kommen als
* weitere Dateien dazu und werden unten in $OUTPUTS eingetragen.
*
* Ziel: public/assets/downloads/logo/ — je Ausgabe SVG, PNG (transparent, drei
* Breiten), JPG (weißer Grund, zwei Breiten) und PDF, dazu ein ZIP über alles.
* Der Ordner wird bei jedem Lauf GELEERT und neu gefüllt; nur so lässt sich eine
* Variante auch wieder entfernen.
*
* WARUM CHROME UND NICHT bin/img-resize.php: GD kennt kein SVG, und Inkscape,
* rsvg-convert oder ImageMagick sind hier nicht vorhanden (und wären auf dem
* Shared Hosting auch nicht zu haben). Headless Chrome kann beides, was wir
* brauchen: transparent rastern und ein echtes VEKTOR-PDF drucken (geprüft:
* das PDF enthält Kurven-Operatoren, kein eingebettetes Pixelbild).
*
* Das Skript läuft EINMALIG LOKAL, das Ergebnis wird committet. Nichts davon
* läuft auf dem Server, es gibt keinen Cron und keine Laufzeit-Abhängigkeit.
*
* Die Dateinamen sind absichtlich ausgeschrieben: sie landen im Download-Ordner
* fremder Leute, wo „logo-2.png“ niemandem hilft.
*/
if (PHP_SAPI !== 'cli') {
exit(1);
}
require dirname(__DIR__) . '/app/bootstrap.php';
$verbose = in_array('-v', $argv, true);
$log = static function (string $msg, string $level = 'INFO') use ($verbose): void {
log_write('logo', $level, $msg);
if ($verbose || $level === 'ERROR' || $level === 'WARN') {
echo '[' . date('c') . "] {$level} {$msg}\n";
}
};
$fail = static function (string $msg) use ($log): never {
$log($msg, 'ERROR');
exit(1);
};
// --- Was erzeugt wird ---------------------------------------------------------
// Schlüssel = Dateiname-Suffix UND Schlüssel in data/logo.json (bin/preflight.php
// prüft, dass beide Listen zusammenpassen). `ersetzen` färbt die Master-SVG um,
// indem die Farbklassen im <defs>-Block ausgetauscht werden — die CorelDRAW-Datei
// legt alle Farben genau dort ab (.fil0/.fil3 schwarz, .fil1 weiß, .fil2 rot).
$OUTPUTS = [
'farbig' => [
'quelle' => 'aktuell.svg',
'ersetzen' => [],
],
// Das genaue Gegenstück zu einfarbig-schwarz: dort trägt die weiße Fläche die
// schwarzen Linien, hier tragen die weißen Linien den freien Grund. KEIN Rot —
// eine einfarbige Fassung ist einfarbig, sonst wäre sie nur ein farbiges Logo
// mit weißen Konturen (so war es bis zum 17.09.2026 und war schlicht falsch).
'einfarbig-weiss' => [
'quelle' => 'aktuell.svg',
// Weiße Konturen auf weißem JPG wären unsichtbar: diese Variante wird auf
// den Anthrazit-Grund der Website gelegt, denn genau dafür ist sie gedacht.
'jpg_bg' => [0x22, 0x22, 0x22],
'ersetzen' => [
'.fil3 {fill:black}' => '.fil3 {fill:white}',
'.fil0 {fill:black;' => '.fil0 {fill:white;',
'.fil1 {fill:white}' => '.fil1 {fill:none}',
'.fil2 {fill:red}' => '.fil2 {fill:none}',
],
],
// Reine Strichzeichnung: Linien schwarz, ALLE Flächen frei. Vorher wurde das Rot
// durch Weiß ersetzt, dann steckte im PNG eine deckend weiße Schildfläche — auf
// farbigem Papier oder einem Briefkopf lag da ein weißer Klotz. Für Stempel,
// Gravur und Stickerei will man die Kontur, nicht die Fläche.
'einfarbig-schwarz' => [
'quelle' => 'aktuell.svg',
'ersetzen' => [
'.fil2 {fill:red}' => '.fil2 {fill:none}',
'.fil1 {fill:white}' => '.fil1 {fill:none}',
],
],
];
const LOGO_PNG_WIDTHS = [500, 1000, 2000];
const LOGO_JPG_WIDTHS = [1000, 2000];
// 90 statt der 78 aus bin/img-resize.php: ein Logo ist Fläche mit harten Kanten,
// bei 78 franst die Rundung des Wappens sichtbar aus. Fotos vertragen 78, Grafik nicht.
const LOGO_JPG_QUALITY = 90;
const LOGO_PREFIX = 'tsv08-kulmbach-logo';
$srcDir = STORAGE_PATH . '/logo-quellen';
$destDir = PUBLIC_PATH . '/assets/downloads/logo';
$tmpDir = sys_get_temp_dir() . '/tsv08-logo-' . getmypid();
// --- Chrome finden ------------------------------------------------------------
// Reihenfolge: Umgebungsvariable CHROME, dann die üblichen Installationsorte.
$chrome = getenv('CHROME') ?: '';
if ($chrome === '') {
foreach ([
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
'/Applications/Chromium.app/Contents/MacOS/Chromium',
'/usr/bin/google-chrome',
'/usr/bin/chromium',
] as $candidate) {
if (is_executable($candidate)) {
$chrome = $candidate;
break;
}
}
}
if ($chrome === '' || !is_executable($chrome)) {
$fail('Kein Chrome gefunden. Pfad per Umgebungsvariable setzen: CHROME="/Pfad/zu/Chrome" php bin/logo-build.php');
}
if (!is_dir($srcDir)) {
$fail("Quellordner fehlt: {$srcDir}");
}
if (!is_dir($destDir) && !mkdir($destDir, 0775, true) && !is_dir($destDir)) {
$fail("Zielordner nicht anlegbar: {$destDir}");
}
if (!mkdir($tmpDir, 0775, true) && !is_dir($tmpDir)) {
$fail("Arbeitsordner nicht anlegbar: {$tmpDir}");
}
register_shutdown_function(static function () use ($tmpDir): void {
foreach (glob($tmpDir . '/*') ?: [] as $file) {
@unlink($file);
}
@rmdir($tmpDir);
});
/**
* Chrome einmal aufrufen.
*
* KEIN --user-data-dir: naheliegend wäre ein eigener Profilordner, damit ein offenes
* Chrome-Fenster den Lauf nicht stört. Chrome 152 bleibt damit aber beim ERSTEN Aufruf
* endlos hängen (gemessen: kein Abbruch nach zwei Minuten, kein Bild, keine Meldung).
* Ohne den Schalter läuft jeder Aufruf in wenigen Sekunden durch, auch bei geöffnetem
* Chrome. Wer hier etwas ändert, misst die Laufzeit nach.
*/
$runChrome = static function (array $args) use ($chrome): void {
$cmd = escapeshellarg($chrome)
. ' --headless --disable-gpu --hide-scrollbars --force-color-profile=srgb'
. ' --no-first-run --no-default-browser-check'
. ' ' . implode(' ', $args) . ' 2>/dev/null';
exec($cmd);
};
/** Maße der SVG in mm aus dem Wurzelelement lesen (für die PDF-Seitengröße). */
$svgSize = static function (string $svg) use ($fail): array {
if (!preg_match('/width="([\d.]+)mm"/', $svg, $w) || !preg_match('/height="([\d.]+)mm"/', $svg, $h)) {
if (preg_match('/viewBox="[\d.\s-]*?([\d.]+)\s+([\d.]+)"/', $svg, $vb)) {
return [(float) $vb[1], (float) $vb[2]]; // viewBox-Einheiten als mm deuten
}
$fail('SVG ohne verwertbare Maße (weder mm-Angaben noch viewBox).');
}
return [(float) $w[1], (float) $h[1]];
};
/**
* PNG mit Alphakanal auf eine deckende Fläche legen und als JPG sichern.
* JPG kann keine Transparenz; ohne dieses Unterlegen rechnet GD den Alphakanal
* gegen Schwarz und das Wappen bekäme einen schwarzen Kasten.
*/
$flattenToJpg = static function (string $pngPath, string $jpgPath, int $quality, array $bg): bool {
$png = @imagecreatefrompng($pngPath);
if (!$png) {
return false;
}
$canvas = imagecreatetruecolor(imagesx($png), imagesy($png));
imagefill($canvas, 0, 0, imagecolorallocate($canvas, $bg[0], $bg[1], $bg[2]));
imagecopy($canvas, $png, 0, 0, 0, 0, imagesx($png), imagesy($png));
return imagejpeg($canvas, $jpgPath, $quality);
};
// --- Zielordner leeren --------------------------------------------------------
foreach (glob($destDir . '/*') ?: [] as $old) {
if (is_file($old)) {
unlink($old);
}
}
// --- Erzeugen -----------------------------------------------------------------
$built = [];
foreach ($OUTPUTS as $key => $spec) {
$srcFile = $srcDir . '/' . $spec['quelle'];
if (!is_file($srcFile)) {
$fail("Master-Datei fehlt: {$srcFile}");
}
$base = LOGO_PREFIX . '-' . $key;
$isVector = strtolower(pathinfo($srcFile, PATHINFO_EXTENSION)) === 'svg';
if (!$isVector) {
// Alte Logos liegen oft nur als Scan vor: dann gibt es kein SVG und kein PDF,
// aber PNG und JPG lassen sich wie überall sonst im Projekt erzeugen.
foreach (resize_image_variants($srcFile, $destDir . '/' . $base, LOGO_PNG_WIDTHS, LOGO_JPG_QUALITY, true) as $v) {
$built[] = $v['file'];
}
foreach (resize_image_variants($srcFile, $destDir . '/' . $base, LOGO_JPG_WIDTHS, LOGO_JPG_QUALITY) as $v) {
$built[] = $v['file'];
}
$log("{$key}: aus Rasterquelle erzeugt (kein SVG/PDF möglich).", 'WARN');
continue;
}
// 1. Varianten-SVG
$svg = file_get_contents($srcFile);
if ($svg === false) {
$fail("Master-Datei nicht lesbar: {$srcFile}");
}
foreach ($spec['ersetzen'] as $from => $to) {
if (!str_contains($svg, $from)) {
$fail("Farbklasse „{$from}“ steht nicht in {$spec['quelle']} — die Variante „{$key}“ wäre unverändert.");
}
$svg = str_replace($from, $to, $svg);
}
$svgFile = $destDir . '/' . $base . '.svg';
file_put_contents($svgFile, $svg);
$built[] = $svgFile;
[$mmW, $mmH] = $svgSize($svg);
$ratio = $mmH / $mmW;
// Arbeitskopie: Chrome lädt die SVG relativ zur Wrapper-Datei.
$workSvg = $tmpDir . '/' . $base . '.svg';
file_put_contents($workSvg, $svg);
// 2. PNG, transparent
foreach (LOGO_PNG_WIDTHS as $width) {
$height = (int) round($width * $ratio);
$wrap = $tmpDir . "/wrap-{$key}-{$width}.html";
file_put_contents($wrap, <<<HTML
<!doctype html><meta charset="utf-8">
<style>html,body{margin:0;padding:0;background:transparent}
img{display:block;width:{$width}px;height:{$height}px}</style>
<img src="{$base}.svg" alt="">
HTML);
$pngFile = $destDir . '/' . $base . '-' . $width . '.png';
$runChrome([
'--default-background-color=00000000',
'--window-size=' . $width . ',' . $height,
'--screenshot=' . escapeshellarg($pngFile),
escapeshellarg('file://' . $wrap),
]);
if (!is_file($pngFile) || filesize($pngFile) < 1000) {
$fail("PNG nicht erzeugt: {$pngFile} — läuft Chrome?");
}
$built[] = $pngFile;
// 3. JPG auf weiß, aus der passenden PNG-Breite
if (in_array($width, LOGO_JPG_WIDTHS, true)) {
$jpgFile = $destDir . '/' . $base . '-' . $width . '.jpg';
if (!$flattenToJpg($pngFile, $jpgFile, LOGO_JPG_QUALITY, $spec['jpg_bg'] ?? [255, 255, 255])) {
$fail("JPG nicht erzeugt: {$jpgFile}");
}
$built[] = $jpgFile;
}
}
// 4. PDF, Vektor
$pdfWrap = $tmpDir . "/pdf-{$key}.html";
file_put_contents($pdfWrap, <<<HTML
<!doctype html><meta charset="utf-8">
<style>@page{size:{$mmW}mm {$mmH}mm;margin:0}html,body{margin:0;padding:0}
img{display:block;width:{$mmW}mm;height:{$mmH}mm}</style>
<img src="{$base}.svg" alt="">
HTML);
$pdfFile = $destDir . '/' . $base . '.pdf';
$runChrome([
'--no-pdf-header-footer',
'--print-to-pdf=' . escapeshellarg($pdfFile),
escapeshellarg('file://' . $pdfWrap),
]);
if (!is_file($pdfFile) || filesize($pdfFile) < 500) {
$fail("PDF nicht erzeugt: {$pdfFile}");
}
$built[] = $pdfFile;
$log("{$key}: SVG, " . count(LOGO_PNG_WIDTHS) . ' PNG, ' . count(LOGO_JPG_WIDTHS) . ' JPG und PDF erzeugt.');
}
// --- LIESMICH + ZIP -----------------------------------------------------------
// Die Texte kommen aus data/logo.json, damit Heft-, Seiten- und ZIP-Fassung nicht
// auseinanderlaufen. Fehlt die JSON noch (erster Lauf), bleibt es beim Grundgerüst.
$page = json_load('logo');
$club = json_load('club');
$lines = ['Logo des ' . ($club['name'] ?? 'TSV 08 Kulmbach'), str_repeat('=', 40), ''];
if (!empty($page['notice']['text'])) {
$lines[] = trim($page['notice']['title'] ?? 'Hinweis');
$lines[] = trim($page['notice']['text']);
$lines[] = '';
}
$lines[] = 'Welche Datei wofür';
$lines[] = '-------------------';
$lines[] = 'SVG Vektor, beliebig skalierbar. Erste Wahl für die Druckerei.';
$lines[] = 'PDF Vektor, für Druckereien, die kein SVG annehmen.';
$lines[] = 'PNG Pixelbild mit freigestelltem Grund, für Word, PowerPoint und Aushänge.';
$lines[] = 'JPG Pixelbild mit gefülltem Grund (weiß, bei der Fassung für dunklen Grund anthrazit),';
$lines[] = ' für Portale und Programme, die keine Transparenz können.';
$lines[] = '';
$texte = array_column($page['varianten'] ?? [], null, 'key');
foreach (array_keys($OUTPUTS) as $key) {
$lines[] = ($texte[$key]['title'] ?? $key) . ' (Dateien: ' . LOGO_PREFIX . '-' . $key . '.*)';
if (!empty($texte[$key]['text'])) {
$lines[] = ' ' . $texte[$key]['text'];
}
}
if (!empty($page['farben']['items'])) {
$lines[] = '';
$lines[] = 'Farben';
$lines[] = '------';
foreach ($page['farben']['items'] as $farbe) {
$lines[] = sprintf(
'%s HEX %s RGB %s CMYK %s',
$farbe['name'] ?? '',
$farbe['hex'] ?? '',
$farbe['rgb'] ?? '',
$farbe['cmyk'] ?? ''
);
}
}
$lines[] = '';
$lines[] = 'Alle Dateien und weitere Formate: ' . club_url('logo');
$lines[] = 'Fragen: ' . ($club['email'] ?? '');
$readme = $destDir . '/LIESMICH.txt';
file_put_contents($readme, implode("\n", $lines) . "\n");
$zipFile = $destDir . '/' . LOGO_PREFIX . '-paket.zip';
$zip = new ZipArchive();
if ($zip->open($zipFile, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) {
$fail("ZIP nicht anlegbar: {$zipFile}");
}
$zip->addFile($readme, 'LIESMICH.txt');
foreach ($built as $file) {
$zip->addFile($file, LOGO_PREFIX . '/' . basename($file));
}
$zip->close();
// --- Bericht ------------------------------------------------------------------
$total = 0;
echo "\nErzeugt in public/assets/downloads/logo/:\n";
foreach (array_merge($built, [$readme, $zipFile]) as $file) {
$size = (int) filesize($file);
$total += $size;
$dim = '';
if (in_array(strtolower(pathinfo($file, PATHINFO_EXTENSION)), ['png', 'jpg'], true)) {
$info = @getimagesize($file);
$dim = $info ? " {$info[0]}x{$info[1]}" : '';
}
printf(" %-46s %8s KB%s\n", basename($file), number_format($size / 1024, 1, ',', '.'), $dim);
}
printf(" %-46s %8s KB\n", '= gesamt (ohne ZIP doppelt gezählt)', number_format($total / 1024, 1, ',', '.'));
$log('Fertig: ' . (count($built) + 2) . ' Dateien.');

View File

@@ -404,6 +404,48 @@ if ($inlineStyles !== []) {
. '. Bilder als <img> ausgeben, Farben als Token in tokens.css plus Klasse in components.css.';
}
// --- Logo-Downloads (/logo) ---
// Ein fehlender Download sieht man der Seite nicht an: die Komponente lässt den Knopf
// still weg, die Seite bleibt heil und niemand merkt, dass eine Variante fehlt. Deshalb
// ein Fehler und keine Warnung. Erzeugt werden die Dateien mit bin/logo-build.php.
$logo = json_load('logo');
$logoDir = PUBLIC_PATH . '/assets/downloads/logo';
$logoFehlt = [];
foreach (array_merge($logo['varianten'] ?? [], $logo['retro'] ?? []) as $variante) {
if (empty($variante['key'])) {
continue;
}
$basis = 'tsv08-kulmbach-logo-' . $variante['key'];
// Mindestens diese drei muss es geben; die übrigen Breiten hängen an der Quelle
// (ein gescanntes Altlogo liefert weder SVG noch PDF, siehe bin/logo-build.php).
foreach ([$basis . '-1000.png', $basis . '-1000.jpg'] as $datei) {
if (!is_file($logoDir . '/' . $datei)) {
$logoFehlt[] = $datei;
}
}
}
if ($logo !== [] && !is_file($logoDir . '/tsv08-kulmbach-logo-paket.zip')) {
$logoFehlt[] = 'tsv08-kulmbach-logo-paket.zip';
}
if ($logoFehlt !== []) {
$errors[] = 'Logo-Downloads fehlen (/logo zeigt den Knopf dann einfach nicht an): '
. implode(', ', $logoFehlt) . '. Erzeugen mit: php bin/logo-build.php';
}
// Master neuer als das Erzeugte? Dann steht auf der Seite ein altes Logo.
$logoMaster = glob(STORAGE_PATH . '/logo-quellen/*.svg') ?: [];
$logoNeuestesZiel = 0;
foreach (glob($logoDir . '/*') ?: [] as $datei) {
$logoNeuestesZiel = max($logoNeuestesZiel, (int) filemtime($datei));
}
foreach ($logoMaster as $datei) {
if ((int) filemtime($datei) > $logoNeuestesZiel) {
$warnings[] = 'Logo-Master ist neuer als die Download-Dateien ('
. basename($datei) . ') — php bin/logo-build.php neu laufen lassen.';
break;
}
}
// --- Ausgabe ---
foreach ($warnings as $w) {
echo "WARNUNG {$w}\n";

74
data/logo.json Normal file
View File

@@ -0,0 +1,74 @@
{
"hero": {
"compact": true,
"align": "center",
"title": "Unser Logo",
"text": "Wappen und Farben zum Herunterladen.",
"image": {
"base": "img/pages/vereinsgelaende",
"widths": [640, 1000, 1600],
"alt": "Luftaufnahme unserer Hans-Rausch-Sportanlage im Katzbachtal"
}
},
"varianten_title": "Das aktuelle Wappen",
"varianten": [
{
"key": "farbig",
"title": "Farbig",
"text": "Die Hauptfassung.",
"grund": "hell"
},
{
"key": "einfarbig-schwarz",
"title": "Einfarbig schwarz",
"text": "Stempel, Gravur, einfarbiger Druck.",
"grund": "hell"
},
{
"key": "einfarbig-weiss",
"title": "Einfarbig weiß",
"text": "Für dunkle Untergründe.",
"grund": "dunkel"
}
],
"paket": {
"label": "Alle Dateien als ZIP"
},
"farben": {
"title": "Unsere Farben",
"text": "",
"items": [
{
"name": "Vereinsrot",
"token": "accent",
"hex": "#e20612",
"rgb": "226 6 18",
"cmyk": "0 / 97 / 92 / 11"
},
{
"name": "Schwarz",
"token": "black",
"hex": "#000000",
"rgb": "0 0 0",
"cmyk": "0 / 0 / 0 / 100"
},
{
"name": "Anthrazit",
"token": "bg",
"hex": "#222222",
"rgb": "34 34 34",
"cmyk": "0 / 0 / 0 / 87"
},
{
"name": "Weiß",
"token": "white",
"hex": "#ffffff",
"rgb": "255 255 255",
"cmyk": "0 / 0 / 0 / 0"
}
]
},
"retro_title": "Frühere Vereinslogos",
"retro_text": "",
"retro": []
}

View File

@@ -48,6 +48,7 @@
],
"legal": [
{ "label": "Kontakt", "slug": "kontakt" },
{ "label": "Logo und Farben", "slug": "logo" },
{ "label": "Impressum", "slug": "impressum" },
{ "label": "Datenschutz", "slug": "datenschutz" }
]

View File

@@ -5325,6 +5325,211 @@ a.match-row__link:hover {
}
}
/* === logo-downloads (Logo-Seite: Varianten, Paket, Farben) === */
.logo-downloads__head {
text-align: center;
}
.logo-downloads__intro {
max-width: 60ch;
margin: var(--space-s) auto 0;
}
.logo-downloads__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
gap: var(--space-l);
margin: var(--space-3xl) 0 0;
padding: 0;
list-style: none;
}
.logo-card {
display: grid;
grid-template-rows: auto 1fr;
background: var(--clr-glass-bg);
border: 1px solid var(--clr-glass-border);
border-radius: var(--radius-card);
overflow: hidden;
}
/* Die Vorschaufläche zeigt, WORAUF die Variante gehört: Karo heißt „der Grund ist
frei", die dunkle Fläche steht für den dunklen Untergrund, auf dem die weiße
Fassung gedacht ist. Ohne sie wäre das weiße Wappen schlicht unsichtbar. */
.logo-card__preview {
display: grid;
place-items: center;
padding: var(--space-l);
}
.logo-card__preview--karo {
background-color: var(--clr-checker-b);
background-image: conic-gradient(
var(--clr-checker-a) 25%, transparent 0 50%,
var(--clr-checker-a) 0 75%, transparent 0
);
background-size: 22px 22px;
}
.logo-card__preview--dunkel {
background-color: var(--clr-bg-deep);
}
.logo-card__img {
display: block;
width: auto;
height: 170px;
}
.logo-card__body {
display: grid;
grid-template-rows: auto auto 1fr;
gap: var(--space-2xs);
padding: var(--pad-card);
}
.logo-card__title {
margin: 0;
font-size: var(--fs-650);
letter-spacing: var(--ls-heading);
}
.logo-card__text {
margin: 0;
font-size: var(--fs-400);
color: var(--clr-text-muted);
}
/* Eine Zeile je Format über die volle Kartenbreite: vorher liefen die Knöpfe als
umbrechende Reihe, wodurch in jeder Karte eine andere Treppe entstand (zwei oben,
dann einer, dann zwei). Untereinander sind sie gleich breit, in allen drei Karten
auf derselben Höhe und am Handy ohnehin die einzige sinnvolle Form. */
.logo-card__files {
display: grid;
align-content: start;
gap: var(--space-3xs);
margin: var(--space-s) 0 0;
padding: 0;
list-style: none;
}
/* (0,2,0), damit die Regeln gegen die .btn-Basis aus utilities.css gewinnen:
utilities.css laedt spaeter, bei gleicher Spezifitaet bliebe zentriert stehen. */
.btn.logo-card__btn {
justify-content: flex-start;
gap: var(--space-2xs);
width: 100%;
white-space: normal;
}
/* Format links am Icon, Größe rechts an der Kante: so stehen die Angaben in allen
Zeilen untereinander und die Zeile bleibt als Ganzes lesbar. */
.logo-card__meta {
margin-left: auto;
font-size: var(--fs-300);
color: var(--clr-text-muted);
}
.logo-card__btn:hover .logo-card__meta {
color: var(--clr-text);
}
/* Der ZIP-Knopf sitzt unter dem Raster, in derselben Sektion: „alles davon" gehört
direkt unter das, worauf es sich bezieht. Eine eigene Sektion mit Überschrift war
gebaut und ist am 17.09.2026 wieder raus (Entscheidung Felix). */
.logo-downloads__paket {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--space-2xs);
margin: var(--space-3xl) 0 0;
}
.logo-downloads__paket-meta {
font-size: var(--fs-400);
color: var(--clr-text-muted);
}
.logo-farben__head {
text-align: center;
}
.logo-farben__intro {
max-width: 60ch;
margin: var(--space-s) auto 0;
}
.logo-farben__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: var(--space-l);
margin: var(--space-3xl) 0 0;
padding: 0;
list-style: none;
}
.logo-farbe {
display: grid;
grid-template-rows: auto 1fr;
background: var(--clr-glass-bg);
border: 1px solid var(--clr-glass-border);
border-radius: var(--radius-card);
overflow: hidden;
}
/* Die Farbfläche kommt aus dem Token, die JSON nennt nur den Namen — ein
style-Attribut waere hier der naheliegende Weg und wird von der CSP verworfen. */
.logo-farbe__swatch {
display: block;
height: 90px;
border-bottom: 1px solid var(--clr-glass-border);
}
.logo-farbe__swatch--accent { background: var(--clr-accent); }
.logo-farbe__swatch--black { background: #000000; }
.logo-farbe__swatch--bg { background: var(--clr-bg); }
.logo-farbe__swatch--white { background: #ffffff; }
.logo-farbe__body {
padding: var(--pad-card);
}
.logo-farbe__name {
margin: 0 0 var(--space-xs);
font-size: var(--fs-650);
letter-spacing: var(--ls-heading);
}
.logo-farbe__werte {
display: grid;
gap: var(--space-3xs);
margin: 0;
}
.logo-farbe__werte > div {
display: flex;
gap: var(--space-2xs);
font-size: var(--fs-400);
}
.logo-farbe__werte dt {
min-width: 4.5em;
color: var(--clr-text-muted);
text-transform: uppercase;
letter-spacing: var(--ls-wide);
}
.logo-farbe__werte dd {
margin: 0;
font-variant-numeric: tabular-nums;
}
.logo-farbe__hinweis {
margin: var(--space-s) 0 0;
font-size: var(--fs-400);
color: var(--clr-text-muted);
}
/* ============================================================
FROSTED GLASS — globaler Look für alle Glas-Oberflächen.
EINZIGE Stelle für Blur + Ruhe-Glow (DRY statt 28× wiederholt).
@@ -5355,6 +5560,8 @@ a.match-row__link:hover {
.stadionzeitung-card,
.department-choice__card,
.legal__card,
.logo-card,
.logo-farbe,
.fee-table,
.league-table,
.membership-card,
@@ -5382,6 +5589,8 @@ a.match-row__link:hover {
.stadionzeitung-card,
.department-choice__card,
.legal__card,
.logo-card,
.logo-farbe,
.membership-card,
.sportheim-bento__addr,
.form {

View File

@@ -23,6 +23,10 @@
--clr-bg-deep: #161616; /* abgesetzte Sektionen */
--clr-bg-footer: #000000;
--clr-bg-corporate: #383838; /* Scrollbar-Thumb */
--clr-checker-a: #dcdcdc; /* Karomuster hinter freigestellten Logos (/logo):
zeigt, dass der Grund frei ist. Bewusst hell,
damit die schwarzen Konturen des Wappens tragen. */
--clr-checker-b: #f2f2f2;
--clr-text: #ffffff;
--clr-text-muted: #b3b3b3; /* 7.7:1 auf --clr-bg */
--clr-text-faint: #8c8c8c; /* 4.5:1 auf --clr-bg (AA) */

View File

@@ -0,0 +1,27 @@
Logo des TSV 08 Kulmbach
========================================
Welche Datei wofür
-------------------
SVG Vektor, beliebig skalierbar. Erste Wahl für die Druckerei.
PDF Vektor, für Druckereien, die kein SVG annehmen.
PNG Pixelbild mit freigestelltem Grund, für Word, PowerPoint und Aushänge.
JPG Pixelbild mit gefülltem Grund (weiß, bei der Fassung für dunklen Grund anthrazit),
für Portale und Programme, die keine Transparenz können.
Farbig (Dateien: tsv08-kulmbach-logo-farbig.*)
Die Hauptfassung.
Einfarbig weiß (Dateien: tsv08-kulmbach-logo-einfarbig-weiss.*)
Für dunkle Untergründe.
Einfarbig schwarz (Dateien: tsv08-kulmbach-logo-einfarbig-schwarz.*)
Stempel, Gravur, einfarbiger Druck.
Farben
------
Vereinsrot HEX #e20612 RGB 226 6 18 CMYK 0 / 97 / 92 / 11
Schwarz HEX #000000 RGB 0 0 0 CMYK 0 / 0 / 0 / 100
Anthrazit HEX #222222 RGB 34 34 34 CMYK 0 / 0 / 0 / 87
Weiß HEX #ffffff RGB 255 255 255 CMYK 0 / 0 / 0 / 0
Alle Dateien und weitere Formate: https://www.tsv08kulmbach.de/logo
Fragen: info@tsv08kulmbach.de

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="150mm" height="194mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 150 194">
<defs>
<style type="text/css">
<![CDATA[
.fil3 {fill:black}
.fil2 {fill:none}
.fil1 {fill:none}
.fil0 {fill:black;fill-rule:nonzero}
]]>
</style>
</defs>
<g id="Ebene_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<g id="_167224168">
<path id="_167474240" class="fil0" d="M23.1558 19.1779c1.089,0 1.9737,0.5516 2.6474,1.6517 0.6738,1.1 1.0091,3.0258 1.0091,5.7775 0,2.7417 -0.3353,4.6641 -1.0091,5.7642 -0.6737,1.1034 -1.5552,1.6517 -2.6378,1.6517 -1.0921,0 -1.9768,-0.5449 -2.6506,-1.6348 -0.6738,-1.0898 -1.0091,-3.0293 -1.0091,-5.8115 0,-2.7314 0.3353,-4.6471 1.0091,-5.7471 0.6738,-1.1001 1.5552,-1.6517 2.641,-1.6517zm0 2.3117c-1.6919,0 -1.3955,4.2952 -1.3955,5.1175 0,0.8223 -0.2973,5.1076 1.3955,5.1076 1.6957,0 1.3924,-4.2803 1.3924,-5.1076 0,-0.8271 0.305,-5.1175 -1.3924,-5.1175zm6.9491 4.4441c-1.1338,-0.6227 -1.6,-1.7542 -1.6,-3.0057 0,-2.0696 1.1984,-3.7501 3.3883,-3.7501 2.1621,0 3.3659,1.6833 3.3659,3.7299 0,1.2051 -0.46,2.4086 -1.552,3.0259 1.398,0.715 1.9193,2.0948 1.9193,3.5979 0,2.2221 -1.2159,4.5016 -3.6502,4.5016 -2.4764,0 -3.7523,-2.1539 -3.7523,-4.4136 0,-1.4738 0.5233,-2.9474 1.881,-3.6859zm0.4407 -2.806c0,0.8326 0.3661,1.7635 1.338,1.7635 0.9742,0 1.3541,-0.923 1.3541,-1.7635 0,-0.8177 -0.3778,-1.7363 -1.3285,-1.7363 -0.9608,0 -1.3636,0.8967 -1.3636,1.7363zm-0.198 6.2245c0,0.9633 0.3646,2.4404 1.5903,2.4404 1.2359,0 1.5457,-1.4577 1.5457,-2.4202 0,-0.9502 -0.4133,-2.2507 -1.5744,-2.2507 -1.1375,0 -1.5616,1.299 -1.5616,2.2305zm11.5061 4.4237l0 -14.5371 2.2642 0 0 6.4545 4.5954 -6.4545 3.0593 0 -4.2377 5.6625 4.4612 8.8746 -2.9379 0 -3.0976 -6.8235 -1.8427 2.4303 0 4.3932 -2.2642 0zm11.2953 -14.5371l2.2642 0 0 7.8727c0,1.7451 -0.1758,4.4035 2.2897,4.4035 2.361,0 2.1429,-2.5424 2.1429,-4.2343l0 -8.0419 2.2736 0 0 7.6358c0,3.3026 -0.0452,7.1484 -4.3494,7.1484 -4.3563,0 -4.621,-3.4858 -4.621,-7.0299l0 -7.7543zm11.423 14.5371l0 -14.4187 2.2642 0 0 11.9683 5.6492 0 0 2.4504 -7.9134 0zm9.5071 0l0 -14.5371 3.3946 0 2.0406 9.917 2.0215 -9.917 3.4043 0 0 14.5371 -2.1045 0 0 -11.4436 -2.2355 11.4436 -2.1907 0 -2.2163 -11.4436 0 11.4436 -2.114 0zm13.1156 -14.5371l4.5028 0c1.2263,0 2.0918,0.1184 2.5899,0.3587 1.2018,0.5714 1.7789,2.0417 1.7789,3.3001 0,1.1974 -0.5004,2.5268 -1.5809,3.1545 1.4794,0.5549 2.1333,2.0081 2.1333,3.5099 0,1.571 -0.7273,3.5873 -2.4239,4.0346 -0.4566,0.1184 -1.5136,0.1793 -3.1711,0.1793l-3.829 0 0 -14.5371zm2.2642 2.42l0 3.3609c1.0234,0 2.1598,0.108 3.1648,-0.0507 0.8617,-0.1434 1.2327,-0.8463 1.2327,-1.6653 0,-0.6164 -0.241,-1.3671 -0.9102,-1.5467 -0.2523,-0.0643 -0.9772,-0.0982 -2.1748,-0.0982l-1.3125 0zm0 5.781l0 3.8857 2.1077 0c0.923,0 1.5137,-0.0508 1.7756,-0.1524 0.6879,-0.2667 0.9261,-1.0814 0.9261,-1.7499 0,-0.7472 -0.2848,-1.5327 -1.0411,-1.8108 -1.0519,-0.3827 -2.6392,-0.1726 -3.7683,-0.1726zm19.2183 6.3361l-2.4686 0 -0.9836 -3.3034 -4.49 0 -0.9261 3.3034 -2.4142 0 4.3782 -14.5371 2.4047 0 4.4996 14.5371zm-4.1802 -5.7505l-1.5457 -5.3952 -1.5233 5.3952 3.069 0zm12.5821 0.4061l2.2004 0.9004c-0.5251,2.4791 -1.8553,4.6911 -4.6592,4.6911 -3.8583,0 -5.1383,-4.2104 -5.1383,-7.3853 0,-3.3303 1.2233,-7.646 5.2788,-7.646 2.5922,0 3.981,1.9434 4.49,4.2545l-2.245 0.6939c-0.2243,-1.2308 -0.9778,-2.4404 -2.3664,-2.4404 -2.4907,0 -2.8166,3.1176 -2.8166,4.9484 0,1.7985 0.2552,5.0669 2.7592,5.0669 1.6341,0 2.2592,-1.7542 2.4971,-3.0835zm4.1452 5.3444l0 -14.5371 2.2642 0 0 5.72 4.4548 0 0 -5.72 2.2738 0 0 14.5371 -2.2738 0 0 -6.3564 -4.4548 0 0 6.3564 -2.2642 0z"/>
<path id="_167474168" class="fil1" d="M13.9297 13.9292l122.141 0 0 25.6694 -122.141 0 0 -25.6694zm9.2261 5.2487c1.089,0 1.9737,0.5516 2.6474,1.6517 0.6738,1.1 1.0091,3.0258 1.0091,5.7775 0,2.7417 -0.3353,4.6641 -1.0091,5.7642 -0.6737,1.1034 -1.5552,1.6517 -2.6378,1.6517 -1.0921,0 -1.9768,-0.5449 -2.6506,-1.6348 -0.6738,-1.0898 -1.0091,-3.0293 -1.0091,-5.8115 0,-2.7314 0.3353,-4.6471 1.0091,-5.7471 0.6738,-1.1001 1.5552,-1.6517 2.641,-1.6517zm0 2.3117c-1.6919,0 -1.3955,4.2952 -1.3955,5.1175 0,0.8223 -0.2973,5.1076 1.3955,5.1076 1.6957,0 1.3924,-4.2803 1.3924,-5.1076 0,-0.8271 0.305,-5.1175 -1.3924,-5.1175zm6.9491 4.4441c-1.1338,-0.6227 -1.6,-1.7542 -1.6,-3.0057 0,-2.0696 1.1984,-3.7501 3.3883,-3.7501 2.1621,0 3.3659,1.6833 3.3659,3.7299 0,1.2051 -0.46,2.4086 -1.552,3.0259 1.398,0.715 1.9193,2.0948 1.9193,3.5979 0,2.2221 -1.2159,4.5016 -3.6502,4.5016 -2.4764,0 -3.7523,-2.1539 -3.7523,-4.4136 0,-1.4738 0.5233,-2.9474 1.881,-3.6859zm0.4407 -2.806c0,0.8326 0.3661,1.7635 1.338,1.7635 0.9742,0 1.3541,-0.923 1.3541,-1.7635 0,-0.8177 -0.3778,-1.7363 -1.3285,-1.7363 -0.9608,0 -1.3636,0.8967 -1.3636,1.7363zm-0.198 6.2245c0,0.9633 0.3646,2.4404 1.5903,2.4404 1.2359,0 1.5457,-1.4577 1.5457,-2.4202 0,-0.9502 -0.4133,-2.2507 -1.5744,-2.2507 -1.1375,0 -1.5616,1.299 -1.5616,2.2305zm11.5061 4.4237l0 -14.5371 2.2642 0 0 6.4545 4.5954 -6.4545 3.0593 0 -4.2377 5.6625 4.4612 8.8746 -2.9379 0 -3.0976 -6.8235 -1.8427 2.4303 0 4.3932 -2.2642 0zm11.2953 -14.5371l2.2642 0 0 7.8727c0,1.7451 -0.1758,4.4035 2.2897,4.4035 2.361,0 2.1429,-2.5424 2.1429,-4.2343l0 -8.0419 2.2736 0 0 7.6358c0,3.3026 -0.0452,7.1484 -4.3494,7.1484 -4.3563,0 -4.621,-3.4858 -4.621,-7.0299l0 -7.7543zm11.423 14.5371l0 -14.4187 2.2642 0 0 11.9683 5.6492 0 0 2.4504 -7.9134 0zm9.5071 0l0 -14.5371 3.3946 0 2.0406 9.917 2.0215 -9.917 3.4043 0 0 14.5371 -2.1045 0 0 -11.4436 -2.2355 11.4436 -2.1907 0 -2.2163 -11.4436 0 11.4436 -2.114 0zm13.1156 -14.5371l4.5028 0c1.2263,0 2.0918,0.1184 2.5899,0.3587 1.2018,0.5714 1.7789,2.0417 1.7789,3.3001 0,1.1974 -0.5004,2.5268 -1.5809,3.1545 1.4794,0.5549 2.1333,2.0081 2.1333,3.5099 0,1.571 -0.7273,3.5873 -2.4239,4.0346 -0.4566,0.1184 -1.5136,0.1793 -3.1711,0.1793l-3.829 0 0 -14.5371zm2.2642 2.42l0 3.3609c1.0234,0 2.1598,0.108 3.1648,-0.0507 0.8617,-0.1434 1.2327,-0.8463 1.2327,-1.6653 0,-0.6164 -0.241,-1.3671 -0.9102,-1.5467 -0.2523,-0.0643 -0.9772,-0.0982 -2.1748,-0.0982l-1.3125 0zm0 5.781l0 3.8857 2.1077 0c0.923,0 1.5137,-0.0508 1.7756,-0.1524 0.6879,-0.2667 0.9261,-1.0814 0.9261,-1.7499 0,-0.7472 -0.2848,-1.5327 -1.0411,-1.8108 -1.0519,-0.3827 -2.6392,-0.1726 -3.7683,-0.1726zm19.2183 6.3361l-2.4686 0 -0.9836 -3.3034 -4.49 0 -0.9261 3.3034 -2.4142 0 4.3782 -14.5371 2.4047 0 4.4996 14.5371zm-4.1802 -5.7505l-1.5457 -5.3952 -1.5233 5.3952 3.069 0zm12.5821 0.4061l2.2004 0.9004c-0.5251,2.4791 -1.8553,4.6911 -4.6592,4.6911 -3.8583,0 -5.1383,-4.2104 -5.1383,-7.3853 0,-3.3303 1.2233,-7.646 5.2788,-7.646 2.5922,0 3.981,1.9434 4.49,4.2545l-2.245 0.6939c-0.2243,-1.2308 -0.9778,-2.4404 -2.3664,-2.4404 -2.4907,0 -2.8166,3.1176 -2.8166,4.9484 0,1.7985 0.2552,5.0669 2.7592,5.0669 1.6341,0 2.2592,-1.7542 2.4971,-3.0835zm4.1452 5.3444l0 -14.5371 2.2642 0 0 5.72 4.4548 0 0 -5.72 2.2738 0 0 14.5371 -2.2738 0 0 -6.3564 -4.4548 0 0 6.3564 -2.2642 0z"/>
<path id="_167474096" class="fil2" d="M13.9297 43.5278l122.141 0 0 76.9075c0,32.7997 -26.4097,59.6355 -58.6886,59.6355l-4.7634 0c-32.2789,0 -58.6886,-26.8358 -58.6886,-59.6355l0 -76.9075z"/>
<path id="_167474024" class="fil3" d="M66.4036 121.944l0 -7.2161 3.9298 0 0 7.2161 -3.9298 0zm0 -24.4065l0 -6.8761 3.9298 0 0 6.8761 -3.9298 0zm0 -24.0665l0 -7.8585 -29.865 0c0,-5.7301 0,-11.4603 0,-17.1904l76.9228 0c0,5.7301 0,11.4603 0,17.1904l-29.865 0 0 7.8585 -3.9298 0 0 -11.7877 29.8649 0 0 -9.3319 -69.063 0 0 9.3319 29.8649 0 0 11.7877 -3.9298 0zm17.1928 17.1904l0 6.8761 -3.9298 0 0 -6.8761 3.9298 0zm0 24.0665l0 7.2161 -3.9298 0 0 -7.2161 3.9298 0z"/>
<path id="_167473952" class="fil1" d="M40.4685 61.6829l29.8649 0 0 11.7877 9.3332 0 0 -11.7877 29.8649 0 0 -9.3319 -69.063 0 0 9.3319zm29.8649 28.9781l0 6.8761 9.3332 0 0 -6.8761 -9.3332 0zm0 24.0665l0 7.2161 9.3332 0 0 -7.2161 -9.3332 0z"/>
<path id="_167473880" class="fil3" d="M36.5391 73.4706c25.6409,0 51.2819,0 76.9228,0 0,5.7301 0,11.4603 0,17.1904l-59.5718 0 0 6.8761 59.5718 0 0 30.7212c-1.3099,0 -2.6195,0 -3.9294,0l0 -26.7919 -59.5722 -0.0001 0 -14.7346 59.5722 0 0 -9.3319 -68.9054 0 0 33.3985 59.7299 0.0001c0,5.0248 0,10.0497 0,15.0745l-59.8885 0 0 2.3854c-1.2568,0 -2.6725,0 -3.9294,0l0 -6.3147 59.8881 0 0 -7.2161 -59.8881 0 0 -41.2569zm77.0809 58.4224l0 7.241 -4.1811 0 4.1811 -7.241zm-21.8781 7.241l-32.5917 0 -2.4556 -3.9292 37.3161 0 -2.2688 3.9292zm-50.6639 0l-4.6981 0 0 -7.5176 4.6981 7.5176z"/>
<path id="_167473808" class="fil1" d="M49.9603 86.7316l59.5712 0.0001 0 -9.3319 -69.063 0 0 0.0001 -0.0001 0 0.0001 33.3984 59.7299 0 0 15.0746 -59.7299 0 0 2.3854c4.0145,0 7.8704,0 11.8848,0l4.3413 6.9465 37.3161 0 4.0112 -6.9465 11.5097 0 -0.0001 -26.7919 -59.5712 -0.0001 0 -14.7347z"/>
<path id="_167473736" class="fil3" d="M10 10.0001l130 0 0 111.544c0,34.351 -28.1092,62.4562 -62.465,62.4562l-5.07 0c-34.3558,0 -62.465,-28.1052 -62.465,-62.4562 0,-37.1811 0,-74.3625 0,-111.544zm105.719 118.258l-29.5021 51.1322c28.1264,-4.3629 49.8536,-29.2053 49.8536,-58.9552l0 -76.9075 -122.141 0 0 76.9075c0,30.6652 23.0848,56.115 52.4676,59.2976l-32.1161 -51.4746c6.0239,0 12.0482,0 18.0721,0l23.7368 37.9814 21.9318 -37.9814c5.8989,0 11.798,0 17.6969,0zm-34.351 51.6709l27.5446 -47.7417 -8.6219 0c-8.0222,13.8933 -16.0449,27.7867 -24.0671,41.6799l-26.0482 -41.6799 -0.0001 0 -8.8044 0 29.8602 47.8652c0.4613,0.0111 0.9236,0.0181 1.3874,0.0181l4.7634 0c1.3397,0 2.6682,-0.0505 3.9861,-0.1416zm-67.4381 -140.331l122.141 0 0 -25.6694 -122.141 0 0 25.6694z"/>
<path id="_167473664" class="fil1" d="M41.3707 132.188l8.8044 0 26.0483 41.6799 24.0671 -41.6799 8.6219 0 -27.5446 47.7417c-1.3179,0.0911 -2.6464,0.1416 -3.9861,0.1416l-4.7634 0c-0.4638,0 -0.9261,-0.007 -1.3874,-0.0181l-29.8602 -47.8652z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="150mm" height="194mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 150 194">
<defs>
<style type="text/css">
<![CDATA[
.fil3 {fill:white}
.fil2 {fill:none}
.fil1 {fill:none}
.fil0 {fill:white;fill-rule:nonzero}
]]>
</style>
</defs>
<g id="Ebene_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<g id="_167224168">
<path id="_167474240" class="fil0" d="M23.1558 19.1779c1.089,0 1.9737,0.5516 2.6474,1.6517 0.6738,1.1 1.0091,3.0258 1.0091,5.7775 0,2.7417 -0.3353,4.6641 -1.0091,5.7642 -0.6737,1.1034 -1.5552,1.6517 -2.6378,1.6517 -1.0921,0 -1.9768,-0.5449 -2.6506,-1.6348 -0.6738,-1.0898 -1.0091,-3.0293 -1.0091,-5.8115 0,-2.7314 0.3353,-4.6471 1.0091,-5.7471 0.6738,-1.1001 1.5552,-1.6517 2.641,-1.6517zm0 2.3117c-1.6919,0 -1.3955,4.2952 -1.3955,5.1175 0,0.8223 -0.2973,5.1076 1.3955,5.1076 1.6957,0 1.3924,-4.2803 1.3924,-5.1076 0,-0.8271 0.305,-5.1175 -1.3924,-5.1175zm6.9491 4.4441c-1.1338,-0.6227 -1.6,-1.7542 -1.6,-3.0057 0,-2.0696 1.1984,-3.7501 3.3883,-3.7501 2.1621,0 3.3659,1.6833 3.3659,3.7299 0,1.2051 -0.46,2.4086 -1.552,3.0259 1.398,0.715 1.9193,2.0948 1.9193,3.5979 0,2.2221 -1.2159,4.5016 -3.6502,4.5016 -2.4764,0 -3.7523,-2.1539 -3.7523,-4.4136 0,-1.4738 0.5233,-2.9474 1.881,-3.6859zm0.4407 -2.806c0,0.8326 0.3661,1.7635 1.338,1.7635 0.9742,0 1.3541,-0.923 1.3541,-1.7635 0,-0.8177 -0.3778,-1.7363 -1.3285,-1.7363 -0.9608,0 -1.3636,0.8967 -1.3636,1.7363zm-0.198 6.2245c0,0.9633 0.3646,2.4404 1.5903,2.4404 1.2359,0 1.5457,-1.4577 1.5457,-2.4202 0,-0.9502 -0.4133,-2.2507 -1.5744,-2.2507 -1.1375,0 -1.5616,1.299 -1.5616,2.2305zm11.5061 4.4237l0 -14.5371 2.2642 0 0 6.4545 4.5954 -6.4545 3.0593 0 -4.2377 5.6625 4.4612 8.8746 -2.9379 0 -3.0976 -6.8235 -1.8427 2.4303 0 4.3932 -2.2642 0zm11.2953 -14.5371l2.2642 0 0 7.8727c0,1.7451 -0.1758,4.4035 2.2897,4.4035 2.361,0 2.1429,-2.5424 2.1429,-4.2343l0 -8.0419 2.2736 0 0 7.6358c0,3.3026 -0.0452,7.1484 -4.3494,7.1484 -4.3563,0 -4.621,-3.4858 -4.621,-7.0299l0 -7.7543zm11.423 14.5371l0 -14.4187 2.2642 0 0 11.9683 5.6492 0 0 2.4504 -7.9134 0zm9.5071 0l0 -14.5371 3.3946 0 2.0406 9.917 2.0215 -9.917 3.4043 0 0 14.5371 -2.1045 0 0 -11.4436 -2.2355 11.4436 -2.1907 0 -2.2163 -11.4436 0 11.4436 -2.114 0zm13.1156 -14.5371l4.5028 0c1.2263,0 2.0918,0.1184 2.5899,0.3587 1.2018,0.5714 1.7789,2.0417 1.7789,3.3001 0,1.1974 -0.5004,2.5268 -1.5809,3.1545 1.4794,0.5549 2.1333,2.0081 2.1333,3.5099 0,1.571 -0.7273,3.5873 -2.4239,4.0346 -0.4566,0.1184 -1.5136,0.1793 -3.1711,0.1793l-3.829 0 0 -14.5371zm2.2642 2.42l0 3.3609c1.0234,0 2.1598,0.108 3.1648,-0.0507 0.8617,-0.1434 1.2327,-0.8463 1.2327,-1.6653 0,-0.6164 -0.241,-1.3671 -0.9102,-1.5467 -0.2523,-0.0643 -0.9772,-0.0982 -2.1748,-0.0982l-1.3125 0zm0 5.781l0 3.8857 2.1077 0c0.923,0 1.5137,-0.0508 1.7756,-0.1524 0.6879,-0.2667 0.9261,-1.0814 0.9261,-1.7499 0,-0.7472 -0.2848,-1.5327 -1.0411,-1.8108 -1.0519,-0.3827 -2.6392,-0.1726 -3.7683,-0.1726zm19.2183 6.3361l-2.4686 0 -0.9836 -3.3034 -4.49 0 -0.9261 3.3034 -2.4142 0 4.3782 -14.5371 2.4047 0 4.4996 14.5371zm-4.1802 -5.7505l-1.5457 -5.3952 -1.5233 5.3952 3.069 0zm12.5821 0.4061l2.2004 0.9004c-0.5251,2.4791 -1.8553,4.6911 -4.6592,4.6911 -3.8583,0 -5.1383,-4.2104 -5.1383,-7.3853 0,-3.3303 1.2233,-7.646 5.2788,-7.646 2.5922,0 3.981,1.9434 4.49,4.2545l-2.245 0.6939c-0.2243,-1.2308 -0.9778,-2.4404 -2.3664,-2.4404 -2.4907,0 -2.8166,3.1176 -2.8166,4.9484 0,1.7985 0.2552,5.0669 2.7592,5.0669 1.6341,0 2.2592,-1.7542 2.4971,-3.0835zm4.1452 5.3444l0 -14.5371 2.2642 0 0 5.72 4.4548 0 0 -5.72 2.2738 0 0 14.5371 -2.2738 0 0 -6.3564 -4.4548 0 0 6.3564 -2.2642 0z"/>
<path id="_167474168" class="fil1" d="M13.9297 13.9292l122.141 0 0 25.6694 -122.141 0 0 -25.6694zm9.2261 5.2487c1.089,0 1.9737,0.5516 2.6474,1.6517 0.6738,1.1 1.0091,3.0258 1.0091,5.7775 0,2.7417 -0.3353,4.6641 -1.0091,5.7642 -0.6737,1.1034 -1.5552,1.6517 -2.6378,1.6517 -1.0921,0 -1.9768,-0.5449 -2.6506,-1.6348 -0.6738,-1.0898 -1.0091,-3.0293 -1.0091,-5.8115 0,-2.7314 0.3353,-4.6471 1.0091,-5.7471 0.6738,-1.1001 1.5552,-1.6517 2.641,-1.6517zm0 2.3117c-1.6919,0 -1.3955,4.2952 -1.3955,5.1175 0,0.8223 -0.2973,5.1076 1.3955,5.1076 1.6957,0 1.3924,-4.2803 1.3924,-5.1076 0,-0.8271 0.305,-5.1175 -1.3924,-5.1175zm6.9491 4.4441c-1.1338,-0.6227 -1.6,-1.7542 -1.6,-3.0057 0,-2.0696 1.1984,-3.7501 3.3883,-3.7501 2.1621,0 3.3659,1.6833 3.3659,3.7299 0,1.2051 -0.46,2.4086 -1.552,3.0259 1.398,0.715 1.9193,2.0948 1.9193,3.5979 0,2.2221 -1.2159,4.5016 -3.6502,4.5016 -2.4764,0 -3.7523,-2.1539 -3.7523,-4.4136 0,-1.4738 0.5233,-2.9474 1.881,-3.6859zm0.4407 -2.806c0,0.8326 0.3661,1.7635 1.338,1.7635 0.9742,0 1.3541,-0.923 1.3541,-1.7635 0,-0.8177 -0.3778,-1.7363 -1.3285,-1.7363 -0.9608,0 -1.3636,0.8967 -1.3636,1.7363zm-0.198 6.2245c0,0.9633 0.3646,2.4404 1.5903,2.4404 1.2359,0 1.5457,-1.4577 1.5457,-2.4202 0,-0.9502 -0.4133,-2.2507 -1.5744,-2.2507 -1.1375,0 -1.5616,1.299 -1.5616,2.2305zm11.5061 4.4237l0 -14.5371 2.2642 0 0 6.4545 4.5954 -6.4545 3.0593 0 -4.2377 5.6625 4.4612 8.8746 -2.9379 0 -3.0976 -6.8235 -1.8427 2.4303 0 4.3932 -2.2642 0zm11.2953 -14.5371l2.2642 0 0 7.8727c0,1.7451 -0.1758,4.4035 2.2897,4.4035 2.361,0 2.1429,-2.5424 2.1429,-4.2343l0 -8.0419 2.2736 0 0 7.6358c0,3.3026 -0.0452,7.1484 -4.3494,7.1484 -4.3563,0 -4.621,-3.4858 -4.621,-7.0299l0 -7.7543zm11.423 14.5371l0 -14.4187 2.2642 0 0 11.9683 5.6492 0 0 2.4504 -7.9134 0zm9.5071 0l0 -14.5371 3.3946 0 2.0406 9.917 2.0215 -9.917 3.4043 0 0 14.5371 -2.1045 0 0 -11.4436 -2.2355 11.4436 -2.1907 0 -2.2163 -11.4436 0 11.4436 -2.114 0zm13.1156 -14.5371l4.5028 0c1.2263,0 2.0918,0.1184 2.5899,0.3587 1.2018,0.5714 1.7789,2.0417 1.7789,3.3001 0,1.1974 -0.5004,2.5268 -1.5809,3.1545 1.4794,0.5549 2.1333,2.0081 2.1333,3.5099 0,1.571 -0.7273,3.5873 -2.4239,4.0346 -0.4566,0.1184 -1.5136,0.1793 -3.1711,0.1793l-3.829 0 0 -14.5371zm2.2642 2.42l0 3.3609c1.0234,0 2.1598,0.108 3.1648,-0.0507 0.8617,-0.1434 1.2327,-0.8463 1.2327,-1.6653 0,-0.6164 -0.241,-1.3671 -0.9102,-1.5467 -0.2523,-0.0643 -0.9772,-0.0982 -2.1748,-0.0982l-1.3125 0zm0 5.781l0 3.8857 2.1077 0c0.923,0 1.5137,-0.0508 1.7756,-0.1524 0.6879,-0.2667 0.9261,-1.0814 0.9261,-1.7499 0,-0.7472 -0.2848,-1.5327 -1.0411,-1.8108 -1.0519,-0.3827 -2.6392,-0.1726 -3.7683,-0.1726zm19.2183 6.3361l-2.4686 0 -0.9836 -3.3034 -4.49 0 -0.9261 3.3034 -2.4142 0 4.3782 -14.5371 2.4047 0 4.4996 14.5371zm-4.1802 -5.7505l-1.5457 -5.3952 -1.5233 5.3952 3.069 0zm12.5821 0.4061l2.2004 0.9004c-0.5251,2.4791 -1.8553,4.6911 -4.6592,4.6911 -3.8583,0 -5.1383,-4.2104 -5.1383,-7.3853 0,-3.3303 1.2233,-7.646 5.2788,-7.646 2.5922,0 3.981,1.9434 4.49,4.2545l-2.245 0.6939c-0.2243,-1.2308 -0.9778,-2.4404 -2.3664,-2.4404 -2.4907,0 -2.8166,3.1176 -2.8166,4.9484 0,1.7985 0.2552,5.0669 2.7592,5.0669 1.6341,0 2.2592,-1.7542 2.4971,-3.0835zm4.1452 5.3444l0 -14.5371 2.2642 0 0 5.72 4.4548 0 0 -5.72 2.2738 0 0 14.5371 -2.2738 0 0 -6.3564 -4.4548 0 0 6.3564 -2.2642 0z"/>
<path id="_167474096" class="fil2" d="M13.9297 43.5278l122.141 0 0 76.9075c0,32.7997 -26.4097,59.6355 -58.6886,59.6355l-4.7634 0c-32.2789,0 -58.6886,-26.8358 -58.6886,-59.6355l0 -76.9075z"/>
<path id="_167474024" class="fil3" d="M66.4036 121.944l0 -7.2161 3.9298 0 0 7.2161 -3.9298 0zm0 -24.4065l0 -6.8761 3.9298 0 0 6.8761 -3.9298 0zm0 -24.0665l0 -7.8585 -29.865 0c0,-5.7301 0,-11.4603 0,-17.1904l76.9228 0c0,5.7301 0,11.4603 0,17.1904l-29.865 0 0 7.8585 -3.9298 0 0 -11.7877 29.8649 0 0 -9.3319 -69.063 0 0 9.3319 29.8649 0 0 11.7877 -3.9298 0zm17.1928 17.1904l0 6.8761 -3.9298 0 0 -6.8761 3.9298 0zm0 24.0665l0 7.2161 -3.9298 0 0 -7.2161 3.9298 0z"/>
<path id="_167473952" class="fil1" d="M40.4685 61.6829l29.8649 0 0 11.7877 9.3332 0 0 -11.7877 29.8649 0 0 -9.3319 -69.063 0 0 9.3319zm29.8649 28.9781l0 6.8761 9.3332 0 0 -6.8761 -9.3332 0zm0 24.0665l0 7.2161 9.3332 0 0 -7.2161 -9.3332 0z"/>
<path id="_167473880" class="fil3" d="M36.5391 73.4706c25.6409,0 51.2819,0 76.9228,0 0,5.7301 0,11.4603 0,17.1904l-59.5718 0 0 6.8761 59.5718 0 0 30.7212c-1.3099,0 -2.6195,0 -3.9294,0l0 -26.7919 -59.5722 -0.0001 0 -14.7346 59.5722 0 0 -9.3319 -68.9054 0 0 33.3985 59.7299 0.0001c0,5.0248 0,10.0497 0,15.0745l-59.8885 0 0 2.3854c-1.2568,0 -2.6725,0 -3.9294,0l0 -6.3147 59.8881 0 0 -7.2161 -59.8881 0 0 -41.2569zm77.0809 58.4224l0 7.241 -4.1811 0 4.1811 -7.241zm-21.8781 7.241l-32.5917 0 -2.4556 -3.9292 37.3161 0 -2.2688 3.9292zm-50.6639 0l-4.6981 0 0 -7.5176 4.6981 7.5176z"/>
<path id="_167473808" class="fil1" d="M49.9603 86.7316l59.5712 0.0001 0 -9.3319 -69.063 0 0 0.0001 -0.0001 0 0.0001 33.3984 59.7299 0 0 15.0746 -59.7299 0 0 2.3854c4.0145,0 7.8704,0 11.8848,0l4.3413 6.9465 37.3161 0 4.0112 -6.9465 11.5097 0 -0.0001 -26.7919 -59.5712 -0.0001 0 -14.7347z"/>
<path id="_167473736" class="fil3" d="M10 10.0001l130 0 0 111.544c0,34.351 -28.1092,62.4562 -62.465,62.4562l-5.07 0c-34.3558,0 -62.465,-28.1052 -62.465,-62.4562 0,-37.1811 0,-74.3625 0,-111.544zm105.719 118.258l-29.5021 51.1322c28.1264,-4.3629 49.8536,-29.2053 49.8536,-58.9552l0 -76.9075 -122.141 0 0 76.9075c0,30.6652 23.0848,56.115 52.4676,59.2976l-32.1161 -51.4746c6.0239,0 12.0482,0 18.0721,0l23.7368 37.9814 21.9318 -37.9814c5.8989,0 11.798,0 17.6969,0zm-34.351 51.6709l27.5446 -47.7417 -8.6219 0c-8.0222,13.8933 -16.0449,27.7867 -24.0671,41.6799l-26.0482 -41.6799 -0.0001 0 -8.8044 0 29.8602 47.8652c0.4613,0.0111 0.9236,0.0181 1.3874,0.0181l4.7634 0c1.3397,0 2.6682,-0.0505 3.9861,-0.1416zm-67.4381 -140.331l122.141 0 0 -25.6694 -122.141 0 0 25.6694z"/>
<path id="_167473664" class="fil1" d="M41.3707 132.188l8.8044 0 26.0483 41.6799 24.0671 -41.6799 8.6219 0 -27.5446 47.7417c-1.3179,0.0911 -2.6464,0.1416 -3.9861,0.1416l-4.7634 0c-0.4638,0 -0.9261,-0.007 -1.3874,-0.0181l-29.8602 -47.8652z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="150mm" height="194mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 150 194">
<defs>
<style type="text/css">
<![CDATA[
.fil3 {fill:black}
.fil2 {fill:red}
.fil1 {fill:white}
.fil0 {fill:black;fill-rule:nonzero}
]]>
</style>
</defs>
<g id="Ebene_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<g id="_167224168">
<path id="_167474240" class="fil0" d="M23.1558 19.1779c1.089,0 1.9737,0.5516 2.6474,1.6517 0.6738,1.1 1.0091,3.0258 1.0091,5.7775 0,2.7417 -0.3353,4.6641 -1.0091,5.7642 -0.6737,1.1034 -1.5552,1.6517 -2.6378,1.6517 -1.0921,0 -1.9768,-0.5449 -2.6506,-1.6348 -0.6738,-1.0898 -1.0091,-3.0293 -1.0091,-5.8115 0,-2.7314 0.3353,-4.6471 1.0091,-5.7471 0.6738,-1.1001 1.5552,-1.6517 2.641,-1.6517zm0 2.3117c-1.6919,0 -1.3955,4.2952 -1.3955,5.1175 0,0.8223 -0.2973,5.1076 1.3955,5.1076 1.6957,0 1.3924,-4.2803 1.3924,-5.1076 0,-0.8271 0.305,-5.1175 -1.3924,-5.1175zm6.9491 4.4441c-1.1338,-0.6227 -1.6,-1.7542 -1.6,-3.0057 0,-2.0696 1.1984,-3.7501 3.3883,-3.7501 2.1621,0 3.3659,1.6833 3.3659,3.7299 0,1.2051 -0.46,2.4086 -1.552,3.0259 1.398,0.715 1.9193,2.0948 1.9193,3.5979 0,2.2221 -1.2159,4.5016 -3.6502,4.5016 -2.4764,0 -3.7523,-2.1539 -3.7523,-4.4136 0,-1.4738 0.5233,-2.9474 1.881,-3.6859zm0.4407 -2.806c0,0.8326 0.3661,1.7635 1.338,1.7635 0.9742,0 1.3541,-0.923 1.3541,-1.7635 0,-0.8177 -0.3778,-1.7363 -1.3285,-1.7363 -0.9608,0 -1.3636,0.8967 -1.3636,1.7363zm-0.198 6.2245c0,0.9633 0.3646,2.4404 1.5903,2.4404 1.2359,0 1.5457,-1.4577 1.5457,-2.4202 0,-0.9502 -0.4133,-2.2507 -1.5744,-2.2507 -1.1375,0 -1.5616,1.299 -1.5616,2.2305zm11.5061 4.4237l0 -14.5371 2.2642 0 0 6.4545 4.5954 -6.4545 3.0593 0 -4.2377 5.6625 4.4612 8.8746 -2.9379 0 -3.0976 -6.8235 -1.8427 2.4303 0 4.3932 -2.2642 0zm11.2953 -14.5371l2.2642 0 0 7.8727c0,1.7451 -0.1758,4.4035 2.2897,4.4035 2.361,0 2.1429,-2.5424 2.1429,-4.2343l0 -8.0419 2.2736 0 0 7.6358c0,3.3026 -0.0452,7.1484 -4.3494,7.1484 -4.3563,0 -4.621,-3.4858 -4.621,-7.0299l0 -7.7543zm11.423 14.5371l0 -14.4187 2.2642 0 0 11.9683 5.6492 0 0 2.4504 -7.9134 0zm9.5071 0l0 -14.5371 3.3946 0 2.0406 9.917 2.0215 -9.917 3.4043 0 0 14.5371 -2.1045 0 0 -11.4436 -2.2355 11.4436 -2.1907 0 -2.2163 -11.4436 0 11.4436 -2.114 0zm13.1156 -14.5371l4.5028 0c1.2263,0 2.0918,0.1184 2.5899,0.3587 1.2018,0.5714 1.7789,2.0417 1.7789,3.3001 0,1.1974 -0.5004,2.5268 -1.5809,3.1545 1.4794,0.5549 2.1333,2.0081 2.1333,3.5099 0,1.571 -0.7273,3.5873 -2.4239,4.0346 -0.4566,0.1184 -1.5136,0.1793 -3.1711,0.1793l-3.829 0 0 -14.5371zm2.2642 2.42l0 3.3609c1.0234,0 2.1598,0.108 3.1648,-0.0507 0.8617,-0.1434 1.2327,-0.8463 1.2327,-1.6653 0,-0.6164 -0.241,-1.3671 -0.9102,-1.5467 -0.2523,-0.0643 -0.9772,-0.0982 -2.1748,-0.0982l-1.3125 0zm0 5.781l0 3.8857 2.1077 0c0.923,0 1.5137,-0.0508 1.7756,-0.1524 0.6879,-0.2667 0.9261,-1.0814 0.9261,-1.7499 0,-0.7472 -0.2848,-1.5327 -1.0411,-1.8108 -1.0519,-0.3827 -2.6392,-0.1726 -3.7683,-0.1726zm19.2183 6.3361l-2.4686 0 -0.9836 -3.3034 -4.49 0 -0.9261 3.3034 -2.4142 0 4.3782 -14.5371 2.4047 0 4.4996 14.5371zm-4.1802 -5.7505l-1.5457 -5.3952 -1.5233 5.3952 3.069 0zm12.5821 0.4061l2.2004 0.9004c-0.5251,2.4791 -1.8553,4.6911 -4.6592,4.6911 -3.8583,0 -5.1383,-4.2104 -5.1383,-7.3853 0,-3.3303 1.2233,-7.646 5.2788,-7.646 2.5922,0 3.981,1.9434 4.49,4.2545l-2.245 0.6939c-0.2243,-1.2308 -0.9778,-2.4404 -2.3664,-2.4404 -2.4907,0 -2.8166,3.1176 -2.8166,4.9484 0,1.7985 0.2552,5.0669 2.7592,5.0669 1.6341,0 2.2592,-1.7542 2.4971,-3.0835zm4.1452 5.3444l0 -14.5371 2.2642 0 0 5.72 4.4548 0 0 -5.72 2.2738 0 0 14.5371 -2.2738 0 0 -6.3564 -4.4548 0 0 6.3564 -2.2642 0z"/>
<path id="_167474168" class="fil1" d="M13.9297 13.9292l122.141 0 0 25.6694 -122.141 0 0 -25.6694zm9.2261 5.2487c1.089,0 1.9737,0.5516 2.6474,1.6517 0.6738,1.1 1.0091,3.0258 1.0091,5.7775 0,2.7417 -0.3353,4.6641 -1.0091,5.7642 -0.6737,1.1034 -1.5552,1.6517 -2.6378,1.6517 -1.0921,0 -1.9768,-0.5449 -2.6506,-1.6348 -0.6738,-1.0898 -1.0091,-3.0293 -1.0091,-5.8115 0,-2.7314 0.3353,-4.6471 1.0091,-5.7471 0.6738,-1.1001 1.5552,-1.6517 2.641,-1.6517zm0 2.3117c-1.6919,0 -1.3955,4.2952 -1.3955,5.1175 0,0.8223 -0.2973,5.1076 1.3955,5.1076 1.6957,0 1.3924,-4.2803 1.3924,-5.1076 0,-0.8271 0.305,-5.1175 -1.3924,-5.1175zm6.9491 4.4441c-1.1338,-0.6227 -1.6,-1.7542 -1.6,-3.0057 0,-2.0696 1.1984,-3.7501 3.3883,-3.7501 2.1621,0 3.3659,1.6833 3.3659,3.7299 0,1.2051 -0.46,2.4086 -1.552,3.0259 1.398,0.715 1.9193,2.0948 1.9193,3.5979 0,2.2221 -1.2159,4.5016 -3.6502,4.5016 -2.4764,0 -3.7523,-2.1539 -3.7523,-4.4136 0,-1.4738 0.5233,-2.9474 1.881,-3.6859zm0.4407 -2.806c0,0.8326 0.3661,1.7635 1.338,1.7635 0.9742,0 1.3541,-0.923 1.3541,-1.7635 0,-0.8177 -0.3778,-1.7363 -1.3285,-1.7363 -0.9608,0 -1.3636,0.8967 -1.3636,1.7363zm-0.198 6.2245c0,0.9633 0.3646,2.4404 1.5903,2.4404 1.2359,0 1.5457,-1.4577 1.5457,-2.4202 0,-0.9502 -0.4133,-2.2507 -1.5744,-2.2507 -1.1375,0 -1.5616,1.299 -1.5616,2.2305zm11.5061 4.4237l0 -14.5371 2.2642 0 0 6.4545 4.5954 -6.4545 3.0593 0 -4.2377 5.6625 4.4612 8.8746 -2.9379 0 -3.0976 -6.8235 -1.8427 2.4303 0 4.3932 -2.2642 0zm11.2953 -14.5371l2.2642 0 0 7.8727c0,1.7451 -0.1758,4.4035 2.2897,4.4035 2.361,0 2.1429,-2.5424 2.1429,-4.2343l0 -8.0419 2.2736 0 0 7.6358c0,3.3026 -0.0452,7.1484 -4.3494,7.1484 -4.3563,0 -4.621,-3.4858 -4.621,-7.0299l0 -7.7543zm11.423 14.5371l0 -14.4187 2.2642 0 0 11.9683 5.6492 0 0 2.4504 -7.9134 0zm9.5071 0l0 -14.5371 3.3946 0 2.0406 9.917 2.0215 -9.917 3.4043 0 0 14.5371 -2.1045 0 0 -11.4436 -2.2355 11.4436 -2.1907 0 -2.2163 -11.4436 0 11.4436 -2.114 0zm13.1156 -14.5371l4.5028 0c1.2263,0 2.0918,0.1184 2.5899,0.3587 1.2018,0.5714 1.7789,2.0417 1.7789,3.3001 0,1.1974 -0.5004,2.5268 -1.5809,3.1545 1.4794,0.5549 2.1333,2.0081 2.1333,3.5099 0,1.571 -0.7273,3.5873 -2.4239,4.0346 -0.4566,0.1184 -1.5136,0.1793 -3.1711,0.1793l-3.829 0 0 -14.5371zm2.2642 2.42l0 3.3609c1.0234,0 2.1598,0.108 3.1648,-0.0507 0.8617,-0.1434 1.2327,-0.8463 1.2327,-1.6653 0,-0.6164 -0.241,-1.3671 -0.9102,-1.5467 -0.2523,-0.0643 -0.9772,-0.0982 -2.1748,-0.0982l-1.3125 0zm0 5.781l0 3.8857 2.1077 0c0.923,0 1.5137,-0.0508 1.7756,-0.1524 0.6879,-0.2667 0.9261,-1.0814 0.9261,-1.7499 0,-0.7472 -0.2848,-1.5327 -1.0411,-1.8108 -1.0519,-0.3827 -2.6392,-0.1726 -3.7683,-0.1726zm19.2183 6.3361l-2.4686 0 -0.9836 -3.3034 -4.49 0 -0.9261 3.3034 -2.4142 0 4.3782 -14.5371 2.4047 0 4.4996 14.5371zm-4.1802 -5.7505l-1.5457 -5.3952 -1.5233 5.3952 3.069 0zm12.5821 0.4061l2.2004 0.9004c-0.5251,2.4791 -1.8553,4.6911 -4.6592,4.6911 -3.8583,0 -5.1383,-4.2104 -5.1383,-7.3853 0,-3.3303 1.2233,-7.646 5.2788,-7.646 2.5922,0 3.981,1.9434 4.49,4.2545l-2.245 0.6939c-0.2243,-1.2308 -0.9778,-2.4404 -2.3664,-2.4404 -2.4907,0 -2.8166,3.1176 -2.8166,4.9484 0,1.7985 0.2552,5.0669 2.7592,5.0669 1.6341,0 2.2592,-1.7542 2.4971,-3.0835zm4.1452 5.3444l0 -14.5371 2.2642 0 0 5.72 4.4548 0 0 -5.72 2.2738 0 0 14.5371 -2.2738 0 0 -6.3564 -4.4548 0 0 6.3564 -2.2642 0z"/>
<path id="_167474096" class="fil2" d="M13.9297 43.5278l122.141 0 0 76.9075c0,32.7997 -26.4097,59.6355 -58.6886,59.6355l-4.7634 0c-32.2789,0 -58.6886,-26.8358 -58.6886,-59.6355l0 -76.9075z"/>
<path id="_167474024" class="fil3" d="M66.4036 121.944l0 -7.2161 3.9298 0 0 7.2161 -3.9298 0zm0 -24.4065l0 -6.8761 3.9298 0 0 6.8761 -3.9298 0zm0 -24.0665l0 -7.8585 -29.865 0c0,-5.7301 0,-11.4603 0,-17.1904l76.9228 0c0,5.7301 0,11.4603 0,17.1904l-29.865 0 0 7.8585 -3.9298 0 0 -11.7877 29.8649 0 0 -9.3319 -69.063 0 0 9.3319 29.8649 0 0 11.7877 -3.9298 0zm17.1928 17.1904l0 6.8761 -3.9298 0 0 -6.8761 3.9298 0zm0 24.0665l0 7.2161 -3.9298 0 0 -7.2161 3.9298 0z"/>
<path id="_167473952" class="fil1" d="M40.4685 61.6829l29.8649 0 0 11.7877 9.3332 0 0 -11.7877 29.8649 0 0 -9.3319 -69.063 0 0 9.3319zm29.8649 28.9781l0 6.8761 9.3332 0 0 -6.8761 -9.3332 0zm0 24.0665l0 7.2161 9.3332 0 0 -7.2161 -9.3332 0z"/>
<path id="_167473880" class="fil3" d="M36.5391 73.4706c25.6409,0 51.2819,0 76.9228,0 0,5.7301 0,11.4603 0,17.1904l-59.5718 0 0 6.8761 59.5718 0 0 30.7212c-1.3099,0 -2.6195,0 -3.9294,0l0 -26.7919 -59.5722 -0.0001 0 -14.7346 59.5722 0 0 -9.3319 -68.9054 0 0 33.3985 59.7299 0.0001c0,5.0248 0,10.0497 0,15.0745l-59.8885 0 0 2.3854c-1.2568,0 -2.6725,0 -3.9294,0l0 -6.3147 59.8881 0 0 -7.2161 -59.8881 0 0 -41.2569zm77.0809 58.4224l0 7.241 -4.1811 0 4.1811 -7.241zm-21.8781 7.241l-32.5917 0 -2.4556 -3.9292 37.3161 0 -2.2688 3.9292zm-50.6639 0l-4.6981 0 0 -7.5176 4.6981 7.5176z"/>
<path id="_167473808" class="fil1" d="M49.9603 86.7316l59.5712 0.0001 0 -9.3319 -69.063 0 0 0.0001 -0.0001 0 0.0001 33.3984 59.7299 0 0 15.0746 -59.7299 0 0 2.3854c4.0145,0 7.8704,0 11.8848,0l4.3413 6.9465 37.3161 0 4.0112 -6.9465 11.5097 0 -0.0001 -26.7919 -59.5712 -0.0001 0 -14.7347z"/>
<path id="_167473736" class="fil3" d="M10 10.0001l130 0 0 111.544c0,34.351 -28.1092,62.4562 -62.465,62.4562l-5.07 0c-34.3558,0 -62.465,-28.1052 -62.465,-62.4562 0,-37.1811 0,-74.3625 0,-111.544zm105.719 118.258l-29.5021 51.1322c28.1264,-4.3629 49.8536,-29.2053 49.8536,-58.9552l0 -76.9075 -122.141 0 0 76.9075c0,30.6652 23.0848,56.115 52.4676,59.2976l-32.1161 -51.4746c6.0239,0 12.0482,0 18.0721,0l23.7368 37.9814 21.9318 -37.9814c5.8989,0 11.798,0 17.6969,0zm-34.351 51.6709l27.5446 -47.7417 -8.6219 0c-8.0222,13.8933 -16.0449,27.7867 -24.0671,41.6799l-26.0482 -41.6799 -0.0001 0 -8.8044 0 29.8602 47.8652c0.4613,0.0111 0.9236,0.0181 1.3874,0.0181l4.7634 0c1.3397,0 2.6682,-0.0505 3.9861,-0.1416zm-67.4381 -140.331l122.141 0 0 -25.6694 -122.141 0 0 25.6694z"/>
<path id="_167473664" class="fil1" d="M41.3707 132.188l8.8044 0 26.0483 41.6799 24.0671 -41.6799 8.6219 0 -27.5446 47.7417c-1.3179,0.0911 -2.6464,0.1416 -3.9861,0.1416l-4.7634 0c-0.4638,0 -0.9261,-0.007 -1.3874,-0.0181l-29.8602 -47.8652z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="150mm" height="194mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 150 194">
<defs>
<style type="text/css">
<![CDATA[
.fil3 {fill:black}
.fil2 {fill:red}
.fil1 {fill:white}
.fil0 {fill:black;fill-rule:nonzero}
]]>
</style>
</defs>
<g id="Ebene_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<g id="_167224168">
<path id="_167474240" class="fil0" d="M23.1558 19.1779c1.089,0 1.9737,0.5516 2.6474,1.6517 0.6738,1.1 1.0091,3.0258 1.0091,5.7775 0,2.7417 -0.3353,4.6641 -1.0091,5.7642 -0.6737,1.1034 -1.5552,1.6517 -2.6378,1.6517 -1.0921,0 -1.9768,-0.5449 -2.6506,-1.6348 -0.6738,-1.0898 -1.0091,-3.0293 -1.0091,-5.8115 0,-2.7314 0.3353,-4.6471 1.0091,-5.7471 0.6738,-1.1001 1.5552,-1.6517 2.641,-1.6517zm0 2.3117c-1.6919,0 -1.3955,4.2952 -1.3955,5.1175 0,0.8223 -0.2973,5.1076 1.3955,5.1076 1.6957,0 1.3924,-4.2803 1.3924,-5.1076 0,-0.8271 0.305,-5.1175 -1.3924,-5.1175zm6.9491 4.4441c-1.1338,-0.6227 -1.6,-1.7542 -1.6,-3.0057 0,-2.0696 1.1984,-3.7501 3.3883,-3.7501 2.1621,0 3.3659,1.6833 3.3659,3.7299 0,1.2051 -0.46,2.4086 -1.552,3.0259 1.398,0.715 1.9193,2.0948 1.9193,3.5979 0,2.2221 -1.2159,4.5016 -3.6502,4.5016 -2.4764,0 -3.7523,-2.1539 -3.7523,-4.4136 0,-1.4738 0.5233,-2.9474 1.881,-3.6859zm0.4407 -2.806c0,0.8326 0.3661,1.7635 1.338,1.7635 0.9742,0 1.3541,-0.923 1.3541,-1.7635 0,-0.8177 -0.3778,-1.7363 -1.3285,-1.7363 -0.9608,0 -1.3636,0.8967 -1.3636,1.7363zm-0.198 6.2245c0,0.9633 0.3646,2.4404 1.5903,2.4404 1.2359,0 1.5457,-1.4577 1.5457,-2.4202 0,-0.9502 -0.4133,-2.2507 -1.5744,-2.2507 -1.1375,0 -1.5616,1.299 -1.5616,2.2305zm11.5061 4.4237l0 -14.5371 2.2642 0 0 6.4545 4.5954 -6.4545 3.0593 0 -4.2377 5.6625 4.4612 8.8746 -2.9379 0 -3.0976 -6.8235 -1.8427 2.4303 0 4.3932 -2.2642 0zm11.2953 -14.5371l2.2642 0 0 7.8727c0,1.7451 -0.1758,4.4035 2.2897,4.4035 2.361,0 2.1429,-2.5424 2.1429,-4.2343l0 -8.0419 2.2736 0 0 7.6358c0,3.3026 -0.0452,7.1484 -4.3494,7.1484 -4.3563,0 -4.621,-3.4858 -4.621,-7.0299l0 -7.7543zm11.423 14.5371l0 -14.4187 2.2642 0 0 11.9683 5.6492 0 0 2.4504 -7.9134 0zm9.5071 0l0 -14.5371 3.3946 0 2.0406 9.917 2.0215 -9.917 3.4043 0 0 14.5371 -2.1045 0 0 -11.4436 -2.2355 11.4436 -2.1907 0 -2.2163 -11.4436 0 11.4436 -2.114 0zm13.1156 -14.5371l4.5028 0c1.2263,0 2.0918,0.1184 2.5899,0.3587 1.2018,0.5714 1.7789,2.0417 1.7789,3.3001 0,1.1974 -0.5004,2.5268 -1.5809,3.1545 1.4794,0.5549 2.1333,2.0081 2.1333,3.5099 0,1.571 -0.7273,3.5873 -2.4239,4.0346 -0.4566,0.1184 -1.5136,0.1793 -3.1711,0.1793l-3.829 0 0 -14.5371zm2.2642 2.42l0 3.3609c1.0234,0 2.1598,0.108 3.1648,-0.0507 0.8617,-0.1434 1.2327,-0.8463 1.2327,-1.6653 0,-0.6164 -0.241,-1.3671 -0.9102,-1.5467 -0.2523,-0.0643 -0.9772,-0.0982 -2.1748,-0.0982l-1.3125 0zm0 5.781l0 3.8857 2.1077 0c0.923,0 1.5137,-0.0508 1.7756,-0.1524 0.6879,-0.2667 0.9261,-1.0814 0.9261,-1.7499 0,-0.7472 -0.2848,-1.5327 -1.0411,-1.8108 -1.0519,-0.3827 -2.6392,-0.1726 -3.7683,-0.1726zm19.2183 6.3361l-2.4686 0 -0.9836 -3.3034 -4.49 0 -0.9261 3.3034 -2.4142 0 4.3782 -14.5371 2.4047 0 4.4996 14.5371zm-4.1802 -5.7505l-1.5457 -5.3952 -1.5233 5.3952 3.069 0zm12.5821 0.4061l2.2004 0.9004c-0.5251,2.4791 -1.8553,4.6911 -4.6592,4.6911 -3.8583,0 -5.1383,-4.2104 -5.1383,-7.3853 0,-3.3303 1.2233,-7.646 5.2788,-7.646 2.5922,0 3.981,1.9434 4.49,4.2545l-2.245 0.6939c-0.2243,-1.2308 -0.9778,-2.4404 -2.3664,-2.4404 -2.4907,0 -2.8166,3.1176 -2.8166,4.9484 0,1.7985 0.2552,5.0669 2.7592,5.0669 1.6341,0 2.2592,-1.7542 2.4971,-3.0835zm4.1452 5.3444l0 -14.5371 2.2642 0 0 5.72 4.4548 0 0 -5.72 2.2738 0 0 14.5371 -2.2738 0 0 -6.3564 -4.4548 0 0 6.3564 -2.2642 0z"/>
<path id="_167474168" class="fil1" d="M13.9297 13.9292l122.141 0 0 25.6694 -122.141 0 0 -25.6694zm9.2261 5.2487c1.089,0 1.9737,0.5516 2.6474,1.6517 0.6738,1.1 1.0091,3.0258 1.0091,5.7775 0,2.7417 -0.3353,4.6641 -1.0091,5.7642 -0.6737,1.1034 -1.5552,1.6517 -2.6378,1.6517 -1.0921,0 -1.9768,-0.5449 -2.6506,-1.6348 -0.6738,-1.0898 -1.0091,-3.0293 -1.0091,-5.8115 0,-2.7314 0.3353,-4.6471 1.0091,-5.7471 0.6738,-1.1001 1.5552,-1.6517 2.641,-1.6517zm0 2.3117c-1.6919,0 -1.3955,4.2952 -1.3955,5.1175 0,0.8223 -0.2973,5.1076 1.3955,5.1076 1.6957,0 1.3924,-4.2803 1.3924,-5.1076 0,-0.8271 0.305,-5.1175 -1.3924,-5.1175zm6.9491 4.4441c-1.1338,-0.6227 -1.6,-1.7542 -1.6,-3.0057 0,-2.0696 1.1984,-3.7501 3.3883,-3.7501 2.1621,0 3.3659,1.6833 3.3659,3.7299 0,1.2051 -0.46,2.4086 -1.552,3.0259 1.398,0.715 1.9193,2.0948 1.9193,3.5979 0,2.2221 -1.2159,4.5016 -3.6502,4.5016 -2.4764,0 -3.7523,-2.1539 -3.7523,-4.4136 0,-1.4738 0.5233,-2.9474 1.881,-3.6859zm0.4407 -2.806c0,0.8326 0.3661,1.7635 1.338,1.7635 0.9742,0 1.3541,-0.923 1.3541,-1.7635 0,-0.8177 -0.3778,-1.7363 -1.3285,-1.7363 -0.9608,0 -1.3636,0.8967 -1.3636,1.7363zm-0.198 6.2245c0,0.9633 0.3646,2.4404 1.5903,2.4404 1.2359,0 1.5457,-1.4577 1.5457,-2.4202 0,-0.9502 -0.4133,-2.2507 -1.5744,-2.2507 -1.1375,0 -1.5616,1.299 -1.5616,2.2305zm11.5061 4.4237l0 -14.5371 2.2642 0 0 6.4545 4.5954 -6.4545 3.0593 0 -4.2377 5.6625 4.4612 8.8746 -2.9379 0 -3.0976 -6.8235 -1.8427 2.4303 0 4.3932 -2.2642 0zm11.2953 -14.5371l2.2642 0 0 7.8727c0,1.7451 -0.1758,4.4035 2.2897,4.4035 2.361,0 2.1429,-2.5424 2.1429,-4.2343l0 -8.0419 2.2736 0 0 7.6358c0,3.3026 -0.0452,7.1484 -4.3494,7.1484 -4.3563,0 -4.621,-3.4858 -4.621,-7.0299l0 -7.7543zm11.423 14.5371l0 -14.4187 2.2642 0 0 11.9683 5.6492 0 0 2.4504 -7.9134 0zm9.5071 0l0 -14.5371 3.3946 0 2.0406 9.917 2.0215 -9.917 3.4043 0 0 14.5371 -2.1045 0 0 -11.4436 -2.2355 11.4436 -2.1907 0 -2.2163 -11.4436 0 11.4436 -2.114 0zm13.1156 -14.5371l4.5028 0c1.2263,0 2.0918,0.1184 2.5899,0.3587 1.2018,0.5714 1.7789,2.0417 1.7789,3.3001 0,1.1974 -0.5004,2.5268 -1.5809,3.1545 1.4794,0.5549 2.1333,2.0081 2.1333,3.5099 0,1.571 -0.7273,3.5873 -2.4239,4.0346 -0.4566,0.1184 -1.5136,0.1793 -3.1711,0.1793l-3.829 0 0 -14.5371zm2.2642 2.42l0 3.3609c1.0234,0 2.1598,0.108 3.1648,-0.0507 0.8617,-0.1434 1.2327,-0.8463 1.2327,-1.6653 0,-0.6164 -0.241,-1.3671 -0.9102,-1.5467 -0.2523,-0.0643 -0.9772,-0.0982 -2.1748,-0.0982l-1.3125 0zm0 5.781l0 3.8857 2.1077 0c0.923,0 1.5137,-0.0508 1.7756,-0.1524 0.6879,-0.2667 0.9261,-1.0814 0.9261,-1.7499 0,-0.7472 -0.2848,-1.5327 -1.0411,-1.8108 -1.0519,-0.3827 -2.6392,-0.1726 -3.7683,-0.1726zm19.2183 6.3361l-2.4686 0 -0.9836 -3.3034 -4.49 0 -0.9261 3.3034 -2.4142 0 4.3782 -14.5371 2.4047 0 4.4996 14.5371zm-4.1802 -5.7505l-1.5457 -5.3952 -1.5233 5.3952 3.069 0zm12.5821 0.4061l2.2004 0.9004c-0.5251,2.4791 -1.8553,4.6911 -4.6592,4.6911 -3.8583,0 -5.1383,-4.2104 -5.1383,-7.3853 0,-3.3303 1.2233,-7.646 5.2788,-7.646 2.5922,0 3.981,1.9434 4.49,4.2545l-2.245 0.6939c-0.2243,-1.2308 -0.9778,-2.4404 -2.3664,-2.4404 -2.4907,0 -2.8166,3.1176 -2.8166,4.9484 0,1.7985 0.2552,5.0669 2.7592,5.0669 1.6341,0 2.2592,-1.7542 2.4971,-3.0835zm4.1452 5.3444l0 -14.5371 2.2642 0 0 5.72 4.4548 0 0 -5.72 2.2738 0 0 14.5371 -2.2738 0 0 -6.3564 -4.4548 0 0 6.3564 -2.2642 0z"/>
<path id="_167474096" class="fil2" d="M13.9297 43.5278l122.141 0 0 76.9075c0,32.7997 -26.4097,59.6355 -58.6886,59.6355l-4.7634 0c-32.2789,0 -58.6886,-26.8358 -58.6886,-59.6355l0 -76.9075z"/>
<path id="_167474024" class="fil3" d="M66.4036 121.944l0 -7.2161 3.9298 0 0 7.2161 -3.9298 0zm0 -24.4065l0 -6.8761 3.9298 0 0 6.8761 -3.9298 0zm0 -24.0665l0 -7.8585 -29.865 0c0,-5.7301 0,-11.4603 0,-17.1904l76.9228 0c0,5.7301 0,11.4603 0,17.1904l-29.865 0 0 7.8585 -3.9298 0 0 -11.7877 29.8649 0 0 -9.3319 -69.063 0 0 9.3319 29.8649 0 0 11.7877 -3.9298 0zm17.1928 17.1904l0 6.8761 -3.9298 0 0 -6.8761 3.9298 0zm0 24.0665l0 7.2161 -3.9298 0 0 -7.2161 3.9298 0z"/>
<path id="_167473952" class="fil1" d="M40.4685 61.6829l29.8649 0 0 11.7877 9.3332 0 0 -11.7877 29.8649 0 0 -9.3319 -69.063 0 0 9.3319zm29.8649 28.9781l0 6.8761 9.3332 0 0 -6.8761 -9.3332 0zm0 24.0665l0 7.2161 9.3332 0 0 -7.2161 -9.3332 0z"/>
<path id="_167473880" class="fil3" d="M36.5391 73.4706c25.6409,0 51.2819,0 76.9228,0 0,5.7301 0,11.4603 0,17.1904l-59.5718 0 0 6.8761 59.5718 0 0 30.7212c-1.3099,0 -2.6195,0 -3.9294,0l0 -26.7919 -59.5722 -0.0001 0 -14.7346 59.5722 0 0 -9.3319 -68.9054 0 0 33.3985 59.7299 0.0001c0,5.0248 0,10.0497 0,15.0745l-59.8885 0 0 2.3854c-1.2568,0 -2.6725,0 -3.9294,0l0 -6.3147 59.8881 0 0 -7.2161 -59.8881 0 0 -41.2569zm77.0809 58.4224l0 7.241 -4.1811 0 4.1811 -7.241zm-21.8781 7.241l-32.5917 0 -2.4556 -3.9292 37.3161 0 -2.2688 3.9292zm-50.6639 0l-4.6981 0 0 -7.5176 4.6981 7.5176z"/>
<path id="_167473808" class="fil1" d="M49.9603 86.7316l59.5712 0.0001 0 -9.3319 -69.063 0 0 0.0001 -0.0001 0 0.0001 33.3984 59.7299 0 0 15.0746 -59.7299 0 0 2.3854c4.0145,0 7.8704,0 11.8848,0l4.3413 6.9465 37.3161 0 4.0112 -6.9465 11.5097 0 -0.0001 -26.7919 -59.5712 -0.0001 0 -14.7347z"/>
<path id="_167473736" class="fil3" d="M10 10.0001l130 0 0 111.544c0,34.351 -28.1092,62.4562 -62.465,62.4562l-5.07 0c-34.3558,0 -62.465,-28.1052 -62.465,-62.4562 0,-37.1811 0,-74.3625 0,-111.544zm105.719 118.258l-29.5021 51.1322c28.1264,-4.3629 49.8536,-29.2053 49.8536,-58.9552l0 -76.9075 -122.141 0 0 76.9075c0,30.6652 23.0848,56.115 52.4676,59.2976l-32.1161 -51.4746c6.0239,0 12.0482,0 18.0721,0l23.7368 37.9814 21.9318 -37.9814c5.8989,0 11.798,0 17.6969,0zm-34.351 51.6709l27.5446 -47.7417 -8.6219 0c-8.0222,13.8933 -16.0449,27.7867 -24.0671,41.6799l-26.0482 -41.6799 -0.0001 0 -8.8044 0 29.8602 47.8652c0.4613,0.0111 0.9236,0.0181 1.3874,0.0181l4.7634 0c1.3397,0 2.6682,-0.0505 3.9861,-0.1416zm-67.4381 -140.331l122.141 0 0 -25.6694 -122.141 0 0 25.6694z"/>
<path id="_167473664" class="fil1" d="M41.3707 132.188l8.8044 0 26.0483 41.6799 24.0671 -41.6799 8.6219 0 -27.5446 47.7417c-1.3179,0.0911 -2.6464,0.1416 -3.9861,0.1416l-4.7634 0c-0.4638,0 -0.9261,-0.007 -1.3874,-0.0181l-29.8602 -47.8652z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB