ce87a7fb5772e326616abd976981beec70aaa29a
35
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ce87a7fb57 |
Post 6: fuenfte Slide fuer den mobilen Chat, Tiefe ueber den Stapel
Zwei Nachbesserungen an Post 6: eine Slide mehr und Zeichnungen, die nicht mehr flach aussehen. DIE FUENFTE SLIDE KOMMT VON DER WEBSITE Die App gibt es noch nicht, und die Website sagt das bereits. In components/sections/ChatDemoSection.tsx steht unter der Fahne comingSoon genau dieser Zustand: ein Handy-Mockup, verwischt, und darueber ein Absperrband aus dem Bau -- gedreht um -13 Grad, in accent-yellow F1B729 mit Kanten in 171106, darauf immer wieder Schutzhelm und BALD VERFUEGBAR. Ein Zwischenstand hatte hier einen selbst erfundenen gelben Aufkleber "In Arbeit". Das war eine zweite Bildsprache neben einer vorhandenen. Uebernommen ist jetzt die der Website, samt Winkel, Farben und Wortlaut. Auch der Inhalt des Schirms kommt von dort und nicht aus dem Pitch-Paket: Heizungsprojekt Schulz, "4 Mitglieder · 2 online", die vier Nachrichten aus seedMessages, die Blasenfarben 0D6E6E fuer eigene und FFFFFF mit Rand E9E7E5 fuer fremde, der warme Grund hsl(30 17% 95.5%). Ueberschrift und Fliesstext ebenso: "Der Chat fuer unterwegs wird gerade gebaut." Das Geraet selbst ist eine bewusste Abweichung. Die Website zeichnet nur einen hellen Umriss, border 4px D1D5DB; auf einer Slide, die selbst hell ist, faellt der in sich zusammen und sieht nach Platzhalter aus. Hier steht ein richtiges Geraet: dunkler Korpus, heller Grat, Schirm eingelassen, Insel und Tasten. Die Abweichung betrifft den Rahmen, nicht den Inhalt. Verwischt wird schwaecher als dort -- auf der Website liegt das Handy gross neben Fliesstext und darf unlesbar sein, hier ist es klein, und bei voller Staerke blieb Brei. DIE TIEFE Zwei Anlaeufe waren falsch. Der erste legte graue Flaechen hinter die Elemente: das nimmt den Zeichnungen ihre Durchsichtigkeit und setzt einen Kasten auf den Punktgrund, der dort nicht hingehoert. Wieder raus, die Zeichnungen sind wieder durchsichtig. Der zweite waren bessere Schatten allein. Richtig, aber zu wenig. Die Schatten des Produkts sind in ui/theme.css gestaffelt und nicht einlagig: --shadow-md 0 4px 16px -2px + 0 2px 4px -1px --shadow-lg 0 12px 32px -4px + 0 4px 8px -2px Zwei Lagen, weil eine allein nicht beides kann: die enge dunkle Kante setzt das Element auf die Flaeche, die weite helle hebt es davon ab. In SVG zwei feDropShadow im selben Filter. Vorher stand dort einer mit dy 7. Gebracht hat es der Stapel. post1.html hat ihn als Bildrahmen im CSS, fuer Screenshots; hier ist er in SVG nachgebaut, mit denselben Werten: .sheet-mid rotate(-2.4deg) translate(-2.2%, 3%) scale(.975) .sheet-back rotate( 3.2deg) translate( 3%, 5.5%) scale(.95) Er gibt Tiefe, die ein Schatten allein nicht schafft, und sagt, dass hinter der einen Ansicht weitere liegen. Die hinteren Blaetter sind leer -- Andeutung, keine Kopie. Auf Slide 1 und 2, wo ein Bildschirm zu sehen ist; nicht auf Slide 3, wo ein Ausschnitt einer Unterhaltung steht, und nicht auf Slide 4, die eine Ueberlagerung ist. AUS DER QUELLE NACHGEHOLT Beim gruendlichen Durchgang durch GeneralTeamChatPage.tsx sind drei Dinge aufgefallen, die vorher fehlten oder falsch waren: - Die Datumsmarke "Heute · 30.07.2026" ueber dem ersten Beitrag und die Zeile "Maike Berger schreibt gerade ..." ueber dem Eingabefeld. Beides gibt der Unterhaltung Struktur, ohne eine Flaeche zu behaupten. - Der offene Kanal ist grau hinterlegt mit Rand und shadow-sm, nicht violett. - Die Blase muss so breit sein, wie ihr Anhang es braucht. Vorher richtete sie sich nur nach dem Fliesstext, und "Materialliste pruefen · faellig 31.07.2026" wurde abgeschnitten -- an einer Stelle, an der der Titel die Aussage traegt. ZWEI FALLEN Gedrehte Blaetter ragen aus dem Kasten. Das hinterste steht um 3,2 Grad gedreht und um 3 und 5,5 Prozent verschoben; seine Ecken lagen bis zu 24 px ausserhalb der 92-px-Schutzzone. Der Ueberstand wird jetzt gerechnet: stapelRand() schickt die vier Ecken durch dieselbe Kette wie das Blatt. getBBox() kennt keine Beschneidung. Das Absperrband war erst auf die 175 % der Website gezogen und am Geraet abgeschnitten -- im Bild richtig, in der Messung ein Ueberstand von 146 px, den es nicht gab. Es ist jetzt nur so lang, wie es bei -13 Grad quer ueber das Geraet sein muss. GEPRUEFT Raender 93 / 227 / 110 / 140 / 350, Luft 116 / 79 / 190 / 141 / 77 px, alle Ueberschriften innerhalb der Schutzzone, 214 CSS-Regeln, Konsole ohne Fehler, fuenf PNGs aus dem echten Ausgabeweg bei 2160 x 2700. Downloads blieb leer, der Projektstand unveraendert. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
7723e5bf5a |
Post 6: der Team-Chat, aus der Nachricht wird die Aufgabe
Nummer 5 im Redaktionsplan, erscheint Mi 26.08. Carousel, vier Slides, Theme modern, Variante hell, Punktgrund. DER BEITRAG 1 Bueero und Baustelle, endlich im selben Chat. Liste und Verlauf 2 Ein Kanal pro Projekt. die Chatliste gross 3 Foto rein, Aufgabe raus. Fotos, Aufgabe, Bestaetigung 4 Nicht nur Text. das Menue hinterm Plus Slide 3 ist der Kern und keine Konstruktion: im Werkzeug folgen die drei Nachrichten genau so aufeinander. Tobias schickt die Baustellenfotos, darauf eine Nachricht mit angehaengter Aufgabe, darauf die Systemzeile "Aufgabe Materialliste pruefen im Projekt erstellt". Die letzte Zeile macht den Unterschied -- die Aufgabe liegt danach im Projekt, nicht nur im Verlauf. Das ist woertlich der Auftrag des Redaktionsplans. Vier Slides statt fuenf. Der fuenfte Punkt waere DSGVO und deutsche Server gewesen, und dafuer gibt es keinen Bildschirm. Eine Behauptung ohne Bild gehoert in die Bildunterschrift, dort steht sie woertlich wie auf der Website. WOHER ES KOMMT Alles aus components/general/GeneralTeamChatPage.tsx des Pitch-Pakets: die acht Kanaele aus CHATS, der Verlauf aus INITIAL_MESSAGES, der Aufbau einer Zeile und einer Blase aus der Quelle selbst, die Filterzeile aus dem Typ ChatFilter, das Plus-Menue aus Composer. Symbole aus @subframe/core, Farben aus ui/theme.css. Vom Chat gibt es nur eine Fassung, unter /allgemein/team-chat -- anders als bei der Pipeline mit ihren vier eigenen SHK-Bildschirmen. Die Inhalte darin sind trotzdem aus dem Gewerk: Waermepumpe Mueller, Montagetermin, Baustellenfotos. WO BEWUSST ABGEWICHEN WIRD - Slide 1 zeigt drei von sechs Nachrichten, Slide 2 fuenf von acht Kanaelen. Ein Chat und eine Liste scrollen beide. Slide 2 behaelt alle drei Sorten: Projektkanal, Direktnachricht, Gruppe. - Die Bildergalerie ist eine Anhangkarte, kein Bild. Im Werkzeug laedt GalleryPreview zwei Fotos von Unsplash. Fremde Fotos in einen Beitrag zu setzen, der von der eigenen Baustelle spricht, waere eine Behauptung ueber Material, das wir nicht haben. DREI FALLEN Die Listenzeile hat drei Zeilen, nicht zwei. Der erste Nachbau schob Nadel und Ungelesen-Punkt neben die Vorschau, wo sie an den Text stiessen -- und die Zuordnung fehlte ganz. Das war nicht nur Layout: der Fliesstext behauptete "Jeder Kanal haengt an seiner Projektnummer", und die Nummer war nirgends zu sehen. Im Original steht sie als dritte Zeile. Eine feste Obergrenze fuer die Blasenbreite hat ein Zitat gekuerzt. Fuer die Titelslide musste sie klein sein, damit die Unterhaltung neben die Liste passt; auf Slide 3 stand deshalb "Materialliste pruefen · faelli..." Die Grenze haengt jetzt an der Spalte, in der die Blase steht. Beinahe haette ich ein Zitat ohne Grund gekuerzt. Die Website-Ueberschrift lautet "Bueero und Baustelle, endlich im selben Chat." Das "endlich" war gestrichen mit der Begruendung, die Zeile laufe sonst ueber die Schutzzone -- und diese Begruendung sogar mit einer Zahl versehen, die nicht gemessen war. Nachgemessen sind es 818 px von 896 erlaubten: sie passt. Das Wort ist wieder drin. GEPRUEFT Luft 102 / 61 / 254 / 141 px, alle Zeichnungen innerhalb der 92-px- Schutzzone, breiteste Ueberschriftzeile 818 von 896, 214 CSS-Regeln vollstaendig, Konsole ohne Fehler, vier PNGs aus dem echten Ausgabeweg bei 2160 x 2700. Downloads blieb leer, der Projektstand unveraendert. Die Pruefskripte im Sitzungsordner waren geloescht und sind neu angelegt, diesmal mit gemeinsamem CDP-Kern: pruef.mjs misst ueber getBBox die tatsaechlich gezeichnete Flaeche und die Breite jeder Ueberschriftzeile, schuss.mjs rendert einzelne Slides, breite.mjs misst eine Formulierung, bevor sie in die Datei kommt, export.mjs faehrt den Ausgabeweg und faengt /save ab. NEBENBEI Die Projektliste steht jetzt achtmal im Repo, einmal je Post-Seite plus uebersicht.html, dort zusaetzlich in PROJEKTE. Post 6 ist ueberall eingetragen. Wichtig fuer den offenen Tab: der Eintrag steht im Markup und entsteht nicht zur Laufzeit -- eine Seite, die schon geladen war, zeigt ihn erst nach dem Neuladen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
32206e7352 |
Post 5: das Projektmanagement, vier Bildschirme einer Pipeline
Nummer 4 im Redaktionsplan, erscheint Fr 21.08. Carousel, fuenf Slides, Theme modern, Variante hell, Punktgrund. Stichwort des Plans: "Der Ueberblick, den jeder Betrieb vermisst." DER BEITRAG Das Demo-Projekt haelt fuer die Pipeline vier eigene Bildschirme bereit -- Schablone, Board, Liste, Detail. Jeder bekommt eine Slide, dazu die Karte aus der Naehe: 1 Von der Anfrage bis zur Abnahme. 4A das Board, drei Phasen 2 Alles Wichtige auf einer Karte. 4A eine Karte gross 3 Vom Verkauf in die Abwicklung. 4B das Projekt in der Abwicklung 4 Board oder Liste. 4C dieselben Projekte als Tabelle 5 Du bestimmst, was draufsteht. 3 der Feldeditor ES SIND ZWEI PIPELINES, NICHT EINE Das ist die Pointe und der Grund fuer Slide 3. Das Board gehoert zu "Vertrieb: Anlagen-Verkauf", das Projekt in der Detailansicht liegt in "Auftragsabwicklung SHK", und ein Knopf in der Kopfzeile schiebt es von der einen in die andere. Beide Namen stehen woertlich in PipelineBoardInteractive.tsx und S02PipelinesDetailansicht.tsx. Warum das eine Software sein kann, beantwortet Slide 5: die Felder haengen an der Pipeline, nicht am Programm. Siebzehn Feldtypen und drei Stufen unter "Pflicht ab Board-Spalte", im Screen offen auf "Aufmass erledigt". Ein SHK-Betrieb legt sich das an, ein anderer etwas anderes. EINE RICHTIGSTELLUNG Ein Zwischenstand behauptete, die Detailansicht sei nur ein Entwurfs-PNG. Geprueft worden waren die Beschriftungen aus 07_Screen-4b_Karten-Detail.png -- KUNDENDATEN, OBJEKTDATEN, Wahrscheinlichkeit, Heizlast, Lead-Quelle -- und die kommen im Code wirklich nirgends vor. Daraus wurde der falsche Schluss gezogen, es gebe den Bildschirm nicht. Es gibt ihn: app/(screens)/4b/ rendert S02PipelinesDetailansicht.tsx, 3150 Zeilen, mit den Rubriken GRUNDDATEN, PLANUNG & VERANTWORTLICHE, PROJEKTKONTAKTDATEN, KONTAKTE, FIRMENDATEN, ANSPRECHPARTNER, PROJEKTADRESSE und ZUSATZADRESSEN. Das PNG ist ein aelterer Entwurf desselben Bildschirms, nicht sein Beleg. Die Abwesenheit einer Zeichenkette beweist die Abwesenheit eines Bildschirms nicht. DIE KARTE KOMMT AUS DEM CODE, NICHT AUS DEM SCREENSHOT Der erste Anlauf war von assets/screens/pipelines.png abgemalt und lag an drei Stellen daneben, von denen im Bild keine zu erkennen war: Prioritaet, Balken und Kuerzel stehen als Gruppe rechts und haengen ueber die Kante des Fusses (absolute -bottom-4 right-2), im Fuss steht ueber dem Termin die Zeitspanne des Projekts, und die Balken sitzen in einem eigenen umrandeten Kasten. Erst ProjectCard.tsx hat das gezeigt. Die Karte ist jetzt Klasse fuer Klasse daraus nachgebaut, 320 breit wie w-80, Titel auf hoechstens zwei Zeilen wie line-clamp-2. Anders als bei Post 4 wird nichts umgefaerbt. Eine Pipeline lebt davon, dass man das Gewerk an der Farbe erkennt, ohne zu lesen, und dass der Fuss sich mit der Prioritaet faerbt. Zuordnung aus CATEGORY_TONES, Toene aus ui/theme.css, Kuerzelfarbe aus avatarColor je Projekt. ALLE ZAHLEN SIND GERECHNET Anzahl und Summe je Spalte kommen aus denselben 41 Datensaetzen wie die Karten: Angebot 189.800, Auftrag 224.800, In Ausfuehrung 352.300 Euro. Wer eine aendert, muss die andere mitziehen. WO BEWUSST ABGEWICHEN WIRD - Slide 1 zeigt zwei bis drei Karten je Spalte, der Kopf zaehlt weiter vier. So ist es im Werkzeug auch, eine Spalte zeigt, was aufs Bild passt. Gleich hohe Saeulen sahen aus wie eine Tabelle. - Slide 4 zeigt vier von neun Tabellenspalten und sieben von elf Zeilen. Die Spalte Sachbearbeiter ist entfallen, damit "Auftragswert gesperrt" ungekuerzt hineinpasst -- der Wortlaut ist der Grund, warum die Spalte ueberhaupt auf der Slide steht. - Slide 3 stellt die Rubriken untereinander statt nebeneinander, und zwei fehlen: PDS-INTEGRATION, weil der Beitrag sich an Betriebe allgemein richtet und nicht an die mit diesem einen Branchenprogramm, und "ADRESSDATEN . TEST A (ZUSATZADRESSEN AN)", weil das ein Arbeitstitel aus der Entwicklung ist und kein Bildschirmtext. - Ein "Kalender" im Umschalter stand kurz drin und ist raus: die ToggleGroup des Boards kennt board und list, mehr nicht. DIE MASSSTAEBE SIND ABGESTIMMT Slide 1, 3, 4 und 5 zeigen ihre Schrift zwischen 16 und 23 px. Slide 2 ist als Nahaufnahme gedacht und liegt bei 47. Vorher stand sie auf 59 bis 73, und eine einzelne Karte wirkte damit groesser als das ganze Board davor. Der Kopfbereich ueber dem Board -- Seitentitel, Umschalter, Filterleiste -- ist wieder entfallen. Im Profilraster ist die Slide eine Kachel von rund 150 px, dort liest niemand eine Bedienoberflaeche. Wie die Pipeline heisst, sagt Slide 3; dass es eine Liste gibt, sagt Slide 4. EIN PRUEFSKRIPT HAT DEN PROJEKTSTAND VERSTELLT export.mjs schaltet die Slides mit der Pfeiltaste weiter. Die Seite startet aber im Bearbeiten-Modus, und dort verschieben Pfeiltasten das gewaehlte Element statt die Slide zu wechseln. Jeder Prueflauf hat die Zeichnungen geschoben und das in state/post5.json geschrieben: zuletzt vis dx 3 dy -69 auf Slide 1 und auf Slide 2 ein size 762, das die im Code eingestellten 720 ueberschrieb. Die Karte, ueber deren Groesse zwei Runden lang geredet wurde, war beim Messen also gar nicht die aus dem Code. Gemerkt an Messwerten, die im Code nirgends standen -- 89 px Rand rechts bei eingestellten 92, 177 px unten bei eingestellten 120. Zahlen, die man sich nicht erklaeren kann, sind ein Befund und keine Messungenauigkeit. Der Stand ist bereinigt, das Skript verlaesst vor dem Blaettern den Bearbeiten-Modus und schreibt die Datei am Ende zurueck. NEBENBEI - Plaettchenbreiten werden gemessen statt geschaetzt. Zeichenzahl mal 0,52 em stimmt fuer "Heizung" und geht bei "Waermepumpe" daneben, das Wort stand ueber dem Rand. Ein Canvas misst dieselbe Schrift, die das SVG spaeter zeichnet; aus derselben Messung kommt der Titelumbruch. - Die Ueberschrift von Slide 1 steht auf denselben Werten wie die von post4.html, nachgemessen: 76 px, Gewicht 800, -2,432 px Sperrung, zentriert, Oberkante 95, Blockhoehe 158, Versatz dy 3. - Die Projektliste steht siebenmal im Repo, einmal je Post-Seite plus uebersicht.html, dort zusaetzlich in PROJEKTE. Post 5 ist ueberall eingetragen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
bae57e64ce |
Post 4: die Workflow-Engine, drei Ansichten derselben Oberflaeche
Nummer 3 im Redaktionsplan, erscheint Mi 19.08. Carousel, vier Slides, Theme modern, Variante hell. DER BEITRAG Ein Ablauf, die Bausteine, aus denen er entsteht, und der Hinweis, dass man nicht bei null anfaengt: 1 Automatisiere deinen Betrieb. ein Ablauf auf dem Canvas 2 Erst der Ausloeser. die Ausloeser-Auswahl 3 Dann die Aktionen. die Aktionen-Auswahl 4 Fang nicht bei null an. drei fertige Vorlagen Slide 2 und 3 teilen sich eine Funktion mit zwei Rubriken, weil es im Produkt eine Auswahl ist: "Ausloeser" und "Aktionen" stehen dort untereinander im selben Feld. Getrennt gezeichnet waeren es zwei Bilder, die zufaellig gleich aussehen. Vier Slides statt der fuenf bis sieben aus dem Redaktionsplan. Das ist eine Spanne und kein Soll: eine Slide, die nichts hinzufuegt, kostet einen Wisch und gibt nichts zurueck. WAS AUS DEM PRODUKT KOMMT UND WAS NICHT Der Knoten ist NodeItem aus ui/components/NodeWorkflowEngine des Pitch-Pakets: quadratisch 128 x 128, rounded-lg, 6 px Rand, Titel und Beschreibung unter dem Feld, beim Ausloeser die linke Flanke voll gerundet. Genau so rendert es auch assets/screens/workflow.png. Ein Zwischenstand zeichnete stattdessen breite Karten mit farbiger Kante links und einem Block "BESCHREIBUNG" -- abgemalt vom Pitch-Bild 02_Praesentation/03. Im Code des Projekts gibt es das nirgends: weder "BESCHREIBUNG" als Label noch eine linke Farbkante, beides null Treffer. Der Kommentar behauptete trotzdem, es sei ein Nachbau der Komponente. Das ist berichtigt. Die Farben sind die des Produkts, aufgeloest aus ui/theme.css ueber die ganze Token-Kette und nicht aus dem Bild geschaetzt. Sie tragen Bedeutung: gruen faengt an, rot aendert Daten, blau meldet, amber macht eine Aufgabe daraus, violett entscheidet. Ein Zwischenstand hatte sie durch Markenfarben ersetzt, weil rules.md 2 diese Toene nicht kennt -- zurueckgenommen, der Beitrag zeigt die Oberflaeche, und umgefaerbt waere es eine Nacherzaehlung. Alle Produkttexte stehen woertlich in der Quelle. Wo ein Name nicht in eine Zeile passte, steht er zweizeilig: aus "Daten vereinheitlichen" ein "Pruefen" zu machen ist keine Kuerzung, sondern ein anderer Name. DREI STELLEN, AN DENEN BEWUSST ABGEWICHEN WIRD - Slide 1 gabelt nach dem zweiten Knoten. Alle drei echten Ablaeufe verzweigen erst an Position 3 oder 4, und das fuellt ein hochkantes Format schlecht -- solange der Stamm laeuft, steht ueber und unter ihm nichts. Dafuer fehlt zwischen "Formular eingegangen" und "Passender Lead?" der Schritt "Daten vereinheitlichen". Ein Ablauf, den es genau so gibt, ist es damit nicht mehr; einer, den es geben koennte, schon. - Slide 4 nennt die Demo-Ablaeufe "Vorlagen". Dass es eine Vorlagen-Bibliothek gibt, steht als Merkmal auf der Website; dass sie diese drei enthaelt, steht nirgends. Im Werkzeug werden sie ueber workflowId geladen, nicht als Galerie gezeigt, und das Wort "Vorlage" kommt in der Komponente nicht vor. - Kein PDS im Beitrag. Von den sechs Vorlagen nennen drei das Branchenprogramm. Uebrig bleibt genau die Gruppe GENERAL_WORKFLOW_PRESETS, in der es kein einziges Mal vorkommt -- also keine Auswahl nach Geschmack, sondern die vollstaendige zweite Gruppe. Gekuerzt wurde nichts. Erfundene Vorgaenge sind raus. Ein Zwischenstand hatte eine Slide mit einem Aktivitaetenverlauf samt Uhrzeiten. Nichts davon war gemessen, und bei einem Produkt vor dem Start ist eine erfundene Uhrzeit kein Beispiel, sondern ein Beleg, den es nicht gibt. DER PUNKTGRUND Die Arbeitsflaeche des Workflow-Editors, Werte aus WorkflowEditor.tsx der Website. Zwei begruendete Abweichungen: die Teilung ist verdoppelt, weil ein 24er Raster im Feed auf 9 px zusammenfaellt und zu grauem Schleier wird, und der Grund bleibt weiss statt getoent, weil rules.md 1a das verbietet. EIN FEHLER, DER FAST DURCHGERUTSCHT WAERE Beim Entfernen der Karten-Regeln von Post 2 blieben rund neunzig Zeilen Deklarationen ohne Selektor stehen, dazu ein Kommentar ohne Ende: nur die Selektorzeilen waren weggeschnitten. CSS faengt sich davon nicht wieder, der Parser ueberspringt bis zur naechsten Marke -- und dabei verschwand die Regel [data-edit] darunter. Damit war das Verschieben von Elementen im Canvas tot, ohne dass die Seite einen Fehler zeigte. Sichtbar wurde es erst, als ein gespeicherter Versatz von 3 px nicht mehr ankam. Behoben, und an der Stelle steht jetzt eine Warnung: Regeln als ganzen Block entfernen und danach nachsehen, ob document.styleSheets sie noch alle kennt. NEBENBEI - Die Ueberschriften stehen auf denselben Werten wie post3.html, bis auf den Pixel nachgemessen: 76 px, -0,032em, nowrap und der Versatz dy 3, den auch post2, post2-alt und post3 auf jeder Slide tragen. - Die Projektliste steht sechsmal im Repo, einmal je Post-Seite plus uebersicht.html. Post 4 ist ueberall eingetragen. Wer einen siebten Beitrag anlegt, muss an alle sechs Stellen denken. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
ceb63fec38 |
Post 3: zweite Slide, und eine Komponenten-Library fuers Video
POST 3 Slide 2 zeigt den Aufbau: HiveGrid in der Mitte, die eigenen Module auf dem gelben Ring, die fremden Programme aussen am gestrichelten Kreis. Nachbau des Schaubilds aus dem Prototyp, aber in den Markenfarben -- Magenta ist keine (rules.md 2) -- und ohne Produktnamen im Kern. Achtung: das ist eine andere Aussage als in post2-alt.html, wo in der Mitte das Branchenprogramm liegt und HiveGrid ausdruecklich der Ring ist. Steht als Warnung im Code. Die Ueberschrift "Der Kern bleibt." passt seit dem Wechsel der Mitte nicht mehr zum Bild und ist noch offen. Slide 1 traegt nur noch die Ueberschrift; ein leerer Fliesstext erzeugt jetzt keinen leeren Absatz mehr. Das Wabenfeld ist enger geschnitten (Faktor 1,301 statt 1,227) und steht am Anschlag: 96 px zur Slide-Kante, die Sicherheitszone liegt bei 92. Ueberschriften in 76 px und 3 px versetzt wie in post2-alt -- gemessen, nicht geschaetzt. Zwei Fehler, die dabei aufgefallen sind: - Die Andock-Kacheln lagen auf denselben Strahlen wie die Module und beruehrten sich. Dieselbe Ueberlappung hat der Exportpruefung eine Spanne von 37 vorgetaeuscht, wo eine fehlende Marke 0 ergeben muss -- der Gegentest kam durch, obwohl die Marke fehlte. 22,5 Grad Versatz behebt beides. - Die Pruefung kannte nur den Ausschnitt des Wabenfelds und haette auf Slide 2 an der falschen Stelle gemessen. Der Ausschnitt wandert jetzt mit in die Ablage, wabenZonen heisst darum markenZonen. VIDEO Neuer Ordner video/ mit 13 Einblendungen fuer den Schnitt, jede als Standbild und als Bildsequenz mit Ein- und Ausblendung, alle mit Alphakanal. Gerendert aus komponenten.html von bauen.mjs ueber CDP; kein ffmpeg noetig, weil eine Bildsequenz dieselbe Transparenz traegt wie ProRes 4444. Der Schatten fehlte zunaechst ganz: die Karte trug clip-path fuer die Ecken und box-shadow fuer den Schatten, und clip-path beschneidet ihn mit. Genau so steht es in rules.md 3. Sitzt jetzt als drop-shadow auf einer Huelle. NEBENBEI - Das ZIP hiess in allen Projektdateien "hivegrid-post1-loesung", weil sie voneinander kopiert wurden. Kommt jetzt aus PROJECT. - Das rechte Element-Feld liess sich nicht schliessen, wenn es nicht ganz ins Fenster passte: sein Knopf rutschte als erster hinaus. Knopf nach vorn, Escape hebt die Auswahl auf, max-width auf den Feldern. - uebersicht.html schrieb "1 Slides". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
a5ec0c565e |
Post 3: Verbinden statt ersetzen, ein Einzelbild mit dem Wabenfeld
Nummer 2 im Redaktionsplan, im Generator das dritte Projekt. Kein Carousel: eine Haltung, die man durchwischen muss, ist keine. Das Bild ist das Wabenfeld der Startseite, uebernommen aus HoneycombSection.tsx und nicht nachempfunden -- derselbe Umkreisradius, dieselbe Achsrechnung, dieselben Zellnummern. Damit stimmen WABE_MARKEN und HONEYCOMB_DEFAULT_LOGO_PLACEMENTS ueber dieselben Nummern ueberein. Die vier Waben "In Arbeit" sind raus: auf der Startseite ein Versprechen, im Feed ein Eingestaendnis. Der Ausschnitt ist enger als die Slide (880 statt 1080), das Feld also um 1,227 vergroessert -- ein Ring leerer Waben rundherum kostete nur Platz. Text mittig wie in post2-alt.html. Sechs der 14 Marken sind PNG und damit dieselbe Wette wie ein Screenshot (rules.md 7). wabenZonen() prueft sie deshalb einzeln nach: ein Punktraster ueber den ganzen Markenkasten, dessen Ecken das Gelb der Wabe tragen. Fehlt die Marke, ist der Kasten einfarbig und der Export wiederholt. Gegengetestet, indem DATEV absichtlich weggelassen wurde. Die sechs Zeichnungen von Post 2 sind aus der Kopie raus, 5237 auf 4270 Zeilen. Die Band-Maschinerie bleibt, laeuft bei einer Slide aber leer -- im Kommentar steht jetzt, dass ihre Stuetzpunkte an Post 2 geeicht sind. Nebenbei: uebersicht.html schrieb "1 Slides", faellt erst mit dem ersten Einzelbild auf. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
16b85a285a |
Projektuebersicht: alle Streifen untereinander auf einer Flaeche
Neu unter Projekt -> "Alle Projekte im Streifen". uebersicht.html zeigt die Streifen aller drei Projekte gestapelt, ohne Sidebar, auf derselben Art Flaeche wie der Generator: ziehen schiebt, das Rad zoomt, Fit passt ein. Die Seite baut die Slides nicht nach. Jedes Projekt kommt als iframe mit ?nur=streifen; in diesem Modus blendet die Post-Seite ihre Bedienoberflaeche aus und zeigt den Streifen in natuerlicher Groesse, skaliert wird aussen. Ein Nachbau wuerde irgendwann von dem abweichen, was der Generator zeigt, und waere dann schlimmer als keine Uebersicht. Drei Dinge, die dieser Modus regelt: - Es wird nichts gespeichert (stateLocked). Drei Kacheln, die beim Schliessen ihren Stand zurueckschreiben, waeren genau die Falle aus POST-2.md 6. - Die Ansicht steht fest auf "streifen". Post 2 stand im Stand auf "einzeln" und meldete deshalb 1080 px statt der vollen Breite. - Der Auswahlrahmen faellt weg; in der Uebersicht ist keine Slide "die aktuelle". Die Streifenbreite kommt per postMessage von der Post-Seite: die Zahl der Slides ist je Projekt anders und soll nicht zweimal gepflegt werden. Beim Einpassen zaehlen Beschriftung, Abstaende und Polster nicht mit -- die skalieren nicht, weil sie ausserhalb des transformierten iframes stehen. Ohne diese Rechnung lief die letzte Reihe unten hinaus. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
0c4933d6b5 |
Theme modern: Balken unter dem Akzentwort, Raster- und Mittig-Schalter
Das Akzentwort bekommt den Balken aus der Landingpage (LandingPageClient.tsx: h-[3px], -bottom-1, bg-current, im Ruhezustand auf 22 % gestaucht, bei Hover voll). Wir nehmen die volle Breite, ein Standbild kennt kein Hover. Die Masse stehen in em, weil der Balken dort unter 62 px Schrift liegt und hier unter 76 -- auf der Titel-Slide unter 88. Zum Ausprobieren zwei Schalter unter "Versuch": das Raster aus post1.html laesst sich wieder einschalten, und Ueberschrift plus Fliesstext lassen sich zentrieren. Beides steckt im Projektstand, die alte Komposition ist also einen Klick entfernt. Ausserdem: - Der Rahmen um Noahs Foto traegt jetzt --accent-teal statt der ausgewaschenen Fassung --accent-teal-light. - Die vier schwebenden Kacheln auf Slide 2 sind raus. - Das Band ist halb so dick und faengt auf Slide 3 erst hinter der Karte an, kommt also dahinter hervor statt links schon dazuzuliegen. BAND_ANSCHNITT und BAND_AUSLAUF steuern das, ohne die Stuetzpunkte zu verschieben -- die Kurve bleibt an der Naht verankert. - Auf Slide 6 stehen die Texte buendig zur Oberkante der Wabe. Die Grundlinie lag 19 px zu tief, das ist die Versalhoehe von 32 px Manrope. - .vis svg bekommt overflow: visible. Ohne das wurde der Schatten an der Kartenkante gekappt: aussen ein grauer Streifen, in den Chamfer-Kerben graue Keile. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
d578d12991 |
Theme modern: flaches Band im Slack-Look, Karten mit Schatten
Der metallisch schattierte Zylinder ist raus. Er sah fotorealistisch aus und damit wie ein Fremdkoerper auf einem flachen, ruhigen Blatt. An seiner Stelle steht eine deckende Flaeche mit einer blassen zweiten dahinter -- kein Verlauf, keine Woelbung, keine Glanzkante. Zwei Toene, umschaltbar unter "Band" im Bedienfeld: Orange #F1B729 und "HiveGrid Teal", was --dark-bg #30313D meint und nicht --accent-teal. Der Unterschied steht jetzt in rules.md, damit die Verwechslung nicht noch einmal passiert. Das Band laeuft ueber Slide 3 bis 5 (BAND_VON / BAND_BIS). Slide 1 und 6 sollen ruhig sein, Slide 2 traegt ihre eigene orangene Leitung. Gezeichnet als geschlossene Flaeche statt als dicke Linie: eine Linie bekommt am Ende eine Kappe rechtwinklig zur Laufrichtung, und die stand bei schraeger Bahn seitlich ueber die Naht. Schatten sind fuer dieses Theme erlaubt, entgegen 5. Ohne sie stehen die Karten gestochen auf dem Grund statt darueber. Als SVG-feDropShadow, weil die Karten gezeichnet sind und ein CSS-Schatten vom clip-path beschnitten wuerde. Noch nicht 3-fach exportgeprueft -- das steht als Auflage in der Regel. Ausserdem: - Slide 1: die G-Marke in der Bauchbinde statt einer leeren Wabe, das Badge der Landingpage (Monospace, 10 Grad gedreht) statt des Chips, und das Foto fuellt die Inhaltsspalte statt 620 von 1080 px. - Slide 6: das selbst gezeichnete Konfetti war ein Kleckshaufen und ist jetzt "rocket" aus dem Feather-Satz. - Kacheln haben wieder einen Boden statt harter Kontur. - migrateState 7 raeumt die gespeicherten Vis-Positionen einmalig weg: die Masse haben sich geaendert, und der offene Tab schreibt die Datei sonst zurueck (POST-2.md 6). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
5fe1d2945f |
Theme modern: Metallband, Icon-Satz und echte G-Marke
Das Band laeuft als durchgehende Zeichnung ueber den ganzen Streifen, jede Slide zeigt ihren Ausschnitt ueber --slide-i. An der Naht laeuft es weiter statt neu anzusetzen -- der Uebergang, den ein Carousel sonst nicht hat. Es ist ein Rohr, kein Farbband: vierzig Streifen aus einer Rampe, die Glanzstelle eingerueckt bei 20 % und fast weiss, der Kernschatten bei 78 % statt an der Unterkante, darunter Licht vom Grund zurueck. Der erste Anlauf mit vier weichen Streifen sah nach Bonbon aus. Damit das Band quer durch die Komposition laufen darf, liegt jede Visualisierung jetzt auf einer deckenden Karte. Linienwerk auf Transparenz verschwindet darin. Slide 5 musste dafuer von 988 auf 896 schrumpfen, Slide 6 bekam links Einzug. Ausserdem: - Feather-Icons aus @subframe/core statt selbst gezeichneter Zeichen, auf Slide 2 bis 5. Slide 6 behaelt ihre Nachbauten aus WaitlistNext. - Die echte G-Marke auf dem Ring, als Polygon statt als Bilddatei. - Die 01/02/03 auf Slide 6 sind raus. - Slide 1 uebernimmt den Rahmen der Ueber-uns-Seite: Radius 38 auf teal-hellem Grund, Foto 4,2 % eingerueckt. - Der Grund ist wieder #FFFFFF, wie Post 1 und Post 2. Den Kontrast tragen die Karten jetzt ueber die Kante (#D5DBE1). - Slide 4 und 5 hiessen abweichend vom Original; Beschriftungen und Fliesstext gleichen jetzt post2.html. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
43a4a394f2 |
Theme modern: Titel-Slide und Slide 3 neu gedacht, Badges raus
Die Badges ueber den Ueberschriften sind wieder aus. Auf einer Website ordnet so eine Pille die Sektion ein, auf einer Slide nimmt sie Platz weg, ohne etwas zu sagen, was die Ueberschrift nicht schon sagt. Slide 1 war bisher nur entkritzelt: derselbe Aufbau, nur ohne Zeichnungen. Jetzt ist das Foto selbst chamfert -- die Markenform, und ein dunkles Bild auf hellem Grund braucht keinen Rahmen. Darauf zwei Auszeichnungen, die Inhalt tragen statt zu verzieren: ein Chip oben rechts mit "Vierte Generation" und eine schwebende weisse Infokarte unten links mit Wabe, Namen und Rolle. Das ist das Muster aus Autarc und Phase0. Der Helm-Umschalter entfaellt hier. Slide 3 ist kein Bild fuer Chaos mehr, sondern der Vorgang selbst: eine Migration, die nicht durchlaeuft. Fortschritt bei 34 Prozent, drei Statuszeilen (Stammdaten uebertragen, Auftraege 1.284 Konflikte, Buchhaltung abgebrochen) und als Fusszeile Noahs eigenes Argument, die geschaetzte Dauer von einem halben Jahr. Das ist die Sprache unserer eigenen Oberflaeche; im Pitch-Screen 1 stehen fehlgeschlagene Laeufe genauso. Die Vorfassungen waren Metaphern -- gerissene Leine, Sackkarre, Knaeuel -- und ein Betrieb, der ueber einen Wechsel nachdenkt, versteht eine abgebrochene Uebernahme ohne Sinnbild. Der Fehlerton kommt aus den Tokens der Website (accent-orange #E07B54), nicht aus eigener Erfindung. Slide 3 ist NICHT im Bild geprueft. Die Maschine hat nur noch rund 0,3 GB freien Speicher, headless Chrome bekommt die Assets nicht mehr als Data-URIs eingelesen und bleibt bei "Lade Screens ..." stehen -- bei post2.html genauso, die seit dem letzten Commit unveraendert ist. Das Skript selbst ist mit node --check geprueft. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
9b405ce931 |
Theme modern: Slide 5 und 6 aus den echten Quellen gebaut
Bisher habe ich die Skizzen entschraffiert statt neu gedacht. Das ist bei Slide 6 offensichtlich geworden: eine Wabe ohne Zittern ist immer noch meine Wabe und nicht die Sektion, die es auf der Website schon gibt. Slide 6 ist jetzt ein Nachbau von app/waitlist/WaitlistNext.tsx. Alle Werte von dort, mit 1,6 hochskaliert, weil die Liste dort 560 breit ist und hier 896: Wabe 54x48 wird 86x77, Schiene links 26 wird 43 also die Wabenmitte, Abstand 56 wird 90, Nummer 13 wird 21, Titel 20 wird 32, Text 14,5 wird 23. Auf der Website leuchten die Waben beim Scrollen nacheinander auf und der dritte ist blass; ein Standbild kennt keinen Scrollstand, hier sind alle drei aktiv. Slide 5 ist ein Nachbau des Architektur-Diagramms aus dem Pitch-Paket: Kern als gefuellter Kreis in der Mitte, farbiger Ring darum, Pille mit dem Produktnamen auf dem Ring, Module als Kacheln aussen. Das Diagramm sagt genau, was die Ueberschrift sagt -- der Kern bleibt, der Ring kommt drumherum. Meine Wabe hatte dieselbe Aussage, aber in einer Form, die es in unserer Software nirgends gibt. Zwei eigene Fehler dabei behoben: Ich hatte fuer das Theme Farben erfunden (#0E1F1E, #F7FAF9). Die Website hat ein vollstaendiges Token-Set in app/globals.css. Jetzt stehen dort dessen Werte: surface, text-primary, text-secondary, container-bg, border-neutral, accent-yellow-light, accent-yellow-dark, accent-teal-light. Meine Karten hatten Chamfer und Haarlinie zugleich. In lib/chamfer.ts der Website steht ausdruecklich, dass clip-path den Rand mitbeschneidet und man stattdessen fuellen soll. Die Karten sind jetzt gefuellt, ohne Rand. Das Chamfer-Badge der Website ist zurueck. Es steht dort ueber jeder Sektion, und im Theme modern traegt es die Einordnung: Die Geschichte, Der Alltag, Der Wechsel, Was gefehlt hat, Die Loesung, So geht's weiter. Neu im Vorgehen: nach jeder groesseren Aenderung wird das Skript aus der Datei geschnitten und mit node --check geprueft. Ein doppelt vergebener Name hat die Seite still lahmgelegt, und die Pruefung findet so etwas in einer Sekunde statt in einem Renderlauf. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
993dc3e5ef |
Themes als eigene Ebene, Theme modern angelegt
Projekt und Theme waren bisher dasselbe. Jetzt nicht mehr: das Projekt sagt, welcher Beitrag, das Theme, wie er aussieht. notebook ist die Zeichenblock-Optik mit Raster, Marker und handgezogenen Formen, modern der ruhige Grund mit farbigem Akzentwort und schwebenden Karten. Beide Themes teilen Aufbau, Texte und Kompositionen. rules.md Paragraf 1a haelt fest, was sie genau trennt. Das Theme modern folgt Vorbildern aus dem Feed: Zapier, Slack, Autarc, Photovate, Plancraft. Was ich daraus uebernehme, ist nicht die Optik der einzelnen Marke, sondern das Gemeinsame -- ruhiger Grund ohne Textur, eine sehr grosse Ueberschrift mit einem farbigen Wort statt einer Markierung, schwebende Karten mit Haarlinie, Ablaufketten mit Knoten, gefuellte Kreis-Haken. Drei Farben, wie besprochen: Weiss als Grund, Orange als Akzent, Teal als Zweitfarbe. Teal stand in rules.md bisher als "ungenutzt" und traegt jetzt Zeichen und Kacheln. Die Schriftfarbe ist ein sehr dunkles Teal statt reinem Schwarz, damit sie zur Palette gehoert. Das Raster faellt weg. Die Ebene bleibt im Markup, damit beide Themes denselben Aufbau haben, sie zeichnet nur nichts mehr. Slide 4 ist der erste Umbau: der Notizzettel ist raus, die Aufzaehlung bleibt und wird zur Kette aus Karten mit Zeichenkachel, Beschriftung und Haken, dazwischen ein Verbinder mit Knoten. Die Form sagt zusaetzlich etwas aus -- die vier Dinge haengen zusammen, statt nur untereinander zu stehen. Der Menueeintrag zur Alternative fehlte in post1.html und post2.html; er stand nur in der Kopie selbst. Von dort kam man also nie hin. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
e88afc61a4 |
Post 2 als zweite Fassung: praezise Formen auf dunklem Grund
Rueckmeldung aus dem Team war, das Design duerfe "futuristischer" sein. Statt den bestehenden Beitrag umzubauen liegt er jetzt zweimal vor: post2.html bleibt die Skizzenfassung, post2-alt.html zeigt denselben Beitrag mit denselben Texten in praeziser Formensprache. Technisch ist es kein zweiter Entwurf, sondern dieselbe Zeichnung mit anderen Primitiven. strich zieht eine Gerade statt eines schwingenden Zuges, kringel eine exakte Ellipse statt eines offenen Kringels, rechteck und chamfer haben keine Ecken mehr, die ueberschiessen. Die Kompositionen sind Zeile fuer Zeile dieselben. Wer eine Visualisierung aendert, muss deshalb an beide Dateien denken -- steht in der README. Was in der Alternative entfaellt: die Randnotizen der Titel-Slide (Gluehbirne, Zettel, Maulschluessel), der versetzte Zweitrahmen mit schraffiertem Band, die Bodenschatten unter den Ikonen und alle Schraffuren als Fuellung. An ihre Stelle treten ein sauberer Chamfer-Rahmen mit Eckwinkeln in Gelb und gefuellte Flaechen. Die dunkle Variante hat zwei Fehler sichtbar gemacht, die in der hellen Fassung nie aufgefallen waeren: Das Akzentwort steht auf Dunkel in #1A1A1A und ist nur dort lesbar, wo die gelbe Markerflaeche darunterliegt. Die deckte 62 Prozent der Zeilenhoehe ab, also rund 49 px bei einer Versalhoehe von etwa 53 -- die obere Haelfte der Buchstaben verschwand im Grund. Sie deckt jetzt die ganze Zeile. Die Beschreibungen der drei Schritte auf der letzten Slide standen fest auf #555555, einem Wert der hellen Variante. Sekundaerer Text folgt jetzt der Variante, wie TINTE und GELB auch. Dafuer zieht applyAll die Farben nach und baut alle Seiten neu, nicht nur die Titel-Seiten. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
f465749c8f |
Post 2: Slide 4 nennt Projektmanagement statt CRM
Im Fliesstext von Slide 4 steht jetzt "KI-Loesungen, Projektmanagement, Automatisierungen" statt "ein CRM". Der Satz bleibt zweizeilig, gemessen 89 px. Damit taucht Projektmanagement zweimal auf der Slide auf: im Fliesstext und als zweiter Punkt in der Liste darunter. Bei CRM gab es das nicht, weil das Wort in der Liste nicht vorkam. Der Kommentar ueber der Liste behauptete bisher, sie nenne die Kategorien des Fliesstextes nicht noch einmal -- das stimmt so nicht mehr und ist mit angepasst. Der Projektstand kommt mit, er traegt eine weitere Verschiebung der Zeichnung auf der letzten Slide. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
a7c347070e |
Post 2: Ueberschriften auf eine Hoehe, Slide 2 leitet ueber
Alle sechs Ueberschriften stehen jetzt bei 59, gemessen an der Titel-Slide von Post 1. Post 2 sass 125 px tiefer, und die Ursache war das ausgeblendete Tag: es stand auf visibility: hidden und hielt damit weiter 54 px Hoehe plus 38 px Abstand im Textfluss. Jetzt steht es auf display: none und der obere Abstand kommt direkt aus dem padding von .content. Wer das Tag je sichtbar macht, muss das padding mitziehen -- steht als Kommentar dabei. Die Titel-Slide bekommt 88 px, wie Post 1. Das gilt nur fuer sie und liegt deshalb als Ueberschreibung im Projektstand, nicht im CSS; genauso macht Post 1 es bei seiner Tagline. Fuer alle sechs ginge 88 nicht: gemessen ist "Dein Branchenprogramm" dann 1022 px breit bei 896 verfuegbaren, und die Ueberschriften von Slide 2, 4 und 5 wuerden dreizeilig. Die Grundgroesse bleibt deshalb 74. Slide 2 schnitt bisher hart hinter der Vorstellung von Noah. Jetzt leitet sie ueber, und zwar mit Noahs eigener Bewegung: er raeumt die Erfahrung erst ein und dreht dann. "Wer lange dabei ist, hat nicht nur Erfahrung", und der Fliesstext haengt mit "Auch Ablaeufe ..." direkt daran. Das nachgestellte "Nicht, weil ..." ist bei ihm ein Stilmittel, keine abgehackte Halbzeile. Das Wort Zettelwirtschaft ist aus der Ueberschrift raus. Die Zeile sagt "nicht nur Erfahrung", und was das andere ist, zeigt die Zeichnung daneben. Der Projektstand kommt mit. Er traegt eigene Feinjustierungen an Ueberschriften, Fliesstexten und Zeichnungen, darunter die Einrueckung der Titel-Ueberschrift von 37 px: damit endet die Zeile bei rund 985 und bleibt innerhalb der Safe Zone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
3781cc95d9 |
Post 2: Slide 3 wird eine Leserichtung
Wechsel-Symbol, Pfeil, Chaos. Was drinhaengt, steht im Symbol; wohin ein Wechsel fuehrt, steht rechts. Der Fliesstext sagt dasselbe in derselben Reihenfolge. Vier Fassungen liegen dahinter, und sie sind lehrreich, weil sie verschieden falsch waren. Ein verwurzelter Kasten mit gerissener Leine und eine beladene Sackkarre erzaehlten je eine kleine Szene -- zu viel fuer eine Slide, die im Vorbeiscrollen sitzen muss. Eine dritte reihte Block, Pfeile und eine schraffierte Wand nebeneinander; die Wand las niemand als Wand, sondern als ausgemalten Kasten. Die vierte war ein durchgestrichenes Symbol, aber der Strich lief quer durch die Woerter. Was allen vieren fehlte, war eine Richtung. Drei Stationen von links nach rechts liest man in einer Sekunde, drei Teile nebeneinander nicht. Das Chaos ist eine Bahn durch lauter zufaellige Punkte, weich gezogen, die sich dadurch staendig selbst kreuzt. Zwei Durchgaenge fuer die Dichte, dazu lose Enden nach aussen: ein Knaeuel ohne Enden sieht aus wie eine Wolke. Der Zufallskeim liegt fest, das Knaeuel ist bei jedem Export dasselbe. Die Zeichenflaeche folgt hier der Zeichnung statt umgekehrt. Drei Formen nebeneinander duerfen in 896 Breite hoechstens rund 200 Radius haben, eine 730 hohe Box waere damit zu drei Vierteln leer gewesen. Sie ist jetzt 520 hoch und sitzt mittig in der freien Hoehe unter dem Text. "Die Leute, die es kennen" ist raus, aus Bild und Text. Ohne die lange Zeile durfte die Schrift groesser werden. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
8590fa7e6e |
Post 2: Texte an Noahs Original, Pfeil ueber die Naht
Die Texte lasen sich maschinell, und der Grund war nicht die Kuerze. Alle
fuenf Ueberschriften hatten dieselbe Form: zwei abgehackte Fragmente mit
Punkt dazwischen, fuenfmal hintereinander, und die Fliesstexte machten es
nach. Jetzt wechseln sich Aussage mit Wendung, Frage und Antwort, Paar und
durchlaufender Satz ab. Die Formulierungen kommen aus Noahs Text statt aus
dem Nichts: "Und wechseln? Kannst du vergessen", "Stammdaten, Auftraegen
und Buchhaltung", "kein Ersatz, sondern der Aufbau drumherum".
Das Wort ERP kommt nicht mehr vor, es heisst Branchenprogramm wie bei
Noah. Slide 2 traegt die Enthuellung aus seinem Absatz, dass ein alter
Betrieb nicht nur Erfahrung vererbt. Slide 6 traegt die Marken-Tagline,
ausgezeichnet wie in Post 1: der Marker sitzt auf dem zweiten Handwerker,
nicht auf der ganzen Zeile.
Der Beitrag ist Noahs Konzept, sagt das aber nirgends geradeheraus. Slide
2 stellt fest, dass hinter den gewachsenen Ablaeufen keines steckt, Slide
5 liefert eines. Das Wort faellt genau einmal.
Slide 1 bekommt Randnotizen: Gluehbirne, Zettel, Maulschluessel. Der
Schluessel brauchte zwei Anlaeufe, erst war er ein Knochen, weil glatt()
die Kanten wegrundet. Ein Werkzeug lebt von scharfen Kanten. Aus CEO wird
Gruender.
Slide 4 zeigt statt einer Wunschliste vier Funktionen mit Haken und
Zeichen. Die Zeichen stehen in einer Spalte statt hinter dem Wort, sonst
haetten die unterschiedlich langen Zeilen eine ausgefranste Kante ergeben.
Zwischen Slide 4 und 5 laeuft ein Pfeil ueber die Naht, auf halber
Slide-Hoehe. Umriss gezeichnet, innen mit Schraegstrichen ausgemalt, in
Tinte statt Gelb: Gelb bedeutet hier Verbindung und gehoert der Zeichnung,
der Pfeil weist nur weiter. Dafuer reichen beide Zeichenflaechen jetzt bis
an die Slide-Kanten, Slide 5 beginnt bei 0 statt bei 92.
Dabei kam ein Fehler heraus, der jede kuenftige Slide getroffen haette:
"--vis-left:" + (sl.visLeft || 92)
Die 0 ist falsy, also hat || sie als fehlenden Wert behandelt und den
Vorgabewert eingesetzt. Steht jetzt auf ??, ebenso bei visW und visBottom.
Aufgefallen ist es nur beim Nachmessen, nicht beim Hinsehen.
Der Projektstand kommt mit. Er traegt eigene Textfassungen fuer Slide 3
und 6 sowie die Groesse und Lage der Karte auf Slide 1.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
||
|
|
9cc82e59ee |
Post 2: Titel-Slide gezeichnet, Helmlage umschaltbar
Das Foto bleibt roh, gezeichnet wird drumherum. Der Rahmen ist die Markenform, dazu ein versetzter Zweitzug und eine schraffierte Kante. Die drei greifen ineinander statt nebeneinanderher zu laufen: der versetzte Zug ist die Aussenkante des Schattens, die Schraffur fuellt das Band dazwischen. Zur Schattenfrage steht ein Hinweis im Code -- Paragraf 5 in rules.md verbietet weichgezeichnete Schatten, und die dort notierte Ausnahme sagt, eine Linie ist kein Schatten. Eine Schraffur besteht aus Linien. Der Helm sitzt wahlweise an der abgeschnittenen Rahmenecke oder auf Noahs Kopf. Das haengt am Layout-Schalter der Slide, also am vorhandenen Geruest, und nicht an einem eigenen Sonderschalter. In der Ecken-Lage kippt er nach rechts, damit die Oeffnung ueber der Ecke liegt: nach links gekippt sah er aus, als falle er herunter. Drei Anlaeufe stecken im Helm, die Zwischenschritte stehen als Kommentar dabei. Erst war die Kuppel flach und die Krempe eine geschlossene Scheibe darunter, zusammen eine Schirmmuetze. Dann kam Schraffur dazu, und die Waagerechten kreuzten die Grate zu einem Gitter, also einem Korb. Was traegt, sind viele Stuetzpunkte, ein First, zwei Nebenrippen und eine Krempe mit Dicke. Drei Dinge waren technisch noetig: Die Zeichenebene ist rechts breiter geworden, von 114,8 auf 128,4 Prozent. In der Ecken-Lage ragt der Helm ueber den Rahmen hinaus und waere sonst beim Export abgeschnitten worden. renderPage erneuerte bisher nur den Textblock. Ein Layoutwechsel haette die Zeichnung nicht angefasst und der Schalter waere wirkungslos geblieben. Jetzt wird die Visualisierung mitgezogen; der Zufallskeim ist gesetzt, es kommt derselbe Strich heraus. VIS-Funktionen bekommen den Slide-Index, sonst kann eine Zeichnung ihren eigenen Layout-Zustand nicht lesen. Im Foto ist der Eckenradius von 38 auf 8 runter und der Navy-Rand entfallen. Mit dem gezeichneten Rahmen waeren das sonst drei Rahmen uebereinander gewesen. Das weicht vom Nachbau der Website-Karte ab und ist bewusst so. Der Projektstand kommt mit: Slide 1 traegt jetzt manuelle Anpassungen aus dem Generator. Der Fliesstext ist geleert, Ueberschrift und Karte sind verschoben, das Foto steht dadurch allein. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
ce56735077 |
Post 2: Visualisierungen fuellen das Format
Gemessen statt geschaetzt: der Inhaltsblock endet bei y 415 bis 460, unten bleiben 92 px Rand, also rund 800 px freie Hoehe. Die Visualisierungen waren 115 bis 393 hoch, der Rest war tote Flaeche. Jetzt fuellen alle sechs das Format mit 70 bis 133 px Luft zum Text. Slide 6 bleibt bewusst kleiner und steht mittig: ein Formularfeld auf 700 px aufgeblasen sieht aufgeblasen aus. Slide 2 hat eine echte Schiene mit gedrehter Beschriftung statt zweier unerklaerlicher Balken. Der Riegel aus der alten Fassung war noch im Markup, sein CSS aber schon weg. Die Schritte heissen jetzt "abtippen, noch mal abtippen, und noch mal" statt dreimal "so wie immer". Der gelbe Akzent auf "Chat" ist raus. Die vier Bausteine sind gleichwertig, und Gelb bedeutet auf den anderen Slides etwas anderes. Im Stand lagen Probier-Verschiebungen, die Noahs Karte auf 700 px vergroessert und 250 px nach unten geschoben hatten. Deshalb war sie unten abgeschnitten, obwohl die Vorgabe im Code stimmte. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
3f72d892c5 |
Redaktionsplan Instagram als PDF
Vier Seiten: Rahmen und Rhythmus, der Plan vom 12.08. bis 14.09., Bildsprache, taegliche Interaktion und Auswertung. Layout, Schrift und Farben wie beim Webinar-Vergleich. Der Kanal ist in dieser Phase kein Reichweiten-, sondern ein Darstellungskanal: fuer Leute, die ohnehin auf uns stossen. Das steht in der Praemisse und traegt die Entscheidungen, etwa warum Carousels vor Reels kommen, obwohl Reels unter 50.000 Followern mehr Reichweite bringen. 15 Termine, drei pro Woche um 12:00. Sechs Sorten im Wechsel, damit sich das Konto nicht wie ein Prospekt liest: acht Funktionen, zwei zu Menschen und Betrieb, zwei Einwaende, je einmal Haltung, Wissen ohne Produkt und Aufruf. Das erste Reel am 09.09. ist eine Bildschirmaufnahme, dafuer braucht es keine Kamera. Gebaut wird mit "python3 redaktionsplan/bauen.py". Schrift und Logo kommen aus den Assets dieses Repos, nicht aus einem Nachbarordner, damit sich das PDF ueberall bauen laesst. Die erzeugte HTML ist ignoriert, sie entsteht neu. Zahlen zu Ausspielung und Posting-Zeiten sind belegt und als Groessenordnung gekennzeichnet, nicht als Zusage. Sie stammen aus Auswertungen Dritter, nicht von Meta. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
bd06f77a60 |
Post 2: die Geschichte, mit gebauten Visualisierungen
Sechs Slides von der Baustelle bis zur Warteliste. Statt Screenshots traegt jede Slide eine Visualisierung des Stichworts aus ihrem Text: drei Schritte fest auf einer Schiene, der schwere Bestand mit dem durchgestrichenen Pfeil, vier lose Kacheln deren Verbindungen ins Leere laufen, das ERP als Sechseck mit den Neuen daran, ein Feld mit Knopf. Alles HTML, kein Bildmaterial ausser Noahs Karte. Damit bleibt es beim 3-fachen Export so scharf wie die Schrift, und jede Visualisierung laesst sich im Canvas verschieben und in der Breite aendern wie jedes andere Element. Das Kreuz auf der Wechsel-Slide liegt auf dem Pfeil, nicht auf dem Ziel: der Wechsel scheitert, nicht das neue System. Die Karte ist der aktive Zustand von der Ueber-uns-Seite, Werte aus TeamCards.tsx. Ohne die weichgezeichnete Ellipse des Originals: die haengt an backdrop-filter, und was der Export daraus macht, ist nicht verlaesslich. Die Texte sind bewusst NICHT die von der Website. Dort stehen ganze Absaetze, auf einer Slide muss eine Zeile im Vorbeiscrollen sitzen; der volle Text kommt unter den Beitrag. Aus den gemessenen Breiten folgt: bei 74 px und -0,03em passen rund 26 Zeichen in eine Zeile. Keine hier ist laenger als 22. Der Stand von post2 ist neu geschrieben, er zeigte noch auf die Slides von Post 1. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
b0ec520a72 |
Projektstaende: post2 als Kopie, post1 auf Stand 6
post2 uebernimmt den Stand von post1, damit die Kopie auch Look, Ausrichtung und Variante teilt und nicht bei den Standardwerten anfaengt. state/post1-vorher.json kommt mit herein. Die Datei schreibt kein Code, sie ist von Hand angelegt worden und sieht nach einem Rueckfallpunkt aus. Mitgenommen statt geloescht, weil sie sonst beim naechsten Klonen fehlt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
92529a8c47 |
Element-Feld rechts: Text, Masse, Ausrichten, Ebene
Die Auswahl eines Elements war nur eine Zeile im linken Bedienfeld, und die
Bedienung dazu lag zwischen Slide-Einstellungen verstreut. Jetzt ist die
Oberflaeche geteilt: links die Slide und alles Allgemeine, rechts genau das
angeklickte Element.
Im Element-Feld stehen Text, Groesse, X und Y, die Ebene, das Ausrichten an
der Slide (links, mittig, rechts sowie oben, mittig, unten mit 92 px Rand),
das Angleichen ueber alle Slides und das Loeschen. Der Text schreibt in
dieselbe Ueberschreibung, die auch das Inhalt-Feld links fuellt -- man
beschriftet also die Ueberschrift, indem man sie anklickt.
Ausgerichtet wird gemessen statt gerechnet: die Mockups stehen
perspektivisch im Raum und das Blatt ist gepolstert.
Zwei Fehler, die dabei aufgefallen sind:
Das Feld faehrt beim Anklicken ein und macht die Buehne schmaler -- damit
aendert sich der Massstab mitten im Klick. Der Zug rechnete aber mit einem
frisch gerechneten autoFit und verschob das Element deshalb um ein Drittel
zu weit. Genommen wird jetzt der Massstab, mit dem tatsaechlich gezeichnet
ist.
Und ein fehlendes Bild riss den ganzen Export mit ("1 Bild(er) nicht
geladen"), ohne zu sagen welches. Verweise auf Dateien, die es nicht mehr
gibt, werden beim Start aufgeloest und benannt; eine Slide baut sich auch
ohne sie auf.
Geprueft: 13 Faelle fuer das Element-Feld, dazu der volle Exportlauf und die
Maus-Bedienung.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
||
|
|
21e1d3009f |
Post 1 Alt und Post 2 entfernt
Beide Projekte werden nicht mehr gebraucht. Weg sind post1-alt.html, index.html und state/post2.json, dazu der lokale state/post1-alt.json. Mitgezogen, damit nichts ins Leere zeigt: die Projektumschaltung im Bedienfeld samt ihrer CSS-Regeln, die Projekttabelle und die Liste der Stand-Dateien in der README, die Startzeile und der Aufbau in rules.md. Achtung: Ohne index.html liefert http://127.0.0.1:4321/ nur noch die Verzeichnisliste. Der Einstieg ist /post1.html. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
713cac113d |
Projektstaende auf Stand 5
Slides 2 und 3 getauscht, Tag-Eintraege geraeumt. Betrifft den laufenden Stand und den gemerkten Rueckfallpunkt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
8daa1ac3a6 |
Projektstand: Exportfertiger Stand der Titel-Slide
Ueberschrift oben, Mockup gross gezogen, Text von Slide 2 wieder auf Slide 2. Der Merkzettel steht auf demselben Stand. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
9f74419631 |
Projektstand: Raster, neues Titel-Mockup gesetzt, Merkzettel gleichgezogen
Der Stand mit aktivem Raster auf allen Slides und den gezogenen Positionen. Das neue Titel-Mockup ist eingepasst. Der Merkzettel steht auf demselben Stand, ueber "Stand merken" gesetzt und gegengelesen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
25ffc30c4e |
Projektstand zurueck auf den Laptop-Stand
Die Uebernahme von
|
||
|
|
3c0b22aa9a |
Laptop-Stand uebernommen, Projektstand von hier behalten
Beide Seiten hatten state/post1.json geaendert. Der Code, das neue Titel-Mockup und die umbenannten Tags kommen vom Laptop; der Projektstand ist der von hier (Rahmen "rund", Positionen von 23:30). Bewusst so entschieden -- die Positionsarbeit vom Laptop faellt damit weg. Der Stand steht noch auf v2. Beim naechsten Laden rechnet ihn das Skript auf v3 hoch und entfernt dabei den szene-Eintrag, weil das Titel-Mockup ein anderes Bild mit anderem Format geworden ist. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
95d7f106b1 |
Projektstand: Positionen nachgezogen, Rahmen rund
Elemente auf mehreren Slides verschoben, Bildrahmen von "stapel" auf "rund" gestellt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
1a819854c2 |
Projektstaende auf Stand 3
Der Wert fuer das Titel-Geraet ist raus, er gehoerte zum abgeloesten Mockup. Betrifft den laufenden Stand und den gemerkten Rueckfallpunkt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
307f5a0bad |
Projektstaende: Tags ausgerichtet, Rueckfallpunkt abgelegt
post1 traegt jetzt Stand 2, die Tags stehen auf allen Feature-Slides auf -42/-68. post1-merk ist der von Hand gemerkte Rueckfallpunkt, post2 kommt neu dazu. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
be1a81a984 |
Positionen auf Slide 1 und 2 nachgezogen
Szene, Badge und beide Mockups verschoben, Auswahl steht auf Slide 4. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
1359c6eba8 |
Projektstand liegt im Repo statt nur im Browser
Der Stand hing am localStorage und damit an einem Rechner. Wer das Projekt woanders zog, sah einen anderen Stand. Jede Aenderung geht jetzt zusaetzlich in state/<projekt>.json, gebuendelt nach 600 ms. Beim Laden gewinnt die Datei, der localStorage ist nur noch der Rueckfall fuer den Fall, dass der Server nicht laeuft. Gibt es die Datei noch nicht, wird der vorhandene Browser-Stand einmalig hineingeschrieben. Ein Reload verschluckt nichts: was im Timer haengt, geht per sendBeacon raus. Der Server nimmt den Stand unter POST /state entgegen und loescht ihn unter DELETE /state. Der Projektname wird gegen ein enges Muster geprueft und der Zielpfad zusaetzlich gegen state/ gegengerechnet. Geschrieben wird erst in eine Nebendatei und dann umbenannt, eingerueckt und mit sortierten Schluesseln, damit git einen lesbaren Unterschied zeigt. state/*.json gehoeren ab jetzt in jeden Commit, sonst sieht die andere Maschine die Aenderung nicht. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |