The mark is one closed path with a scalloped baseline - four tails, rounded cap - rather than a stack of separate ribbons. That is the design decision: a logo gets tested at 16pt in a Spotlight result and in iOS 26's tinted and monochrome icon modes, where the palette is discarded and only the silhouette survives. Arrangements of N separate ribbons collapse into a blob under both, because the shapes were only ever told apart by colour.
Contents
Marks/Views/Library/MarksMark.swift - ScallopMark: Shape (canonical 88x98 box, fitted to any rect) and MarksMark: View (three hard-stopped bands from Paper.swatchPairs, plus a monochrome variant).
AppIcon.appiconset - light / dark / tinted per Apple's iOS 18+ model. Light is flattened; dark and tinted keep transparency for the system to composite. Tinted carries three greys ordered by the colour version's relative luminance, so the band reading survives.
scripts/appicon/ - the SVG source and generator. The PNGs are build output.
docs/logo-variants.html, docs/logo-c1-variants.html - the exploration the choice came out of.
Verification
SwiftUI shape rendered through ImageRenderer matches the SVG at every size from 160pt to 16pt, in colour and monochrome.
assetutil confirms all three renditions in the compiled catalog with the correct appearance tags (default / UIAppearanceDark / ISAppearanceTintable).
Installed on an iPhone 17 simulator and checked against the home screen.
Known gap: the simulator kept showing the light icon after simctl ui ... appearance dark. The rendition is in the catalog, but home-screen icon appearance is a separate user setting simctl doesn't drive - worth confirming on a real device.
Locks in the brand mark and ships the app icon.
The mark is one closed path with a scalloped baseline - four tails, rounded cap - rather than a stack of separate ribbons. That is the design decision: a logo gets tested at 16pt in a Spotlight result and in iOS 26's tinted and monochrome icon modes, where the palette is discarded and only the silhouette survives. Arrangements of N separate ribbons collapse into a blob under both, because the shapes were only ever told apart by colour.
**Contents**
- `Marks/Views/Library/MarksMark.swift` - `ScallopMark: Shape` (canonical 88x98 box, fitted to any rect) and `MarksMark: View` (three hard-stopped bands from `Paper.swatchPairs`, plus a monochrome variant).
- `AppIcon.appiconset` - light / dark / tinted per Apple's iOS 18+ model. Light is flattened; dark and tinted keep transparency for the system to composite. Tinted carries three greys ordered by the colour version's relative luminance, so the band reading survives.
- `scripts/appicon/` - the SVG source and generator. The PNGs are build output.
- `docs/logo-variants.html`, `docs/logo-c1-variants.html` - the exploration the choice came out of.
**Verification**
- SwiftUI shape rendered through `ImageRenderer` matches the SVG at every size from 160pt to 16pt, in colour and monochrome.
- `assetutil` confirms all three renditions in the compiled catalog with the correct appearance tags (default / `UIAppearanceDark` / `ISAppearanceTintable`).
- Installed on an iPhone 17 simulator and checked against the home screen.
**Known gap:** the simulator kept showing the light icon after `simctl ui ... appearance dark`. The rendition is in the catalog, but home-screen icon appearance is a separate user setting simctl doesn't drive - worth confirming on a real device.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
The mark is one closed path with a scalloped baseline — four tails, rounded
cap — rather than a stack of separate ribbons. That is the whole design
decision. A logo gets tested at 16pt in a Spotlight result and in iOS 26's
tinted and monochrome icon modes, where the palette is discarded and only the
silhouette survives. Arrangements of N separate ribbons collapse into a blob
under both, because the shapes were only ever told apart by colour; a
scalloped outline is told apart by its own edge, so it reads the same tinted,
monochrome, and 16pt tall.
ScallopMark defines geometry in a canonical 88x98 box and fits it to whatever
rect it is handed, so proportions cannot drift with the container. MarksMark
adds the three bands as a hard-stopped gradient, keeping it a single fillable
shape. The bands are Paper.swatchPairs entries rather than bespoke brand
colours: the app already hashes every bookmark into that palette, so the mark
is made of the same ink as the content.
App icon ships all three variants per Apple's iOS 18+ model — light flattened
(iOS rejects an alpha channel there), dark and tinted on transparency for the
system to composite. The tinted variant carries three greys ordered by the
colour version's relative luminance rather than one flat grey, so the band
reading survives the one mode that has nothing else left.
The PNGs are build output: edit scripts/appicon/appicon.html and re-run
generate.sh. docs/logo-variants.html and docs/logo-c1-variants.html are the
exploration the choice came out of.
Verified: SwiftUI shape rendered through ImageRenderer matches the SVG at
every size from 160pt to 16pt; assetutil confirms all three renditions in the
compiled catalog with the correct appearance tags; installed on a simulator
and checked against the home screen.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
admin
merged commit c932814166 into master2026-08-03 17:00:53 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Locks in the brand mark and ships the app icon.
The mark is one closed path with a scalloped baseline - four tails, rounded cap - rather than a stack of separate ribbons. That is the design decision: a logo gets tested at 16pt in a Spotlight result and in iOS 26's tinted and monochrome icon modes, where the palette is discarded and only the silhouette survives. Arrangements of N separate ribbons collapse into a blob under both, because the shapes were only ever told apart by colour.
Contents
Marks/Views/Library/MarksMark.swift-ScallopMark: Shape(canonical 88x98 box, fitted to any rect) andMarksMark: View(three hard-stopped bands fromPaper.swatchPairs, plus a monochrome variant).AppIcon.appiconset- light / dark / tinted per Apple's iOS 18+ model. Light is flattened; dark and tinted keep transparency for the system to composite. Tinted carries three greys ordered by the colour version's relative luminance, so the band reading survives.scripts/appicon/- the SVG source and generator. The PNGs are build output.docs/logo-variants.html,docs/logo-c1-variants.html- the exploration the choice came out of.Verification
ImageRenderermatches the SVG at every size from 160pt to 16pt, in colour and monochrome.assetutilconfirms all three renditions in the compiled catalog with the correct appearance tags (default /UIAppearanceDark/ISAppearanceTintable).Known gap: the simulator kept showing the light icon after
simctl ui ... appearance dark. The rendition is in the catalog, but home-screen icon appearance is a separate user setting simctl doesn't drive - worth confirming on a real device.Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
🤖 Generated with Claude Code