Add custom color palette library with iCloud sync#178
Closed
nwoodfine wants to merge 2 commits intosuperhighfives:mainfrom
Closed
Add custom color palette library with iCloud sync#178nwoodfine wants to merge 2 commits intosuperhighfives:mainfrom
nwoodfine wants to merge 2 commits intosuperhighfives:mainfrom
Conversation
This was referenced Mar 1, 2026
b62bc44 to
97a46d5
Compare
added 2 commits
March 1, 2026 15:49
Addresses superhighfives#139 Adds a color history bar below the footer showing recently picked colors. Tapping a swatch applies it as the foreground and copies to clipboard. - ColorHistoryManager: MRU list with immediate and debounced recording - SwatchBar: Reusable swatch component (shared with future palette feature) - Refactored system color picker to use togglePicker() directly - Dynamic window resizing when history appears/disappears
Adds user-defined color palettes in a text format with support for all color formats (hex, rgb, hsl, hsb, lab, oklch). Palettes appear as swatch bars below color history and sync via iCloud Key-Value Store. - PaletteParser: INI-style [Name] headers with comma-separated colors - NSColor.fromColorString(): Reverse parsing for all supported formats - PaletteSyncManager: Bidirectional iCloud KVS sync with loop prevention - PaletteEditor: Monospaced text input with validation feedback - Up to 5 palettes, 20 colors each
97a46d5 to
c6504af
Compare
Owner
|
I love this idea, and I think it makes sense for Pika to eventually have palettes. Going to close this for now, but I really appreciate the push to dig into it. The color history beta I just pushed out is the first step toward it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses #180
Adds user-defined color palettes in a text format with support for all color formats. Palettes appear as swatch bars below color history and sync via iCloud Key-Value Store.
This is PR 2 of 3 in a stacked series:
mainmain(depends on PR 1)main(depends on PRs 1 & 2)Changes (this PR only)
[Name]headers with comma-separated colors, optional(label)namescom.apple.developer.ubiquity-kvstore-identifierentitlement for iCloud KVS. KVS requires no portal setup beyond enabling the capability in Xcode; the runtime check inPaletteSyncManagerfalls back to local-only storage if the entitlement is absentNew files
Pika/Models/ColorPalette.swiftPika/Utilities/PaletteSyncManager.swiftPika/Views/ColorPaletteBar.swiftPika/Views/ColorPalettes.swiftPika/Views/PaletteEditor.swiftTesting
Test plan
Note on dependencies
These changes were developed and tested with locally updated dependencies. The PRs intentionally do not include these dependency bumps — they remain on the versions currently in
main. The features do not require the newer versions to build or run. For reference, the development environment used:mainversion891afd44c707