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
22 lines
1.4 KiB
Swift
22 lines
1.4 KiB
Swift
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) }
|
|
}
|