Files
d4rkbot/docs/brand/README.md
T
D4rkst3randClaude Fable 5 c0a56c1eb5
Deploy / check (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
Logo auf der Willkommens-Karte und in geteilten Links
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>
2026-08-01 03:55:28 +02:00

2.6 KiB
Raw Blame History

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

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.