Webinterface: Emojis durch Lucide-Icons ersetzt
Emojis werden vom Betriebssystem gerendert — auf Windows, Mac und Android sehen sie unterschiedlich aus, und sie sind bunt. Im streng zweifarbigen D4RKST3R-Look stachen sie entsprechend heraus. Jetzt kommen die Symbole aus einem einzigen Set (Lucide, dünne Outlines), zentral in src/icons.jsx gebündelt: eine Größe, eine Strichstärke, überall gleich — und sie erben die Textfarbe, sind also Teil der Marke statt Fremdkörper. Betroffen sind Navigation, Startseite, Server, Roadmap, Profil, Level, Galerie, Devlogs, Lightbox, Composer und alle Setup-Tabs. Bewusst Emojis geblieben sind: - die Spiel-Presets der Server (landen als Icon im Discord-Embed) - Rollen-Menü-Emojis und Platzhalter für Discord-Inhalte - beschreibende Hinweise wie „🔔-Button am Post" oder „🟢/🔴 im Embed", die zeigen, wie etwas in Discord aussehen wird - die selbst gepflegten Dienst-Icons im Portal Dazu Detailarbeit: Server-Status als farbiger Punkt statt Emoji, Platz 1–3 der Bestenliste als Pokal in Gold/Silber/Bronze, Pagination mit Chevrons. Bundle wächst um 19 kB (Tree-Shaking greift, nur die ~70 genutzten Icons). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1512,3 +1512,54 @@ a.sha:hover { border-color: var(--neon); background: rgba(245, 197, 24, .07); }
|
||||
.btn-danger { border-color: rgba(242, 63, 67, .5); color: #f23f43; }
|
||||
.btn-danger:hover { border-color: #f23f43; background: rgba(242, 63, 67, .1); }
|
||||
.home-tile-ext { font-size: .8rem; color: var(--muted2); }
|
||||
|
||||
/* ── ICONS (Lucide) ────────────────────────────────── */
|
||||
/* Einheitliche Ausrichtung: Icons sitzen auf der Textlinie, erben die Farbe */
|
||||
.ic {
|
||||
display: inline-block;
|
||||
vertical-align: -0.18em;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
/* Text + Icon nebeneinander, ohne Zeilenumbruch dazwischen */
|
||||
.with-icon {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: .45rem;
|
||||
}
|
||||
button.with-icon, a.with-icon { justify-content: center; }
|
||||
|
||||
/* Nav-Pfeil des Dropdowns */
|
||||
.nav-caret { transition: transform .2s; }
|
||||
.nav-drop.open .nav-caret { transform: rotate(180deg); }
|
||||
|
||||
/* Setup-Sidebar: Icons in Markenfarbe, aktiver Tab hebt sich ab */
|
||||
.settings-nav-icon { display: inline-flex; color: var(--muted); transition: color .2s; }
|
||||
.settings-nav-item:hover .settings-nav-icon { color: var(--text); }
|
||||
.settings-nav-item.active .settings-nav-icon { color: var(--neon); }
|
||||
|
||||
/* Kachel-Icons auf der Startseite */
|
||||
.home-tile-icon { color: var(--neon); display: inline-flex; }
|
||||
.home-tile:hover .home-tile-icon { color: var(--neon2); }
|
||||
.home-tile-emoji { font-size: 1.6rem; line-height: 1; }
|
||||
.home-tile-ext { color: var(--muted2); }
|
||||
|
||||
/* Server-Status: Punkt statt Emoji */
|
||||
.srv-status { flex-wrap: wrap; row-gap: .1rem; }
|
||||
.srv-status > span { white-space: nowrap; }
|
||||
.srv-dot {
|
||||
width: 8px; height: 8px; border-radius: 50%;
|
||||
background: var(--muted2); display: inline-block; flex-shrink: 0;
|
||||
}
|
||||
.srv-status.on .srv-dot { background: var(--success); box-shadow: 0 0 8px #00ff8866; }
|
||||
.srv-status.off .srv-dot { background: #f23f43; box-shadow: 0 0 8px #f23f4366; }
|
||||
.srv-status { display: inline-flex; align-items: center; gap: .4rem; }
|
||||
.srv-map, .srv-ping { display: inline-flex; align-items: center; gap: .3rem; }
|
||||
|
||||
/* Bestenliste: Pokal statt Medaillen-Emoji */
|
||||
.lvl-rank { display: inline-flex; align-items: center; justify-content: center; }
|
||||
|
||||
/* Bot-Avatar-Platzhalter */
|
||||
.bot-avatar-empty { display: flex; align-items: center; justify-content: center; color: var(--muted); }
|
||||
|
||||
/* Discord-Vorschau im Composer */
|
||||
.dpv-avatar { display: flex; align-items: center; justify-content: center; color: var(--muted); }
|
||||
|
||||
Reference in New Issue
Block a user