Drei Dateien lagen unversioniert im Wurzelverzeichnis herum. Alle drei gehoeren ins Repo, nur nicht dorthin: logo.png -> docs/brand/logo.png ChatGPT Image 23. Juni 2025 ... -> docs/brand/studie-kopf-2025-06.png design_handoff_redesign/ -> docs/redesign/ logo.png ist NICHT irgendein Logo, sondern das Original, von dem docs/brand/README.md die ganze Zeit spricht: "ein einziges Original, 2048x2048 mit Transparenz". Nachgerechnet statt geraten -- auf den Inhalt beschnitten ergibt es 1986x1963, exakt die Masse von lockup.png. Es lag also die Quelle der Marke unversioniert daneben. Dabei aufgefallen und in der README vermerkt, nicht repariert: build.py liest das Original ueber einen festen Pfad ausserhalb des Repos (QUELLE = A:/Users/DAR/logo.png). Jetzt sind das zwei Kopien, die auseinanderlaufen koennen. Umstellen kann nur, wer weiss, welche der beiden gepflegt wird. Das zweite Bild ist eine frueherere Kopf-Studie und nicht die Vorlage der heutigen Marke -- andere Zeichnung, flacher, ohne Fell und Schulter. Sie wird nirgends benutzt und liegt als Herkunft. Vom Entwurfs-Paket ist der assets/-Ordner entfallen: er enthielt Kopien von mark.png und lockup.png, die zwei Verzeichnisse weiter im Original liegen. Die .dc.html-Referenzen zeigen jetzt auf ../brand/ und stellen das Logo weiter dar, statt mit kaputten Bildern zurueckzubleiben. Der Kopf der README sagt ausserdem, dass der Entwurf umgesetzt ist und wo bewusst abgewichen wurde -- sonst liest sich das Dokument in einem Jahr wie eine offene Aufgabe. Dazu eine Zeile, die seit dem Redesign nicht mehr stimmte: build.py bezeichnet (10, 10, 10) als "--bg der Marke". Das ist seit gestern #131316. Wirkt erst, wenn jemand build.py laufen laesst -- die erzeugten Icons in frontend/public/ tragen bis dahin den alten Grund. Neu bauen konnte ich sie hier nicht, es gibt weder Python noch Pillow auf dieser Maschine. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
76 lines
3.1 KiB
Markdown
76 lines
3.1 KiB
Markdown
# Marken-Dateien
|
||
|
||
Alles hier stammt aus einem einzigen Original: dem D4RKST3R-Logo in 2048×2048
|
||
mit Transparenz (Katzenkopf über dem Schriftzug-Banner).
|
||
|
||
## Was hier liegt
|
||
|
||
| Datei | Was | Wofür |
|
||
|---|---|---|
|
||
| `logo.png` | **das Original**, 2048×2048 mit Transparenz | Quelle für alles Weitere |
|
||
| `lockup.png` | volles Logo, auf den Inhalt beschnitten | Kopfzeilen, Discord-Banner, OG-Bilder |
|
||
| `mark.png` | nur der Katzenkopf, 1024×1024 | alles Quadratische — Favicon, Avatar |
|
||
| `build.py` | erzeugt beide plus die abgeleiteten Icons | Neubau nach Logo-Änderung |
|
||
| `studie-kopf-2025-06.png` | frühere Kopf-Studie, 636×636 | nirgends in Benutzung, liegt als Herkunft |
|
||
|
||
**Achtung beim Neubau:** `build.py` liest das Original noch über einen festen
|
||
Pfad ausserhalb des Repos (`QUELLE = A:/Users/DAR/logo.png`). Seit das Original
|
||
hier neben der Datei liegt, sind das zwei Kopien, die auseinanderlaufen können —
|
||
wer das Logo ändert, muss beide anfassen oder `QUELLE` auf `logo.png` umstellen.
|
||
|
||
## Warum zwei Fassungen
|
||
|
||
Das volle Lockup ist bei 16 oder 32 Pixeln unbrauchbar — der Schriftzug wird zu
|
||
einem orangen Balken. Für Favicon, Avatar und Navbar-Logo wird deshalb nur der
|
||
Kopf verwendet, mit Ohrenspitzen und etwas Schulter. Der Zuschnitt steht in
|
||
`build.py` als `KOPF` und wurde von Hand gegen drei Varianten geprüft: enger
|
||
schneidet die Ohren ab, weiter fängt schon den Banner ein.
|
||
|
||
## Warum SVG mit eingebettetem PNG
|
||
|
||
Gitea will `logo.svg` und `favicon.svg` — echte SVG-Dateien. Das Original ist
|
||
aber eine Rastergrafik mit Verläufen und Schattierung; nachvektorisieren würde
|
||
sie matschig machen. Deshalb wird das PNG in eine SVG-Hülle gelegt
|
||
(`<svg><image href="data:image/png;base64,…"/></svg>`). Das ist gültiges SVG,
|
||
Gitea nimmt es an, und es sieht aus wie das Original.
|
||
|
||
Die eingebettete Auflösung ist bewusst klein gehalten: das Navbar-Logo hängt an
|
||
jedem Seitenaufruf, 192 px reichen für eine Darstellung mit rund 30 px.
|
||
|
||
## Wohin die erzeugten Dateien gehen
|
||
|
||
`build.py` schreibt direkt an beide Ziele:
|
||
|
||
```
|
||
A:/eco/Gitea/data/gitea/public/assets/img/
|
||
logo.svg Navbar + App-Icon
|
||
favicon.svg Browser-Tab
|
||
favicon.png Rückfallebene, die Gitea als „alternate icon" setzt
|
||
apple-touch-icon.png iOS-Lesezeichen (180 px, deckend)
|
||
avatar_default.png Standardavatar für Konten ohne Bild (512 px)
|
||
|
||
frontend/public/
|
||
favicon.svg
|
||
apple-touch-icon.png
|
||
og-default.png Vorschaubild geteilter Links, 1200×630
|
||
|
||
src/bot/assets/
|
||
mark-card.png Wasserzeichen der Willkommens-Karte
|
||
```
|
||
|
||
`src/bot/assets/` statt `docs/` ist Absicht: das Dockerfile kopiert nur `src/`
|
||
und `frontend/dist/`, alles andere existiert im Container nicht.
|
||
|
||
Die Icons auf dunklem Grund sind **deckend** (`#0a0a0a`, abgerundet) — iOS legt
|
||
hinter transparente Lesezeichen sonst Schwarz oder Weiß, je nach Laune, und die
|
||
Katze ist selbst fast schwarz.
|
||
|
||
## Neu bauen
|
||
|
||
```bash
|
||
python docs/brand/build.py
|
||
```
|
||
|
||
Danach für Gitea `docker restart gitea` — die Dateien unter `custom/` werden
|
||
beim Start eingelesen. Fürs Frontend reicht der normale Build.
|