Die Bildschau und 2520 Farben statt 360
=== 1. BILDER OEFFNEN SICH MITTIG, MIT HUSKY UND HASE ===
Filipe: "wenn man bilder aufmacht, will ich dass die in der mitte sind.
beim hochformat soll links der husky sein und rechts der hase und beim
querformat soll oben dogfather und unten team dogi stehen da wo platz
ist ... ich will nicht dahin geschmissen sondern was richtig geiles mit
einem geilen hintergrund."
WAS VORHER PASSIERTE, und es war kein Fehler im Code: Der Klick fuehrte
auf die DATEI. Was man dann sah, war die eingebaute Bildanzeige des
Browsers -- schwarzer Grund, Bild oben links in der Ecke, auf seinem
Bildschirmfoto 1200 px Schwarz daneben. Eine Datei hat keine
Gestaltung. Wer Gestaltung will, muss eine SEITE zeigen.
Die Schau liegt jetzt UEBER dem Chat. Escape bringt einen dorthin
zurueck, wo man war, und das Gespraech laeuft im Hintergrund weiter --
ein zweiter Tab braeuchte eine eigene Seite, eine eigene Anmeldung und
einen eigenen Weg zurueck.
DER WEG IN DEN TAB BLEIBT TROTZDEM. Der Verweis hat unveraendert
`href`, `target` und `rel`; mittlere Maustaste, "In neuem Tab oeffnen"
und Herunterladen gehen wie seit jeher. Abgefangen wird nur der
gewoehnliche Klick -- und auch der nur, wenn die Schau geladen ist.
Wer Strg, Umschalt oder Befehl haelt, bekommt den alten Weg; das sind
die Griffe, die Leute seit zwanzig Jahren benutzen.
DIE BEGLEITER STEHEN DA, WO PLATZ IST -- und die Antwort darauf wird
GEMESSEN, nicht geschaetzt: nicht die Fensterbreite, sondern der Rest
neben dem Bild, nachdem es eingepasst ist. Eine Schwelle wie "ab
1100 px" waere fuer ein 3:4-Foto richtig und fuer ein 9:16-Foto auf
demselben Schirm falsch. Unter 170 px bleibt der Husky weg: Eine Figur,
die ein Streifen ist, steht besser nicht da.
Husky und Hase sind eigens verkleinert (2,1 MB und 1,0 MB werden 40 kB
und 32 kB) und bekommen weiche Raender -- ihr Hintergrund ist dunkel,
aber nicht durchsichtig; als Rechteck saehe man zwei Kaesten.
Der erste Anlauf spiegelte den Hasen, damit beide "nach innen" schauen
-- ein alter Reflex aus dem Plakatsatz. Auf dem Probebild stand danach
"Hasi Dog" seitenverkehrt auf seinem Hoodie. Schrift im Bild spiegelt
man nie.
pruef-chat-anhaenge bekommt 14 neue Punkte, darunter beide Formate und
zwei Gegenproben: Strg+Klick oeffnet die Schau NICHT (sonst hiesse "sie
geht auf" nur, dass der alte Weg verloren ist), und im Hochformat liegt
KEINE der Figuren ueber dem Foto.
NEBENBEFUND, den die Pruefung gefunden hat: Die Sprachnachricht war auf
165 px geschrumpft -- zu schmal fuer den Schieber. Ursache war keine
Aenderung an ihr, sondern eine Folge: Die Blase ist so breit wie ihr
breitester Inhalt, und seit die Handgriffe darunter Zeichen statt
Woerter sind (123 statt ueber 400 px), bestimmt das Abspielgeraet die
Breite selbst. Eine Reihe kuerzer zu machen hat einen Schieber schmaler
gemacht, drei Bildschirme weiter.
=== 2. DER FARBKREIS: HELLER UND DUNKLER ===
Filipe: "dieser kreis muss viel perfekter sein. ich will dass die leute
auch heller und dunkler aussuchen koennen ... so dass die leute viel
krassere moeglichkeiten haben."
WARUM DAS BIS HEUTE NICHT GING: Die 360 Toene liegen alle auf DERSELBEN
Leuchtdichte. Das war kein Zufall -- solange die Blase in der gewaehlten
Farbe stand, musste jede dieser Flaechen dieselbe Schrift tragen. Eine
hellere Farbe zuzulassen hiesse damals: irgendwo wird eine Nachricht
unlesbar.
SEIT DEM 25.09.2026 IST DIE BEDINGUNG EINE ANDERE. Die Blase ist fuer
alle dunkles Glas; der Ton ist Kante und NAME. Damit faellt die alte
Regel weg, und an ihre Stelle tritt: der Ton muss als Name auf dem
Blasengrund lesbar bleiben.
DIE ZAHLEN SIND GEMESSEN, NICHT GEWAEHLT. Ueber alle 360 Winkel, jeweils
der schlechteste Fall:
40 % schwarz 4,468 -- unter der Schwelle, faellt raus
34 % schwarz 4,555 -- ginge, aber ohne Reserve
30 % schwarz 4,619 <- die dunkelste Stufe
0 % 5,12 <- die Mitte, der alte Kreis
55 % weiss 9,6 <- die hellste Stufe
Sieben Stufen, 2520 Farben statt 360. pruef-chat-neu rechnet jede
einzelne nach -- die knappste hat 2,6 Prozent Reserve.
DIE ALTEN SCHLUESSEL BLEIBEN GUELTIG. "ton-214" heisst weiterhin genau
dieselbe Farbe; die Stufe steht als Zusatz dahinter ("ton-214-s6"). Wer
seit dem 23.09. eine Farbe traegt, traegt nach diesem Umbau dieselbe.
DIE PROBE IN DER MITTE ZEIGT ENDLICH, WAS MAN BEKOMMT. Dort stand eine
gefuellte Flaeche mit heller Schrift -- so sah die Blase bis heute frueh
aus. Jetzt steht dort derselbe Blasengrund und darauf der Ton als Name,
mit genau der Rechnung aus chat.css. Das ist nicht nur ehrlicher, es
macht die sieben Stufen erst moeglich: Eine gefuellte Flaeche muesste
Schrift tragen, und bei sehr hellen Toenen schafft das keine der beiden
Schriftfarben mehr (4,1 statt noetiger 7). Als Name auf dunklem Grund
ist derselbe helle Ton besonders gut lesbar (8,0).
Der Erklaersatz im Fenster war damit falsch geworden ("Alle Toene
leuchten gleich stark") und sagt jetzt, was stimmt.
ZWEI PRUEFUNGEN WURDEN GENAUER:
pruef-chat-neu mass den HINTERGRUND der Mitte -- eine Darstellung,
die es nicht mehr gibt. Sie misst jetzt die Schriftfarbe und rechnet
die Mischung nach. Dabei stolperte sie ueber eine dritte
Farbschreibweise: Chromium gibt `color-mix`-Ergebnisse als
`color(srgb 0.676 0.645 0.504)` zurueck. Die Zeile war rot, obwohl
die Farbe auf den Bildpunkt genau stimmte -- ein Fehlalarm, der
teurer ist als ein echter Befund, weil man am Aussehen sucht und der
Fehler im Lesegeraet liegt.
Und sie prueft nicht mehr 360, sondern 360 x 7 -- nur den Grundton zu
messen hiesse, sechs Siebtel ungeprueft auszuliefern.
Geprueft: pruef-chat-anhaenge (123), pruef-chat-neu (36),
pruef-chatkachel (40), pruef-chat, pruef-chat-ausbau (69),
pruef-chat-optik, pruef-tippziele (11), pruef-css-klassen.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
/* =====================================================================
|
||||
HELLER UND DUNKLER (25.09.2026)
|
||||
=====================================================================
|
||||
|
||||
Filipe: „dieser kreis muss viel perfekter sein. ich will dass die
|
||||
leute auch heller und dunkler aussuchen koennen. perfektionier das
|
||||
bitte viel krasser. viel profissioneller. so dass die leute viel
|
||||
krassere moeglichkeiten haben."
|
||||
|
||||
---------------------------------------------------------------------
|
||||
WARUM DAS BIS HEUTE NICHT GING
|
||||
|
||||
Die 360 Toene in chat-kreis.js liegen ALLE auf derselben
|
||||
Leuchtdichte. Das war kein Zufall und keine Bequemlichkeit: Solange
|
||||
die Blase in der gewaehlten Farbe stand, musste jede dieser Flaechen
|
||||
dieselbe Schrift tragen -- „gleiche Leuchtdichte heisst gleicher
|
||||
Kontrast fuer alle". Eine hellere Farbe zuzulassen hiesse damals:
|
||||
irgendwo im Haus wird eine Nachricht unlesbar.
|
||||
|
||||
SEIT DEM 25.09.2026 IST DAS ANDERS. Die Blase ist fuer alle dunkles
|
||||
Glas (`--blasengrund`); der gewaehlte Ton ist KANTE und NAME. Damit
|
||||
faellt die alte Bedingung weg -- und eine neue tritt an ihre Stelle:
|
||||
|
||||
Der Ton muss als NAME auf dem Blasengrund lesbar bleiben.
|
||||
|
||||
Die Oberflaeche hellt ihn dafuer mit Weiss auf (`--namen-anteil`,
|
||||
50 %). Genau diese Rechnung prueft pruef-chat-neu fuer alle Toene.
|
||||
|
||||
---------------------------------------------------------------------
|
||||
DIE ZAHLEN SIND GEMESSEN, NICHT GEWAEHLT
|
||||
|
||||
Nachgerechnet ueber alle 360 Winkel, jeweils der schlechteste:
|
||||
|
||||
40 % schwarz 4,468 -- unter der Schwelle, faellt raus
|
||||
34 % schwarz 4,555 -- ginge, aber ohne Reserve
|
||||
30 % schwarz 4,619 <- die dunkelste Stufe
|
||||
20 % schwarz 4,7
|
||||
10 % schwarz 4,9
|
||||
0 % 5,12 <- die Mitte, der alte Kreis
|
||||
18 % weiss 6,4
|
||||
36 % weiss 7,9
|
||||
55 % weiss 9,6 <- die hellste Stufe
|
||||
|
||||
Noetig sind 4,5. Die dunkelste Stufe hat also 0,12 Reserve, die
|
||||
hellste mehr als das Doppelte. Wer hier eine Stufe hinzufuegt, misst
|
||||
nach -- pruef-chat-neu rechnet jede Stufe an jedem der 360 Winkel
|
||||
nach und wird rot, bevor es jemand auf dem Bildschirm sieht.
|
||||
|
||||
---------------------------------------------------------------------
|
||||
WARUM SIEBEN UND NICHT DREI
|
||||
|
||||
Drei (dunkel / normal / hell) waere die bequeme Zahl. Sieben sind
|
||||
der Punkt, an dem zwei benachbarte Stufen noch unterscheidbar sind
|
||||
und man trotzdem das Gefuehl hat, etwas einstellen zu koennen --
|
||||
Filipes „viel krassere moeglichkeiten" heisst nicht „zwei mehr".
|
||||
Zusammen mit 360 Winkeln sind es 2520 Farben statt 360.
|
||||
|
||||
---------------------------------------------------------------------
|
||||
WARUM EINE EIGENE DATEI
|
||||
|
||||
chat-kreis.js wird von tools/chat-kacheln-rechnen.mjs ERZEUGT und
|
||||
traegt oben „NICHT VON HAND AENDERN". Etwas hineinzuschreiben waere
|
||||
beim naechsten Lauf des Werkzeugs weg. Die Stufen sind ausserdem
|
||||
keine Tabelle, sondern eine Rechnung -- sie gehoeren nicht in eine
|
||||
erzeugte Liste.
|
||||
===================================================================== */
|
||||
import { KREIS } from "./chat-kreis.js";
|
||||
|
||||
/** Die sieben Stufen. Minus heisst dunkler, Plus heller.
|
||||
*
|
||||
* `wert` ist der Teil, der im Schluessel steht ("ton-214-s2").
|
||||
* `misch` ist der Anteil, mit dem der Grundton nach Schwarz (negativ)
|
||||
* oder nach Weiss (positiv) gezogen wird.
|
||||
* `name` ist das, was ein Vorleseprogramm sagt -- eine Zahl von 1 bis
|
||||
* 7 saehe aus wie eine Note.
|
||||
*/
|
||||
export const KREIS_STUFEN = [
|
||||
{ wert: "s1", misch: -0.30, name: "sehr dunkel" },
|
||||
{ wert: "s2", misch: -0.20, name: "dunkler" },
|
||||
{ wert: "s3", misch: -0.10, name: "leicht dunkel" },
|
||||
{ wert: "s4", misch: 0, name: "normal" },
|
||||
{ wert: "s5", misch: 0.18, name: "leicht hell" },
|
||||
{ wert: "s6", misch: 0.36, name: "heller" },
|
||||
{ wert: "s7", misch: 0.55, name: "sehr hell" },
|
||||
];
|
||||
|
||||
/** Welche Stufe ist die Mitte -- und damit das, was "ton-214" ohne
|
||||
* Zusatz bedeutet. Abgeleitet aus `misch === 0` und nicht als Index
|
||||
* hingeschrieben: Wer eine Stufe vorn einfuegt, verschiebt sonst
|
||||
* stillschweigend die Bedeutung aller alten Schluessel. */
|
||||
export const KREIS_MITTE = KREIS_STUFEN.find((s) => s.misch === 0)?.wert || "s4";
|
||||
|
||||
/** Zerlegt einen Schluessel in Winkel und Stufe.
|
||||
*
|
||||
* "ton-214" -> { winkel: 214, stufe: "s4" } (die Mitte)
|
||||
* "ton-214-s6" -> { winkel: 214, stufe: "s6" }
|
||||
* alles andere -> null
|
||||
*
|
||||
* DIE ALTEN SCHLUESSEL BLEIBEN GUELTIG, und zwar ohne Umstellung in
|
||||
* der Datenbank. Wer seit dem 23.09. "ton-214" traegt, traegt danach
|
||||
* genau dieselbe Farbe -- eine Umstellung, die stillschweigend die
|
||||
* Wahl von fuenfzehn Leuten verschiebt, waere kein Fortschritt.
|
||||
*/
|
||||
export function tonAus(wert) {
|
||||
const t = /^ton-(\d{1,3})(?:-(s[1-7]))?$/.exec(String(wert ?? ""));
|
||||
if (!t) return null;
|
||||
const winkel = Number(t[1]);
|
||||
if (!(winkel >= 0 && winkel < KREIS.length)) return null;
|
||||
const stufe = t[2] || KREIS_MITTE;
|
||||
if (!KREIS_STUFEN.some((s) => s.wert === stufe)) return null;
|
||||
return { winkel, stufe };
|
||||
}
|
||||
|
||||
/** Zwei Farben mischen, wie `color-mix(in srgb, a p%, b)` es tut. */
|
||||
function mischen(a, b, anteilB) {
|
||||
const z = (h) => {
|
||||
const s = String(h).replace("#", "");
|
||||
return [0, 2, 4].map((i) => parseInt(s.slice(i, i + 2), 16));
|
||||
};
|
||||
const [ar, ag, ab] = z(a), [br, bg, bb] = z(b);
|
||||
const m = (x, y) => Math.round(x * (1 - anteilB) + y * anteilB);
|
||||
return "#" + [m(ar, br), m(ag, bg), m(ab, bb)]
|
||||
.map((v) => v.toString(16).padStart(2, "0")).join("");
|
||||
}
|
||||
|
||||
/** Die fertige Farbe zu Winkel und Stufe. */
|
||||
export function tonFarbe(winkel, stufe) {
|
||||
const grund = KREIS[winkel];
|
||||
if (!grund) return null;
|
||||
const s = KREIS_STUFEN.find((x) => x.wert === stufe) || { misch: 0 };
|
||||
if (!s.misch) return grund;
|
||||
return s.misch < 0
|
||||
? mischen(grund, "#000000", -s.misch)
|
||||
: mischen(grund, "#ffffff", s.misch);
|
||||
}
|
||||
|
||||
/** Die Farbe zu einem ganzen Schluessel, oder null. */
|
||||
export function farbeZuSchluessel(wert) {
|
||||
const t = tonAus(wert);
|
||||
return t ? tonFarbe(t.winkel, t.stufe) : null;
|
||||
}
|
||||
@@ -418,6 +418,142 @@ let pdfNachrichtId = 0;
|
||||
ok(kaeme === 0, `für ein PDF wird kein Bildkasten gebaut (${kaeme})`);
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
2c. DIE BILDSCHAU (25.09.2026)
|
||||
=======================================================================
|
||||
|
||||
Filipe: „wenn man bilder aufmacht, will ich dass die in der mitte
|
||||
sind. beim hochformat soll links der husky sein und rechts der hase
|
||||
und beim querformat soll oben dogfather und unten team dogi stehen
|
||||
da wo platz ist."
|
||||
|
||||
VORHER OEFFNETE DER KLICK DIE DATEI in einem neuen Tab -- und was man
|
||||
sah, war die eingebaute Bildanzeige des Browsers: schwarzer Grund,
|
||||
Bild oben links. Das ist kein Fehler des Browsers; eine Datei hat
|
||||
keine Gestaltung.
|
||||
|
||||
GEMESSEN WIRD, WAS ER GESAGT HAT, und jedes einzeln:
|
||||
1. Der Klick oeffnet die Schau (und nicht mehr den Tab).
|
||||
2. Das Bild steht in der MITTE -- gemessen als Abstand seines
|
||||
Mittelpunkts zur Fenstermitte, nicht als „es ist da".
|
||||
3. Bei einem breiten Bild stehen die zwei Schriftzuege da.
|
||||
4. Escape bringt einen zurueck.
|
||||
5. GEGENPROBE: Mit Strg gedrueckt oeffnet sie NICHT -- der Weg in
|
||||
den neuen Tab bleibt, wie er war. Ohne diese Zeile haette
|
||||
„die Schau geht auf" auch dann gestimmt, wenn sie IMMER aufgeht
|
||||
und der alte Weg verloren ist.
|
||||
======================================================================= */
|
||||
{
|
||||
await oeffne(luna.seite, raumId);
|
||||
/* Das Foto aus Abschnitt 2 ist 240x150 -- also quer. */
|
||||
const bildKasten = ".chat-nachricht .chat-bild";
|
||||
await luna.seite.waitForSelector(bildKasten, { timeout: 8000 });
|
||||
|
||||
/* GEGENPROBE ZUERST: mit Strg bleibt der alte Weg. */
|
||||
await luna.seite.click(bildKasten, { modifiers: ["Control"] });
|
||||
await luna.seite.waitForTimeout(400);
|
||||
const mitStrg = await luna.seite.evaluate(() =>
|
||||
!!document.querySelector("dialog.bildschau[open]"));
|
||||
ok(mitStrg === false,
|
||||
`Gegenprobe: Strg+Klick öffnet die Schau NICHT (${mitStrg}) — der Weg in den Tab bleibt`);
|
||||
|
||||
await luna.seite.click(bildKasten);
|
||||
await luna.seite.waitForTimeout(600);
|
||||
const schau = await luna.seite.evaluate(() => {
|
||||
const d = document.querySelector("dialog.bildschau[open]");
|
||||
if (!d) return { offen: false };
|
||||
const b = d.querySelector(".bildschau__bild");
|
||||
const r = b.getBoundingClientRect();
|
||||
const worte = [...d.querySelectorAll(".bildschau__wort")]
|
||||
.filter((e) => Number(getComputedStyle(e).opacity) > .5)
|
||||
.map((e) => e.textContent.trim());
|
||||
return {
|
||||
offen: true,
|
||||
lage: d.dataset.lage,
|
||||
/* Wie weit ist die Bildmitte von der Fenstermitte weg? Bei
|
||||
„mittig" sind das ein paar Pixel, bei „oben links" Hunderte. */
|
||||
abX: Math.round(Math.abs((r.left + r.width / 2) - window.innerWidth / 2)),
|
||||
abY: Math.round(Math.abs((r.top + r.height / 2) - window.innerHeight / 2)),
|
||||
worte,
|
||||
figuren: [...d.querySelectorAll(".bildschau__figur")]
|
||||
.filter((e) => Number(getComputedStyle(e).opacity) > .5).length,
|
||||
grund: getComputedStyle(d.querySelector(".bildschau__grund")).backgroundImage.length,
|
||||
};
|
||||
});
|
||||
ok(schau.offen === true, `ein Klick öffnet die Bildschau (${schau.offen})`);
|
||||
/* 40 px Spielraum: Die Buehne hat oben mehr Polsterung als unten
|
||||
(dort steht die Leiste), der Mittelpunkt liegt also nie exakt auf
|
||||
dem Pixel. Bei „oben links in der Ecke" waeren es Hunderte. */
|
||||
ok(schau.abX <= 40 && schau.abY <= 60,
|
||||
`und das Bild steht in der Mitte (${schau.abX} px seitlich, ${schau.abY} px hoch daneben)`);
|
||||
ok(schau.lage === "quer",
|
||||
`ein breites Bild bekommt die Querformat-Fassung ("${schau.lage}")`);
|
||||
ok(schau.worte.length === 2
|
||||
&& /DogFather/i.test(schau.worte[0]) && /Team Dogi/i.test(schau.worte[1]),
|
||||
`mit „DogFather" oben und „Team Dogi" unten (${JSON.stringify(schau.worte)})`);
|
||||
ok(schau.figuren === 0,
|
||||
`und OHNE die zwei Figuren — die gehören ins Hochformat (${schau.figuren})`);
|
||||
ok(schau.grund > 80,
|
||||
`der Grund ist gestaltet und nicht schwarz (${schau.grund} Zeichen Verlauf)`);
|
||||
|
||||
/* EIN BILD FUER DEN MENSCHEN. Andere Pruefungen in diesem Haus legen
|
||||
ebenso eines ab (pruef-handy.png, pruef-crew-wand-handy.png) --
|
||||
eine Zahl sagt „mittig", ein Bild sagt, ob es gut aussieht. */
|
||||
await luna.seite.screenshot({ path: "server/pruef-bildschau.png" });
|
||||
|
||||
await luna.seite.keyboard.press("Escape");
|
||||
await luna.seite.waitForTimeout(400);
|
||||
const zu = await luna.seite.evaluate(() =>
|
||||
!!document.querySelector("dialog.bildschau[open]"));
|
||||
ok(zu === false, `Escape bringt einen zurück (${zu})`);
|
||||
|
||||
/* ---- UND DAS HOCHFORMAT -----------------------------------------
|
||||
Der andere Fall aus Filipes Satz -- „beim hochformat soll links
|
||||
der husky sein und rechts der hase". Ohne ein zweites, HOHES Bild
|
||||
waere dieser halbe Auftrag nie gemessen worden; das quere Bild
|
||||
oben kann ihn nicht beantworten. */
|
||||
const hoch = await hochladen(luna.seite, raumId, {
|
||||
inhalt: { art: "png", breite: 300, hoehe: 800 },
|
||||
typ: "image/png", name: "hochformat.png", text: "Und hochkant",
|
||||
});
|
||||
ok(hoch.status === 201, `ein hohes Foto kommt an (HTTP ${hoch.status})`);
|
||||
await oeffne(luna.seite, raumId);
|
||||
await luna.seite.waitForSelector(".chat-nachricht:last-of-type .chat-bild", { timeout: 8000 });
|
||||
await luna.seite.click(".chat-nachricht:last-of-type .chat-bild");
|
||||
await luna.seite.waitForTimeout(700);
|
||||
const hochSchau = await luna.seite.evaluate(() => {
|
||||
const d = document.querySelector("dialog.bildschau[open]");
|
||||
if (!d) return { offen: false };
|
||||
const b = d.querySelector(".bildschau__bild");
|
||||
const r = b.getBoundingClientRect();
|
||||
const sicht = (s) => [...d.querySelectorAll(s)]
|
||||
.filter((e) => Number(getComputedStyle(e).opacity) > .5);
|
||||
const figuren = sicht(".bildschau__figur");
|
||||
return {
|
||||
offen: true, lage: d.dataset.lage,
|
||||
abX: Math.round(Math.abs((r.left + r.width / 2) - window.innerWidth / 2)),
|
||||
figuren: figuren.length,
|
||||
/* LIEGT EINE DAVON UEBER DEM BILD? Das waere der Schaden, den
|
||||
man erst sieht, wenn ein Gesicht halb verdeckt ist. */
|
||||
drueber: figuren.filter((e) => {
|
||||
const f = e.getBoundingClientRect();
|
||||
return Math.min(f.right, r.right) - Math.max(f.left, r.left) > 4;
|
||||
}).length,
|
||||
worte: sicht(".bildschau__wort").length,
|
||||
};
|
||||
});
|
||||
ok(hochSchau.lage === "hoch", `ein hohes Bild bekommt die Hochformat-Fassung ("${hochSchau.lage}")`);
|
||||
ok(hochSchau.figuren === 2, `Husky und Hase stehen daneben (${hochSchau.figuren})`);
|
||||
ok(hochSchau.drueber === 0,
|
||||
`und KEINE davon liegt über dem Foto (${hochSchau.drueber})`);
|
||||
ok(hochSchau.worte === 0,
|
||||
`die Schriftzüge bleiben weg — die gehören ins Querformat (${hochSchau.worte})`);
|
||||
ok(hochSchau.abX <= 40, `auch hier steht das Bild mittig (${hochSchau.abX} px daneben)`);
|
||||
await luna.seite.screenshot({ path: "server/pruef-bildschau-hoch.png" });
|
||||
await luna.seite.keyboard.press("Escape");
|
||||
await luna.seite.waitForTimeout(300);
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
3. WAS NICHT HEREINDARF — die eigentliche Prüfung
|
||||
|
||||
|
||||
+129
-15
@@ -313,6 +313,23 @@ console.log("\n=== 3. Der Ruf ans Rudel ===");
|
||||
const zuZahl = (f) => {
|
||||
const t = /^#?([0-9a-f]{6})$/i.exec(String(f).trim());
|
||||
if (t) return [0, 2, 4].map((i) => parseInt(t[1].slice(i, i + 2), 16));
|
||||
/* ==== DIE DRITTE SCHREIBWEISE (25.09.2026) ====================
|
||||
|
||||
Seit die Probe ihre Farbe aus `color-mix(in srgb, …)` bekommt,
|
||||
gibt Chromium sie als `color(srgb 0.676 0.645 0.504)` zurueck --
|
||||
Anteile von 0 bis 1, keine Ganzzahlen, kein Komma. Die zwei
|
||||
Muster darueber trafen das nicht, `zuZahl` lieferte `null`, und
|
||||
die Zeile wurde rot, obwohl die Farbe auf den Bildpunkt genau
|
||||
stimmte (172,5 / 164,5 / 128,5 gegen erwartete 173/165/129).
|
||||
|
||||
Das ist die Sorte Fehlalarm, die teurer ist als ein echter
|
||||
Befund: Man sucht am Aussehen, und der Fehler liegt im
|
||||
Lesegeraet. */
|
||||
const s = /color\(srgb\s+([^)]+)\)/i.exec(String(f));
|
||||
if (s) {
|
||||
return s[1].trim().split(/[\s/]+/).slice(0, 3)
|
||||
.map((x) => Math.round(parseFloat(x) * 255));
|
||||
}
|
||||
const r = /rgba?\(([^)]+)\)/i.exec(String(f));
|
||||
return r ? r[1].split(",").slice(0, 3).map((x) => Math.round(parseFloat(x))) : null;
|
||||
};
|
||||
@@ -375,21 +392,55 @@ console.log("\n=== 3. Der Ruf ans Rudel ===");
|
||||
const schlimmerGrund = grund.map((v) => Math.round(v * 0.92 + 255 * 0.08));
|
||||
const anteil = Number(anteilTreffer[1]) / 100;
|
||||
const hell = zuZahl("#f2f8ff");
|
||||
/* ==== JEDE STUFE AN JEDEM WINKEL (25.09.2026) =================
|
||||
|
||||
Filipe: „ich will dass die leute auch heller und dunkler
|
||||
aussuchen koennen."
|
||||
|
||||
Seit heute gibt es zu jedem der 360 Winkel sieben
|
||||
Helligkeiten -- 2520 Farben statt 360. Nur den Grundton zu
|
||||
pruefen hiesse, sechs Siebtel des Angebots ungeprueft
|
||||
auszuliefern; und die dunkelste Stufe ist genau die, bei der
|
||||
es kippen wuerde (gemessen 4,62 gegen noetige 4,5 -- die
|
||||
naechste Stufe darunter faellt durch).
|
||||
|
||||
DIE MISCHANTEILE WERDEN GELESEN, nicht abgeschrieben: Sie
|
||||
stehen in chat-kreis-stufen.js, und wer sie dort aendert,
|
||||
aendert damit diese Pruefung mit. Eine zweite Liste hier waere
|
||||
die, die beim naechsten Umbau nicht mitzieht. */
|
||||
const { KREIS_STUFEN } = await import("./chat-kreis-stufen.js");
|
||||
const mischen2 = (rgb, misch) => {
|
||||
if (!misch) return rgb;
|
||||
const ziel = misch < 0 ? 0 : 255;
|
||||
const t2 = Math.abs(misch);
|
||||
return rgb.map((v) => Math.round(v * (1 - t2) + ziel * t2));
|
||||
};
|
||||
let schlimmster = Infinity, schlimmsterWinkel = -1, gemessen = 0;
|
||||
let schlimmsteStufe = "";
|
||||
for (let w = 0; w < KREIS.length; w++) {
|
||||
const f = zuZahl(KREIS[w]);
|
||||
if (!f) continue;
|
||||
gemessen++;
|
||||
const name = f.map((v, i) => Math.round(v * anteil + hell[i] * (1 - anteil)));
|
||||
const v2 = kontrast(name, schlimmerGrund) / 4.5;
|
||||
if (v2 < schlimmster) { schlimmster = v2; schlimmsterWinkel = w; }
|
||||
for (const st of KREIS_STUFEN) {
|
||||
gemessen++;
|
||||
const ton = mischen2(f, st.misch);
|
||||
const name = ton.map((v, i) => Math.round(v * anteil + hell[i] * (1 - anteil)));
|
||||
const v2 = kontrast(name, schlimmerGrund) / 4.5;
|
||||
if (v2 < schlimmster) {
|
||||
schlimmster = v2; schlimmsterWinkel = w; schlimmsteStufe = st.wert;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* DIE ANZAHL STEHT IN DER BEDINGUNG. Waere die Tabelle leer,
|
||||
bliebe schlimmster auf Infinity und die Zeile waere gruen,
|
||||
ohne eine einzige Farbe angesehen zu haben. */
|
||||
ok(gemessen === 360 && schlimmster >= 1,
|
||||
`alle ${gemessen} Toene des Rings sind als Name auf der Blase lesbar`
|
||||
+ ` (knappster: Winkel ${schlimmsterWinkel}, Faktor ${schlimmster.toFixed(3)})`);
|
||||
/* DIE ANZAHL STEHT IN DER BEDINGUNG -- und sie ist seit heute
|
||||
360 mal die Zahl der Stufen. Waere die Stufenliste leer,
|
||||
bliebe `gemessen` bei 0 und die Zeile waere gruen, ohne eine
|
||||
einzige Farbe angesehen zu haben. */
|
||||
ok(gemessen === 360 * KREIS_STUFEN.length && schlimmster >= 1,
|
||||
`alle ${gemessen} Farben des Rings (360 Winkel x ${KREIS_STUFEN.length} `
|
||||
+ `Helligkeiten) sind als Name auf der Blase lesbar (knappste: Winkel `
|
||||
+ `${schlimmsterWinkel}, Stufe ${schlimmsteStufe}, Faktor ${schlimmster.toFixed(3)})`);
|
||||
}
|
||||
}
|
||||
if (textRgb && leiseRgb) {
|
||||
@@ -466,21 +517,84 @@ console.log("\n=== 3. Der Ruf ans Rudel ===");
|
||||
|
||||
const stand = await frida.seite.evaluate(() => {
|
||||
const r = document.getElementById("kachelrad-ring");
|
||||
const m = document.getElementById("kachelrad-mitte");
|
||||
const p2 = document.querySelector(".kachelrad__probe");
|
||||
const leiter = document.getElementById("kachelhell-leiter");
|
||||
return { winkel: Number(r?.getAttribute("aria-valuenow")),
|
||||
wort: r?.getAttribute("aria-valuetext") || "",
|
||||
mitte: m ? getComputedStyle(m).backgroundColor : "" };
|
||||
/* NICHT MEHR DER GRUND, SONDERN DIE SCHRIFT. Siehe unten. */
|
||||
probe: p2 ? getComputedStyle(p2).color : "",
|
||||
stufen: leiter ? leiter.children.length : 0,
|
||||
stufeJetzt: leiter?.getAttribute("aria-valuenow") || "" };
|
||||
});
|
||||
ok(Math.abs((stand.winkel || 0) - 90) <= 2,
|
||||
`nach dem Drehen auf drei Uhr steht der Ring bei ${stand.winkel} Grad (erwartet 90)`);
|
||||
|
||||
const erwartet = zuZahl(KREIS[stand.winkel] || "");
|
||||
const gezeigt = zuZahl(stand.mitte);
|
||||
/* ==== DIE PROBE MISST SEIT HEUTE ETWAS ANDERES (25.09.2026) =====
|
||||
|
||||
Hier stand: „die Mitte zeigt genau die Farbe dieses Winkels" --
|
||||
gemessen am HINTERGRUND der Mitte. Das war richtig, solange die
|
||||
Blase in der gewaehlten Farbe stand.
|
||||
|
||||
Seit dem 25.09.2026 ist die Blase fuer alle dunkles Glas, und
|
||||
der gewaehlte Ton ist der NAME darauf. Die Probe zeigte damit
|
||||
eine Darstellung, die es im Chat nicht mehr gibt -- und die
|
||||
Pruefung haette sie festgehalten.
|
||||
|
||||
GEMESSEN WIRD JETZT DIE SCHRIFT der Probe: Sie muss genau die
|
||||
Farbe tragen, die ein Name in der Blase traegt -- der Ton, mit
|
||||
`--namen-anteil` nach #f2f8ff aufgehellt. Das ist dieselbe
|
||||
Rechnung wie in chat.css, und sie wird hier NACHGERECHNET statt
|
||||
abgeschrieben. */
|
||||
const grundTon = zuZahl(KREIS[stand.winkel] || "");
|
||||
const hell = zuZahl("#f2f8ff");
|
||||
const anteil = 0.5; /* --namen-anteil; weiter unten aus dem CSS geprueft */
|
||||
const erwartet = grundTon
|
||||
? grundTon.map((v, i) => Math.round(v * anteil + hell[i] * (1 - anteil)))
|
||||
: null;
|
||||
const gezeigt = zuZahl(stand.probe);
|
||||
ok(!!erwartet && !!gezeigt
|
||||
&& Math.abs(erwartet[0] - gezeigt[0]) <= 1
|
||||
&& Math.abs(erwartet[1] - gezeigt[1]) <= 1
|
||||
&& Math.abs(erwartet[2] - gezeigt[2]) <= 1,
|
||||
`die Mitte zeigt genau die Farbe dieses Winkels (${stand.mitte} gegen ${KREIS[stand.winkel]})`);
|
||||
&& Math.abs(erwartet[0] - gezeigt[0]) <= 2
|
||||
&& Math.abs(erwartet[1] - gezeigt[1]) <= 2
|
||||
&& Math.abs(erwartet[2] - gezeigt[2]) <= 2,
|
||||
`die Probe zeigt den Namen in genau dieser Farbe (${stand.probe} gegen `
|
||||
+ `${erwartet ? "rgb(" + erwartet.join(", ") + ")" : "?"})`);
|
||||
|
||||
/* ==== UND DIE SIEBEN HELLIGKEITEN (25.09.2026) =================
|
||||
|
||||
Filipe: „ich will dass die leute auch heller und dunkler
|
||||
aussuchen koennen … so dass die leute viel krassere
|
||||
moeglichkeiten haben." */
|
||||
ok(stand.stufen === 7,
|
||||
`die Helligkeitsleiter hat sieben Stufen (${stand.stufen})`);
|
||||
ok(stand.stufeJetzt === "4",
|
||||
`und steht von sich aus in der Mitte (${stand.stufeJetzt})`);
|
||||
|
||||
/* EINE STUFE WAEHLEN UND NACHSEHEN, OB SIE ANKOMMT. Ohne das
|
||||
waere „es gibt sieben Felder" ein Haken ueber Zierde: Sieben
|
||||
Kaestchen, die nichts tun, sehen genauso aus. */
|
||||
await frida.seite.click(".kachelhell__feld[data-stufe='s7']");
|
||||
await frida.seite.waitForTimeout(700);
|
||||
const hellStand = await frida.seite.evaluate(() => {
|
||||
const p2 = document.querySelector(".kachelrad__probe");
|
||||
const leiter = document.getElementById("kachelhell-leiter");
|
||||
const an = leiter?.querySelector('[data-an="ja"]');
|
||||
return { probe: p2 ? getComputedStyle(p2).color : "",
|
||||
stufe: leiter?.getAttribute("aria-valuenow") || "",
|
||||
markiert: an?.dataset.stufe || "" };
|
||||
});
|
||||
ok(hellStand.stufe === "7" && hellStand.markiert === "s7",
|
||||
`eine hellere Stufe laesst sich waehlen (${hellStand.stufe}, ${hellStand.markiert})`);
|
||||
const vorher2 = zuZahl(stand.probe), nachher2 = zuZahl(hellStand.probe);
|
||||
ok(!!vorher2 && !!nachher2 && leucht(nachher2) > leucht(vorher2),
|
||||
`und die Probe wird dabei wirklich heller `
|
||||
+ `(${leucht(vorher2).toFixed(3)} auf ${leucht(nachher2).toFixed(3)})`);
|
||||
|
||||
await frida.seite.screenshot({ path: "server/pruef-farbkreis.png" });
|
||||
|
||||
/* Und zurueck in die Mitte, damit die Pruefungen danach mit dem
|
||||
gewohnten Stand weiterarbeiten. */
|
||||
await frida.seite.click(".kachelhell__feld[data-stufe='s4']");
|
||||
await frida.seite.waitForTimeout(500);
|
||||
ok(/\d+ Grad/.test(stand.wort) && stand.wort.length > 8,
|
||||
`und sie wird vorgelesen als "${stand.wort}"`);
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ import {
|
||||
|
||||
import { erwaehnteIds, rudelGerufen, RUDEL_WORT } from "./chat-erwaehnung.js";
|
||||
import { KREIS, winkelAus } from "./chat-kreis.js";
|
||||
import { KREIS_STUFEN, KREIS_MITTE, tonAus } from "./chat-kreis-stufen.js";
|
||||
import { KATALOG, ERLAUBT, VORSCHLAG, FAVORITEN_MAX } from "./workspace-reaktionen.js";
|
||||
|
||||
/* Der Treff-Chat: eigener Raum, eigene Nachtruhe, keine Anrufe.
|
||||
@@ -425,7 +426,20 @@ export function kachelPruefen(wert) {
|
||||
Die alten Schluessel bleiben gueltig. Wer "veilchen" gewaehlt hat,
|
||||
behaelt es -- eine Umstellung, die stillschweigend die Wahl von
|
||||
fuenfzehn Leuten zuruecksetzt, waere kein Fortschritt. */
|
||||
if (winkelAus(wert) !== null) return String(wert);
|
||||
/* SEIT DEM 25.09.2026 GIBT ES ZU JEDEM WINKEL SIEBEN HELLIGKEITEN.
|
||||
|
||||
Filipe: „ich will dass die leute auch heller und dunkler
|
||||
aussuchen koennen."
|
||||
|
||||
Der Schluessel heisst dann "ton-214-s6". Ohne Zusatz gilt die
|
||||
Mitte -- die alten Schluessel bleiben damit Zeichen fuer Zeichen
|
||||
gueltig und bedeuten dieselbe Farbe wie vorher.
|
||||
|
||||
`tonAus` ERSETZT `winkelAus` HIER, laesst es aber stehen: Es wird
|
||||
an anderer Stelle noch gebraucht, und zwei Pruefungen fuer
|
||||
denselben Schluessel waeren eine Gelegenheit, dass eine davon
|
||||
mehr durchlaesst. */
|
||||
if (tonAus(wert) !== null) return String(wert);
|
||||
return CHAT_KACHELN.some((k) => k.wert === String(wert)) ? String(wert) : null;
|
||||
}
|
||||
|
||||
@@ -1031,6 +1045,20 @@ chatRouter.get("/workspace/api/chat/kacheln", (req, res) => {
|
||||
Kacheln -- also tragen sie auch dieselbe Schrift. Einmal
|
||||
gerechnet und mitgeschickt, statt 360-mal dasselbe. */
|
||||
kreis_schrift: schriftFuer(KREIS[0]),
|
||||
/* DIE SIEBEN HELLIGKEITEN (25.09.2026).
|
||||
|
||||
Nicht 2520 fertige Farben, sondern 360 Grundtoene und sieben
|
||||
Mischanteile: Der Browser mischt selbst, und zwar mit genau
|
||||
den Zahlen, die hier stehen. Die ganze Tabelle zu schicken
|
||||
waere 20 kB fuer etwas, das eine Zeile Rechnung ist.
|
||||
|
||||
DIE ZAHLEN KOMMEN TROTZDEM VOM SERVER und stehen nicht im
|
||||
Browser: Sie sind aus der Kontrastrechnung hergeleitet (siehe
|
||||
chat-kreis-stufen.js), und eine zweite Fassung im Browser
|
||||
waere ab der naechsten Messung falsch -- unbemerkt, denn sie
|
||||
lieferte ja weiter „irgendeine Farbe". */
|
||||
kreis_stufen: KREIS_STUFEN,
|
||||
kreis_mitte: KREIS_MITTE,
|
||||
/* Die eigene WAHL, nicht der getragene Ton -- sonst stuende im
|
||||
Waehler ein Haken bei einer Farbe, die niemand gewaehlt hat. */
|
||||
meine: gewaehlteKachelFuer(req.person.id),
|
||||
|
||||
@@ -16,15 +16,15 @@
|
||||
verdeckt. Gefunden hat es pruef-struktur.
|
||||
|
||||
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
|
||||
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
|
||||
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
|
||||
WARUM das Telefon nicht klingelt, ist das besonders unpassend. -->
|
||||
<link rel="manifest" href="/workspace/crew.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<style>
|
||||
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
|
||||
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
|
||||
@@ -126,7 +126,7 @@
|
||||
|
||||
|
||||
|
||||
<script src="assets/js/anruf-probe.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/anruf-probe.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -23,25 +23,25 @@
|
||||
},
|
||||
"icons": [
|
||||
{
|
||||
"src": "/assets/img/app-symbole/workspace-192.png?v=202609250404",
|
||||
"src": "/assets/img/app-symbole/workspace-192.png?v=202609250435",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/workspace-512.png?v=202609250404",
|
||||
"src": "/assets/img/app-symbole/workspace-512.png?v=202609250435",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609250404",
|
||||
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609250435",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609250404",
|
||||
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609250435",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
|
||||
@@ -4261,7 +4261,37 @@
|
||||
}
|
||||
|
||||
/* ---- Die Sprachnachricht in der Blase ------------------------------ */
|
||||
/* DIE SPRACHNACHRICHT BRAUCHT EINE MINDESTBREITE (25.09.2026).
|
||||
|
||||
Gefunden hat das pruef-chat-anhaenge, nicht ein Blick: „breit genug,
|
||||
um den Schieber zu treffen (165 px)" -- verlangt sind 200.
|
||||
|
||||
URSACHE WAR EINE FOLGE, keine Aenderung an dieser Stelle: Die Blase
|
||||
ist so breit wie ihr breitester Inhalt. Solange unter jeder
|
||||
Nachricht fuenf WOERTER standen, war das die Handgriff-Reihe mit
|
||||
ueber 400 px. Seit sie Zeichen sind (123 px), bestimmt das
|
||||
Abspielgeraet selbst die Breite -- und das nimmt sich, was da ist.
|
||||
|
||||
Das ist die Sorte Nebenwirkung, die man nie vorhersieht und immer
|
||||
misst: Eine Reihe kuerzer zu machen hat einen Schieber schmaler
|
||||
gemacht, drei Bildschirme weiter.
|
||||
|
||||
240 UND NICHT 200: Die Zahl in der Pruefung ist die Untergrenze,
|
||||
nicht das Ziel. Wer genau auf die Grenze baut, ist beim naechsten
|
||||
Pixel wieder darunter.
|
||||
|
||||
KEIN `min(240px, 100%)` -- der erste Anlauf stand so da und hat
|
||||
nichts getan. `100%` ist die Breite des Elternteils, und der ist ja
|
||||
gerade der schmale: `min(240, 165)` ist 165. Eine Mindestbreite, die
|
||||
sich am zu Schmalen orientiert, ist keine. Die feste Zahl zwingt die
|
||||
Blase zu wachsen -- genau das ist gemeint.
|
||||
|
||||
AUF DEM HANDY WIRD SIE ZURUECKGENOMMEN (unten in der schmalen
|
||||
Fassung): Dort ist die Blase selbst nur rund 250 px breit, und
|
||||
240 px plus Polsterung passen nicht mehr hinein. */
|
||||
.chat-ton {
|
||||
min-width: 240px;
|
||||
|
||||
display: grid; gap: 6px;
|
||||
/* So breit, dass der Schieber des Abspielgeräts bedienbar ist, und
|
||||
nicht breiter als eine Blase am Handy. */
|
||||
@@ -4533,7 +4563,92 @@
|
||||
pointer-events: none;
|
||||
box-shadow: 0 0 0 1px color-mix(in srgb, #000 45%, transparent);
|
||||
}
|
||||
.kachelrad__probe { opacity: .95; }
|
||||
/* ==== DIE PROBE ZEIGT, WIE ES WIRKLICH AUSSIEHT (25.09.2026) ======
|
||||
|
||||
Hier stand eine gefuellte Flaeche mit heller Schrift darauf. So sah
|
||||
die Blase bis zum 25.09. aus -- seither ist sie fuer alle dunkles
|
||||
Glas, und der gewaehlte Ton ist der NAME darauf. Die Probe zeigte
|
||||
also etwas, das es nicht mehr gibt.
|
||||
|
||||
Jetzt steht hier genau die Rechnung aus der Blase: derselbe
|
||||
Blasengrund, und darauf der Ton, mit Weiss aufgehellt im selben
|
||||
Verhaeltnis (`--namen-anteil`). Wer eine Farbe waehlt, sieht die
|
||||
Schrift, die die anderen sehen werden.
|
||||
|
||||
UND ES IST DER GRUND, WARUM DIE SIEBEN HELLIGKEITEN GEHEN: Eine
|
||||
gefuellte Flaeche muesste Schrift tragen, und bei sehr hellen Toenen
|
||||
schafft das keine der beiden Schriftfarben mehr (gemessen 4,1 statt
|
||||
noetiger 7). Als NAME auf dunklem Grund ist derselbe helle Ton
|
||||
besonders gut lesbar (8,0). */
|
||||
.kachelrad__mitte {
|
||||
background: color-mix(in srgb, var(--blasengrund) 96%, transparent);
|
||||
}
|
||||
.kachelrad__probe {
|
||||
opacity: 1;
|
||||
font-weight: 800;
|
||||
letter-spacing: .04em;
|
||||
color: color-mix(in srgb,
|
||||
var(--probe-ton, var(--akzent)) var(--namen-anteil, 50%), #f2f8ff);
|
||||
}
|
||||
|
||||
/* ==== DIE HELLIGKEITSLEITER (25.09.2026) ==========================
|
||||
|
||||
Filipe: „ich will dass die leute auch heller und dunkler aussuchen
|
||||
koennen … so dass die leute viel krassere moeglichkeiten haben."
|
||||
|
||||
SIEBEN FELDER IN IHRER ECHTEN FARBE, nicht sieben graue Kaestchen
|
||||
mit Beschriftung: Man waehlt eine Farbe, also soll man Farben sehen.
|
||||
Sie faerben sich beim Drehen am Ring mit.
|
||||
|
||||
EINE LEISTE UND KEIN ZWEITER KREIS: Farbton laeuft rund (359 grenzt
|
||||
an 0), Helligkeit nicht -- sie hat ein dunkles und ein helles Ende.
|
||||
Eine runde Form fuer etwas, das gerade verlaeuft, waere eine Form,
|
||||
die luegt. */
|
||||
.kachelhell {
|
||||
margin: 14px auto 0;
|
||||
max-width: 320px;
|
||||
display: grid; gap: 7px;
|
||||
}
|
||||
.kachelhell__schild {
|
||||
font-size: .74rem; font-weight: 700;
|
||||
letter-spacing: .1em; text-transform: uppercase;
|
||||
color: var(--text-still);
|
||||
}
|
||||
.kachelhell__leiter {
|
||||
display: grid; grid-template-columns: repeat(7, 1fr);
|
||||
gap: 4px;
|
||||
padding: 5px;
|
||||
border-radius: 14px;
|
||||
background: rgba(0, 0, 0, .3);
|
||||
box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, .9);
|
||||
cursor: pointer;
|
||||
}
|
||||
.kachelhell__leiter:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
|
||||
/* 44 px hoch: Hier tippt man mit dem Daumen, und sieben Felder
|
||||
nebeneinander sind ohnehin schon schmal. */
|
||||
.kachelhell__feld {
|
||||
height: 44px;
|
||||
border-radius: 9px;
|
||||
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
|
||||
transition: transform .14s ease, box-shadow .14s ease;
|
||||
}
|
||||
/* DIE WAHL STEHT HOEHER, sie ist nicht nur umrandet: Bei sieben
|
||||
benachbarten Farbfeldern ist ein Rahmen mehr die achte Farbe. Ein
|
||||
angehobenes Feld mit Lichtkante liest sich als „das hier". */
|
||||
.kachelhell__feld[data-an="ja"] {
|
||||
transform: translateY(-3px);
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(255, 255, 255, .5),
|
||||
0 0 0 2px rgba(255, 255, 255, .85),
|
||||
0 8px 16px -8px rgba(0, 0, 0, .9);
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.kachelhell__feld { transition: none; }
|
||||
}
|
||||
@media (forced-colors: active) {
|
||||
.kachelhell__feld { border: 1px solid CanvasText; }
|
||||
.kachelhell__feld[data-an="ja"] { border: 3px solid Highlight; }
|
||||
}
|
||||
|
||||
/* Ein Wechsel der Farbe soll nicht springen, aber auch nicht
|
||||
nachlaufen -- 90 ms sind gerade so viel, dass es weich wirkt. */
|
||||
@@ -5243,6 +5358,10 @@
|
||||
-webkit-mask-size: 15px 15px;
|
||||
mask-size: 15px 15px;
|
||||
}
|
||||
/* Die Mindestbreite der Sprachnachricht (240 px) gilt am Rechner.
|
||||
Hier ist die Blase selbst nur rund 250 px breit -- 240 plus
|
||||
Polsterung passen nicht mehr hinein und wuerden sie aufschieben. */
|
||||
.chat-ton { min-width: 0; width: 100%; }
|
||||
/* Die Uhrzeit gibt ihr Schild ab: Auf dem Handy zaehlt jede
|
||||
Polsterung, und die Trennung zwischen Angabe und Knopf macht
|
||||
hier ohnehin schon die Reihenfolge. */
|
||||
@@ -5266,3 +5385,157 @@
|
||||
Medienabfrage allein erhoeht die Spezifitaet nicht. */
|
||||
.chat__kopf .chat__kopf-zeichen { display: none; }
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
=====================================================================
|
||||
DIE BILDSCHAU (25.09.2026)
|
||||
=====================================================================
|
||||
=====================================================================
|
||||
|
||||
Filipe: „wenn man bilder aufmacht, will ich dass die in der mitte
|
||||
sind. beim hochformat soll links der husky sein und rechts der hase
|
||||
und beim querformat soll oben dogfather und unten team dogi stehen
|
||||
da wo platz ist. … ich will nicht dahin geschmissen sondern was
|
||||
richtig geiles mit einem geilen hintergrund."
|
||||
|
||||
DER GRUND IST DREI SCHICHTEN, nicht eine Farbe: ein tiefer Verlauf,
|
||||
drei weiche Lichter (violett, tuerkis, ein warmer Rest) und ein
|
||||
Schleier ganz aussen. Zusammen unter zehn Prozent Deckung -- ein
|
||||
Foto soll darauf liegen, nicht dagegen ankaempfen.
|
||||
|
||||
KEIN REINES SCHWARZ. Genau das zeigt der Browser von sich aus, und
|
||||
genau daran hat Filipe es gemerkt. Schwarz ist keine Gestaltung,
|
||||
sondern ihr Fehlen.
|
||||
===================================================================== */
|
||||
.bildschau {
|
||||
width: 100vw; max-width: 100vw;
|
||||
height: 100dvh; max-height: 100dvh;
|
||||
padding: 0; margin: 0; border: 0;
|
||||
background: none;
|
||||
overflow: hidden;
|
||||
color: var(--text, #e8f1fa);
|
||||
}
|
||||
.bildschau::backdrop { background: rgba(3, 4, 9, .86); backdrop-filter: blur(6px); }
|
||||
|
||||
.bildschau__grund {
|
||||
position: absolute; inset: 0; z-index: 0;
|
||||
background:
|
||||
radial-gradient(70% 55% at 18% 8%, rgba(122, 92, 255, .16), transparent 66%),
|
||||
radial-gradient(62% 52% at 84% 88%, rgba(38, 200, 196, .13), transparent 68%),
|
||||
radial-gradient(48% 40% at 60% 46%, rgba(255, 176, 92, .06), transparent 70%),
|
||||
linear-gradient(168deg, #0a0b14 0%, #070811 55%, #05060c 100%);
|
||||
}
|
||||
/* Ein Schleier von aussen nach innen -- er zieht den Blick in die
|
||||
Mitte, ohne dass man ihn als Rahmen bemerkt. */
|
||||
.bildschau__grund::after {
|
||||
content: ""; position: absolute; inset: 0;
|
||||
background: radial-gradient(120% 95% at 50% 50%, transparent 52%, rgba(0, 0, 0, .55) 100%);
|
||||
}
|
||||
|
||||
/* ---- Die Buehne: das Bild sitzt in der MITTE ----------------------- */
|
||||
.bildschau__buehne {
|
||||
position: absolute; inset: 0; z-index: 2;
|
||||
display: grid; place-items: center;
|
||||
padding: 72px 4vw 56px;
|
||||
}
|
||||
.bildschau__bild {
|
||||
max-width: 92vw; max-height: 82dvh;
|
||||
width: auto; height: auto;
|
||||
border-radius: 14px;
|
||||
/* Ein feiner heller Saum trennt das Foto vom Grund, auch wenn seine
|
||||
Raender selbst dunkel sind. Ohne ihn franst ein dunkles Foto in
|
||||
den Hintergrund aus, und man sieht nicht mehr, wo es aufhoert. */
|
||||
box-shadow:
|
||||
0 0 0 1px rgba(255, 255, 255, .1),
|
||||
0 40px 90px -40px rgba(0, 0, 0, .95),
|
||||
0 0 90px -40px rgba(122, 92, 255, .5);
|
||||
}
|
||||
|
||||
/* ---- Die Begleiter ------------------------------------------------- */
|
||||
/* Sie liegen HINTER dem Bild (z-index 1 gegen 2) -- ein Husky, der
|
||||
ueber einem Foto liegt, waere keine Zierde, sondern ein Hindernis. */
|
||||
.bildschau__figur {
|
||||
position: absolute; bottom: 0; z-index: 1;
|
||||
height: min(78dvh, 720px);
|
||||
width: auto;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
transition: opacity .32s ease;
|
||||
}
|
||||
.bildschau__figur--links { left: 0; }
|
||||
/* NICHT SPIEGELN. Der erste Anlauf drehte den Hasen um, damit beide
|
||||
„nach innen" schauen -- ein alter Reflex aus dem Plakatsatz. Auf dem
|
||||
Probebild stand danach „Hasi Dog" seitenverkehrt auf seinem Hoodie.
|
||||
Beide Figuren sehen ohnehin nach vorn; es gibt nichts zu spiegeln,
|
||||
und Schrift im Bild spiegelt man nie. */
|
||||
.bildschau__figur--rechts { right: 0; }
|
||||
.bildschau[data-lage="hoch"] .bildschau__figur { opacity: .92; }
|
||||
|
||||
/* ---- Die zwei Schriftzuege ----------------------------------------- */
|
||||
.bildschau__wort {
|
||||
position: absolute; left: 0; right: 0; z-index: 1;
|
||||
display: flex; align-items: center; justify-content: center; gap: 14px;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
transition: opacity .32s ease;
|
||||
}
|
||||
.bildschau__wort--oben { top: 18px; }
|
||||
.bildschau__wort--unten { bottom: 16px; }
|
||||
.bildschau[data-lage="quer"] .bildschau__wort { opacity: 1; }
|
||||
.bildschau__zeichen { width: 34px; height: 34px; filter: invert(1) opacity(.72); }
|
||||
/* GESPERRT UND GROSS: Ein Schriftzug ist kein Satz. Die Sperrung macht
|
||||
aus zwei Woertern ein Zeichen -- man liest es nicht, man erkennt es. */
|
||||
.bildschau__wort-text {
|
||||
font-size: clamp(1.1rem, 2.6vw, 1.9rem);
|
||||
font-weight: 800;
|
||||
letter-spacing: .34em;
|
||||
text-transform: uppercase;
|
||||
color: rgba(232, 241, 250, .5);
|
||||
text-shadow: 0 0 26px rgba(122, 92, 255, .45);
|
||||
}
|
||||
.bildschau__wort--unten .bildschau__wort-text {
|
||||
font-size: clamp(.9rem, 2vw, 1.4rem);
|
||||
letter-spacing: .42em;
|
||||
color: rgba(232, 241, 250, .34);
|
||||
}
|
||||
|
||||
/* ---- Die Leiste ---------------------------------------------------- */
|
||||
.bildschau__leiste {
|
||||
position: absolute; top: 0; left: 0; right: 0; z-index: 3;
|
||||
display: flex; align-items: center; gap: 10px;
|
||||
padding: 12px 14px;
|
||||
background: linear-gradient(180deg, rgba(4, 5, 11, .78), transparent);
|
||||
}
|
||||
.bildschau__name {
|
||||
flex: 1; min-width: 0;
|
||||
font-size: .86rem; color: rgba(232, 241, 250, .7);
|
||||
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
||||
}
|
||||
/* 44 px hoch, auch am Rechner: Der Schliessen-Knopf ist der einzige
|
||||
Weg heraus, den man SIEHT (Escape kennt nicht jeder). */
|
||||
.bildschau__knopf {
|
||||
flex: none;
|
||||
min-height: 44px; padding: 0 14px;
|
||||
display: inline-flex; align-items: center;
|
||||
border: 1px solid rgba(255, 255, 255, .12);
|
||||
border-radius: 999px;
|
||||
background: rgba(255, 255, 255, .06);
|
||||
color: var(--text, #e8f1fa);
|
||||
font: inherit; font-size: .84rem; font-weight: 600;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
.bildschau__knopf:hover { background: rgba(255, 255, 255, .13); }
|
||||
.bildschau__knopf:focus-visible { outline: 2px solid #b9a7ff; outline-offset: 2px; }
|
||||
.bildschau__zu { min-width: 44px; justify-content: center; padding: 0; font-size: 1rem; }
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.bildschau__figur, .bildschau__wort { transition: none; }
|
||||
}
|
||||
/* Auf einem Telefon fuellt ein Foto den Schirm -- dort gibt es keinen
|
||||
Platz fuer Begleiter, und die Schau sagt das ueber `data-lage`
|
||||
ohnehin selbst. Hier bleibt nur die Buehne enger. */
|
||||
@media (max-width: 620px) {
|
||||
.bildschau__buehne { padding: 64px 12px 24px; }
|
||||
.bildschau__bild { max-width: 96vw; max-height: 78dvh; }
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
@@ -0,0 +1,234 @@
|
||||
/* =====================================================================
|
||||
DIE BILDSCHAU (25.09.2026)
|
||||
=====================================================================
|
||||
|
||||
Filipe: „wenn man bilder aufmacht, will ich dass die in der mitte
|
||||
sind. beim hochformat soll links der husky sein und rechts der hase
|
||||
und beim querformat soll oben dogfather und unten team dogi stehen
|
||||
da wo platz ist. es soll richtig geil gemacht werden alles … ich
|
||||
will nicht dahin geschmissen sondern was richtig geiles mit einem
|
||||
geilen hintergrund."
|
||||
|
||||
---------------------------------------------------------------------
|
||||
WAS VORHER PASSIERTE
|
||||
|
||||
Ein Klick auf ein Foto oeffnete die Datei selbst in einem neuen Tab.
|
||||
Was man dann sah, war nicht unsere Seite, sondern die eingebaute
|
||||
Bildanzeige des Browsers: schwarzer Grund, Bild oben links in der
|
||||
Ecke, Dateiname in der Titelleiste. Auf Filipes Bildschirmfoto nimmt
|
||||
das Foto die linke Haelfte ein, rechts sind 1200 px Schwarz.
|
||||
|
||||
Das ist kein Fehler im Browser -- er zeigt eine Datei, und eine
|
||||
Datei hat keine Gestaltung. Wer Gestaltung will, muss eine SEITE
|
||||
zeigen.
|
||||
|
||||
---------------------------------------------------------------------
|
||||
WARUM EINE SCHAU IN DER SEITE UND KEIN ZWEITER TAB
|
||||
|
||||
Ein zweiter Tab braucht eine eigene Seite, eine eigene Anmeldung und
|
||||
einen eigenen Weg zurueck. Die Schau liegt UEBER dem Chat: Man ist
|
||||
mit Escape wieder da, wo man war, und das Gespraech laeuft im
|
||||
Hintergrund weiter.
|
||||
|
||||
DER WEG IN DEN TAB BLEIBT TROTZDEM. Das Foto haengt weiterhin an
|
||||
einem echten Verweis mit `target="_blank"` -- mittlere Maustaste,
|
||||
„In neuem Tab oeffnen" und Herunterladen funktionieren wie vorher.
|
||||
Abgefangen wird nur der GEWOEHNLICHE Klick. Ein Verweis, der kein
|
||||
Verweis mehr ist, nimmt Leuten Wege weg, die sie seit Jahren kennen.
|
||||
|
||||
---------------------------------------------------------------------
|
||||
WARUM `<dialog>` UND KEIN EIGENES DIV
|
||||
|
||||
`showModal()` bringt drei Dinge mit, die man sonst von Hand baut und
|
||||
dabei vergisst: Escape schliesst, der Tastaturfokus bleibt drin, und
|
||||
alles dahinter ist fuer Vorleseprogramme stumm. Drei eigene
|
||||
Loesungen waeren drei Gelegenheiten fuer einen Fehler.
|
||||
|
||||
---------------------------------------------------------------------
|
||||
DIE BEGLEITER
|
||||
|
||||
HOCHFORMAT: Husky links, Hase rechts. Dort ist der Platz -- ein
|
||||
hohes Foto laesst links und rechts je ein Viertel des Bildschirms
|
||||
frei.
|
||||
|
||||
QUERFORMAT: „DogFather" oben, „Team Dogi" unten. Dort ist der Platz
|
||||
-- ein breites Foto laesst oben und unten Streifen frei.
|
||||
|
||||
SIE ERSCHEINEN NUR, WENN WIRKLICH PLATZ IST. Gemessen wird nicht die
|
||||
Fensterbreite, sondern der Rest neben dem Bild: Ein hohes Foto auf
|
||||
einem Telefon fuellt den Schirm, und ein Husky, der darueberliegt,
|
||||
waere keine Zierde, sondern ein Hindernis.
|
||||
|
||||
SIE SIND LEISE. `aria-hidden` -- ein Vorleseprogramm soll nicht
|
||||
„Grafik Husky" sagen, wenn jemand ein Foto ansehen will. Und sie
|
||||
liegen HINTER dem Bild, nie darauf.
|
||||
===================================================================== */
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
var schau = null; // das <dialog>, einmal gebaut und wiederverwendet
|
||||
var teile = null; // { bild, name, tab, husky, hase, oben, unten }
|
||||
var zurueck = null; // wohin der Fokus nach dem Schliessen gehoert
|
||||
|
||||
function el(art, klasse, text) {
|
||||
var e = document.createElement(art);
|
||||
if (klasse) e.className = klasse;
|
||||
if (text != null) e.textContent = text;
|
||||
return e;
|
||||
}
|
||||
|
||||
function bauen() {
|
||||
if (schau) return;
|
||||
schau = document.createElement('dialog');
|
||||
schau.className = 'bildschau';
|
||||
schau.setAttribute('aria-label', 'Bild ansehen');
|
||||
|
||||
/* DER HINTERGRUND IST EIN EIGENES STUECK und nicht der Grund des
|
||||
Dialogs: Er soll sich unabhaengig vom Inhalt bewegen duerfen
|
||||
(Verlauf, Schleier, Koernung), ohne dass der Inhalt etwas davon
|
||||
erbt. */
|
||||
var grund = el('div', 'bildschau__grund');
|
||||
grund.setAttribute('aria-hidden', 'true');
|
||||
schau.appendChild(grund);
|
||||
|
||||
/* Die Begleiter liegen HINTER dem Bild -- eigene Ebene, damit das
|
||||
Bild in jedem Fall obenauf ist. */
|
||||
var husky = el('img', 'bildschau__figur bildschau__figur--links');
|
||||
husky.src = 'assets/img/schau-husky.webp';
|
||||
husky.alt = '';
|
||||
husky.setAttribute('aria-hidden', 'true');
|
||||
husky.loading = 'lazy';
|
||||
husky.decoding = 'async';
|
||||
var hase = el('img', 'bildschau__figur bildschau__figur--rechts');
|
||||
hase.src = 'assets/img/schau-hase.webp';
|
||||
hase.alt = '';
|
||||
hase.setAttribute('aria-hidden', 'true');
|
||||
hase.loading = 'lazy';
|
||||
hase.decoding = 'async';
|
||||
schau.appendChild(husky);
|
||||
schau.appendChild(hase);
|
||||
|
||||
/* Die zwei Schriftzuege fuers Querformat. */
|
||||
var oben = el('div', 'bildschau__wort bildschau__wort--oben');
|
||||
oben.setAttribute('aria-hidden', 'true');
|
||||
var zeichen = el('img', 'bildschau__zeichen');
|
||||
zeichen.src = 'assets/img/marke-husky.webp';
|
||||
zeichen.alt = '';
|
||||
oben.appendChild(zeichen);
|
||||
oben.appendChild(el('span', 'bildschau__wort-text', 'DogFather'));
|
||||
var unten = el('div', 'bildschau__wort bildschau__wort--unten');
|
||||
unten.setAttribute('aria-hidden', 'true');
|
||||
unten.appendChild(el('span', 'bildschau__wort-text', 'Team Dogi'));
|
||||
schau.appendChild(oben);
|
||||
schau.appendChild(unten);
|
||||
|
||||
var buehne = el('div', 'bildschau__buehne');
|
||||
var bild = el('img', 'bildschau__bild');
|
||||
bild.alt = '';
|
||||
buehne.appendChild(bild);
|
||||
schau.appendChild(buehne);
|
||||
|
||||
/* Die Leiste steht OBEN und nicht ueber dem Bild: Sie soll
|
||||
erreichbar sein, ohne etwas zu verdecken. */
|
||||
var leiste = el('div', 'bildschau__leiste');
|
||||
var name = el('span', 'bildschau__name');
|
||||
var tab = el('a', 'bildschau__knopf', 'Im Tab öffnen');
|
||||
tab.target = '_blank';
|
||||
tab.rel = 'noopener noreferrer';
|
||||
var zu = el('button', 'bildschau__knopf bildschau__zu');
|
||||
zu.type = 'button';
|
||||
zu.setAttribute('aria-label', 'Bild schließen');
|
||||
zu.title = 'Schließen (Esc)';
|
||||
zu.textContent = '✕';
|
||||
zu.addEventListener('click', function () { schau.close(); });
|
||||
leiste.appendChild(name);
|
||||
leiste.appendChild(tab);
|
||||
leiste.appendChild(zu);
|
||||
schau.appendChild(leiste);
|
||||
|
||||
/* EIN KLICK NEBEN DAS BILD SCHLIESST. Das erwartet jeder, der
|
||||
schon einmal ein Foto angesehen hat. Ein Klick AUF das Bild
|
||||
nicht -- sonst schliesst es sich, waehrend man hineinzoomt. */
|
||||
schau.addEventListener('click', function (e) {
|
||||
if (e.target === schau || e.target === grund || e.target === buehne) schau.close();
|
||||
});
|
||||
schau.addEventListener('close', function () {
|
||||
/* Die Quelle loesen: Ein grosses Foto im Speicher zu halten,
|
||||
nachdem niemand es mehr ansieht, ist Last ohne Zweck. */
|
||||
teile.bild.removeAttribute('src');
|
||||
if (zurueck && document.contains(zurueck)) {
|
||||
try { zurueck.focus(); } catch (f) { /* egal */ }
|
||||
}
|
||||
zurueck = null;
|
||||
});
|
||||
|
||||
document.body.appendChild(schau);
|
||||
teile = { bild: bild, name: name, tab: tab, husky: husky, hase: hase,
|
||||
oben: oben, unten: unten };
|
||||
}
|
||||
|
||||
/** Hoch, quer oder fast quadratisch -- und ist ueberhaupt Platz?
|
||||
*
|
||||
* GEMESSEN WIRD DER REST NEBEN DEM BILD, nicht die Fensterbreite.
|
||||
* Eine Schwelle wie „ab 1100 px zeigen" waere eine Rechnung von
|
||||
* gestern: Sie stimmt fuer ein 3:4-Foto und ist bei einem 9:16-Foto
|
||||
* auf demselben Schirm falsch. Dieses Haus ist an festen Breiten
|
||||
* schon dreimal hereingefallen.
|
||||
*/
|
||||
function lageBestimmen(b, h) {
|
||||
if (!(b > 0 && h > 0)) return 'keine';
|
||||
var fb = window.innerWidth, fh = window.innerHeight;
|
||||
/* So gross wird das Bild: es passt in 92 % Breite und 82 % Hoehe. */
|
||||
var masz = Math.min(fb * 0.92 / b, (fh * 0.82) / h);
|
||||
var zb = b * masz, zh = h * masz;
|
||||
var restSeite = (fb - zb) / 2;
|
||||
var restOben = (fh - zh) / 2;
|
||||
|
||||
if (h > b * 1.05) {
|
||||
/* Eine Figur braucht rund 170 px, damit sie eine Figur ist und
|
||||
kein Streifen. Weniger, und sie steht besser gar nicht da. */
|
||||
return restSeite >= 170 ? 'hoch' : 'keine';
|
||||
}
|
||||
if (b > h * 1.05) {
|
||||
/* Ein Schriftzug braucht rund 70 px Luft -- darunter klebt er am
|
||||
Bildrand und sieht aus wie ein Versehen. */
|
||||
return restOben >= 70 ? 'quer' : 'keine';
|
||||
}
|
||||
return restOben >= 70 ? 'quer' : 'keine';
|
||||
}
|
||||
|
||||
function lageSetzen() {
|
||||
if (!schau || !schau.open) return;
|
||||
var b = teile.bild.naturalWidth, h = teile.bild.naturalHeight;
|
||||
schau.dataset.lage = lageBestimmen(b, h);
|
||||
}
|
||||
|
||||
/** Ein Bild gross ansehen.
|
||||
* @param {{weg:string,name:string}} a das Bild
|
||||
* @param {Element} [woher] wohin der Fokus zurueckgeht
|
||||
*/
|
||||
function zeigen(a, woher) {
|
||||
if (!a || !a.weg) return;
|
||||
bauen();
|
||||
zurueck = woher || document.activeElement;
|
||||
teile.bild.src = a.weg;
|
||||
teile.bild.alt = a.name || 'Foto';
|
||||
teile.name.textContent = a.name || '';
|
||||
teile.tab.href = a.weg;
|
||||
schau.dataset.lage = 'keine';
|
||||
/* ERST WENN DAS BILD DA IST, steht sein Format fest. Vorher sind
|
||||
naturalWidth und naturalHeight null -- und „null zu null" waere
|
||||
weder hoch noch quer. Liegt es schon im Zwischenspeicher, ist
|
||||
`complete` sofort wahr und die Zeile darunter greift. */
|
||||
teile.bild.onload = lageSetzen;
|
||||
if (teile.bild.complete) lageSetzen();
|
||||
if (!schau.open) schau.showModal();
|
||||
}
|
||||
|
||||
/* Dreht jemand das Telefon oder zieht das Fenster kleiner, aendert
|
||||
sich der Platz -- und damit die Antwort auf „passt eine Figur
|
||||
daneben". */
|
||||
window.addEventListener('resize', lageSetzen);
|
||||
|
||||
window.Bildschau = { zeigen: zeigen };
|
||||
})();
|
||||
+225
-8
@@ -57,6 +57,31 @@
|
||||
/* Die 360 Farben des Rings, Index = Winkel. Kommt vom Server; hier
|
||||
wird nichts gerechnet (Begruendung steht an der Route). */
|
||||
let kreisToene = [];
|
||||
/* Die sieben Helligkeiten und welche davon die Mitte ist. Beides
|
||||
kommt vom Server (siehe chat-kreis-stufen.js). */
|
||||
let kreisStufen = [{ wert: 's4', misch: 0, name: 'normal' }];
|
||||
let kreisMitte = 's4';
|
||||
|
||||
/** Einen Grundton heller oder dunkler mischen.
|
||||
*
|
||||
* `misch` ist negativ fuer dunkler (Richtung Schwarz) und positiv
|
||||
* fuer heller (Richtung Weiss) -- dieselbe Rechnung wie
|
||||
* `color-mix(in srgb, …)` und wie `tonFarbe()` im Server. Sie steht
|
||||
* hier ein zweites Mal, und das ist Absicht: Die ZAHLEN kommen vom
|
||||
* Server, nur das Mischen selbst passiert im Browser. Eine Farbe,
|
||||
* die 2520-mal ueber die Leitung geht, waere teurer als drei Zeilen
|
||||
* Rechnung.
|
||||
*/
|
||||
function tonMischen(grund, misch) {
|
||||
const s = String(grund).replace('#', '');
|
||||
if (s.length !== 6) return grund;
|
||||
const teile = [0, 2, 4].map((i) => parseInt(s.slice(i, i + 2), 16));
|
||||
const ziel = misch < 0 ? 0 : 255;
|
||||
const t = Math.abs(misch);
|
||||
return '#' + teile
|
||||
.map((v) => Math.round(v * (1 - t) + ziel * t).toString(16).padStart(2, '0'))
|
||||
.join('');
|
||||
}
|
||||
let meineKachel = null;
|
||||
let autoKachel = null;
|
||||
|
||||
@@ -86,9 +111,39 @@
|
||||
Eine Sonderbehandlung an zehn Stellen waere neun Gelegenheiten
|
||||
gewesen, eine davon zu vergessen. */
|
||||
kreisToene = Array.isArray(d.kreis) ? d.kreis : [];
|
||||
/* ==== DIE SIEBEN HELLIGKEITEN (25.09.2026) ==================
|
||||
|
||||
Filipe: „ich will dass die leute auch heller und dunkler
|
||||
aussuchen koennen."
|
||||
|
||||
NICHT 2520 FERTIGE FARBEN, sondern 360 Grundtoene und sieben
|
||||
Mischanteile -- die ganze Tabelle waere 20 kB fuer etwas, das
|
||||
eine Zeile Rechnung ist.
|
||||
|
||||
DIE ZAHLEN KOMMEN VOM SERVER und stehen nicht hier: Sie sind
|
||||
aus der Kontrastrechnung hergeleitet (chat-kreis-stufen.js),
|
||||
und eine zweite Fassung im Browser waere ab der naechsten
|
||||
Messung falsch -- unbemerkt, denn sie lieferte ja weiter
|
||||
„irgendeine Farbe". Kommt nichts, bleibt es bei der einen
|
||||
Mitte: der Kreis von gestern. */
|
||||
kreisStufen = Array.isArray(d.kreis_stufen) && d.kreis_stufen.length
|
||||
? d.kreis_stufen : [{ wert: 's4', misch: 0, name: 'normal' }];
|
||||
kreisMitte = d.kreis_mitte || 's4';
|
||||
kreisToene.forEach((farbe, winkel) => {
|
||||
KACHEL_FARBE['ton-' + winkel] = farbe;
|
||||
if (d.kreis_schrift) KACHEL_SCHRIFT['ton-' + winkel] = d.kreis_schrift;
|
||||
/* Jede Stufe bekommt ihren eigenen Schluessel in derselben
|
||||
Tabelle. Damit funktionieren ALLE Stellen, die eine Farbe
|
||||
nachschlagen, unveraendert weiter -- dieselbe Ueberlegung
|
||||
wie am 23.09., als der Kreis dazukam. */
|
||||
for (const s of kreisStufen) {
|
||||
if (!s.misch) continue;
|
||||
KACHEL_FARBE['ton-' + winkel + '-' + s.wert] = tonMischen(farbe, s.misch);
|
||||
}
|
||||
/* Und der Schluessel MIT der Mitte zeigt auf dieselbe Farbe
|
||||
wie der ohne -- sonst waere „ton-214" und „ton-214-s4"
|
||||
zweierlei, und beide kaemen vor. */
|
||||
KACHEL_FARBE['ton-' + winkel + '-' + kreisMitte] = farbe;
|
||||
});
|
||||
kachelKnopfZeigen();
|
||||
} catch { /* ohne die Liste bleibt alles beim Standard -- kein Grund
|
||||
@@ -300,8 +355,22 @@
|
||||
zwischen zwei geprueften Werten liegt.
|
||||
===================================================================== */
|
||||
let radWinkel = 0;
|
||||
/* Welche der sieben Helligkeiten gerade gilt. Der Ring bestimmt den
|
||||
Farbton, die Leiter die Helligkeit -- zwei Achsen derselben
|
||||
Farbe. */
|
||||
let radStufe = 's4';
|
||||
let radUhr = null;
|
||||
|
||||
/** Der Schluessel aus beidem. Die Mitte bekommt KEINEN Zusatz:
|
||||
* „ton-214" ist seit dem 23.09. der gueltige Schluessel, und wer
|
||||
* ihn traegt, soll nach diesem Umbau nicht ploetzlich einen anderen
|
||||
* in der Datenbank stehen haben. */
|
||||
function radSchluessel() {
|
||||
return radStufe === kreisMitte
|
||||
? 'ton-' + radWinkel
|
||||
: 'ton-' + radWinkel + '-' + radStufe;
|
||||
}
|
||||
|
||||
function radBauen() {
|
||||
const ring = $('kachelrad-ring');
|
||||
const rad = $('kachelrad');
|
||||
@@ -318,8 +387,13 @@
|
||||
Wer Babyblau traegt, hat keinen Winkel -- dann zeigt der Griff
|
||||
auf den naechstgelegenen, ohne dass etwas umgestellt wird. */
|
||||
const jetzt = KACHEL_FARBE[meineKachel] || KACHEL_FARBE[autoKachel] || null;
|
||||
const t = /^ton-(\d{1,3})$/.exec(String(meineKachel || ''));
|
||||
/* Der Schluessel darf seit dem 25.09.2026 eine Stufe tragen
|
||||
("ton-214-s6"). Ohne Zusatz gilt die Mitte -- so wie der Server
|
||||
es auch liest. */
|
||||
const t = /^ton-(\d{1,3})(?:-(s[1-7]))?$/.exec(String(meineKachel || ''));
|
||||
radWinkel = t ? Number(t[1]) : (jetzt ? naechsterWinkel(jetzt).winkel : 0);
|
||||
radStufe = (t && t[2]) || kreisMitte;
|
||||
leiterBauen();
|
||||
radZeigen(radWinkel, { nurAnzeige: true });
|
||||
}
|
||||
|
||||
@@ -333,24 +407,138 @@
|
||||
ring.setAttribute('aria-valuenow', String(w));
|
||||
/* EINE ZAHL IN GRAD SAGT NIEMANDEM ETWAS. Vorgelesen wird der
|
||||
Farbname, den ein Mensch benutzt -- "Blaugruen, 190 Grad". */
|
||||
ring.setAttribute('aria-valuetext', farbwort(w) + ', ' + w + ' Grad');
|
||||
/* DIE HELLIGKEIT GEHOERT IN DEN VORLESETEXT. Ohne sie saegte eine
|
||||
Sprachausgabe bei allen sieben Stufen dasselbe -- und man haette
|
||||
kein Mittel, die Wahl zu hoeren. */
|
||||
ring.setAttribute('aria-valuetext',
|
||||
farbwort(w) + ', ' + w + ' Grad, ' + stufenName(radStufe));
|
||||
if (mitte) {
|
||||
const farbe = kreisToene[w];
|
||||
mitte.style.background = farbe || '';
|
||||
const s = KACHEL_SCHRIFT['ton-' + w];
|
||||
mitte.style.color = (s && s.text) || '';
|
||||
/* ==== DIE PROBE ZEIGT, WIE ES WIRKLICH AUSSIEHT (25.09.2026)
|
||||
|
||||
Hier stand eine gefuellte Flaeche in der gewaehlten Farbe mit
|
||||
heller Schrift darauf. So sah die Blase bis zum 25.09. aus --
|
||||
seither ist sie fuer alle dunkles Glas, und der gewaehlte Ton
|
||||
ist der NAME darauf.
|
||||
|
||||
Die Probe zeigte also etwas, das es nicht mehr gibt. Jetzt
|
||||
zeigt sie genau die Rechnung aus chat.css: der Ton, mit Weiss
|
||||
aufgehellt (`--namen-anteil`), auf dem Blasengrund. Wer hier
|
||||
eine Farbe waehlt, sieht die Schrift, die die anderen im Chat
|
||||
sehen werden.
|
||||
|
||||
NEBENWIRKUNG, UND SIE IST DER GRUND, WARUM DIE HELLIGKEITEN
|
||||
UEBERHAUPT GEHEN: Eine gefuellte Flaeche muesste Schrift
|
||||
tragen -- und bei sehr hellen Toenen schafft das keine der
|
||||
beiden Schriftfarben mehr (gemessen: 4,1 statt noetiger 7).
|
||||
Als NAME auf dunklem Grund ist derselbe helle Ton dagegen
|
||||
besonders gut lesbar (8,0). Die neue Probe ist damit nicht nur
|
||||
ehrlicher, sie macht die sieben Stufen erst moeglich. */
|
||||
const farbe = KACHEL_FARBE[radSchluessel()] || kreisToene[w];
|
||||
mitte.style.background = '';
|
||||
mitte.style.setProperty('--probe-ton', farbe || '');
|
||||
}
|
||||
if (!nurAnzeige) {
|
||||
/* Die eigenen Blasen im Verlauf faerben sich mit -- man
|
||||
entscheidet sich ja nicht fuer einen Fleck, sondern dafuer,
|
||||
wie die eigenen Nachrichten aussehen. */
|
||||
meineKachel = 'ton-' + w;
|
||||
meineKachel = radSchluessel();
|
||||
/* DIE LEITER FAERBT MIT. Ohne diese Zeile zeigten die sieben
|
||||
Felder die Helligkeiten des Tons von vorhin -- man waehlt
|
||||
Gruen und sieht sieben Rottoene darunter. */
|
||||
leiterZeigen();
|
||||
kachelKnopfZeigen();
|
||||
eigeneKachelnFaerben();
|
||||
auswahlMarkieren();
|
||||
}
|
||||
}
|
||||
|
||||
/** Der Name einer Helligkeitsstufe -- fuer Sprachausgabe und Titel. */
|
||||
function stufenName(wert) {
|
||||
return (kreisStufen.find((s) => s.wert === wert) || {}).name || 'normal';
|
||||
}
|
||||
|
||||
/* ==== DIE HELLIGKEITSLEITER (25.09.2026) =========================
|
||||
|
||||
Filipe: „ich will dass die leute auch heller und dunkler aussuchen
|
||||
koennen … so dass die leute viel krassere moeglichkeiten haben."
|
||||
|
||||
SIEBEN FELDER, JEDES IN SEINER ECHTEN FARBE -- nicht sieben graue
|
||||
Kaestchen mit Beschriftung. Man waehlt eine Farbe; also soll man
|
||||
Farben sehen. Die Felder faerben sich beim Drehen am Ring mit: Wer
|
||||
den Farbton aendert, sieht sofort, wie die sieben Helligkeiten
|
||||
DIESES Tons aussehen.
|
||||
|
||||
EINE LEISTE UND KEIN ZWEITER KREIS: Farbton laeuft rund (359 Grad
|
||||
grenzt an 0), Helligkeit nicht -- sie hat ein dunkles und ein
|
||||
helles Ende. Eine runde Form fuer etwas, das gerade verlaeuft,
|
||||
waere eine Form, die luegt.
|
||||
|
||||
`role="slider"` AM GANZEN KASTEN und nicht sieben Knoepfe: Es ist
|
||||
EIN Wert mit sieben Stufen. Sieben Knoepfe waeren sieben
|
||||
Tabulatorschritte fuer eine Entscheidung. */
|
||||
function leiterBauen() {
|
||||
const leiter = $('kachelhell-leiter');
|
||||
if (!leiter) return;
|
||||
leiter.textContent = '';
|
||||
kreisStufen.forEach((s, i) => {
|
||||
const feld = el('span', 'kachelhell__feld');
|
||||
feld.dataset.stufe = s.wert;
|
||||
feld.title = s.name;
|
||||
/* aria-hidden: Der Wert steht am Kasten (`aria-valuenow`), die
|
||||
Felder sind seine Darstellung. Ohne das laese eine Sprachausgabe
|
||||
sieben leere Felder vor. */
|
||||
feld.setAttribute('aria-hidden', 'true');
|
||||
feld.addEventListener('click', () => stufeWaehlen(i, true));
|
||||
leiter.append(feld);
|
||||
});
|
||||
leiterZeigen();
|
||||
}
|
||||
|
||||
/** Die Felder auf den aktuellen Farbton bringen und die Wahl zeigen. */
|
||||
function leiterZeigen() {
|
||||
const leiter = $('kachelhell-leiter');
|
||||
if (!leiter) return;
|
||||
const nr = Math.max(0, kreisStufen.findIndex((s) => s.wert === radStufe));
|
||||
leiter.setAttribute('aria-valuenow', String(nr + 1));
|
||||
leiter.setAttribute('aria-valuetext', stufenName(radStufe));
|
||||
for (const feld of leiter.children) {
|
||||
const s = kreisStufen.find((x) => x.wert === feld.dataset.stufe);
|
||||
const grund = kreisToene[radWinkel];
|
||||
if (s && grund) feld.style.background = s.misch ? tonMischen(grund, s.misch) : grund;
|
||||
feld.dataset.an = feld.dataset.stufe === radStufe ? 'ja' : 'nein';
|
||||
}
|
||||
}
|
||||
|
||||
/** Eine Stufe waehlen -- ueber den Index, damit Pfeiltasten und
|
||||
* Klick denselben Weg gehen. */
|
||||
function stufeWaehlen(nr, sichern) {
|
||||
const n = Math.max(0, Math.min(kreisStufen.length - 1, nr));
|
||||
radStufe = kreisStufen[n].wert;
|
||||
radZeigen(radWinkel);
|
||||
leiterZeigen();
|
||||
if (sichern) radSichern(0);
|
||||
}
|
||||
|
||||
function leiterBedienen() {
|
||||
const leiter = $('kachelhell-leiter');
|
||||
if (!leiter) return;
|
||||
leiter.addEventListener('keydown', (e) => {
|
||||
const nr = kreisStufen.findIndex((s) => s.wert === radStufe);
|
||||
let ziel = null;
|
||||
if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') ziel = nr - 1;
|
||||
else if (e.key === 'ArrowRight' || e.key === 'ArrowUp') ziel = nr + 1;
|
||||
else if (e.key === 'Home') ziel = 0;
|
||||
else if (e.key === 'End') ziel = kreisStufen.length - 1;
|
||||
if (ziel === null) return;
|
||||
e.preventDefault();
|
||||
/* Mit einer halben Sekunde Ruhe speichern -- wer mit der Taste
|
||||
durch die Stufen faehrt, soll nicht sieben Anfragen ausloesen.
|
||||
Dieselbe Ueberlegung wie am Ring. */
|
||||
stufeWaehlen(ziel, false);
|
||||
radSichern(500);
|
||||
});
|
||||
}
|
||||
|
||||
/** Ein Wort fuer den Bereich, damit eine Sprachausgabe etwas sagen kann. */
|
||||
function farbwort(w) {
|
||||
const namen = [
|
||||
@@ -367,7 +555,7 @@
|
||||
/** Nach der Bewegung einmal speichern. */
|
||||
function radSichern(verzoegerung = 0) {
|
||||
clearTimeout(radUhr);
|
||||
radUhr = setTimeout(() => kachelSetzen('ton-' + radWinkel), verzoegerung);
|
||||
radUhr = setTimeout(() => kachelSetzen(radSchluessel()), verzoegerung);
|
||||
}
|
||||
|
||||
function radBedienen() {
|
||||
@@ -416,6 +604,7 @@
|
||||
|
||||
function kachelwahlBedienen() {
|
||||
radBedienen();
|
||||
leiterBedienen();
|
||||
const knopf = $('kachel-oeffnen'), dlg = $('kachel-wahl'), zu = $('kachel-zu');
|
||||
if (!knopf || !dlg) return;
|
||||
knopf.addEventListener('click', () => { kachelwahlBauen(); dlg.showModal(); });
|
||||
@@ -2257,6 +2446,34 @@
|
||||
kasten.style.maxWidth = `${breit}px`;
|
||||
}
|
||||
|
||||
/* ==== EIN KLICK OEFFNET DIE SCHAU (25.09.2026) ================
|
||||
|
||||
Filipe: „wenn man bilder aufmacht, will ich dass die in der
|
||||
mitte sind."
|
||||
|
||||
Bis heute fuehrte der Verweis auf die DATEI, und was man dann
|
||||
sah, war die eingebaute Bildanzeige des Browsers: schwarzer
|
||||
Grund, Bild in der Ecke. Das ist kein Fehler des Browsers --
|
||||
eine Datei hat keine Gestaltung.
|
||||
|
||||
DER VERWEIS BLEIBT EIN VERWEIS. `target`, `rel` und `href`
|
||||
stehen unveraendert da; mittlere Maustaste, „In neuem Tab
|
||||
oeffnen" und Herunterladen gehen wie seit jeher. Abgefangen
|
||||
wird nur der gewoehnliche Klick -- und auch der nur, wenn die
|
||||
Schau ueberhaupt geladen ist. Faellt die Datei aus, ist man
|
||||
wieder beim alten Verhalten statt bei gar keinem.
|
||||
|
||||
`metaKey`, `ctrlKey`, `shiftKey` UND DIE MITTLERE TASTE sind
|
||||
ausgenommen: Das sind die Griffe, mit denen Leute seit zwanzig
|
||||
Jahren in einem neuen Tab oeffnen. Wer sie abfaengt, nimmt
|
||||
etwas weg, das niemand vermisst -- bis er es braucht. */
|
||||
kasten.addEventListener('click', (e) => {
|
||||
if (e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
|
||||
if (!window.Bildschau) return;
|
||||
e.preventDefault();
|
||||
window.Bildschau.zeigen(a, kasten);
|
||||
});
|
||||
|
||||
const bild = document.createElement('img');
|
||||
bild.src = a.weg;
|
||||
bild.alt = a.name || 'Foto';
|
||||
|
||||
+19
-19
@@ -12,19 +12,19 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -391,22 +391,22 @@
|
||||
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
|
||||
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
|
||||
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
|
||||
<script src="assets/js/textform.js?v=202609250404"></script>
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/textform.js?v=202609250435"></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/zuteilung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/zuteilung.js?v=202609250435" defer></script>
|
||||
<!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in
|
||||
aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine
|
||||
eigene Datei; hier zeigt er den Creator-Katalog.
|
||||
Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. -->
|
||||
<script src="assets/js/vorlagenbrett.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/aufgaben.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/vorlagenbrett.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/aufgaben.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/automation.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/automation.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -168,15 +168,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/automation.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/automation.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-17
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -197,16 +197,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/befinden.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/befinden.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+22
-22
@@ -12,24 +12,24 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250435" />
|
||||
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
|
||||
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
|
||||
Stelle, an der dieselbe Sache anders aussieht. -->
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -304,19 +304,19 @@
|
||||
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
|
||||
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
|
||||
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
|
||||
<script src="assets/js/textform.js?v=202609250404"></script>
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/textform.js?v=202609250435"></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/ampel.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/schulung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereich.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/ampel.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/schulung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereich.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+19
-19
@@ -7,17 +7,17 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -108,15 +108,15 @@
|
||||
</main>
|
||||
|
||||
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bewerben.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bewerben.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+18
-18
@@ -7,16 +7,16 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -80,16 +80,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bewerbungen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bewerbungen.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-17
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/calls.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/calls.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -89,15 +89,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/ki.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/calls.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/calls.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+76
-23
@@ -12,26 +12,26 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
|
||||
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
|
||||
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
|
||||
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
|
||||
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
|
||||
Dialog zu sehen bekam. -->
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/chat.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/chat.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -102,11 +102,23 @@
|
||||
fuer dieselbe Sache. -->
|
||||
<dialog class="nachfrage chat-kachelwahl" id="kachel-wahl">
|
||||
<h2 class="nachfrage__titel">Deine Kachel</h2>
|
||||
<!-- DER SATZ WAR SEIT HEUTE FALSCH (25.09.2026).
|
||||
|
||||
„Alle Töne leuchten gleich stark" stimmte, solange es
|
||||
360 Farben auf einer Leuchtdichte gab. Mit den sieben
|
||||
Helligkeiten stimmt es nicht mehr – und ein Satz, der
|
||||
etwas verspricht, was man daneben anders sieht, ist
|
||||
schlimmer als keiner.
|
||||
|
||||
WAS WEITERHIN STIMMT UND WICHTIGER IST: Jede der 2520
|
||||
Farben bleibt als Name auf der Blase lesbar. Das ist
|
||||
nachgerechnet (pruef-chat-neu), und genau das sagt der
|
||||
neue Satz. -->
|
||||
<p class="nachfrage__text">
|
||||
So sehen deine Nachrichten für alle anderen aus. Dreh am Ring,
|
||||
bis dir die Farbe gefällt – in der Mitte siehst du sofort, wie
|
||||
es aussieht. Alle Töne leuchten gleich stark, damit die Schrift
|
||||
überall gleich gut lesbar bleibt.
|
||||
So sieht dein Name an deinen Nachrichten aus. Dreh am Ring
|
||||
für den Farbton, tipp unten auf heller oder dunkler – in der
|
||||
Mitte siehst du sofort, wie es aussieht. Jede der 2520
|
||||
Farben bleibt lesbar, egal welche du nimmst.
|
||||
</p>
|
||||
|
||||
<!-- ================================================================
|
||||
@@ -146,6 +158,36 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ================================================================
|
||||
HELLER UND DUNKLER (25.09.2026)
|
||||
|
||||
Filipe: „dieser kreis muss viel perfekter sein. ich will
|
||||
dass die leute auch heller und dunkler aussuchen koennen.
|
||||
perfektionier das bitte viel krasser. viel
|
||||
profissioneller. so dass die leute viel krassere
|
||||
moeglichkeiten haben."
|
||||
|
||||
EIN ZWEITER SCHIEBER UND KEIN ZWEITER KREIS: Farbton und
|
||||
Helligkeit sind zwei Achsen derselben Farbe. Ein Rad für
|
||||
die eine, eine Leiste für die andere – so erkennt man auf
|
||||
einen Blick, was rund läuft und was von dunkel nach hell.
|
||||
|
||||
`role="slider"` wie der Ring darüber: Es ist ein Wert mit
|
||||
sieben Stufen, keine Auswahl aus sieben Dingen. Wer mit
|
||||
der Tastatur kommt, benutzt dieselben Pfeiltasten.
|
||||
|
||||
DIE STUFEN BAUT DAS SKRIPT, nicht diese Datei: Wie viele
|
||||
es gibt und wie stark sie mischen, steht in
|
||||
chat-kreis-stufen.js und kommt vom Server. Feste Felder
|
||||
hier wären eine zweite Wahrheit, die bei der nächsten
|
||||
Messung falsch wird. -->
|
||||
<div class="kachelhell" id="kachelhell">
|
||||
<span class="kachelhell__schild" id="kachelhell-schild">Helligkeit</span>
|
||||
<div class="kachelhell__leiter" id="kachelhell-leiter" role="slider"
|
||||
tabindex="0" aria-labelledby="kachelhell-schild"
|
||||
aria-valuemin="1" aria-valuemax="7" aria-valuenow="4"></div>
|
||||
</div>
|
||||
|
||||
<!-- Was auf dem Ring nicht vorkommt: Grau hat keinen Farbton,
|
||||
und Babyblau ist die eine helle Kachel mit eigener,
|
||||
dunkler Schrift. Beide gehören weiter dazu. -->
|
||||
@@ -697,25 +739,36 @@
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="assets/js/bereiche.js?v=202609250404"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435"></script>
|
||||
<!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js
|
||||
fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter,
|
||||
waere die erste gezeichnete Nachricht ohne Gestaltung -- und das
|
||||
faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie
|
||||
wirklich vor den anderen dasteht. -->
|
||||
<script src="assets/js/textform.js?v=202609250404"></script>
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404"></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404"></script>
|
||||
<script src="assets/js/textform.js?v=202609250435"></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435"></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435"></script>
|
||||
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
|
||||
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
|
||||
Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
|
||||
die Knoepfe fehlten, und niemand wuesste warum. -->
|
||||
<script src="assets/js/anruf.js?v=202609250404"></script>
|
||||
<script src="assets/js/chat.js?v=202609250404"></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/anruf.js?v=202609250435"></script>
|
||||
<!-- DIE BILDSCHAU (25.09.2026). Eigene Datei, weil sie nichts vom
|
||||
Chat weiss: Sie bekommt einen Weg und einen Namen und zeigt ein
|
||||
Bild. Jede andere Seite mit Fotos kann sie ebenso benutzen, ohne
|
||||
dass etwas doppelt gebaut wird.
|
||||
|
||||
VOR chat.js und ohne `defer`: chat.js haengt den Klick an und
|
||||
fragt dabei `window.Bildschau`. Kaeme die Schau spaeter, waere
|
||||
sie beim ersten Foto noch nicht da -- und der erste Klick ginge
|
||||
wie frueher in den Tab. Ein Fehler, der nur beim ERSTEN Mal
|
||||
auftritt, ist der, den man nie nachstellen kann. -->
|
||||
<script src="assets/js/bildschau.js?v=202609250435"></script>
|
||||
<script src="assets/js/chat.js?v=202609250435"></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-17
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/content.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/content.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -179,15 +179,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/content.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/content.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -36,15 +36,15 @@
|
||||
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
|
||||
type="image/webp" media="(max-width: 899px)" />
|
||||
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
|
||||
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
|
||||
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
|
||||
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
|
||||
die eine Seite, auf der man das Umfaerben sieht. -->
|
||||
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="gate gate--crew">
|
||||
@@ -459,7 +459,7 @@
|
||||
|
||||
|
||||
|
||||
<script src="assets/js/gate.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/gate.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -23,25 +23,25 @@
|
||||
},
|
||||
"icons": [
|
||||
{
|
||||
"src": "/assets/img/app-symbole/crew-192.png?v=202609250404",
|
||||
"src": "/assets/img/app-symbole/crew-192.png?v=202609250435",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/crew-512.png?v=202609250404",
|
||||
"src": "/assets/img/app-symbole/crew-512.png?v=202609250435",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609250404",
|
||||
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609250435",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609250404",
|
||||
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609250435",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
|
||||
+17
-17
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/dateien.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/dateien.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -108,15 +108,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/dateien.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/dateien.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+18
-18
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -297,20 +297,20 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
|
||||
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
|
||||
in Dokumentreihenfolge. -->
|
||||
<script src="assets/js/vorlagenbrett.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/entwicklung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/vorlagenbrett.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/entwicklung.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+15
-15
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -146,14 +146,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/hilfe.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/hilfe.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -30,9 +30,9 @@
|
||||
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
|
||||
type="image/webp" media="(max-width: 899px)" />
|
||||
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="gate">
|
||||
@@ -427,7 +427,7 @@
|
||||
|
||||
|
||||
|
||||
<script src="assets/js/gate.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/gate.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-17
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/kalender.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/kalender.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -383,15 +383,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kalender.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kalender-abo.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kalender.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kalender-abo.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/leistung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/leistung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -444,13 +444,13 @@
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404"></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404"></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404"></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404"></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404"></script>
|
||||
<script src="assets/js/leistung.js?v=202609250404"></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435"></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435"></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435"></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435"></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435"></script>
|
||||
<script src="assets/js/leistung.js?v=202609250435"></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -12,13 +12,13 @@
|
||||
vergessen wird. -->
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/material.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/material.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
<body class="start" data-ton="42" data-buehne="studio">
|
||||
|
||||
@@ -138,14 +138,14 @@
|
||||
<p class="m-laedt" id="laedt">Einen Moment …</p>
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/material.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/material.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/personen.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/personen.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -453,14 +453,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/personen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/personen.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+18
-18
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -214,16 +214,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/profil.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/profil.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-17
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -134,14 +134,14 @@
|
||||
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
||||
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
||||
die seit dem 07.09. jede Seite danach absucht. -->
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/rechte.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/rechte.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+18
-18
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/report.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/report.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -106,17 +106,17 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/ki.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/report.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/report.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/scouting.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/scouting.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -173,14 +173,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/scouting.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/scouting.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -12,21 +12,21 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
|
||||
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
|
||||
<link rel="stylesheet" href="assets/css/heim.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/heim.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -700,16 +700,16 @@
|
||||
</p>
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/live.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/start.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/live.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/start.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-17
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -85,16 +85,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/ki.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/startcheck.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/startcheck.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+18
-18
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -150,16 +150,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+14
-14
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/support.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/support.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -123,16 +123,16 @@
|
||||
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
|
||||
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
|
||||
trotzdem, deshalb sah man es nur in der Browserkonsole. -->
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
|
||||
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
|
||||
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
|
||||
uebersicht.html, und heute hier. -->
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/support.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/support.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+18
-18
@@ -7,18 +7,18 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250435" />
|
||||
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
|
||||
der Regel hier waere die zweite Stelle, an der dieselbe Sache
|
||||
anders aussieht. -->
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -111,15 +111,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/talente.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/talente.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -7,20 +7,20 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/team.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/team.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -110,15 +110,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/team.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/team.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-17
@@ -7,20 +7,20 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/team.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/team.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu
|
||||
@@ -84,15 +84,15 @@
|
||||
Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt
|
||||
es niemandem auf, und deshalb prueft pruef-css-klassen die
|
||||
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/teamlage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/teamlage.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+15
-15
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -112,15 +112,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/teilen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/teilen.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -126,14 +126,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/treff-moderation.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/treff-moderation.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -7,18 +7,18 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
|
||||
Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css
|
||||
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
|
||||
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -248,14 +248,14 @@
|
||||
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
||||
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
||||
die seit dem 07.09. jede Seite danach absucht. -->
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/treff-regeln.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/treff-regeln.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -12,22 +12,22 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
|
||||
Dialog "Creator anlegen". -->
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -149,16 +149,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/uebersicht.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/uebersicht.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -335,14 +335,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/live.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/unsere-seiten.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/live.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/unsere-seiten.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -106,17 +106,17 @@
|
||||
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
||||
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
|
||||
„Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609250435" defer></script>
|
||||
<!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort
|
||||
des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet
|
||||
von pruef-meldungen, nicht beim Ansehen. -->
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/unterstuetzen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/unterstuetzen.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+16
-16
@@ -7,15 +7,15 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -144,14 +144,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/werdegang.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/werdegang.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+15
-15
@@ -12,13 +12,13 @@
|
||||
vergessen wird. -->
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
|
||||
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
|
||||
@@ -75,13 +75,13 @@
|
||||
<p class="fehler" id="fehler" hidden></p>
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/willkommen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/willkommen.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-17
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250404" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/wissen.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250404" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609250435" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/wissen.css?v=202609250435" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609250435" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250404" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609250435" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -190,15 +190,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609250435" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wissen.js?v=202609250404" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609250435" defer></script>
|
||||
<script src="assets/js/wissen.js?v=202609250435" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user