Der Platzhalter stand hochkant — und Enter waehlte nichts aus #4

Merged
thiel merged 1 commit from notiz-feinschliff into main 2026-09-22 10:32:43 +00:00
Owner

Fuenf Fehler aus dem ersten Wurf der Notiz, gemeldet als zwei.

  1. Platzhalter hochkant — float ohne Breite bricht nach jedem Buchstaben um. Jetzt absolut gesetzt, Bloecke auf position: relative (SONEs Regel).
  2. Kringel im Text — das Kaestchen ist ein echter Knopf, den der Editor einhaengt; er war ungestaltet, und daneben malte ich ein eigenes ::before.
  3. Enter im /-Menue waehlte nichts — Plugin-Reihenfolge: ProseMirror fragt handleKeyDown der Reihe nach, das Menue stand hinter den Tastenbelegungen. Menue und Erwaehnungen stehen jetzt davor.
  4. Tabelle — die Schreibmarke nimmt jetzt die erste Zelle.
  5. Hinweiskaesten alle grau — aside[data-block][data-tone] ueberstimmte die Art; Vorgabe jetzt als Rueckfall in der Benutzung.

Die Blockregeln sind nicht mehr selbstgestrickt, sondern SONEs, uebersetzt auf SOTEs Tokens (inklusive zwoelf Hinweisarten hell und dunkel).

Geprueft im Browser mit echtem Tippen und angesehenen Bildern; vier neue Tests halten Enter, Pfeile, Escape und die Tabellenmarke fest.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LfFj2znJJkmP4Qyaokczh3

Fuenf Fehler aus dem ersten Wurf der Notiz, gemeldet als zwei. 1. **Platzhalter hochkant** — `float` ohne Breite bricht nach jedem Buchstaben um. Jetzt absolut gesetzt, Bloecke auf `position: relative` (SONEs Regel). 2. **Kringel im Text** — das Kaestchen ist ein echter Knopf, den der Editor einhaengt; er war ungestaltet, und daneben malte ich ein eigenes `::before`. 3. **Enter im /-Menue waehlte nichts** — Plugin-Reihenfolge: ProseMirror fragt `handleKeyDown` der Reihe nach, das Menue stand hinter den Tastenbelegungen. Menue und Erwaehnungen stehen jetzt davor. 4. **Tabelle** — die Schreibmarke nimmt jetzt die erste Zelle. 5. **Hinweiskaesten alle grau** — `aside[data-block][data-tone]` ueberstimmte die Art; Vorgabe jetzt als Rueckfall in der Benutzung. Die Blockregeln sind nicht mehr selbstgestrickt, sondern SONEs, uebersetzt auf SOTEs Tokens (inklusive zwoelf Hinweisarten hell und dunkel). Geprueft im Browser mit echtem Tippen und angesehenen Bildern; vier neue Tests halten Enter, Pfeile, Escape und die Tabellenmarke fest. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LfFj2znJJkmP4Qyaokczh3
GEMELDET: „Wenn ich eine Aufgabe im Slash Menü hinzufüge steht da ein
Text davor hochkant, das kann man nicht lesen. Genau so ein
Aufzählungspunkt, da sitzt der Cursor direkt auf dem Text. Vermutlich
noch mehr."

Es war mehr, und der sichtbare Fehler war nicht der schlimmste.

EINS — der hochkante Text. Mein Stylesheet setzte den Platzhalter als
`::before` mit `float` und `height: 0`. Ein schwebendes Element ohne
Breite bricht nach jedem Buchstaben um; „Zu tun" stand als Buchstaben-
säule in der Zeile. SONE setzt ihn absolut, und die Blöcke dafür auf
`position: relative` — beides fehlte.

ZWEI — das Kästchen. Der Editor hängt dafür einen echten KNOPF ein (ein
Pseudo-Element lässt sich nicht anklicken, dann wäre Abhaken nur per
Tastatur möglich). Ich hatte ihn nicht gestaltet und stattdessen ein
eigenes `::before` gemalt: der Knopf saß ungestaltet als Kringel im Text,
und die Schreibmarke saß auf dem Zeichen.

DREI — Enter im `/`-Menü wählte gar nichts. Es teilte den Absatz, das
getippte `/aufgabe` blieb stehen, und der neue leere Absatz zeigte seinen
Platzhalter: eben jene Buchstabensäule. Der zweite Fehler hat den dritten
verdeckt. Ursache ist die Plugin-Reihenfolge — ProseMirror fragt
`handleKeyDown` der Reihe nach und hört beim ersten auf, das wahr
zurückgibt. Das Menü stand HINTER den Tastenbelegungen. SONEs Kommentar
dort behauptet das Gegenteil („so the menu sees Enter first"); die Pfeile
kamen an, weil die Belegung keine hat, Enter nicht, weil sie eines hat.
Menü und Erwähnungen stehen jetzt davor.

VIER — eine eingefügte Tabelle ließ die Schreibmarke stehen, wo sie war.
Das Getippte landete in irgendeiner Zelle. Jetzt nimmt sie die erste.

FÜNF — jeder Hinweiskasten war grau: `aside[data-block][data-tone]` ist
spezifischer als `[data-tone='warning']` und überstimmte jede Art. SONEs
ADR-0188 beschreibt genau diesen Fehler als den ersten, den sie hatten.
Ich hatte die Begründung gelesen und die Regel trotzdem neu gebaut.

Statt weiter nachzubauen sind die Blockregeln jetzt SONEs, übersetzt auf
SOTEs Namen, mit Tokens für die zwölf Hinweisarten in hell und dunkel.
Dazu die doppelten React-Schlüssel im `/`-Menü (eine Gruppe kann zweimal
vorkommen, weil die gefilterte Reihenfolge erhalten bleibt).

Geprüft diesmal im BROWSER: der Editor in einem Chromium, getippt wie ein
Mensch, Bilder angesehen — Aufgaben, Aufzählung, Nummerierung, Klappe,
Zitat, Code, Tabelle, Hinweis, Erwähnung, dunkles Thema, volle Höhe. Vier
neue Tests halten Enter, die Pfeile, Escape und die Tabellenmarke fest.

Die Lehre steht im Kopf des Stylesheets: das waren alles Fehler, die man
in fünf Minuten am Bildschirm sieht und die kein Test der Welt findet.
Ich habe die Notiz gebaut, ohne sie einmal anzusehen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LfFj2znJJkmP4Qyaokczh3
thiel merged commit 08250db67b into main 2026-09-22 10:32:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thiel/sote!4
No description provided.