The board wears a picture — background becomes a mapping, and the window chrome follows it under a thin frost
background is {color:, image:} and only a mapping at every level; the board's image paints the full window under a transparent title bar, with a thin-material frost strip keeping the chrome legible and the standard accommodations intact.
Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -203,6 +203,21 @@ struct BoardWindowHost: View {
|
||||
.onChange(of: boardSearch.isFocused) { _, _ in
|
||||
boardSearch.dismissTransientIfCleared(query: store.searchQuery)
|
||||
}
|
||||
// **The window chrome follows the board's background** (03-board-ui.md § Styling ▸
|
||||
// Capabilities): a board that paints one runs its content the full height of the frame
|
||||
// under a transparent title bar, with `BoardView.boardBackground`'s frosted strip
|
||||
// keeping the widget and the toolbar legible over it; a board that paints none keeps
|
||||
// the standard chrome untouched.
|
||||
//
|
||||
// Here rather than in `configureWindow` because it is not a wiring fact but a *live*
|
||||
// one: `background` is hand-editable, the watcher reloads on a change to `index.md`, and
|
||||
// the chrome has to follow the reading in both directions. `initial: true` because the
|
||||
// first render is already a level, not a change — this is the board's first statement
|
||||
// about its chrome, and the loading half deliberately made none
|
||||
// (`HostedWindowController.extendsUnderTitlebar`).
|
||||
.onChange(of: BoardBackdrop.isCustom(store.snapshot, root: store.rootURL), initial: true) { _, custom in
|
||||
windowController.setExtendsContentUnderTitlebar(custom)
|
||||
}
|
||||
// **The board settings sheet** (03-board-ui.md ▸ Board settings sheet) — presented from
|
||||
// the board window's own content, which is what makes it modal to *this* board rather
|
||||
// than to the app: "a board-scoped, titled, sectioned sheet on the board window".
|
||||
|
||||
Reference in New Issue
Block a user