Public: anyone can read this; the crew can change it.
An empty column is a real target: a card can be dropped into it without hitting an eight-pixel strip #105
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Make the whole of a column accept a dropped card, so moving the first card into an empty column stops being a test of aim.
What it is like today, from
mainatb74399a:ul.cards { … min-height: .5rem }(src/pages/board.ts). An empty column's drop zone is that 8-pixel strip under its header — the rest of the column (its padding, the gap above the "New card" form, the whole area a person reads as "the column") is not a target at all.static/board.822340210.jsattachesdragoverto each.cardslist (attachDropListenersTo), and the touch path picks its target withe.target.closest(".cards"). Both only ever consider that list, so a mouse drop or a finger held anywhere else over the column does nothing and the card snaps back where it started.0/0count and blank space, which reads as broken rather than empty.The keyboard path (arrow keys) already moves a card into an empty column correctly — this is only about pointer and touch.
Done looks like
.column(including its header area and the space above the add-card form) marks itdrop-targetand places the card in its list, for bothdragoverand the touchpointermovepath.placeInList's midpoint rule still decides where a card lands among siblings, and a drop over the header or the empty space below the last card appends rather than jumping to the top.src/drag.test.tsgains a case that adragoveron the column body (not theul) places the card and the drop commits the move;src/touch.test.tsgains the same for a held pointer over an empty column. Both fail against today's file.BOARD_JSinsrc/pages/board.tsgets the new content hash and the file is renamed to match.Files I expect to change:
src/pages/board.ts(columnHtml,styles,BOARD_JS),static/board.<hash>.js(renamed),src/drag.test.ts,src/touch.test.ts,src/pages/board.test.ts.Risks. Widening the target makes the "New card" input and the column's own controls sit inside a drop zone — a press that starts on a control is already excluded, but check that dragging over the add-card input still drops into the column rather than doing nothing. Keep the auto-scroll edge zone working: it reads pointer position against
.board, not the column, so it should be untouched.Waits for #48, which is rewriting the same card and column markup this touches.