pod try Alderis
Alderis is a fresh new color picker, with a gentle, fun, and dead simple user interface. It aims to incorporate the usual elements of a color picker, in a way that users will find easy and fun to use.
The user can start by selecting a color they like on the initial color palette tab, and either accept it, or refine it using the color wheel and adjustment sliders found on the two other tabs.
Alderis is named for the Alderamin (Alpha) star in the Cepheus (Cephei) constellation. (There is no dependency on the Cephei project.)
Click for full-quality MP4
Why do I want this? Isn’t there already a color picker in iOS?
Alderis was originally released before iOS 14 was unveiled with a built-in color picker feature, which seems to be heavily inspired by Alderis. However, rather than throw in the towel here, I’m considering this an opportunity to continue building what I feel is a better, less cluttered user experience, with more configuration options for apps to fine-tune a color picker UI suitable for each use case and target market.
If this doesn’t seem important to you, the answer is simple: skip Alderis and use UIColorPickerViewController. If it does, read on.
|Drag and drop colors within app||✔️||✔️ *|
|Drag and drop colors across apps||✔️||✖️|
|Hex color code support||✔️||✔️|
|Color space support (Display P3)||✖️||✔️|
|Save favorite colors||✖️||✔️|
|Saved colors shared across apps||✖️||✔️|
|Grab color from screen (eyedropper)||✖️||✔️|
|Customise title label||✔️||✖️|
|Customise tab row visibility||✔️||✖️|
|Customise visible tabs||✔️||✖️|
|Customise initially selected tab||✔️||✖️|
|Customise opacity slider visibility||✔️||✔️|
|Customise color grid||✖️||✖️|
|Interface Builder support||✖️||✖️|
|SwiftUI support w/o UIKit bridging||✖️||✖️|
|Observe value change with KVO||✖️||✔️|
* UIColorWell supports dragging colors onto it, but not out of it. Alderis supports both directions, which are separately configurable. The default Alderis ColorWell behavior matches UIColorWell. Alderis supports drag and drop on the color picker window; UIKit does not.
Add to your Podfile:
pod 'Alderis', '~> 1.1'
And then run
Add to your Cartfile:
github 'hbang/Alderis' ~> 1.1
And then run
Swift Package Manager
- Click File → Swift Packages → Add Package Dependency.
1.1as the version filter.
Or, manually add it to your Package.swift:
dependencies: [ .package(url: "http://github.com/hbang/Alderis.git", from: "1.1") ]
And then run
swift package update.
ws.hbang.alderis (>= 1.1) to your
Preference Bundles and libcolorpicker Compatibility
Alderis acts as a drop-in replacement for libcolorpicker, an abandoned but still very popular color picker library on jailbroken iOS. Packages can simply change their dependencies list to replace
ws.hbang.alderis to switch their color picker to Alderis. No other changes required!
For more information, refer to the docs.
Licensed under the Apache License, version 2.0. Refer to LICENSE.md.
Header backdrop photo credit: John-Mark Smith on Unsplash
You may find interesting
1.1 - 2020-10-13 22:51:26
- Major code improvement and cleanup.
- Adds full documentation.
- Now published on CocoaPods, and can be integrated via Carthage and Swift Package Manager. Refer to the readme for more info.
- Some UI refinements.
- Selection changes in the color picker are now passed to the delegate “live”, so that you can update your UI instantly to provide a more integrated experience.
- Adds a new
ColorPickerConfigurationclass, with a variety of behavior and visual options.
ColorPickerCircleViewhas been renamed to
ColorWell, and now acts like a
UIControl. It supports drag and drop, and you can set up a tap action to present a color picker from it.
- Adds drag and drop support on the color picker popup itself.
- Color picker now appears as a popover in regular size classes (i.e., iPad and Mac Catalyst), and remains a bottom popup sheet in compact size classes (i.e. iPhone and iPad slideover).
- Adds alpha/opacity slider (which can be disabled via the configuration if not relevant).
- Adds greyscale slider.
- Fixes the hex text field not accepting input.
If you were already using Alderis 1.0, refer to Migrating to 1.1 for discussion on API changes.
Thanks to @kabiroberai and @ryannair05 for contributing pull requests to this release!