The two pickers rhyme — one two-zone chrome, a face onto a standalone browser, a trigger onto the popover
The colour combo was a wide two-zone field with a second door onto the Colors panel; the symbol picker was a small square button with one. Both now subclass one `ComboFieldControl`, so they are the same width, height, radius and trigger by construction: click the face for the standalone picker, click the chevron for the quick list. The symbol face opens a new floating browser over the OS's own category, ordering and keyword plists out of CoreGlyphs.bundle — searchable, categorised, trademark-restricted glyphs withheld. The palette grows twelve to sixteen per table, filling the hue ring's four widest gaps with lime, jade, indigo and magenta at each table's own saturation and brightness. That gives the Style… popover's background grid a third row and the tint grid its third row of four, and both grids gain an Other… row onto the system colour picker — which the card sidebar's combo has had all along and the primary styling surface never did. An arbitrary hex already round-tripped; it is asserted now, including that an unquoted one is a YAML comment and no value. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -20,8 +20,15 @@ import Foundation
|
||||
/// avoid.
|
||||
///
|
||||
/// `set` carries the string that goes to frontmatter verbatim: a kebab-case palette name from the
|
||||
/// grid, or an SF Symbol name. Hex never arrives here from the app ("custom hex is not pickable
|
||||
/// in-app but stays fully honored from disk"), though nothing in the type forbids it.
|
||||
/// grid, an SF Symbol name, or a `#RRGGBB[AA]` hex.
|
||||
///
|
||||
/// **Hex does arrive here from the app now**, which this comment used to deny — 03-board-ui.md's
|
||||
/// "custom hex is not pickable in-app but stays fully honored from disk" stopped being true the day
|
||||
/// `ColorComboView` shipped an **Other…** row onto `NSColorPanel.shared`, and the 2026-08-09 rework
|
||||
/// put that door on the Style… popover and the symbol popover's tint row as well. The write path
|
||||
/// always handled it (`FrontmatterValue.emitScalar` quotes a `#` because YAML would otherwise read it
|
||||
/// as a comment; `BackgroundField.flowText` quotes unconditionally) and now says so out loud:
|
||||
/// `CustomColorRoundTripTests` asserts the whole chain.
|
||||
public enum StyleChange: Sendable, Equatable {
|
||||
case keep
|
||||
case set(String)
|
||||
|
||||
Reference in New Issue
Block a user