Funktionswahl vor der Kamera, Wechsel und Knopf-Sichtbarkeit je Funktion

Neuer Vollbild-Dialog (src/ui/mode-dialog.js) mit drei grossen Flaechen,
gebaut nach dem Muster der bestehenden Dialoge. Ablauf beim Start: erst
die Fortsetzen-Frage (falls eine gesicherte Sitzung vorliegt), dann die
Funktionswahl, erst danach startet die Kamera.

Die gewaehlte Funktion steht antippbar in der Scan-Ansicht und laesst
sich dort jederzeit wechseln - der Wechsel gilt sofort: laufende Suche
startet/stoppt, "Modul scannen" erscheint nur noch in Funktion "Text
erkennen", der Zielrahmen wird beim Wechsel weg von laufender Suche
zurueckgesetzt. pipeline.js bleibt unangetastet; main.js reicht je nach
Funktion nur unterschiedliche Adapter hinein (scan-recognition.js).
This commit is contained in:
2026-07-29 13:37:12 +02:00
parent 2eb9d1ecf8
commit 2e619ed64d
4 changed files with 247 additions and 20 deletions
+30
View File
@@ -21,6 +21,19 @@ body {
#app { display: flex; flex-direction: column; height: 100dvh; }
.mode-button {
min-height: 56px;
width: 100%;
border: none;
border-bottom: 1px solid var(--line);
background: #1c2027;
color: var(--fg);
font-size: 15px;
font-weight: 600;
text-align: left;
padding: 0 14px;
}
.camera { position: relative; flex: 1; overflow: hidden; background: #000; }
.camera video { width: 100%; height: 100%; object-fit: cover; }
@@ -115,5 +128,22 @@ body {
.choices { display: grid; gap: 12px; width: 100%; max-width: 420px; }
.choices button { min-height: 64px; font-size: 20px; }
/* Auswahl der Scan-Funktion vor dem Scannen (mode-dialog.js): drei grosse,
gleich gestaltete Flaechen statt schmaler Schaltflaechen. */
.mode-tile {
min-height: 96px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 6px;
padding: 12px;
}
.mode-tile-label { font-size: 24px; font-weight: 700; }
.mode-tile-hint { font-size: 14px; opacity: 0.8; }
.mode-tile-current { outline: 3px solid var(--fg); outline-offset: -3px; }
.status { padding: 8px 12px; font-size: 14px; color: var(--muted); }
.status.warn { color: #f0b429; }