Compare commits

...

2 Commits

Author SHA1 Message Date
2f5d94504d search.spec: Fehl-Klick entfernt — Reload IST der Weg zurück in den Lesemodus
All checks were successful
CI / Lint, typecheck, test (pull_request) Successful in 4m25s
CI / Build container images (pull_request) Successful in 1m9s
CI / Auth e2e pack (pull_request) Successful in 6m47s
CI / Import/export fidelity gate (pull_request) Successful in 54s
Der Spec klickte nach page.reload() den Mode-Toggle „um den Edit-Modus zu
verlassen" — nach dem Reload ist die Seite aber schon im Lesemodus (React-
State resettet), der Klick wechselte also HINEIN. Das passierte jahrelang
folgenlos, weil der Fokus auf dem Toggle-Button blieb und „/" die Suche
öffnete. Seit dem Editor-Auto-Fokus (PR #140) landet der Fokus im Editor
und „/" wird dort zu Text — je nach Ausgang des Rennens gegen den rAF-
verzögerten Fokus mal grün (Läufe 381/385), mal rot (383/387/389/390).
Fix: den Klick streichen; „/" läuft im Lesemodus als globaler Shortcut.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155v2aT8AG1kZDQEZiCLBWC
2026-07-19 21:15:42 +02:00
40b9593b47 #137 Feinjustierung: Checkbox im NodeView 3px höher (Text relativ 3px tiefer)
Some checks failed
CI / Lint, typecheck, test (pull_request) Successful in 4m25s
CI / Auth e2e pack (pull_request) Failing after 5m36s
CI / Import/export fidelity gate (pull_request) Has been skipped
CI / Build container images (pull_request) Successful in 1m9s
Stefans Feedback nach dem Nachfahren-Selektor-Fix: „noch 3px weiter
runter". Die Zeilenmetrik des Editor-/Auth-NodeViews (label-Wrapper)
setzt die Checkbox ~3px tiefer als im öffentlichen docToHtml-Markup —
daher NUR für den label-Pfad `margin-top: calc(0.25em - 3px)`; die
öffentliche Ansicht (bare input, war korrekt) bleibt bei 0.25em.
Live per Injektion auf Test vermessen: Versatz −9 → −6px, Checkbox
mittig auf der Textzeile (Zoom-Screenshot).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155v2aT8AG1kZDQEZiCLBWC
2026-07-19 21:01:54 +02:00
2 changed files with 14 additions and 2 deletions

View File

@ -39,8 +39,13 @@ test('search finds page content, highlights it, and is keyboard-operable', async
await page.keyboard.type(`the unique ${word} lives in this body`); await page.keyboard.type(`the unique ${word} lives in this body`);
await page.reload(); await page.reload();
await expect(page.locator('.editor-content')).toContainText(word); await expect(page.locator('.editor-content')).toContainText(word);
// Leave edit mode so "/" is a shortcut, not editor input. // The reload already landed back in read mode (the mode state resets), so
await page.locator('.editor-page__mode-toggle').click(); // "/" acts as the global shortcut here. This spec used to click the mode
// toggle again "to leave edit mode" — which actually RE-ENTERED it; that
// passed only while entering edit mode left focus on the toggle button.
// Since the editor grabs focus on entering edit mode (PR #140), "/" would
// become ordinary editor input there, racing the deferred focus — the
// intermittent-then-persistent failure of this pack.
// Open search with the "/" shortcut. // Open search with the "/" shortcut.
await page.keyboard.press('/'); await page.keyboard.press('/');

View File

@ -1635,6 +1635,13 @@ ul[data-type='task_list'] li > label {
margin-top: 0.25em; margin-top: 0.25em;
} }
/* Editor/auth NodeView only (the bare-input shape has no label): its line
metrics sit the checkbox ~3px lower than in the public view, so pull the
label up by that much tuned to Stefan's eye on the live stage (#137). */
ul[data-type='task_list'] li > label {
margin-top: calc(0.25em - 3px);
}
ul[data-type='task_list'] li > p:first-of-type, ul[data-type='task_list'] li > p:first-of-type,
ul[data-type='task_list'] li > div > p:first-of-type { ul[data-type='task_list'] li > div > p:first-of-type {
margin-top: 0; margin-top: 0;