- Shipped
- 22 Agosti 2026, 10:29 UTC
- Author
- kamo
- Commit
- 5593eb6
THE EDITOR WAS UNREACHABLE FOR ANYONE THE ROLL HAD NOT DECIDED FOR. `brandOf` answered null until a mark existed and the control was gated on the answer, so a member whose seeding had not run — or had not persisted — had no button at all and no way to give a pane a logo. An undecided pane is an unbranded one, not a missing one: `brandOf` now always answers, and the editor is always there. The pinned-widget band had the same symptom for a different reason. It renders outside SortableCard, which is what reveals a pane's chrome on hover, so its controls sat at opacity 0 permanently. It carries the rule itself now. POSITION. Nine anchors in the popup, drawn as a grid whose cells each hold a dot in their own corner, so the picker reads as the pane it stands for. The rotation had to move onto the logo itself: rotating the sizing box swung an edge-anchored mark around the pane's centre and out of the corner the member had just put it in. COLOUR. The mark can be painted a solid silhouette, through ThemeLogo's existing overlayColor — a CSS mask, so it reaches an arbitrary colour rather than pushing the artwork's own colours around. Two sources: the organisation's brand ramp from **************** deduped because an org that set only a primary has its light and lightest defaulted to the same value; and the member's own palette, using each colour's deep companion rather than its pastel paper, since a pale silhouette on a pale pane is a mark nobody can see. SIZE JOINS THE ROLL, between 0.55 and 1.1 of the pane. Every mark at exactly 0.85 was the tell that a page had been generated rather than composed.