BaseFrontendBackend

This commit is contained in:
2026-05-26 20:18:12 +02:00
commit 7fadab8cd6
49 changed files with 6186 additions and 0 deletions
+299
View File
@@ -0,0 +1,299 @@
/* --- LOKALE SCHRIFTART LADEN --- */
@font-face {
font-family: 'UI Font';
/* .otf Dateien bekommen das Format 'opentype', .ttf Dateien 'truetype' */
src: url('src/assets/fonts/Gugi-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
/* 2. Die exklusive Schrift für das Void-Genesis Logo */
@font-face {
font-family: 'Logo Font';
src: url('src/assets/fonts/Quantico-Bold.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
/* --- FARB- & FONT-VARIABLEN (CSS) --- */
:root {
/* ... deine bisherigen Farb-Variablen ... */
--color-bg-page: #000000;
--color-text-main: #ffffff;
--color-text-placeholder: rgba(255, 255, 255, 0.4);
--color-text-inactive: rgba(255, 255, 255, 0.5);
--color-cyan-bright: #00f0ff;
--color-cyan-dark: #00a0aa;
--color-green-bright: #00ff00;
--color-error: #ff4444;
--color-checkbox-bg: rgba(11, 25, 44, 0.8);
/* NEU: Wir definieren die Schriftart zentral */
--font-main: 'UI Font', sans-serif;
}
/* Reset von Standard-Abständen */
body, html {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
overflow: hidden;
background-color: var(--color-bg-page);
/* Wir nutzen nun unsere lokale Variable */
font-family: var(--font-main);
}
#game-wrapper {
position: relative;
width: 100vw;
height: 100vh;
}
#pixi-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
}
#ui-layer {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
pointer-events: none;
display: flex;
justify-content: center;
align-items: center;
}
#register-form {
pointer-events: auto;
width: 500px;
height: 500px;
position: relative;
}
.input-group label {
display: none;
}
.input-group input {
position: absolute;
width: 300px;
height: 50px;
left: 115px;
box-sizing: border-box;
padding: 10px 15px;
background: transparent;
border: none;
outline: none;
color: var(--color-text-main);
font-size: 16px;
font-family: inherit;
transition: text-shadow 0.2s ease;
}
#username {
top: 135px;
}
#email {
top: 200px;
}
#password {
top: 265px;
}
.input-group input::placeholder {
color: var(--color-text-placeholder);
}
.input-group input:focus {
text-shadow: 0 0 8px var(--color-cyan-dark);
background: transparent;
box-shadow: none;
}
#btn-register {
position: absolute;
width: 370px;
height: 55px;
left: 65px;
top: 370px;
background: transparent;
border: none;
color: var(--color-text-main);
font-size: 18px;
font-weight: bold;
font-family: inherit;
text-transform: uppercase;
letter-spacing: 2px;
cursor: pointer;
transition: all 0.2s ease;
}
#btn-register:hover {
background: transparent;
color: var(--color-text-main);
text-shadow: 0 0 15px var(--color-text-main), 0 0 30px var(--color-green-bright);
}
.tab-btn {
position: absolute;
height: 40px;
width: 180px;
top: 60px;
background: transparent;
border: none;
color: var(--color-text-inactive);
font-size: 14px;
font-family: inherit;
text-transform: uppercase;
cursor: pointer;
outline: none;
transition: color 0.2s ease;
}
#tab-login {
left: 65px;
}
#tab-register {
left: 255px;
}
.tab-btn.active {
color: var(--color-text-main);
text-shadow: 0 0 8px var(--color-cyan-bright);
}
.tab-btn:hover:not(.active) {
color: var(--color-text-main);
}
.checkbox-group {
position: absolute;
left: 115px;
top: 275px;
display: flex;
align-items: center;
gap: 10px;
}
.checkbox-group label {
color: var(--color-text-main);
font-size: 14px;
cursor: pointer;
}
.checkbox-group input[type="checkbox"] {
appearance: none;
width: 18px;
height: 18px;
border: 1px solid var(--color-cyan-dark);
background: var(--color-checkbox-bg);
cursor: pointer;
position: relative;
}
.checkbox-group input[type="checkbox"]:checked::after {
content: '✔';
position: absolute;
color: var(--color-cyan-bright);
font-size: 14px;
top: -2px;
left: 2px;
}
#msg-box {
position: absolute;
top: 330px;
left: 65px;
width: 370px;
height: 30px;
color: var(--color-error);
font-size: 14px;
text-align: center;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
}
/* --- NEU: DISCORD LINK --- */
#discord-link {
position: absolute;
/* WICHTIG: Trage hier exakt die gleichen Werte ein,
die du in der main.js beim 'discordContainer.position.set(X, Y)' hast! */
left: 640px; /* Positiver Wert, da es jetzt rechts vom 500px Panel liegt */
top: 380px; /* Y-Koordinate deines Panels */
/* Die Größe deines PixiJS Discord-Panels */
width: 280px;
height: 85px;
/* Komplett unsichtbar machen, wir wollen nur das Pixi-Bild darunter sehen */
background: transparent;
text-decoration: none;
/* Sorgt dafür, dass die Maus zur Klick-Hand wird */
cursor: pointer;
/* Aktiviert die Klickbarkeit für diese Schicht */
pointer-events: auto;
}
/* --- NEU: FOOTER STYLING --- */
#game-footer {
position: absolute; bottom: 0; left: 0; width: 100%;
/* Höhe des Footers (wird auch im Pixi Kachel-Sprite genutzt) */
height: 40px;
/* Z-Index hochsetzen, damit der Text über dem Pixi-Hintergrund liegt */
z-index: 20;
/* pointer-events: none deaktivieren, damit wir den Impressum-Link anklicken können! */
pointer-events: none;
display: flex; justify-content: space-between; align-items: center;
padding: 0 40px; box-sizing: border-box;
color: var(--color-text-inactive);
font-size: 12px;
/* Wir nutzen nicht mehr 'Courier New', sondern unsere UI-Schrift */
font-family: inherit;
/* GRAFISCHE ABSETZUNG: Wir fügen eine leuchtende Cyan-Neon-Linie oben hinzu. */
border-top: 1px solid var(--color-text-inactive);
/* Und nutzen den Pixi Kachel-Hintergrund, um den Sci-Fi Look zu übernehmen. */
background: transparent;
}
/* Flexbox-Verteilung für die drei Footer-Bereiche */
.footer-left { flex: 1; text-align: left; }
.footer-center { flex: 1; text-align: center; }
.footer-right { flex: 1; text-align: right; }
#game-footer a {
color: var(--color-text-inactive); text-decoration: none;
transition: color 0.2s ease, text-shadow 0.2s ease;
/* Wir reaktivieren Klicks für den Link */
pointer-events: auto;
}
#game-footer a:hover {
color: var(--color-cyan-bright);
text-shadow: 0 0 8px var(--color-cyan-bright);
}