A refused trash hover withdraws the trash's own promise — the fall-through holds only keepable ones
Gap #12 ruled into 04 ▸ the trash-drop bullet: the refusal fall-through's honest reading (the column declines to be a target, it does not cancel the held drag) covers only promises the refusal leaves keepable — lane shadows keep drawing and an ⌥-copy lands where they are. A standing proposal naming the trash itself is the promise the refusal just broke, so it withdraws: the drag goes proposal-less over the column, release with no proposal cancels in agreement with the empty picture, and lifting ⌥ re-asks at the same address. Implementation filed on the Implementation board. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import SwiftUI
|
||||
|
||||
/// The board's **standard chrome** — the neutral surface stack under every lane and card,
|
||||
/// carried over from the pathfinder (03-board-ui.md § Styling: user colour is an edge accent;
|
||||
/// these are the fills underneath, and they never carry the user's colour).
|
||||
///
|
||||
/// The stack is three steps deep, and each step has its own home: the window keeps the standard
|
||||
/// background (`BoardView.boardBackground` paints over it only when the board *chooses* a colour),
|
||||
/// every lane lays a quiet quaternary wash over that (`Accommodations.lanePlateWash`), and every
|
||||
/// card sits on the opaque plate below — which is what makes a card pop against the washed lane in
|
||||
/// both appearances: white on grey in light, a step *darker* than the window in dark.
|
||||
enum BoardSurface {
|
||||
|
||||
/// A card's opaque plate — `controlBackgroundColor`, the pathfinder's card surface. Every face
|
||||
/// on the board fills with this one value (the resting face, the drag replica, the lane
|
||||
/// replica's miniatures, the placeholder editor and the arriving face), so a card is the same
|
||||
/// object wherever it is drawn. Opaque deliberately: a card's title never sees the board
|
||||
/// colour, which is why the ≥ 4.5:1 rule binds to the board level and not here
|
||||
/// (10-accessibility.md; `BoardView.boardBackground`).
|
||||
static var cardPlate: Color { Color(nsColor: .controlBackgroundColor) }
|
||||
}
|
||||
Reference in New Issue
Block a user