ui: jeder Bedienpunkt 32 px, Menü-Gruppe rollt statt zu drängeln (#862) - #863
Merged
Merged
Conversation
Gemessen im echten Browser (2026-09-13, Chromium gegen dist/renderer, 390/768/1440 px) mit scripts/bedienbar.mjs aus av-planner-suite. DER ANLASS. Der Waechter misst seit B-77 vier Planer. Dieser stand nicht in der Liste, weil sein dist/ das Electron-Layout traegt (renderer/index.html statt einer Wurzel-Datei). Das ist eine Eigenschaft des LAUFS und keine Auskunft ueber die App — der Ordner dist/renderer laesst sich ohne Weiteres bedienen. Als er einmal bedient wurde, kamen 62 Bedienpunkte unter 32 px heraus (33 bei 390 px): Menueknoepfe (File · Edit · Tools · View · Help) 26 px hoch Projektname in der Kopfzeile 22 px Undo / Redo 30 x 22 px Einstellungen 22 px Spalten-Griffe (‹ ›) 28 x 28 px Reiter der Seitenleiste 26 px Suchfeld der Bibliothek 28 px die 16 Kategoriezeilen der Bibliothek 18 px Kategorie-Chips (Video · Audio · Control · …) 24 px Schematic / Circuit 24 px die vier ReactFlow-Regler 26 x 27 px das Stil-Feld am Kabel 49 x 17 px Achtzehn Pixel ist eine Zeile, die man mit der Maus trifft und mit dem Finger nicht — und die Bibliothek ist die Flaeche, auf der in dieser App am meisten geklickt wird. WARUM KEIN WAECHTER DAS GESAGT HAT. `mobil:check` misst UEBERLAUF und war auf allen 62 Punkten gruen. Das ist kein Versaeumnis: er beantwortet eine andere Frage, und er beantwortet sie gut — nichts ragt in keiner Breite und keiner Sprache hinaus. `greifzonen:check` misst, welcher Pfad auf dem Canvas obenauf liegt. Auch das ist eine andere Frage. Drei Laeufe, drei Fragen. EINE GLOBALE REGEL statt 62 Klassen-Strings: die Hoehen entstehen aus Tailwind-Polsterung und nicht aus einer Hoehen-Angabe, und die 63. Stelle faellt sonst morgen wieder durch. `min-height` gewinnt gegen `height`, deshalb greift sie auch bei den ReactFlow-Reglern, deren Groesse aus dem Paket kommt. AUSGENOMMEN ist alles auf dem Canvas (`.react-flow__node`, `.react-flow__handle`). Eine Buchse am Geraet ist kein Knopf in einer Leiste: ihre Groesse kommt aus dem Raster des Geraets (B-48, `gridSize`), und sie auf 32 px zu heben verschoebe jeden Port und damit jedes Kabel. Der Canvas hat seine eigene Bedienung — Zoom — und seine eigene Messung. Ebenfalls ausgenommen: Kaestchen, Auswahlknoepfe, Schieberegler. WAS DIE REGEL MIT SICH BRACHTE, und was daraus folgte: 1. DIE KOPFZEILE PASSTE AUF DEUTSCH NICHT MEHR. Breitere kleine Knoepfe, und die Zeile hatte keinen Spielraum: `mobil:check` wurde rot (Projektname bis 410 px, rechte Gruppe bis 438 px) — auf Englisch nicht. Genau dafuer misst er jede ausgelieferte Sprache. Die Abhilfe aus B-66 (Polsterung verkleinern) ist ausgereizt. Die fuenf Menues stehen jetzt in einer eigenen Gruppe (`.cp-menubar`), und die rollt waagerecht. Nicht die ganze Zeile: rollte sie, rollte der Einstellungen-Knopf mit aus dem Bild — die Lage, die B-66 beschreibt. DASS SIE ROLLEN DARF, ist keine Selbstverstaendlichkeit: ein Rollbereich schneidet ab, was nicht hineinpasst, und die Klappen WAREN Kinder dieser Zeile. Sie haengen jetzt am Fenster. Im light-planner ist genau diese Kombination schiefgegangen — dort war jede Klappe 0 px hoch sichtbar. Rollen fuehrt die Klappe nach statt sie zu schliessen; im multicam-planner ging sie sonst auf und sofort wieder zu, weil das Rollereignis NACH dem Klick kommt. 2. DIE MENUETITEL BRACHEN UM. Mit 32 px Hoehe hatte ihr Inhalt Platz fuer eine zweite Zeile, und weil sie in einer schrumpfenden Reihe stehen, nahmen sie sie sich: aus 46 x 26 px wurden 36 x 37 px, das Zeichen stand unter dem Wort. `inline-flex items-center` bricht nicht um — dieselbe Bauart wie in den anderen vier Apps. Nachgemessen: in allen drei Breiten kein Bedienpunkt unter 32 px, nichts ragt hinaus, kein Feld ohne Namen. 4130 Tests gruen, alle fuenf Waechter gruen (lang, form, mobil, actions, greifzonen).
larszu
marked this pull request as ready for review
September 13, 2026 11:49
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gemessen im echten Browser (2026-09-13, Chromium gegen
dist/renderer, 390/768/1440 px) mitscripts/bedienbar.mjsausav-planner-suite(B-77).Der Anlass
Der Wächter misst seit B-77 vier Planer. Dieser stand nicht in der Liste, weil sein
dist/das Electron-Layout trägt (renderer/index.htmlstatt einer Wurzel-Datei) — eine Eigenschaft des Laufs, keine Auskunft über die App. Als der Ordnerdist/renderereinmal bedient wurde, kamen 62 Bedienpunkte unter 32 px heraus (33 bei 390 px).Achtzehn Pixel ist eine Zeile, die man mit der Maus trifft und mit dem Finger nicht — und die Bibliothek ist die Fläche, auf der in dieser App am meisten geklickt wird.
Warum kein Wächter das gesagt hat
mobil:checkmisst Überlauf und war auf allen 62 Punkten grün. Das ist kein Versäumnis: er beantwortet eine andere Frage, und er beantwortet sie gut — nichts ragt in keiner Breite und keiner Sprache hinaus.greifzonen:checkmisst, welcher Pfad auf dem Canvas obenauf liegt. Drei Läufe, drei Fragen.Was ausgenommen bleibt
Alles auf dem Canvas (
.react-flow__node,.react-flow__handle). Eine Buchse am Gerät ist kein Knopf in einer Leiste: ihre Größe kommt aus dem Raster des Geräts (B-48,gridSize), und sie auf 32 px zu heben verschöbe jeden Port und damit jedes Kabel. Der Canvas hat seine eigene Bedienung — Zoom — und seine eigene Messung. Dazu wie überall: Kästchen, Auswahlknöpfe, Schieberegler.Was die Regel mit sich brachte
1. Die Kopfzeile passte auf Deutsch nicht mehr. Breitere kleine Knöpfe, und die Zeile hatte keinen Spielraum:
mobil:checkwurde rot (Projektname bis 410 px, rechte Gruppe bis 438 px) — auf Englisch nicht. Genau dafür misst er jede ausgelieferte Sprache.Die Abhilfe aus B-66 (Polsterung verkleinern) ist ausgereizt. Die fünf Menüs stehen jetzt in einer eigenen Gruppe (
.cp-menubar), und die rollt waagerecht. Nicht die ganze Zeile: rollte sie, rollte der Einstellungen-Knopf mit aus dem Bild — die Lage, die B-66 beschreibt.Dass sie rollen darf, ist keine Selbstverständlichkeit. Ein Rollbereich schneidet ab, was nicht hineinpasst, und die Klappen waren Kinder dieser Zeile. Sie hängen jetzt am Fenster. Im
light-plannerist genau diese Kombination schiefgegangen (larszu/light-planner#126: Datei-Klappe 250 × 505 px groß, 0 px sichtbar). Rollen führt die Klappe nach statt sie zu schließen — immulticam-plannerging sie sonst auf und sofort wieder zu, weil das Rollereignis nach dem Klick kommt.2. Die Menütitel brachen um. Mit 32 px Höhe hatte ihr Inhalt Platz für eine zweite Zeile, und weil sie in einer schrumpfenden Reihe stehen, nahmen sie sie sich: aus 46 × 26 px wurden 36 × 37 px, das Zeichen stand unter dem Wort.
inline-flex items-centerbricht nicht um — dieselbe Bauart wie in den anderen vier Apps.Gegenprobe
Kein Bedienpunkt unter 32 px, nichts ragt hinaus, kein Feld ohne Namen. 4130 Tests grün, alle fünf Wächter grün (
lang,form,mobil,actions,greifzonen— letzterer unterxvfb-run, wie in CI).Nebenbefund, nicht in diesem PR
Beim ersten Start stehen zwei Willkommens-Dialoge übereinander: der eigene und der aus
@avplan/onboarding-core. Auf 390 px überlappen sie sichtbar. Das ist eine Frage der Dialog-Reihenfolge, keine der Zielgrößen, und gehört in einen eigenen Eintrag.Closes #862
🤖 Generated with Claude Code
https://claude.ai/code/session_016DYtHJAFkg4LUw7afKLMmT
Generated by Claude Code