From 25d36c72690ccd667a1ffc9229f562f54f5e2162 Mon Sep 17 00:00:00 2001 From: D4rkst3r Date: Tue, 18 Aug 2026 15:15:37 +0200 Subject: [PATCH] Webseiten-Redesign: Graphit + Orange, abgeschraegte Ecken MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Umsetzung des Entwurfs aus design_handoff_redesign/ -- beide Auftritte (Produktseite und Community-Hub) plus Dashboard. Farbe #0a0a0a + Neon-Gelb -> #131316 + Orange-Verlauf aus dem Logo Schrift Bebas/Barlow/ShareTech -> Chakra Petch + IBM Plex Mono Form border-radius -> clip-path, oben links + unten rechts Rauschen, Scanlines, Hintergrundschrift, Kopf-Raster und die Partikel sind raus; der Schein von oben rechts ersetzt sie. Die Abschraegung ist ein System und keine sechzig Einzelregeln: eine clip-path-Regel mit --bv, jede Komponente setzt nur die Tiefe. Der Farbdurchstich ging durch alle ~55 Abschnitte der style.css, nicht nur durch die fuenf gezeichneten Seiten -- sonst waeren Galerie, Level, Composer und Emoji-Auswahl im alten Gelb stehen geblieben. Von --neon ist nichts uebrig. Die Schriften kommen weiter self-hosted ueber @fontsource. Der Entwurf schlaegt einen Google-Fonts-Link vor; das waere eine Fremdanfrage mehr, wo der Aufbau bisher ohne auskam. ZWEI FEHLER unterwegs gefunden, beide aelter als dieser Umbau: 1. .btn stand in der Datei NACH .btn-save und .btn-ghost. Bei gleicher Spezifitaet gewinnt die spaetere Regel, also hat ihr `background: none` jeden Verlauf ueberschrieben -- der Speichern-Knopf sah aus wie ein Ghost-Knopf, schon in der gelben Fassung. Die Grundform steht jetzt vor allen Abwandlungen. 2. .nav-logo ist ein Flex-Container, und `gap` legte sich zwischen die Textknoten "D4RKST" und 3R. In der Leiste stand "D4RKST 3R". Der Abstand haengt jetzt am Bild statt am Container. DREI ABWEICHUNGEN vom Entwurf, bewusst: - Die Statuszeile im Hero zeigt nur "ONLINE", nicht "38 MS · UPTIME 99,2 %". Antwortzeit und Erreichbarkeit des Bots liegen ausschliesslich hinter /api/settings und damit hinter der Anmeldung; oeffentlich gibt es sie nirgends. Dafuer braeuchte es einen neuen Endpunkt -- erfunden wird hier nichts. - Keine Aura am Hauptknopf: clip-path schneidet den Schatten des eigenen Elements mit weg. Im Referenz-HTML stehen box-shadow und clip-path am selben Element, dort ist sie also ebenso wenig zu sehen. Tote Deklaration weggelassen statt mitgeschleppt. - Die Config-Bereiche bleiben scharfkantig statt abgeschraegt. In ihnen klappen Auswahllisten aus dem Panel heraus, die clip-path abschneiden wuerde. Deckt sich mit der Vorgabe, dass die uebrigen Tabs nur die Token uebernehmen; die Dashboard-Panels selbst sind abgeschraegt. Dazu: .content von 860 auf 1160 px, weil die dreispaltigen Raster es brauchen -- die Devlog-Timeline behaelt 880 px Lesebreite, sonst waeren die Zeilen zu lang. Der Punkt an den Timeline-Karten ist entfallen: er sass ausserhalb der Karte und waere von der Abschraegung weggeschnitten worden. Welches Wort in einer Ueberschrift den Verlauf bekommt, steht jetzt im Woerterbuch -- der Teil in eckigen Klammern ("Funk[tionen]", aber "Fea[tures]"). So entscheidet jede Sprache selbst, wo sich das Wort teilen laesst. Mitgezogen: brand.js, das geteilte Design-System fuer die eingebundenen Dienste. Neue Tokens und Abschraegungen, aber --neon/--neon2 bleiben als Zweitname stehen -- fremde Apps benutzen sie in ihrem eigenen CSS. Marken-Dateien nach frontend/public/brand/, verkleinert auf die Groessen, in denen sie wirklich dargestellt werden: 2,4 MB -> 97 KB. Geprueft: Build laeuft. Im Browser durchgesehen -- Landing, Funktionen, Befehle, Hub-Start, Devlogs, Server, Roadmap, Dashboard. Ungeprueft: das Dashboard mit echter Anmeldung. Eine Sitzung war hier nicht moeglich, gesehen habe ich es ueber gestubbte API-Antworten. Ebenso ungeprueft, wie sich die Schriftumstellung auf schmalen Schirmen macht. NICHT angefasst: die Embed-Farben in runtime-settings.js stehen weiter auf dem alten Gelb -- die wirken in Discord, nicht auf der Webseite. Und ist brand_color in der Datenbank gesetzt, behalten die eingebundenen Dienste ihre bisherige Farbe, unabhaengig von den neuen Vorgabewerten. Co-Authored-By: Claude Opus 5 (1M context) --- frontend/index.html | 2 +- frontend/package-lock.json | 26 +- frontend/package.json | 5 +- frontend/public/brand/lockup.png | Bin 0 -> 86608 bytes frontend/public/brand/mark.png | Bin 0 -> 10656 bytes frontend/src/App.jsx | 59 +- frontend/src/BotApp.jsx | 36 +- frontend/src/components/Accent.jsx | 27 + frontend/src/components/EmbedComposer.jsx | 2 +- frontend/src/locales/de.js | 76 +- frontend/src/locales/en.js | 76 +- frontend/src/main.jsx | 11 +- frontend/src/pages/BotCommands.jsx | 13 +- frontend/src/pages/BotFeatures.jsx | 27 +- frontend/src/pages/BotLanding.jsx | 110 +- frontend/src/pages/Changelog.jsx | 2 - frontend/src/pages/Commits.jsx | 4 +- frontend/src/pages/Datenschutz.jsx | 26 +- frontend/src/pages/DevlogDetail.jsx | 2 - frontend/src/pages/Devlogs.jsx | 2 - frontend/src/pages/Events.jsx | 2 - frontend/src/pages/Galerie.jsx | 2 - frontend/src/pages/Home.jsx | 71 +- frontend/src/pages/Impressum.jsx | 18 +- frontend/src/pages/Level.jsx | 2 - frontend/src/pages/Mods.jsx | 2 - frontend/src/pages/Profil.jsx | 12 +- frontend/src/pages/Roadmap.jsx | 2 - frontend/src/pages/Seite.jsx | 6 +- frontend/src/pages/Server.jsx | 2 - frontend/src/pages/Settings.jsx | 207 +-- frontend/src/pages/Status.jsx | 2 - frontend/src/pages/WunschDetail.jsx | 2 - frontend/src/style.css | 1450 ++++++++++++--------- src/web/brand.js | 124 +- src/web/server.js | 3 +- 36 files changed, 1345 insertions(+), 1068 deletions(-) create mode 100644 frontend/public/brand/lockup.png create mode 100644 frontend/public/brand/mark.png create mode 100644 frontend/src/components/Accent.jsx diff --git a/frontend/index.html b/frontend/index.html index eba5a25..2420770 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -7,7 +7,7 @@ - +
diff --git a/frontend/package-lock.json b/frontend/package-lock.json index b43ee5d..9414d38 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,9 +8,8 @@ "name": "d4rkbot-frontend", "version": "0.1.0", "dependencies": { - "@fontsource/barlow-condensed": "^5.3.0", - "@fontsource/bebas-neue": "^5.3.0", - "@fontsource/share-tech-mono": "^5.3.0", + "@fontsource/chakra-petch": "^5.3.0", + "@fontsource/ibm-plex-mono": "^5.3.0", "lucide-react": "^1.28.0", "react": "^19.0.0", "react-dom": "^19.0.0", @@ -745,28 +744,19 @@ "node": ">=18" } }, - "node_modules/@fontsource/barlow-condensed": { + "node_modules/@fontsource/chakra-petch": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@fontsource/barlow-condensed/-/barlow-condensed-5.3.0.tgz", - "integrity": "sha512-RA7MmIx0v3eQ6Gcf74qLVLOwLB0GpPOzx+eU9iG/AmCnSJGcIWYeU8y6CEMGZ210MGwGg5CZhzLkkvyZdTTk1g==", + "resolved": "https://registry.npmjs.org/@fontsource/chakra-petch/-/chakra-petch-5.3.0.tgz", + "integrity": "sha512-QZvbM/q2R6n1pg2x+TJPftZmBNS+ADU37L4Z4L/6UJIz+JZ/SRaEf8usPFRiP7Ht28sIideMu/Bm1SnGlSrwNw==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, - "node_modules/@fontsource/bebas-neue": { + "node_modules/@fontsource/ibm-plex-mono": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@fontsource/bebas-neue/-/bebas-neue-5.3.0.tgz", - "integrity": "sha512-nCxMEb9Bg9sjNWm9TIOsvHKDMLRUfEZPWpLgYu6m9KavZZVSA/WoHzI5wROwqA+eNwEi/PNBAcB5Co7HA3S0Cw==", - "license": "OFL-1.1", - "funding": { - "url": "https://github.com/sponsors/ayuhito" - } - }, - "node_modules/@fontsource/share-tech-mono": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@fontsource/share-tech-mono/-/share-tech-mono-5.3.0.tgz", - "integrity": "sha512-hVEzVCzEid/fBfhggMyvkfDzn9ODrMihxC0EiOeQK3BuQNvdjmith2ERnoDNUkbW8zhufbKNuCgaSoT8LUNpuQ==", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.3.0.tgz", + "integrity": "sha512-eTgnZjZEGk1QtD3ZstF+Vclo2HLAni8YMy34/DxllwZvyz1lR/1RF/xTiAquOBO7MvqBx8D2Ig2WCPMVfdZu7Q==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" diff --git a/frontend/package.json b/frontend/package.json index 5aef18c..99c5f79 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,9 +9,8 @@ "preview": "vite preview" }, "dependencies": { - "@fontsource/barlow-condensed": "^5.3.0", - "@fontsource/bebas-neue": "^5.3.0", - "@fontsource/share-tech-mono": "^5.3.0", + "@fontsource/chakra-petch": "^5.3.0", + "@fontsource/ibm-plex-mono": "^5.3.0", "lucide-react": "^1.28.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/frontend/public/brand/lockup.png b/frontend/public/brand/lockup.png new file mode 100644 index 0000000000000000000000000000000000000000..f9558e3bc6d8adf7411d8240485c10cc7ebc27d6 GIT binary patch literal 86608 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 literal 0 HcmV?d00001 diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 94ff626..ff1b54d 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useRef, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { Routes, Route, NavLink, Navigate, useLocation } from 'react-router-dom'; import { apiGet } from './api.js'; import Devlogs from './pages/Devlogs.jsx'; @@ -62,35 +62,9 @@ function DiscordMark() { ); } -/* Aufsteigende Neon-Partikel wie auf der Platform-Seite */ -function Particles() { - const particles = useMemo( - () => - Array.from({ length: 24 }, (_, i) => ({ - id: i, - left: `${Math.random() * 100}%`, - dur: `${6 + Math.random() * 8}s`, - delay: `${Math.random() * 8}s`, - })), - [] - ); - return ( - - ); -} - export default function App() { // Login-Status einmal beim Laden holen const [me, setMe] = useState({ user: null, admin: false, scopes: [], loading: true }); - const [scrolled, setScrolled] = useState(false); const [drawer, setDrawer] = useState(false); const location = useLocation(); const { t } = useT(); @@ -116,18 +90,12 @@ export default function App() { if (gated) apiGet('/api/invite').then((d) => setInvite(d.invite)).catch(() => {}); }, [gated]); - useEffect(() => { - const onScroll = () => setScrolled(window.scrollY > 24); - window.addEventListener('scroll', onScroll, { passive: true }); - return () => window.removeEventListener('scroll', onScroll); - }, []); - return (
- - -
+ {/* Die Leiste ist immer kompakt — kein Zustandswechsel beim Scrollen */} +
+ D4RKST3R @@ -238,18 +206,21 @@ export default function App() {
- D4RKST3R - // + + + D4RKST3R + git.d4rkst3r.de - // {t('footer.status')} - {t('footer.imprint')} - {t('footer.privacy')} - {pages.map((p) => ( - {p.title} - ))} + + {t('footer.imprint')} + {t('footer.privacy')} + {pages.map((p) => ( + {p.title} + ))} +
); diff --git a/frontend/src/BotApp.jsx b/frontend/src/BotApp.jsx index 117e8eb..eed5eba 100644 --- a/frontend/src/BotApp.jsx +++ b/frontend/src/BotApp.jsx @@ -1,4 +1,4 @@ -// Rahmen der Bot-Produktseite — eigene Navigation, orange Leitfarbe. +// Rahmen der Bot-Produktseite — eigene Navigation, gleiche Marke wie der Hub. // Das Dashboard ist dieselbe Config-Seite wie bisher, nur unter /dashboard. import { useEffect, useState } from 'react'; import { Routes, Route, NavLink, Navigate, useLocation } from 'react-router-dom'; @@ -14,7 +14,6 @@ import { useT, LangSwitch } from './i18n.jsx'; export default function BotApp() { const [me, setMe] = useState({ user: null, admin: false, scopes: [], loading: true }); - const [scrolled, setScrolled] = useState(false); const [drawer, setDrawer] = useState(false); const [hub, setHub] = useState(null); // Seiten wie die Nutzungsbedingungen liegen auf dem Hub — verlinkt @@ -33,19 +32,15 @@ export default function BotApp() { apiGet('/api/pages').then((d) => setPages(d.pages)).catch(() => {}); }, []); - useEffect(() => { - const onScroll = () => setScrolled(window.scrollY > 24); - window.addEventListener('scroll', onScroll, { passive: true }); - return () => window.removeEventListener('scroll', onScroll); - }, []); - const canDashboard = me.admin || me.scopes?.length > 0; return ( -
-
+
+ {/* Die Leiste ist immer kompakt — kein Zustandswechsel beim Scrollen */} +
- D4RKBOT. + + D4RKBOT_
); diff --git a/frontend/src/components/Accent.jsx b/frontend/src/components/Accent.jsx new file mode 100644 index 0000000..c6634a1 --- /dev/null +++ b/frontend/src/components/Accent.jsx @@ -0,0 +1,27 @@ +// Betonte Stelle in einer Überschrift. +// +// Welches Wort — oder welche Silbe — den Marken-Verlauf bekommt, steht im +// Wörterbuch: der Teil in eckigen Klammern. So entscheidet jede Sprache +// selbst, wo sich die Überschrift teilen lässt („Funk[tionen]", aber +// „Fea[tures]"), ohne dass die Seite darüber etwas wissen muss. +// +// Mit `outline` bleibt der Rest als Kontur stehen statt gefüllt — so sieht +// die zweite Zeile des Hero auf der Produktseite aus. + +const MARKE = /^(.*?)\[([^\]]*)\](.*)$/s; + +export function Accent({ text, outline = false }) { + const treffer = MARKE.exec(text ?? ''); + if (!treffer) return <>{text}; + + const [, davor, betont, danach] = treffer; + const rest = outline ? 'outline-text' : undefined; + + return ( + <> + {davor && {davor}} + {betont} + {danach && {danach}} + + ); +} diff --git a/frontend/src/components/EmbedComposer.jsx b/frontend/src/components/EmbedComposer.jsx index 1aa2ab1..e4f85d4 100644 --- a/frontend/src/components/EmbedComposer.jsx +++ b/frontend/src/components/EmbedComposer.jsx @@ -162,7 +162,7 @@ export default function EmbedComposer({ channelOptions, flash }) { return (
-

// Post verfassen

+

Post verfassen

diff --git a/frontend/src/locales/de.js b/frontend/src/locales/de.js index 83529b1..36d488a 100644 --- a/frontend/src/locales/de.js +++ b/frontend/src/locales/de.js @@ -44,7 +44,7 @@ export default { 'common.monthsAgo': 'vor %s Monaten', // ── Startseite (Hub) ────────────────────────────── - 'home.tag': '// Community-Hub', + 'home.tag': 'Community-Hub', 'home.welcome': 'Willkommen', 'home.at': 'bei', 'home.subtitle': 'Devlogs, Roadmap, Server-Status und alles aus der Community — an einem Ort, direkt aus dem Discord.', @@ -53,8 +53,8 @@ export default { 'home.members': 'Member im Discord', 'home.serversOnline': 'Server online', 'home.playersNow': 'Spieler gerade drauf', - 'home.services': '// Dienste', - 'home.latestDevlog': '// Neuestes Devlog', + 'home.services': 'Dienste', + 'home.latestDevlog': 'Neuestes Devlog', 'home.more': 'Weiterlesen', 'home.tile.devlog': 'Entwicklungs-Updates, frisch aus dem Editor', 'home.tile.roadmap': 'Meilensteine + Community-Wünsche zum Abstimmen', @@ -64,7 +64,7 @@ export default { 'home.tile.events': 'Playtests, Streams und was sonst ansteht', 'nav.status': 'Status', - 'status.tag': '// Betriebslage', + 'status.tag': 'Betriebslage', 'status.subtitle': 'Erreichbarkeit der Dienste und Game-Server — alle 60 Sekunden aktualisiert.', 'status.error': 'Der Status konnte nicht geladen werden.', 'status.allOk': 'Alle Systeme betriebsbereit', @@ -72,9 +72,9 @@ export default { 'status.majorOutage': 'Größere Störung', 'status.waiting': 'Wird geprüft', 'status.nothing': 'Nichts eingerichtet', - 'status.services': '// Dienste', - 'status.gameservers': '// Game-Server', - 'status.incidents': '// Störungen der letzten 90 Tage', + 'status.services': 'Dienste', + 'status.gameservers': 'Game-Server', + 'status.incidents': 'Störungen der letzten 90 Tage', 'status.noIncidents': 'Keine Störungen aufgezeichnet.', 'status.ok': 'erreichbar', 'status.down': 'nicht erreichbar', @@ -82,7 +82,7 @@ export default { 'status.minutes': '%s min', 'status.days90': 'vor 90 Tagen', // ── Devlogs ─────────────────────────────────────── - 'devlogs.tag': '// Archiv', + 'devlogs.tag': 'Archiv', 'devlogs.subtitle': 'Entwicklungs-Updates, frisch aus dem Editor — automatisch archiviert.', 'devlogs.all': 'Alle', 'devlogs.search': 'Devlogs durchsuchen …', @@ -98,7 +98,7 @@ export default { 'devlogs.screenshot': 'Devlog-Screenshot', // ── Devlog-Permalink ────────────────────────────── - 'devlog.tag': '// Devlog', + 'devlog.tag': 'Devlog', 'devlog.project': 'Projekt: %s', 'devlog.notFound': 'Devlog nicht gefunden —', 'devlog.backToArchive': 'zurück zum Archiv', @@ -107,17 +107,17 @@ export default { 'devlog.linkCopied': 'Link kopiert', // ── Roadmap ─────────────────────────────────────── - 'roadmap.tag': '// Wohin die Reise geht', + 'roadmap.tag': 'Wohin die Reise geht', 'roadmap.subtitle': 'Meilensteine direkt aus der Entwicklung — live aus dem Issue-Tracker.', 'roadmap.error': 'Roadmap konnte nicht geladen werden.', 'roadmap.noMilestones': 'Noch keine Meilensteine angelegt.', - 'roadmap.active': '// In Arbeit', - 'roadmap.planned': '// Geplant', - 'roadmap.done': '// Fertig', + 'roadmap.active': 'In Arbeit', + 'roadmap.planned': 'Geplant', + 'roadmap.done': 'Fertig', 'roadmap.nothingActive': 'Gerade nichts in Arbeit.', 'roadmap.due': 'Ziel: %s', 'roadmap.tasks': '%s / %s Aufgaben', - 'roadmap.activity': '// Aktivität — %s Commits in 12 Monaten', + 'roadmap.activity': 'Aktivität — %s Commits in 12 Monaten', 'roadmap.commitsOn': '%s: %s Commits', 'roadmap.commitOn': '%s: 1 Commit', 'roadmap.sort': 'Sortierung', @@ -127,13 +127,13 @@ export default { 'roadmap.status': 'Stand', 'roadmap.area': 'Bereich', 'roadmap.areaPick': '— Bereich —', - 'wunsch.tag': '// Idee', + 'wunsch.tag': 'Idee', 'wunsch.back': 'Zurück zur Roadmap', 'wunsch.notFound': 'Diese Idee gibt es nicht (mehr).', 'wunsch.by': 'von %s', 'wunsch.teamSays': 'Vom Team', - 'wunsch.comments': '// %s Beiträge', - 'wunsch.oneComment': '// 1 Beitrag', + 'wunsch.comments': '%s Beiträge', + 'wunsch.oneComment': '1 Beitrag', 'wunsch.noComments': 'Noch nichts dazu geschrieben — mach den Anfang im Thread.', 'wunsch.joinThread': 'Im Discord mitreden', 'wish.alle': 'Alle', @@ -144,7 +144,7 @@ export default { 'wish.abgelehnt': 'Nicht geplant', 'roadmap.noneInFilter': 'Hier steht gerade nichts.', 'roadmap.alreadyThere': 'Gibt es schon — stimm lieber dafür:', - 'roadmap.wishes': '// Community-Wünsche', + 'roadmap.wishes': 'Community-Wünsche', 'roadmap.unvote': 'Vote zurücknehmen', 'roadmap.vote': 'Dafür stimmen', 'roadmap.ideaPlaceholder': 'Deine Idee für den Server …', @@ -157,7 +157,7 @@ export default { 'roadmap.submitFailed': '✗ Konnte den Wunsch nicht einreichen.', // ── Server ──────────────────────────────────────── - 'server.tag': '// Live-Status', + 'server.tag': 'Live-Status', 'server.subtitle': 'Alle Game-Server auf einen Blick — aktualisiert alle 2 Minuten.', 'server.error': 'Server-Status konnte nicht geladen werden.', 'server.none': 'Noch keine Server eingetragen.', @@ -166,7 +166,7 @@ export default { 'server.waiting': 'Warte auf Check', 'server.players24h': 'Spielerzahl · letzte 24h', // ── Mods eines LS-Servers ───────────────────────── - 'mods.tag': '// Modliste', + 'mods.tag': 'Modliste', 'mods.title': 'Mods', 'mods.subtitle': 'Alle Mods dieses Servers einzeln zum Laden — statt eines Pakets über alles.', 'mods.error': 'Modliste konnte nicht geladen werden.', @@ -207,7 +207,7 @@ export default { 'server.modsDownload': 'Mods laden', // ── Galerie ─────────────────────────────────────── - 'gallery.tag': '// Community', + 'gallery.tag': 'Community', 'gallery.subtitle': 'Screenshots aus der Community — direkt aus dem Discord.', 'gallery.error': 'Galerie konnte nicht geladen werden.', 'gallery.emptyTitle': 'Noch keine Screenshots', @@ -215,17 +215,17 @@ export default { 'gallery.shotBy': 'Screenshot von %s', // ── Level ───────────────────────────────────────── - 'level.tag': '// Bestenliste', + 'level.tag': 'Bestenliste', 'level.subtitle': 'XP gibt’s fürs Mitreden im Discord — hier stehen die Aktivsten. %s zeigt deinen Platz.', 'level.error': 'Bestenliste konnte nicht geladen werden.', 'level.emptyTitle': 'Noch keine XP vergeben', 'level.emptyText': 'XP gibt es fürs Mitreden im Discord. Sobald geschrieben wird, füllt sich die Bestenliste von selbst.', 'level.lv': 'Lv. %s', - 'level.activity': '// Server-Aktivität — %s Nachrichten in 30 Tagen · %s Member', + 'level.activity': 'Server-Aktivität — %s Nachrichten in 30 Tagen · %s Member', 'level.barTitle': '%s: %s Nachrichten · +%s/−%s Member', // ── Events ──────────────────────────────────────── - 'events.tag': '// Termine', + 'events.tag': 'Termine', 'events.subtitle': 'Playtests, Streams & Community-Abende — direkt aus dem Discord.', 'events.error': 'Events konnten nicht geladen werden.', 'events.emptyTitle': 'Noch keine Events geplant', @@ -235,7 +235,7 @@ export default { 'events.viewInDiscord': 'Im Discord ansehen', // ── Changelog ───────────────────────────────────── - 'changelog.tag': '// Releases', + 'changelog.tag': 'Releases', 'changelog.subtitle': 'Alle Versionen und Release-Notes.', 'changelog.error': 'Changelog konnte nicht geladen werden.', 'changelog.emptyTitle': 'Noch keine Releases', @@ -245,18 +245,21 @@ export default { 'changelog.viewInGitea': 'Release in Gitea ansehen', // ── Bot-Produktseite: Start ─────────────────────── - 'bot.tag': '// Selbst gebaut, keine Paywall', + 'bot.tag': 'Selbst gebaut · keine Paywall', 'bot.title1': 'Ein Discord-Bot,', - 'bot.title2': 'der alles macht', + 'bot.title2': 'der alles [macht]', 'bot.subtitle': 'Devlogs, Level, Moderation, Server-Monitoring, Verlosungen, Tickets — was sonst drei Bots mit Abo-Modell erledigen, läuft hier in einem, mit eigenem Webinterface.', 'bot.allFeatures': 'Alle Funktionen', 'bot.viewCommands': 'Befehle ansehen', - 'bot.statFeatures': 'Funktionen, einzeln schaltbar', + 'bot.statFeatures': 'Funktionen', 'bot.statCommands': 'Slash-Befehle', 'bot.statGames': 'Spiele im Monitor', - 'bot.statCost': 'Kosten, keine Premium-Stufen', - 'bot.whatItDoes': '// Was er kann', - 'bot.forDevs': '// Für Entwickler', + 'bot.statCost': 'Kosten', + 'bot.online': 'Online', + 'bot.hosting': 'Hosting', + 'bot.modulesMeta': '%s Module · einzeln schaltbar', + 'bot.whatItDoes': 'Was er kann', + 'bot.forDevs': 'Für Entwickler', 'bot.runsFor': 'Der Bot läuft für die D4RKST3R-Community', 'bot.runsForWith': 'Der Bot läuft für die D4RKST3R-Community mit %s Mitgliedern', 'bot.toHub': 'zum Community-Hub', @@ -285,11 +288,12 @@ export default { 'bot.dev.host.text': 'Node und SQLite in einem Container, ein Volume für die Daten. Nächtliche Sicherungen inklusive — von der Datenbank und allen Repositories.', // ── Bot-Produktseite: Funktionen ────────────────── - 'features.tag': '// Alles drin, nichts hinter einer Paywall', - 'features.title': 'Funktionen', + 'features.tag': 'Alles drin, nichts hinter einer Paywall', + 'features.title': 'Funk[tionen]', 'features.subtitleN': '%s Funktionen — jede einzeln ein- und ausschaltbar, jede im Browser einstellbar.', 'features.subtitle': 'Jede Funktion einzeln ein- und ausschaltbar, jede im Browser einstellbar.', - 'features.extras': '// Drumherum', + 'features.count': '%s Module', + 'features.extras': 'Drumherum', 'features.outro': 'Gebaut, weil drei Bots mit je eigenem Abo für eine Community weder übersichtlich noch günstig sind. Der Quelltext liegt offen, der Betrieb kostet einen Container.', 'features.overview': 'Zur Übersicht', 'features.x.brand': 'Webinterface im eigenen Look', @@ -306,8 +310,8 @@ export default { 'features.x.host.text': 'Node und SQLite in einem Container, ein Volume für die Daten. Nächtliche Sicherungen inklusive — von der Datenbank und allen Repositories.', // ── Bot-Produktseite: Befehle ───────────────────── - 'commands.tag': '// Referenz', - 'commands.title': 'Befehle', + 'commands.tag': 'Referenz', + 'commands.title': 'Be[fehle]', 'commands.subtitle': 'Alle Slash-Befehle im Überblick. Vieles läuft zusätzlich über Knöpfe direkt in den Nachrichten.', 'commands.note': 'Moderations- und Einrichtungs-Befehle sind Mitgliedern mit den passenden Discord-Rechten vorbehalten.', 'commands.g.everyone': 'Für alle', diff --git a/frontend/src/locales/en.js b/frontend/src/locales/en.js index 40952bf..661728a 100644 --- a/frontend/src/locales/en.js +++ b/frontend/src/locales/en.js @@ -43,7 +43,7 @@ export default { 'common.monthsAgo': '%s months ago', // ── Home (hub) ──────────────────────────────────── - 'home.tag': '// Community hub', + 'home.tag': 'Community hub', 'home.welcome': 'Welcome', 'home.at': 'to', 'home.subtitle': 'Devlogs, roadmap, server status and everything from the community — in one place, straight out of Discord.', @@ -52,8 +52,8 @@ export default { 'home.members': 'members on Discord', 'home.serversOnline': 'servers online', 'home.playersNow': 'players right now', - 'home.services': '// Services', - 'home.latestDevlog': '// Latest devlog', + 'home.services': 'Services', + 'home.latestDevlog': 'Latest devlog', 'home.more': 'Read more', 'home.tile.devlog': 'Development updates, fresh from the editor', 'home.tile.roadmap': 'Milestones plus community wishes to vote on', @@ -63,7 +63,7 @@ export default { 'home.tile.events': 'Playtests, streams and whatever else is coming up', 'nav.status': 'Status', - 'status.tag': '// Operational status', + 'status.tag': 'Operational status', 'status.subtitle': 'Reachability of services and game servers — refreshed every 60 seconds.', 'status.error': 'The status could not be loaded.', 'status.allOk': 'All systems operational', @@ -71,9 +71,9 @@ export default { 'status.majorOutage': 'Major outage', 'status.waiting': 'Checking', 'status.nothing': 'Nothing set up', - 'status.services': '// Services', - 'status.gameservers': '// Game servers', - 'status.incidents': '// Incidents in the last 90 days', + 'status.services': 'Services', + 'status.gameservers': 'Game servers', + 'status.incidents': 'Incidents in the last 90 days', 'status.noIncidents': 'No incidents recorded.', 'status.ok': 'operational', 'status.down': 'down', @@ -81,7 +81,7 @@ export default { 'status.minutes': '%s min', 'status.days90': '90 days ago', // ── Devlogs ─────────────────────────────────────── - 'devlogs.tag': '// Archive', + 'devlogs.tag': 'Archive', 'devlogs.subtitle': 'Development updates, fresh from the editor — archived automatically.', 'devlogs.all': 'All', 'devlogs.search': 'Search devlogs …', @@ -97,7 +97,7 @@ export default { 'devlogs.screenshot': 'Devlog screenshot', // ── Devlog permalink ────────────────────────────── - 'devlog.tag': '// Devlog', + 'devlog.tag': 'Devlog', 'devlog.project': 'Project: %s', 'devlog.notFound': 'Devlog not found —', 'devlog.backToArchive': 'back to the archive', @@ -106,17 +106,17 @@ export default { 'devlog.linkCopied': 'Link copied', // ── Roadmap ─────────────────────────────────────── - 'roadmap.tag': '// Where this is heading', + 'roadmap.tag': 'Where this is heading', 'roadmap.subtitle': 'Milestones straight from development — live from the issue tracker.', 'roadmap.error': 'The roadmap could not be loaded.', 'roadmap.noMilestones': 'No milestones yet.', - 'roadmap.active': '// In progress', - 'roadmap.planned': '// Planned', - 'roadmap.done': '// Done', + 'roadmap.active': 'In progress', + 'roadmap.planned': 'Planned', + 'roadmap.done': 'Done', 'roadmap.nothingActive': 'Nothing in progress right now.', 'roadmap.due': 'Due: %s', 'roadmap.tasks': '%s / %s tasks', - 'roadmap.activity': '// Activity — %s commits in 12 months', + 'roadmap.activity': 'Activity — %s commits in 12 months', 'roadmap.commitsOn': '%s: %s commits', 'roadmap.commitOn': '%s: 1 commit', 'roadmap.sort': 'Sort', @@ -126,13 +126,13 @@ export default { 'roadmap.status': 'Status', 'roadmap.area': 'Area', 'roadmap.areaPick': '— Area —', - 'wunsch.tag': '// Idea', + 'wunsch.tag': 'Idea', 'wunsch.back': 'Back to the roadmap', 'wunsch.notFound': 'This idea does not exist (any more).', 'wunsch.by': 'by %s', 'wunsch.teamSays': 'From the team', - 'wunsch.comments': '// %s comments', - 'wunsch.oneComment': '// 1 comment', + 'wunsch.comments': '%s comments', + 'wunsch.oneComment': '1 comment', 'wunsch.noComments': 'Nothing said about this yet — start it off in the thread.', 'wunsch.joinThread': 'Join the thread on Discord', 'wish.alle': 'All', @@ -143,7 +143,7 @@ export default { 'wish.abgelehnt': 'Not planned', 'roadmap.noneInFilter': 'Nothing here right now.', 'roadmap.alreadyThere': 'Already suggested — vote for it instead:', - 'roadmap.wishes': '// Community wishes', + 'roadmap.wishes': 'Community wishes', 'roadmap.unvote': 'Take back your vote', 'roadmap.vote': 'Vote for this', 'roadmap.ideaPlaceholder': 'Your idea for the server …', @@ -156,7 +156,7 @@ export default { 'roadmap.submitFailed': '✗ Could not submit the wish.', // ── Servers ─────────────────────────────────────── - 'server.tag': '// Live status', + 'server.tag': 'Live status', 'server.subtitle': 'Every game server at a glance — refreshed every 2 minutes.', 'server.error': 'The server status could not be loaded.', 'server.none': 'No servers added yet.', @@ -165,7 +165,7 @@ export default { 'server.waiting': 'Waiting for check', 'server.players24h': 'Player count · last 24h', // ── Mods of an FS server ────────────────────────── - 'mods.tag': '// Mod list', + 'mods.tag': 'Mod list', 'mods.title': 'Mods', 'mods.subtitle': 'Every mod on this server, one by one — instead of one big bundle.', 'mods.error': 'Could not load the mod list.', @@ -206,7 +206,7 @@ export default { 'server.modsDownload': 'Get mods', // ── Gallery ─────────────────────────────────────── - 'gallery.tag': '// Community', + 'gallery.tag': 'Community', 'gallery.subtitle': 'Screenshots from the community — straight out of Discord.', 'gallery.error': 'The gallery could not be loaded.', 'gallery.emptyTitle': 'No screenshots yet', @@ -214,17 +214,17 @@ export default { 'gallery.shotBy': 'Screenshot by %s', // ── Levels ──────────────────────────────────────── - 'level.tag': '// Leaderboard', + 'level.tag': 'Leaderboard', 'level.subtitle': 'XP comes from joining the conversation on Discord — here are the most active. %s shows your rank.', 'level.error': 'The leaderboard could not be loaded.', 'level.emptyTitle': 'No XP awarded yet', 'level.emptyText': 'XP comes from joining the conversation on Discord. As soon as people start writing, the leaderboard fills itself.', 'level.lv': 'Lv. %s', - 'level.activity': '// Server activity — %s messages in 30 days · %s members', + 'level.activity': 'Server activity — %s messages in 30 days · %s members', 'level.barTitle': '%s: %s messages · +%s/−%s members', // ── Events ──────────────────────────────────────── - 'events.tag': '// Dates', + 'events.tag': 'Dates', 'events.subtitle': 'Playtests, streams & community nights — straight out of Discord.', 'events.error': 'Events could not be loaded.', 'events.emptyTitle': 'No events planned yet', @@ -234,7 +234,7 @@ export default { 'events.viewInDiscord': 'View on Discord', // ── Changelog ───────────────────────────────────── - 'changelog.tag': '// Releases', + 'changelog.tag': 'Releases', 'changelog.subtitle': 'Every version and its release notes.', 'changelog.error': 'The changelog could not be loaded.', 'changelog.emptyTitle': 'No releases yet', @@ -244,18 +244,21 @@ export default { 'changelog.viewInGitea': 'View release on Gitea', // ── Bot product page: landing ───────────────────── - 'bot.tag': '// Self-built, no paywall', + 'bot.tag': 'Self-built · no paywall', 'bot.title1': 'A Discord bot', - 'bot.title2': 'that does it all', + 'bot.title2': 'that does it [all]', 'bot.subtitle': 'Devlogs, levels, moderation, server monitoring, giveaways, tickets — what usually takes three subscription bots runs here in one, with its own web interface.', 'bot.allFeatures': 'All features', 'bot.viewCommands': 'View commands', - 'bot.statFeatures': 'features, each one switchable', + 'bot.statFeatures': 'features', 'bot.statCommands': 'slash commands', 'bot.statGames': 'games in the monitor', - 'bot.statCost': 'cost, no premium tiers', - 'bot.whatItDoes': '// What it does', - 'bot.forDevs': '// For developers', + 'bot.statCost': 'cost', + 'bot.online': 'Online', + 'bot.hosting': 'Hosting', + 'bot.modulesMeta': '%s modules · individually switchable', + 'bot.whatItDoes': 'What it does', + 'bot.forDevs': 'For developers', 'bot.runsFor': 'The bot runs for the D4RKST3R community', 'bot.runsForWith': 'The bot runs for the D4RKST3R community with %s members', 'bot.toHub': 'to the community hub', @@ -284,11 +287,12 @@ export default { 'bot.dev.host.text': 'Node and SQLite in one container, one volume for the data. Nightly backups included — of the database and every repository.', // ── Bot product page: features ──────────────────── - 'features.tag': '// Everything included, nothing behind a paywall', - 'features.title': 'Features', + 'features.tag': 'Everything included, nothing behind a paywall', + 'features.title': 'Fea[tures]', 'features.subtitleN': '%s features — each one switchable, each one configurable in the browser.', 'features.subtitle': 'Every feature switchable on its own, every one configurable in the browser.', - 'features.extras': '// Around it', + 'features.count': '%s modules', + 'features.extras': 'Around it', 'features.outro': 'Built because three bots with three subscriptions for one community is neither tidy nor cheap. The source is open, running it costs one container.', 'features.overview': 'Back to the overview', 'features.x.brand': 'Web interface in your own look', @@ -395,8 +399,8 @@ export default { 'feat.member_gate.desc': 'Only people on the Discord server can sign in on the web.', // ── Bot product page: commands ──────────────────── - 'commands.tag': '// Reference', - 'commands.title': 'Commands', + 'commands.tag': 'Reference', + 'commands.title': 'Com[mands]', 'commands.subtitle': 'Every slash command at a glance. A lot also runs through buttons right inside the messages.', 'commands.note': 'Moderation and setup commands are reserved for members with the matching Discord permissions.', 'commands.g.everyone': 'For everyone', diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx index 142c203..fab5b0f 100644 --- a/frontend/src/main.jsx +++ b/frontend/src/main.jsx @@ -5,11 +5,12 @@ import App from './App.jsx'; import BotApp from './BotApp.jsx'; import { IS_BOT } from './site.js'; import { LangProvider } from './i18n.jsx'; -import '@fontsource/bebas-neue'; -import '@fontsource/barlow-condensed/300.css'; -import '@fontsource/barlow-condensed/400.css'; -import '@fontsource/barlow-condensed/600.css'; -import '@fontsource/share-tech-mono'; +import '@fontsource/chakra-petch/400.css'; +import '@fontsource/chakra-petch/500.css'; +import '@fontsource/chakra-petch/600.css'; +import '@fontsource/chakra-petch/700.css'; +import '@fontsource/ibm-plex-mono/400.css'; +import '@fontsource/ibm-plex-mono/500.css'; import './style.css'; // Zwei Gesichter, eine Anwendung: Der Server sagt über data-site am , diff --git a/frontend/src/pages/BotCommands.jsx b/frontend/src/pages/BotCommands.jsx index b3c9368..36eea0c 100644 --- a/frontend/src/pages/BotCommands.jsx +++ b/frontend/src/pages/BotCommands.jsx @@ -1,6 +1,7 @@ // Übersicht aller Slash-Befehle des Bots. import { useEffect } from 'react'; import { IconLock } from '../icons.jsx'; +import { Accent } from '../components/Accent.jsx'; import { useT } from '../i18n.jsx'; // Befehlsname bleibt wie er ist — nur die Erklärung wird übersetzt. @@ -40,11 +41,9 @@ export default function BotCommands() { return ( <>
-
BEFEHLE
-
@@ -53,8 +52,12 @@ export default function BotCommands() { {GROUPS.map(([groupKey, restricted, commands]) => (

- // {t(groupKey)} - {restricted && } + {/* Schloss gehört zum Titel, nicht als eigene + Spalte daneben — deshalb in einer Hülle */} + + {t(groupKey)} + {restricted && } +

{commands.map(([name, descKey]) => ( diff --git a/frontend/src/pages/BotFeatures.jsx b/frontend/src/pages/BotFeatures.jsx index 91e427e..5f0d030 100644 --- a/frontend/src/pages/BotFeatures.jsx +++ b/frontend/src/pages/BotFeatures.jsx @@ -12,6 +12,7 @@ import { IconMessage, IconTeam, IconServer, IconApi, IconPages, IconBrand, IconBot, IconArrowRight, } from '../icons.jsx'; +import { Accent } from '../components/Accent.jsx'; import { moduleIcon } from '../module-icons.jsx'; // Was kein Discord-Modul ist, sondern zum Drumherum gehört @@ -38,11 +39,9 @@ export default function BotFeatures() { return ( <>
-
FEATURES
-