feat: plakat redesign phase 3 (windows on desktop, sheets on mobile) (#76)

- Tapping an object on the desk opens a window (desktop) or a bottom sheet
  (mobile) instead of flipping: projects, now, servers, reading, about, contact
- Desktop windows in poster style (2px ink rule, hard offset shadow), open
  from the tapped object, thrown by the title bar with momentum and elastic
  viewport edges, stack by focus, minimize into a tray, Escape closes the top
  window, focus moves to close and returns to the trigger
- Mobile sheets via vaul 1.1.2: drag down to dismiss, overlay, focus trap
- Project window shows live/source links from Directus when present
- Hero "Write me" opens the contact window; still a plain #contact link
  without JavaScript
- Shared current-book loader for desk, deck and reading window
- Texts in de/en, i18n key check extended

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
denshooter
2026-10-15 23:49:35 +02:00
committed by GitHub
parent 62f2fb7742
commit 0fa10315b2
19 changed files with 1413 additions and 113 deletions
+69 -3
View File
@@ -36,11 +36,11 @@
"tisch": {
"title": "Der Tisch.",
"allProjects": "Alle Projekte",
"hintBoard": "Alles hier lässt sich anfassen. Werfen, stapeln, Karten umdrehen.",
"hintDeck": "Wisch die Karten zur Seite, tipp zum Umdrehen.",
"hintBoard": "Alles hier lässt sich anfassen. Werfen, stapeln, antippen für Details.",
"hintDeck": "Wisch die Karten zur Seite, tipp für Details.",
"tidy": "Aufräumen",
"mess": "Durcheinander",
"flip": "tippen zum Umdrehen",
"flip": "antippen für Details",
"details": "Zum Projekt",
"prev": "Vorherige Karte",
"next": "Nächste Karte",
@@ -69,6 +69,72 @@
"photoCaption": "Das bin ich.",
"sticker": "Läuft auf eigenen Servern."
},
"windows": {
"close": "Schließen",
"minimize": "Ablegen",
"openWindows": "Offene Fenster",
"projectPage": "Projektseite",
"source": "Quellcode",
"live": "Live ansehen",
"stack": "Technik",
"year": "Jahr",
"now": {
"title": "jetzt.txt · Stand Oktober 2026",
"days": "Tage bis zur Abgabe der Masterarbeit",
"study": {
"label": "Studium",
"text": "Federated Reinforcement Learning für einen Logistik-Hub, Abgabe Mitte Februar 2027"
},
"work": {
"label": "Arbeit",
"text": "IT bei einem Unternehmen in Osnabrück, ab Februar 2027 fest als Microsoft-365-Administrator"
},
"side": {
"label": "Nebenher",
"text": "nightly, eine App für Gedanken zwischen 2 und 5 Uhr nachts"
}
},
"server": {
"title": "server · alle grün",
"headline": "Drei Rechner, ein VPN."
},
"read": {
"title": "lesen · aus Hardcover",
"progress": "gelesen",
"empty": "Gerade liegt kein Buch auf dem Nachttisch.",
"library": "Zur Bibliothek"
},
"about": {
"title": "über mich",
"p1": "Aufgewachsen bin ich in Lingen, inzwischen wohne ich in Osnabrück. Angefangen hat alles mit einem Raspberry Pi und der Frage, ob ich meine Fotos nicht selbst speichern kann. Daraus sind drei Server geworden.",
"p2": "Wenn ich nicht am Rechner sitze, bin ich dienstags bei Body Attack, im Winter auf der Piste oder mit Freunden bei einem Brettspiel.",
"facts": {
"laptop": {
"label": "Arbeitsrechner",
"value": "MacBook Pro M4 Pro"
},
"pc": {
"label": "Zum Spielen",
"value": "PC mit RTX 3080"
},
"study": {
"label": "Studium",
"value": "Master Informatik"
},
"languages": {
"label": "Sprachen",
"value": "Deutsch, Englisch"
}
}
},
"contact": {
"title": "kontakt",
"body": "Für Projekte, Fragen zu meinem Setup oder einfach so. Ich antworte normalerweise innerhalb von ein, zwei Tagen.",
"copy": "Adresse kopieren",
"copied": "Kopiert",
"form": "Zum Formular"
}
},
"about": {
"title": "Hinter den Kulissen",
"p1": "Schon seit ich meinen ersten eigenen Server aufgesetzt habe, lässt mich das Thema Infrastruktur nicht mehr los. Als Student in Osnabrück verbringe ich meine Zeit am liebsten damit, moderne Web-Apps mit Next.js zu bauen oder mobile Lösungen mit Flutter zu entwickeln.",