V1: Next.js-App mit QR-Typ-Registry, Website-Generator und dynamischen Codes

- Erweiterbare Registry aller 15 QR-Typen; nur "Website" ist aktiv, die
  uebrigen erscheinen als Platzhalter mit Badge "Bald verfuegbar".
- defineQrType() kapselt Zod-Schema, Kodierung und Redirect-Ziel je Typ,
  sodass ein V2-Typ nur aus einem Registry-Eintrag plus Formular besteht.
- Serverseitige QR-Erzeugung (PNG/SVG) mit Farben, Groesse, Fehlerkorrektur
  und Rand; Live-Vorschau ueber /api/qr/preview.
- Dynamische Codes: Kurz-URL {BASE_URL}/r/{slug}, 302-Redirect mit
  Scan-Zaehler, CRUD unter /api/codes.
- Prisma 7 mit pg-Driver-Adapter und Initial-Migration fuer PostgreSQL.
- Deutsche Oberflaeche mit Tailwind CSS, helles Theme, responsiv.
This commit is contained in:
Florian Wilde
2026-08-13 15:54:47 +02:00
commit ad4cd92f8e
52 changed files with 12348 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
@import "tailwindcss";
@theme inline {
--font-sans:
ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
Arial, "Noto Sans", sans-serif;
--font-mono:
ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
monospace;
}
:root {
color-scheme: light;
}
body {
background-color: var(--color-slate-50);
color: var(--color-slate-900);
font-family: var(--font-sans);
-webkit-font-smoothing: antialiased;
}
/* Sichtbarer, einheitlicher Fokusring für Tastaturbedienung. */
:focus-visible {
outline: 2px solid var(--color-indigo-600);
outline-offset: 2px;
}
/* Schachbrett hinter der Vorschau — macht helle Hintergrundfarben sichtbar. */
.qr-canvas {
background-color: #fff;
background-image:
linear-gradient(45deg, #eef2f7 25%, transparent 25%),
linear-gradient(-45deg, #eef2f7 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #eef2f7 75%),
linear-gradient(-45deg, transparent 75%, #eef2f7 75%);
background-size: 16px 16px;
background-position:
0 0,
0 8px,
8px -8px,
-8px 0;
}