Branding-Tab: Name/Farben/Bot-Status/Avatar/Banner + Button-Farben für Rollen-Menüs

- Alle Embeds nutzen jetzt brandName/brandColor/brandColor2/brandFooter aus den
  Settings (Codemod über 20 Module) — Farbe & Name serverweit per Klick änderbar
- Bot-Status (Presence): Typ (Spielt/Schaut/Hört/Status) + Text, sofort angewendet;
  Server-Monitor nutzt die Presence nur noch, wenn kein eigener Status gesetzt ist
- Avatar-/Banner-Upload direkt aufs Bot-Profil (Base64, 8-MB-Limit,
  Discord-Rate-Limit sauber gemeldet)
- Env-Verlagerung: GITEA_API_TOKEN (write-only Setting) und DISCORD_GUILD_ID
  jetzt auch über den Brand-Tab pflegbar — weniger Redeploys
- Rollen-Menüs: Button-Farbe pro Eintrag wählbar (Grau/Blau/Grün/Rot)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 00:40:08 +02:00
co-authored by Claude Fable 5
parent db9c7d07c9
commit f7b261c648
27 changed files with 395 additions and 93 deletions
+35
View File
@@ -920,3 +920,38 @@ a.sha:hover { border-color: var(--neon); background: rgba(245, 197, 24, .07); }
border-color: var(--neon);
box-shadow: 0 0 0 3px rgba(245, 197, 24, .12);
}
/* Branding-Tab: Farb- und Datei-Inputs */
.color-pick {
width: 3.2rem; height: 2.4rem; flex: none;
padding: .2rem;
background: rgba(0, 0, 0, .35);
border: 1px solid rgba(255, 255, 255, .12);
border-radius: 8px;
cursor: pointer;
}
.field input[type="file"] {
width: 100%;
color: var(--muted);
font-family: var(--body);
font-size: .9rem;
}
.field input[type="file"]::file-selector-button {
font-family: var(--mono);
font-size: .68rem; letter-spacing: .15em; text-transform: uppercase;
color: var(--neon);
background: none;
border: 1px solid var(--border);
border-radius: 8px;
padding: .45rem 1rem;
margin-right: .8rem;
cursor: pointer;
transition: border-color .2s, background .2s;
}
.field input[type="file"]::file-selector-button:hover {
border-color: var(--neon);
background: rgba(245, 197, 24, .08);
}
/* Button-Farb-Auswahl im Rollen-Menü-Builder */
.btn-style-pick { width: 7.5rem !important; flex: none !important; }