Skip to content

resize() relativ zur eingefügten Größe statt absolut - #63

Merged
flomotlik merged 2 commits into
mainfrom
feature/resize-relativ-zur-eingefuegten-groesse
Sep 25, 2026
Merged

flomotlik merged 2 commits into
mainfrom
feature/resize-relativ-zur-eingefuegten-groesse

Conversation

@flomotlik

Copy link
Copy Markdown
Contributor

Beim Nachfahren aller neuen Fähigkeiten gegen die Live-Seite kam ein Bild zurück, dessen Text links und rechts hinauslief und dessen Wahlkreuz das halbe Sujet bedeckte. objects() meldete korrekt insideMargin: false.

Die Ursache

Der Generator fügt eine längere Schlagzeile ein mit Skalierung 0,104 (863 px auf 1080 px Bildbreite)
resize(0.35) setzte das als absoluten Wert 2899 px

Fast das Dreifache der Bildbreite statt eines Drittels.

Und die llms.txt behauptete dazu: „1 ist die eingefügte Größe." Das war falsch — die eingefügte Größe ist 0,104. Wer der Anleitung folgte, machte Elemente um ein Vielfaches zu groß, und zwar in die Richtung, die die Zahl gerade nicht nahelegt.

Behoben

  • resize(faktor) rechnet relativ zur eingefügten Größe. 1 lässt alles wie es ist, 0.5 halbiert, 2 verdoppelt. Die add*-Methoden merken sich beim Verfolgen, mit welcher Skalierung die App das Element angelegt hat.
  • place() klemmt auf den Bildrand, damit ein zu großes Element nicht ganz aus dem Bild geschoben wird. objects() meldet weiterhin insideMargin: false, damit es auffällt statt still zu passieren.
  • Zwei Regressionstests: einer prüft die relative Semantik direkt, der andere fährt genau die Kombination, die das dreifach zu breite Bild erzeugt hat.

Was mir daran zu denken gibt

Alle 132 Jest- und 104 e2e-Tests waren grün. Die CI war grün. Der Deploy war erfolgreich.

Der Fehler steckte in der Bedeutung einer Zahl, nicht in einer Zusicherung, die irgendein Test geprüft hätte — meine Tests prüften „wird kleiner", und 0,4 war zufällig kleiner als die vorherige Größe. Erst 0.35 auf einem längeren Text kippte es ins Gegenteil.

Gefunden hat ihn das Rendern eines echten Bildes nach dem Deploy. Angezeigt hat ihn objects() mit insideMargin: false — die Fassade hat sich selbst überführt.

VERSION auf 7. 132 Jest grün, 105 e2e grün.

https://claude.ai/code/session_01Qtib9MPRZATQU3j9w7ymDk

Beim Nachfahren aller neuen Faehigkeiten gegen die Live-Seite kam ein
Bild zurueck, dessen Text links und rechts hinauslief. objects() meldete
korrekt insideMargin: false.

Nachgemessen: Der Generator fuegt eine laengere Schlagzeile mit
Skalierung 0,104 ein — 863 px auf 1080 px Bildbreite. resize(0.35) hat
das als absoluten Wert gesetzt, also auf 2899 px. Fast das Dreifache der
Bildbreite statt eines Drittels.

Die llms.txt behauptete dazu "1 ist die eingefuegte Groesse". Das war
falsch: Die eingefuegte Groesse ist 0,104. Wer der Anleitung folgte,
machte Elemente um ein Vielfaches zu gross — und zwar in die Richtung,
die die Zahl gerade nicht nahelegt.

- resize(faktor) rechnet jetzt relativ zur eingefuegten Groesse. Die
  add*-Methoden merken sich beim Verfolgen, mit welcher Skalierung die
  App das Element angelegt hat.
- place() klemmt auf den Bildrand, damit ein zu grosses Element nicht
  ganz aus dem Bild geschoben wird. objects() meldet weiterhin
  insideMargin: false, damit es auffaellt.
- Zwei Regressionstests: einer prueft die relative Semantik direkt, der
  andere faehrt genau die Kombination, die das dreifach zu breite Bild
  erzeugt hat.

Bemerkenswert: Alle 132 Jest- und 104 e2e-Tests waren gruen, die CI
auch. Der Fehler steckte in der Bedeutung einer Zahl, nicht in einer
Zusicherung, die ein Test geprueft haette. Gefunden hat ihn erst das
Rendern eines echten Bildes nach dem Deploy — und angezeigt hat ihn
objects(), also die Fassade selbst.

VERSION auf 7.

Claude-Session: https://claude.ai/code/session_01Qtib9MPRZATQU3j9w7ymDk
Die llms.txt fuehrte unter "geht nicht", dass Text im Stoerer nicht
machbar sei und die Schriftgroesse nicht steuerbar. Das stimmte, als es
geschrieben wurde. Mit resize() stimmt es nicht mehr: Der Kreis misst
320x320, der Text "31.8." wird mit 858 px eingefuegt und passt
verkleinert mit 192x108 hinein.

Wieder eine falsche Angabe unter "geht nicht" — der Fehlertyp, bei dem
ein Modell eine Anforderung ablehnt, die das Werkzeug erfuellen kann.

Gefehlt hat tatsaechlich nur die Platzierung. Neu:

- fitInto(index) verkleinert das zuletzt hinzugefuegte Element auf ein
  anderes, per Vorgabe auf 60 % von dessen Breite.
- place({ onto: index }) legt es mittig darauf.

Damit ist der Stoerer mit Text erstmals ueber die Schnittstelle baubar —
die Form, die der CD-Quickguide zeigt. Das Beispiel in der llms.txt ist
lauffaehig und wird vom Beispieltest mitgefahren.

VERSION auf 8.

Claude-Session: https://claude.ai/code/session_01Qtib9MPRZATQU3j9w7ymDk
@flomotlik
flomotlik merged commit d52a7ea into main Sep 25, 2026
7 checks passed
@flomotlik
flomotlik deleted the feature/resize-relativ-zur-eingefuegten-groesse branch September 25, 2026 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant