diff --git a/frontend/index.html b/frontend/index.html index bd02e49..16967d3 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -3,7 +3,8 @@ - EcoGame — Devlog & Commits + D4RKST3R // DEVLOG +
diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 43f671d..7d1fa3a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,8 +8,9 @@ "name": "ecobot-frontend", "version": "0.1.0", "dependencies": { - "@fontsource-variable/inter": "^5.3.0", - "@fontsource/jetbrains-mono": "^5.3.0", + "@fontsource/barlow-condensed": "^5.3.0", + "@fontsource/bebas-neue": "^5.3.0", + "@fontsource/share-tech-mono": "^5.3.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.1.0" @@ -743,19 +744,28 @@ "node": ">=18" } }, - "node_modules/@fontsource-variable/inter": { + "node_modules/@fontsource/barlow-condensed": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@fontsource-variable/inter/-/inter-5.3.0.tgz", - "integrity": "sha512-OupL48va4JNofb97w6NYeF9S7W/kHNKM0Er8Dem5nqi4jeOLrVJDoE8tZEpnMJmtkvNbB1EIPPwHcdkF6b1oUA==", + "resolved": "https://registry.npmjs.org/@fontsource/barlow-condensed/-/barlow-condensed-5.3.0.tgz", + "integrity": "sha512-RA7MmIx0v3eQ6Gcf74qLVLOwLB0GpPOzx+eU9iG/AmCnSJGcIWYeU8y6CEMGZ210MGwGg5CZhzLkkvyZdTTk1g==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, - "node_modules/@fontsource/jetbrains-mono": { + "node_modules/@fontsource/bebas-neue": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.3.0.tgz", - "integrity": "sha512-fqDfB5I9f1p1TV486aUgB9t8zP84P0O1FtQR5Ol9vjwPy+S+EIGlVYm1cvj2W5shcZMTg2nZFdVMoH5wFu8a1A==", + "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==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" diff --git a/frontend/package.json b/frontend/package.json index df3d1bb..e9e0bf4 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,8 +9,9 @@ "preview": "vite preview" }, "dependencies": { - "@fontsource-variable/inter": "^5.3.0", - "@fontsource/jetbrains-mono": "^5.3.0", + "@fontsource/barlow-condensed": "^5.3.0", + "@fontsource/bebas-neue": "^5.3.0", + "@fontsource/share-tech-mono": "^5.3.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.1.0" diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 23b7d0d..15f079b 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,20 +1,9 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useMemo, useState } from 'react'; import { Routes, Route, NavLink, Navigate } from 'react-router-dom'; import { apiGet } from './api.js'; import Devlogs from './pages/Devlogs.jsx'; import Commits from './pages/Commits.jsx'; -// Isometrischer Voxel-Würfel als Logo -function VoxelLogo() { - return ( - - ); -} - function DiscordMark() { return ( + ); +} + export default function App() { // Login-Status einmal beim Laden holen const [me, setMe] = useState({ user: null, admin: false, loading: true }); + const [scrolled, setScrolled] = useState(false); useEffect(() => { apiGet('/api/me') @@ -36,39 +51,38 @@ export default function App() { .catch(() => setMe({ user: null, admin: false, loading: false })); }, []); + useEffect(() => { + const onScroll = () => setScrolled(window.scrollY > 24); + window.addEventListener('scroll', onScroll, { passive: true }); + return () => window.removeEventListener('scroll', onScroll); + }, []); + return (
-