Markenlogos auf ihren Inhalt beschneiden

CABINET und Rotpunkt wirkten neben Februe zu klein. Ursache war nicht die Box,
sondern leerer Rand in den Dateien: CABINET nutzte nur 29 Prozent der Hoehe
seiner Zeichenflaeche, Rotpunkt 70 Prozent. CABINET ist ein 4:1-Schriftzug in
einer fast quadratischen Flaeche – im Seitenkopf blieben davon rund 28 px
sichtbare Hoehe.

Bei beiden SVGs auf die Tuschekante beschnitten (viewBox auf den Inhalt
gesetzt, plus 1 Prozent Luft; die Pfade selbst unveraendert). Beide nutzen ihre
Flaeche jetzt zu 98 Prozent. Im Seitenkopf ist CABINET damit rund zweieinhalb-
mal so gross wie vorher, Rotpunkt gut anderthalbmal und auf derselben Hoehe
wie Februe.

Die Boxgroessen im Frontend bleiben unveraendert – Februe sass bereits richtig,
eine groessere Box haette Februe mitvergroessert.

Ein Test haelt fest, dass unter public/ die beschnittenen Fassungen liegen und
nicht die Zulieferungen.

Tests: 873 gruen (3217 Assertions), Pint sauber.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-03 11:33:12 +00:00
parent c8899e2d7d
commit 3958a1fe89
4 changed files with 38 additions and 7 deletions

View file

@ -19,7 +19,7 @@ eingearbeitet. Offen: Bildmaterial, Rechtstexte und die Herstellerfreigaben.
**Stand 03.09.2026:** T1 und B1–B13 abgearbeitet, **alle Arbeitspakete AP0–AP6 umgesetzt**, die
Bestandsinhalte auf den Interior-Auftritt umgestellt, die Seite abgestimmt und alle vier Punkte
der Abstimmungsrunde vom 03.09. umgesetzt (Nachtrag 5). Alle drei Markenseiten haben jetzt einen
ausführlichen Text. `php artisan test --compact`: **871 grün** (3215 Assertions), Pint sauber,
ausführlichen Text. `php artisan test --compact`: **873 grün** (3217 Assertions), Pint sauber,
`npm run build:b2in` gebaut.
**Die Seite ist testbereit** – die ausstehenden Zulieferungen trägt Marcel selbst im CMS nach.
@ -1047,9 +1047,29 @@ beide Wege fest.
wie Rotpunkt. Jedes Logo bekommt deshalb Höhe **und** Maximalbreite plus `object-contain` – die
Konvention aus der Sponsoring-Sektion.
**Am Febrü-Logo nachgearbeitet:** Im Original waren knapp drei Viertel der Bildfläche leerer
Rand (Inhalt 570 × 238 in 3084 × 1948). In einer Box hätte es dadurch winzig gewirkt. Es ist auf
seinen Inhalt beschnitten und auf 760 px Breite gerechnet – 53 KB → 15 KB.
**Alle drei Dateien auf ihren Inhalt beschnitten.** Jede Zulieferung brachte leeren Rand mit,
und zwar unterschiedlich viel – dadurch wirkten die Logos trotz gleicher Box unterschiedlich
groß:
| Logo | genutzte Höhe der Datei | nach dem Beschnitt |
|---|---|---|
| CABINET | **29 %** | 98 % |
| Rotpunkt | 70 % | 98 % |
| Febrü | 27 % | 100 % |
CABINET ist ein 4:1-Schriftzug, der in einer nahezu quadratischen Fläche saß – im Seitenkopf
blieben davon rund 28 px sichtbare Höhe. Nach dem Beschnitt sind es 69 px bei voller Boxbreite,
also gut zweieinhalbmal so groß. Rotpunkt wächst um gut das Anderthalbfache und steht jetzt auf
derselben Höhe wie Febrü.
Bei den beiden SVGs genügte dafür der `viewBox` (Ursprung und Maße auf die Tuschekante gesetzt,
plus 1 % Luft); die Pfade selbst sind unverändert. Der Febrü-PNG wurde tatsächlich beschnitten
und auf 760 px Breite gerechnet – 53 KB → 15 KB. Die Originale liegen unverändert in
`dev/2026-08-28/markenlogos/`.
> Die Boxgrößen im Frontend sind dabei **nicht** angefasst worden: Febrü saß bereits richtig, und
> eine größere Box hätte auch Febrü mitvergrößert. Die anderen beiden wachsen allein dadurch,
> dass ihre Dateien den Platz jetzt ausnutzen.
**Nachziehen auf bestehenden Installationen:** `CmsBrandSeeder` überspringt vorhandene Marken,
trägt die Logos also nur bei einer frischen Installation ein. `BrandLogoSeeder` **(neu)** setzt
@ -1079,8 +1099,10 @@ selbst hochgeladenes Logo bleibt damit stehen; mehrfaches Ausführen ist unbeden
- Alle drei Logos erscheinen auf Startseite, `/marken` und den „Weitere Marken"-Kacheln.
- Die Dateien, auf die der Seeder zeigt, liegen tatsächlich unter `public/`.
- `BrandLogoSeeder` überschreibt kein selbst hochgeladenes Logo.
- Die SVGs unter `public/` sind die beschnittenen Fassungen, nicht die Zulieferungen (erkennbar
am `viewBox`-Ursprung, der nach dem Beschnitt nicht mehr `0 0` ist).
`php artisan test --compact`: **871 grün** (3215 Assertions), Pint sauber, `npm run build:b2in`
`php artisan test --compact`: **873 grün** (3217 Assertions), Pint sauber, `npm run build:b2in`
gebaut.
---

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 30.8.1, SVG Export Plug-In . SVG Version: 9.03 Build 0) -->
<svg version="1.0" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 595.3 419.5" style="enable-background:new 0 0 595.3 419.5;" xml:space="preserve">
viewBox="52.9 148.4 488.7 123.3" xml:space="preserve">
<g>
<path d="M111.4,150.1c9,0,17.5,2.2,25.4,6.6c7.9,4.4,14.5,10.1,19.8,17l-9.3,23c-3-7.8-7.5-14.6-13.6-20.5
c-6.1-5.9-13.2-8.8-21.3-8.8c-10.8,0-20,4.2-27.6,12.6c-7.6,8.4-11.4,18.5-11.4,30.2c0,11.8,3.8,22,11.4,30.4

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before After
Before After

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 492.2 409.6" style="enable-background:new 0 0 492.2 409.6;" xml:space="preserve">
viewBox="68.6 47.4 356.8 294.2" xml:space="preserve">
<style type="text/css">
.st0{fill:#E30421;}
.st1{fill:#2D2D2D;}

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 5 KiB

Before After
Before After

View file

@ -260,6 +260,15 @@ it('ships the logo files the seeder points at', function () {
}
});
it('ships the logos cropped to their content, not as delivered', function (string $file) {
// Die Zulieferungen haben viel leeren Rand in der Datei – CABINET nutzte nur 29 Prozent der
// Hoehe. In einer Logo-Box wirkt so ein Logo winzig, egal wie gross die Box ist. Die
// beschnittenen Fassungen erkennt man am Ursprung: der ist nach dem Beschnitt nicht mehr 0 0.
$viewBox = (string) simplexml_load_file(public_path('img/assets/marken/'.$file))['viewBox'];
expect($viewBox)->not->toStartWith('0 0 ');
})->with(['cabinet.svg', 'rotpunkt.svg']);
it('keeps a logo that was uploaded in the admin', function () {
CmsBrand::where('slug', 'cabinet')->firstOrFail()->update(['logo' => 'eigenes-logo.svg']);