Checkbox-Aufzählungen: Textzeile vertikal ausrichten #137
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#137
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Bei Checkbox-Aufzählungen (
- [ ]/- [x]) sitzt die Textzeile nicht auf gleicher Höhe wie die Checkbox. Im Lesemodus deutlich stärker kaputt als im Editor.Ursache (aus Analyse)
docToHtmlerzeugt inrenderListItems(packages/shared/src/editor-schema/html.ts~L77-88) je Item ein rohes<input type="checkbox">direkt gefolgt von einem Block-<p>. Die einzige Task-List-CSS (apps/web/src/styles/base.css~L1584-1593) ist auf.editor-contentgescoped und greift in den Lese-Containern (.public-page__body,.comment__body,.legal-page__body,.home-page,.history-panel__preview) gar nicht → Bullet sichtbar, Checkbox inline,<p>mit Default-margin: 1em 0bricht um/versetzt.align-items: flex-startgreift, aber das innere<p>behält Default-Obermarge → Text leicht nach unten versetzt.Beachte: Die beiden Renderpfade erzeugen unterschiedliches DOM — Editor-NodeView (
apps/web/src/editor/nodes/task-item.tsx):li > label > input+li > div > p; Read-HTML:li > input+li > p.Umsetzung
.editor-contentlösen bzw. gemeinsame Regel für die Content-Wrapper):ul[data-type='task_list']→list-style:none, kleinespadding-left;li[data-type='task_item']→display:flex,align-items:flex-start(oderbaseline, visuell prüfen),gap.li[data-type='task_item'] > p:first-child { margin-top: 0 }bzw. für den Editor-Fall die> div > p-Struktur) — in beiden Pfaden.margin-topauf deminput), damit die Box optisch auf der Textoberkante sitzt.Akzeptanzkriterien
pnpm lint+ betroffene CI-Packs grün.Umgesetzt in vier Schritten (die Renderpfade unterscheiden sich stärker als gedacht):
d1d98a9: Task-List-CSS von.editor-contententscopet (griff in Lese-Containern nicht) + Margen-Reset.baea736::first-child→:first-of-type— im Lesemodus-Markup ist das<input>das erste Kind, das<p>war nie:first-child.3ed3cbb: Kind-Ketten → NACHFAHREN-Selektoren — der TipTap-NodeView der angemeldeten Ansicht nestet das<p>zwei Wrapper tief (li > div[data-node-view-content] > div > p).d07f8bb: Feinjustierung nach Stefans Pixel-Feedback — nur der label-Pfad (NodeView) bekommtmargin-top: calc(0.25em − 3px).Verifiziert: per Messung (getBoundingClientRect) und visuell in ÖFFENTLICHER und ANGEMELDETER Ansicht auf Test/Int; finale Abnahme durch Stefan („Passt jetzt"). Deployt bis
60be198.