Zwei Stellen, an denen die Marke bisher fehlte. Willkommens-Karte: Das Wasserzeichen war der Markenname als Text mit 5 % Deckkraft — jetzt der Katzenkopf. Die Datei wird einmal beim Start gelesen statt bei jedem Beitritt, und fehlt sie, rendert die Karte wie bisher ohne Wasserzeichen. Der Schalter heisst entsprechend "Logo im Hintergrund". Link-Vorschau: og:image war nur gesetzt, wenn ein Devlog einen Screenshot hatte. Startseite, Roadmap, Funktionen und jedes Devlog ohne Bild kamen in Discord als graue Textzeile. Jetzt faellt alles ohne eigenes Bild auf og-default.png zurueck (1200x630, Lockup auf Schwarz mit Akzentstreifen), und twitter:card ist durchgehend summary_large_image. Die Laufzeit-Datei liegt unter src/bot/assets/, nicht in docs/ — das Dockerfile kopiert nur src/ und frontend/dist/. Geprueft: librsvg zeichnet das eingebettete <image> wirklich (42726 Pixel unterscheiden sich gegen eine Fassung ohne), das OG-Bild landet im dist. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
69 lines
2.6 KiB
Markdown
69 lines
2.6 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 |
|
||
|---|---|---|
|
||
| `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 |
|
||
|
||
## 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.
|