From 1ab026c35c7e7b3b8cfb294dc94bbd188f77c801 Mon Sep 17 00:00:00 2001 From: Alexander Schmidt Date: Wed, 28 Jan 2026 07:02:55 +0100 Subject: [PATCH] initial commit --- AGENTS.md | 112 +++ README.md | 214 ++++++ assets/fonts/Inter-Bold.woff2 | Bin 0 -> 114840 bytes assets/fonts/Inter-Medium.woff2 | Bin 0 -> 114348 bytes assets/fonts/Inter-Regular.woff2 | Bin 0 -> 111268 bytes assets/fonts/Inter-SemiBold.woff2 | Bin 0 -> 114812 bytes assets/fonts/SpaceGrotesk-Bold.woff2 | Bin 0 -> 41780 bytes assets/fonts/SpaceGrotesk-Light.woff2 | Bin 0 -> 42088 bytes assets/fonts/SpaceGrotesk-Medium.woff2 | Bin 0 -> 42796 bytes assets/fonts/SpaceGrotesk-Regular.woff2 | Bin 0 -> 42708 bytes assets/icons/icon.svg | 16 + css/animate.min.css | 7 + css/base.css | 103 +++ css/components.css | 353 +++++++++ css/fonts.css | 67 ++ css/variables.css | 189 +++++ index.html | 30 + js/app.js | 25 + js/components/app-footer.js | 31 + js/components/app-header.js | 205 +++++ js/components/app-shell.js | 50 ++ js/components/listing-card.js | 206 +++++ js/components/pages/page-create.js | 218 ++++++ js/components/pages/page-home.js | 122 +++ js/components/pages/page-listing.js | 208 ++++++ js/components/pages/page-not-found.js | 52 ++ js/components/pages/page-search.js | 234 ++++++ js/components/search-box.js | 948 ++++++++++++++++++++++++ js/i18n.js | 136 ++++ js/router.js | 155 ++++ js/services/api.js | 138 ++++ js/utils/helpers.js | 88 +++ locales/de.json | 126 ++++ locales/en.json | 126 ++++ locales/fr.json | 126 ++++ manifest.json | 71 ++ service-worker.js | 91 +++ 37 files changed, 4447 insertions(+) create mode 100644 AGENTS.md create mode 100644 README.md create mode 100644 assets/fonts/Inter-Bold.woff2 create mode 100644 assets/fonts/Inter-Medium.woff2 create mode 100644 assets/fonts/Inter-Regular.woff2 create mode 100644 assets/fonts/Inter-SemiBold.woff2 create mode 100644 assets/fonts/SpaceGrotesk-Bold.woff2 create mode 100644 assets/fonts/SpaceGrotesk-Light.woff2 create mode 100644 assets/fonts/SpaceGrotesk-Medium.woff2 create mode 100644 assets/fonts/SpaceGrotesk-Regular.woff2 create mode 100644 assets/icons/icon.svg create mode 100644 css/animate.min.css create mode 100644 css/base.css create mode 100644 css/components.css create mode 100644 css/fonts.css create mode 100644 css/variables.css create mode 100644 index.html create mode 100644 js/app.js create mode 100644 js/components/app-footer.js create mode 100644 js/components/app-header.js create mode 100644 js/components/app-shell.js create mode 100644 js/components/listing-card.js create mode 100644 js/components/pages/page-create.js create mode 100644 js/components/pages/page-home.js create mode 100644 js/components/pages/page-listing.js create mode 100644 js/components/pages/page-not-found.js create mode 100644 js/components/pages/page-search.js create mode 100644 js/components/search-box.js create mode 100644 js/i18n.js create mode 100644 js/router.js create mode 100644 js/services/api.js create mode 100644 js/utils/helpers.js create mode 100644 locales/de.json create mode 100644 locales/en.json create mode 100644 locales/fr.json create mode 100644 manifest.json create mode 100644 service-worker.js diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..5b16cf4 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,112 @@ +# AGENTS.md - AI Assistant Context + +Dieses Dokument hilft AI-Assistenten (Amp, Copilot, etc.) das Projekt zu verstehen. + +## Projekt-Überblick + +**dgray.io** ist eine Kleinanzeigen-PWA mit Monero-Bezahlung. + +- **Status**: Early Development (Frontend-only) +- **Ziel**: Anonyme, dezentrale Marktplatz-Alternative + +## Tech-Stack + +| Layer | Technologie | +|-------|-------------| +| Frontend | Vanilla JS, Web Components, CSS Custom Properties | +| Routing | Hash-basierter Client-Side Router (`js/router.js`) | +| i18n | Custom System (`js/i18n.js`), JSON-Dateien in `/locales/` | +| Theming | CSS Variables, Dark/Light Mode | +| Backend | Geplant: Directus | + +## Häufige Befehle + +```bash +# Lokaler Entwicklungsserver +python3 -m http.server 8080 + +# Oder mit Live-Reload +npx live-server + +# Git Push (Token in URL) +git push origin master +``` + +## Dateistruktur + +``` +js/ +├── app.js # Entry, lädt i18n, dann Shell +├── router.js # Hash-Router mit :params +├── i18n.js # t('key'), subscribe(), updateDOM() +└── components/ + ├── app-shell.js # Layout, registriert Routes + ├── app-header.js # Header (Theme-Toggle, Lang-Dropdown) + ├── app-footer.js # Footer + └── pages/ # Seiten als Web Components + +css/ +├── fonts.css # @font-face Definitionen (Inter, Space Grotesk) +├── variables.css # CSS Custom Properties (Farben, Spacing) +├── base.css # Reset, Container +└── components.css # UI-Komponenten (Buttons, Cards, etc.) + +assets/ +└── fonts/ # Self-hosted Fonts (Inter, Space Grotesk) + +locales/ +├── de.json # Deutsch (Fallback) +├── en.json +└── fr.json +``` + +## Konventionen + +### Web Components +- Custom Elements mit `class extends HTMLElement` +- Styles als `