Ueberschriften nachgezogen, eigenes Blatt fuer die Chat-Slide

Projektmanagement heisst jetzt "wo alle Auftraege stehen", Team-Chat "Projekte
bekommen automatisch ihren Kanal". Beide bleiben zweizeilig; Zeile 2 der
Chat-Slide misst mit Marker 880 px bei 896 verfuegbaren, ein laengeres Wort
bricht dort sofort um.

Das hinterste Blatt im Stapel nahm bisher immer den Screen der naechsten
Feature-Slide. Auf der Chat-Slide war das der Form Builder, und dessen
3,8-facher Zoom kam mit: unscharf, dazu Kopieren- und Papierkorb-Symbole, die
zu einem anderen Feature gehoeren. Das Blatt ist jetzt ueber "back" pro Slide
ueberschreibbar; die Chat-Slide zeigt den Chat im Hochformat ohne Zoom.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
dejanandClaude Opus 5 committed 2026-08-06 22:16:52 +02:00
1 parent 307f5a0bad
commit 1923fbbb15
1 file changed
+16 -7
+16 -7
View File
@@ -1035,7 +1035,7 @@
key: "projektmanagement", type: "feature",
layouts: [{ id: "standard", label: "Standard" }],
eyebrow: "Projektmanagement",
head: 'Du siehst auf einen Blick,<br><span class="a">wo jeder Auftrag steht.</span>',
head: 'Du siehst auf einen Blick,<br><span class="a">wo alle Auftr\u00e4ge stehen.</span>',
body: "Projekte, Kunden, Angebote, F\u00f6rderantr\u00e4ge. Kein Suchen, kein Nachfragen, kein Zettelchaos.",
img: "./assets/screens/pipelines.png",
// Nur die linke Bildhälfte: Zoom 2 bei Versatz 0 zeigt exakt den Anteil
@@ -1074,14 +1074,17 @@
key: "chat", type: "feature",
layouts: [{ id: "standard", label: "Standard" }],
eyebrow: "Team-Chat",
// "automatisch seinen Kanal." misst mit Marker 933 px bei 896
// verfuegbaren und bricht deshalb in eine dritte Zeile. "von selbst"
// sagt dasselbe und bleibt mit 846 px in der Zeile.
head: 'Jedes Projekt bekommt<br>von selbst <span class="a">seinen Kanal.</span>',
// Zweizeilig, aber knapp: Zeile 2 misst mit Marker 880 px bei 896
// verfuegbaren. Ein laengeres Wort bricht sofort um.
head: 'Projekte bekommen<br>automatisch <span class="a">ihren Kanal.</span>',
body: "Foto von der Baustelle rein, alle sehen's sofort. Aus jeder Nachricht wird mit einem Klick eine Aufgabe.",
img: "./assets/screens/chat.png",
mockW: 1030, mockAR: 1.703,
imgScale: 1, imgX: "0%", imgY: "0%",
// Das hinterste Blatt zeigt sonst den Form Builder bei 3,8-fachem Zoom:
// unscharf, und die Kopieren- und Papierkorb-Symbole gehören zu einem
// anderen Feature. Stattdessen der Chat im Hochformat, ungezoomt.
back: { img: "./assets/screens/chat-tablet.png", imgScale: 1, imgX: "0%", imgY: "0%" },
// Das Anhang-Menü zeigt, was aus einer Nachricht alles werden kann.
media2: {
img: "./assets/screens/chat-menue.png",
@@ -1560,9 +1563,14 @@
if (sl.mockW) mock.style.setProperty("--mock-w", sl.mockW + "px");
if (sl.mockAR) mock.style.setProperty("--mock-ar", sl.mockAR);
if (sl.mockLeft) mock.style.setProperty("--mock-left", sl.mockLeft + "px");
// Hinterstes Blatt bekommt den Screen der nächsten Feature-Slide.
/* Hinterstes Blatt bekommt standardmässig den Screen der nächsten
Feature-Slide. Das kann danebengehen: der nächste Screen ist
womöglich stark gezoomt und damit unscharf, und er zeigt Bedienung,
die zum Feature dieser Slide gar nicht passt. Deshalb ist er über
"back" pro Slide überschreibbar. */
const withImg = SLIDES.filter(x => x.img);
const other = withImg[(withImg.findIndex(x => x.img === sl.img) + 1) % withImg.length];
const auto = withImg[(withImg.findIndex(x => x.img === sl.img) + 1) % withImg.length];
const other = sl.back || { img: auto.img, imgScale: auto.imgScale, imgX: auto.imgX, imgY: auto.imgY };
mock.innerHTML =
'<div class="sheet-back"><img alt="" src="' + assets[other.img] +
'" style="transform:scale(' + other.imgScale + ') translate(' +
@@ -1695,6 +1703,7 @@
async function preloadAssets() {
const paths = ["./assets/brand/logo.svg", "./assets/brand/logo-white.svg"]
.concat(SLIDES.filter(s => s.img).map(s => s.img))
.concat(SLIDES.filter(s => s.back).map(s => s.back.img))
.concat(SLIDES.filter(s => s.media2).map(s => s.media2.img));
paths.push("./assets/screens/pipelines.png", "./assets/screens/chat-tablet.png");
// Optional: the layout falls back to a hint if the file is not there yet.