Manage Colors, Integrate Night/Multiple Themes. (Unmaintained)

Overview

  • Easily integrate and high performance
  • Providing UIKit and CoreAnimation category
  • Read colour customisation from file
  • Support different themes
  • Generate picker for other libs with one line macro

Demo


If you want to implement night mode in Swift project without import Objective-C code. NightNight is the Swift version which does the same work.

How To Get Started

DKNightVersion supports multiple methods for installing the library in a project.

Installation with CocoaPods

CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries like DKNightVersion in your projects. See the Get Started section for more details.

Podfile

To integrate DKNightVersion into your Xcode project using CocoaPods, specify it in your Podfile:

pod "DKNightVersion"

Then, run the following command:

$ pod install

Import

Import DKNightVersion header file

#import <DKNightVersion/DKNightVersion.h>

Usage

Checkout DKColorTable.txt file in your project, which locates in Pods/DKNightVersion/Resources/DKNightVersion.txt.

NORMAL   NIGHT
#ffffff  #343434 BG
#aaaaaa  #313131 SEP

You can also create another colour table file, and specify it with DKColorTable.

A, set color picker like this with DKColorPickerWithKey, which generates a DKColorPicker block

self.view.dk_backgroundColorPicker = DKColorPickerWithKey(BG);

After the current theme version change to DKThemeVersionNight, the view background colour would switch to #343434.

[DKNightVersionManager nightFalling];

Alternatively, you could change the theme version by manager's property themeVersion which is a string

DKNightVersionManager *manager = [DKNightVersionManager sharedInstance];
manager.themeVersion = DKThemeVersionNormal;

Advanced Usage

There are two approaches you can use to integrate night mode to your iOS App.

DKNightVersionManager

The latest version for DKNightVersion add a readonly dk_manager property for NSObject returns the DKNightVersionManager singleton.

Change Theme

You can call nightFalling or dawnComing to switch the current theme version to DKThemeVersionNight or DKThemeVersionNormal.

[self.dk_manager dawnComing];
[self.dk_manager nightFalling];

Modify themeVersion property to switch the theme version directly.

self.dk_manager.themeVersion = DKThemeVersionNormal;
self.dk_manager.themeVersion = DKThemeVersionNight;
// if there is a RED column in DKColorTable.txt (default) or in 
// other `file` if you customize `file` property for `DKColorTable`
self.dk_manager.themeVersion = @"RED"; 

Post Notification

Every time the current theme version changes, DKNightVersionManager would post a DKNightVersionThemeChangingNotification. If you want to do some customisation, you can observe this notification and react with proper actions.

DKColorPicker

DKColorPicker is the core of DKNightVersion. And this lib adds dk_colorPicker to every UIKit and Core Animation components. Ex:

@property (nonatomic, copy, setter = dk_setBackgroundColorPicker:) DKColorPicker dk_backgroundColorPicker;
@property (nonatomic, copy, setter = dk_setTintColorPicker:) DKColorPicker dk_tintColorPicker;

DKColorPicker is defined in DKColor.h file receives a DKThemeVersion as the parameter and returns a UIColor.

typedef UIColor *(^DKColorPicker)(DKThemeVersion *themeVersion);
  • Use DKColorPickerWithKey(key) to obtain DKColorPicker from DKColorTable

    view.dk_backgroundColorPicker = DKColorPickerWithKey(BG);
  • Use DKColorPickerWithRGB to generate a DKColorPicker

    view.dk_backgroundColorPicker =  DKColorPickerWithRGB(0xffffff, 0x343434);

DKColorTable

DKColorTable is a new feature in DKNightVersion which providing us with an elegant way to manage colour setting in a project. Use as follows:

There is a file called DKColorTable.txt

NORMAL   NIGHT
#ffffff  #343434 BG
#aaaaaa  #313131 SEP

The first line of this file indicated different themes. NORMAL is required column, and others are optional. So if you don't need to integrate different themes in your app, leave the first column in this file, like this:

NORMAL
#ffffff BG
#aaaaaa SEP

NORMAL and NIGHT are two different themes, NORMAL is the default and for normal mode. NIGHT is optional and for night mode.

You can add multiple columns in this DKColorTable.txt file as many as you want.

NORMAL   NIGHT    RED
#ffffff  #343434  #ff0000 BG
#aaaaaa  #313131  #ff0000 SEP

The last column is the key for a colour entry, DKNightVersion uses the current themeVersion (ex: NORMAL NIGHT and RED) and key (ex: BG, SEP) to find the corresponding colour in DKColorTable.

DKColorTable has a property file, it will loads the color setting in this file when + [DKColorTable sharedColorTable is called. Default value of file is DKColorTable.txt.

@property (nonatomic, strong) NSString *file;

You can also add another file into your project and fill your colour setting in that file.

// color.txt
NORMAL   NIGHT
#ffffff  #343434 BG

Also, do not forget to change the file property of the colour table.

[DKColorTable sharedColorTable].file = @"color.txt"

The code above would reload colour setting from color.txt file.

Create temporary DKColorPicker

If you'd want to create some temporary DKColorPicker, you can use these methods.

view.dk_backgroundColorPicker =  DKColorPickerWithRGB(0xffffff, 0x343434);

DKColorPickerWithRGB will return a DKColorPicker which set background color to #ffffff when current theme version is DKThemeVersionNormal and #343434 when it is DKThemeVersionNight.

There are also some similar functions like DKColorPickerWithColors

DKColorPicker DKColorPickerWithRGB(NSUInteger normal, ...);
DKColorPicker DKColorPickerWithColors(UIColor *normalColor, ...);

DKColor also provides a cluster of convenient API which returns DKColorPicker block, these blocks return the same colour in different themes.

+ (DKColorPicker)colorPickerWithUIColor:(UIColor *)color;

+ (DKColorPicker)colorPickerWithWhite:(CGFloat)white alpha:(CGFloat)alpha;
+ (DKColorPicker)colorPickerWithHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha;
+ (DKColorPicker)colorPickerWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;
+ (DKColorPicker)colorPickerWithCGColor:(CGColorRef)cgColor;
+ (DKColorPicker)colorPickerWithPatternImage:(UIImage *)image;
#if __has_include(<CoreImage/CoreImage.h>)
+ (DKColorPicker)colorPickerWithCIColor:(CIColor *)ciColor NS_AVAILABLE_IOS(5_0);
#endif

+ (DKColorPicker)blackColor;
+ (DKColorPicker)darkGrayColor;
+ (DKColorPicker)lightGrayColor;
+ (DKColorPicker)whiteColor;
+ (DKColorPicker)grayColor;
+ (DKColorPicker)redColor;
+ (DKColorPicker)greenColor;
+ (DKColorPicker)blueColor;
+ (DKColorPicker)cyanColor;
+ (DKColorPicker)yellowColor;
+ (DKColorPicker)magentaColor;
+ (DKColorPicker)orangeColor;
+ (DKColorPicker)purpleColor;
+ (DKColorPicker)brownColor;
+ (DKColorPicker)clearColor;

pickerify

DKNightVersion provides a powerful feature which can generate dk_xxxColorPicker with a macro called pickerify.

@pickerify(TableViewCell, cellTintColor)

It automatically generates dk_cellTintColorPicker for you.

DKImagePicker

Use DKImagePicker to change images when manager.themeVersion changes.

imageView.dk_imagePicker = DKImagePickerWithNames(@"normal", @"night");

The first argument passed into the function is used for NORMAL theme, and the second is used for NIGHT theme, the themes order is determined by the configuration in DKColorTable.txt file which is NORMAL and NIGHT.

If your file like this:

NORMAL   NIGHT    RED
#ffffff  #343434  #fafafa BG
#aaaaaa  #313131  #aaaaaa SEP
#0000ff  #ffffff  #fa0000 TINT
#000000  #ffffff  #000000 TEXT
#ffffff  #444444  #ffffff BAR

Set your image picker in this order:

imageView.dk_imagePicker = DKImagePickerWithNames(@"normal", @"night", @"red");

The order of images or names is the same in DKColorTable.txt file.

DKImagePicker DKImagePickerWithImages(UIImage *normalImage, ...);
DKImagePicker DKImagePickerWithNames(NSString *normalName, ...);

Contribute

Feel free to open an issue or pull request, if you need help or there is a bug.

Contact

Todo

  • Documentation

License

DKNightVersion is available under the MIT license. See the LICENSE file for more info.

The MIT License (MIT)

Copyright (c) 2015 Draveness

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • Can't not support XIB

    Can't not support XIB

    In Demo

    1. create TestTableViewCell class, also create xib.
    2. dray label and button, layout like TableViewCell, set the text color (Red or else) using xib
    3. don't set textColor for TestTableViewCell, only set nightTextColor, like this
    - (void)awakeFromNib {
        [DKNightVersionManager addClassToSet:self.class];
    
        self.label.numberOfLines = 0;
        self.label.text = @"DKNightVersion is a light wei-ght framework adding night   version to your iOS app.";
    //    self.label.textColor = [UIColor darkGrayColor];
        self.label.lineBreakMode = NSLineBreakByCharWrapping;
        self.nightBackgroundColor = UIColorFromRGB(0x343434);
    }
    
    1. register this nib, and use it replace TableViewCell
    2. run
    3. switch night and day theme, then you will see label color can't change back to Red color.

    I think this code cause the problem:

    - (void)hook_setTextColor:(UIColor*)textColor {
        if ([DKNightVersionManager currentThemeVersion] == DKThemeVersionNormal) [self setNormalTextColor:textColor];
        [self hook_setTextColor:textColor];
    }
    

    May be UILabel don't call setTextColor: method, instead directyly using _textColor = [UIColor xxxColor]

    enhancement 
    opened by likid1412 20
  • xcode8 ios10,出现崩溃

    xcode8 ios10,出现崩溃

    xcode8 ios10,出现崩溃

    DKColorTable: NORMAL NIGHT

    ffffff #3f3f3f BBG

    333333 #b3b3b3 TXTONE

    333333 #b3b3b3 TXTTWO

    666666 #949494 TXTTHREE

    999999 #949494 TXTFOUR

    f5f5f5 #4d4d4d BG

    e0e1e2 #646464 SEP

    dedede #727272 MYBOOK

    d38d8c #ba1c18 SETTING

    崩溃信息: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: themes.count == colors.count'

    opened by WXinYi 9
  • Crash on iOS8

    Crash on iOS8

    Hi,Draveness Your work great, like the sunshine. hah

    At iPhone 6Plus, click cell and go into the detail view, then come back and change the neight mode, it will crash.

    Wating for your message.

    bug 
    opened by ioswater 8
  • NoMethodError when executing rake command

    NoMethodError when executing rake command

    I want to customize my own theme for night mode. However, when I finish editing the property.json and run rake, it raise an error.

    The error log goes like this:

    ......
    [Generate] Generating Classes/UIKit/UITableViewCell/UITableViewCell+BackgroundColor.m
    [Link] Find pbxproj file path
    [Link] pbxproj is at '.././Pods.xcodeproj'
    [Link] Linking to xcodeproj
    rake aborted!
    NoMethodError: undefined method `source_build_phase' for nil:NilClass
    /path/to/Pods/DKNightVersion/generator/lib/generator/project.rb:59:in `clear_target'
    /path/to/Pods/DKNightVersion/generator/lib/generator/project.rb:14:in `add_files_to_project'
    /path/to/Pods/DKNightVersion/Rakefile:25:in `block in <top (required)>'
    ~/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
    ~/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
    Tasks: TOP => default
    (See full trace by running task with --trace)
    

    I'm not in good command of ruby, sorry.

    help wanted 
    opened by portwatcher 7
  • 关于找不到DKColorTable.txt这个文件

    关于找不到DKColorTable.txt这个文件

    为什么我pod 下来之后,项目中有DKColorTable.txt这个文件,但是代码执行完成之后为 nil,提示这个这个文件名无效,如下 :

    2017-03-10 16:54:49.586110 ******[19741:7217448] Error reading file: The file name is invalid. 2017-03-10 16:54:51.134092 ******[19741:7217448] DKColorTable: (null)

    opened by Mrrabbitbaby 6
  • UIImageView添加alpha

    UIImageView添加alpha

    本想 pull requests的,但是发现UIKit部分都是模板生成的,所以就尴尬了。夜间模式时,希望给UIImageView的alpha值改小一点,不然有点刺眼。 所以加了一个这个:

    @property (nonatomic, copy, setter = dk_setAlphaPicker:) DKAlphaPicker dk_alphaPicker;
    

    然后有个

    typedef CGFloat (^DKAlphaPicker)(DKThemeVersion *themeVersion);
    
    DKAlphaPicker DKAlphaPickerWithAlphas(CGFloat normal, ...);
    
    @interface DKAlpha : NSObject
    + (DKAlphaPicker)alphaPickerWithAlpha:(CGFloat)alpha;
    @end
    
    opened by KelvinQQ 5
  • 有些需要完善的地方,

    有些需要完善的地方,

    在tableViewCell点击的时候设置了,[self.tableView deselectRowAtIndexPath:indexPath animated:YES]; // 取消选中状态,在日间模式下选中到取消选中过度很流畅,但是夜间模式会有跳跃,在突然冲选中到取消;对于键盘的夜间模式:发现在夜间模式下也对textFile做了处理,感觉很不错,但是textView和searchBar没有做出相应的处理希望能够完善。还有在已经完成的项目中添加这个库,我使用的办法是在每一个控件都添加一句代码实现夜间模式,你有什么好的建议来更好的使用这个库吗?

    opened by CYZZ 5
  • Increase Theme Dynamically

    Increase Theme Dynamically

    Hi, @Draveness , as title said, it's a bit difficult to increase theme dynamically in one file (ColorTable.txt), so I think it's better to refactor and abstract picker getter layer and storage layer.

    Limit:

    • all themes in one files.
    • picker getter layer strongly couple with storage layer.

    Enhancement:

    • abstract picker getter layer and storage layer.

    As A Result:

    After refactor and abstract, we can save themes into respective file. and have custom picker getter from storage layer, which has been abstracted. if user can download theme, they only have to download one theme file, into sandbox, the directory structure maybe:

    Documents
    └── Themes
        ├── Night.theme
        ├── Normal.theme
        └── Summer.theme
    

    if you think it right, and no time to refactor, I'm glad to send PR :) .

    opened by MickeyHub 5
  • When set self.navigationItem.tilte 's color .your way can't change the title color.

    When set self.navigationItem.tilte 's color .your way can't change the title color.

    The only way to set self.navgitaionItem.title's color is to set TitleTextAttributes instead of the color. for example. NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys: [UIColor blackColor],NSForegroundColorAttributeName, nil]; [self.navigationController.navigationBar setTitleTextAttributes:dic]; self.navigationItem.title = @"theTitleIWantToChangeColor";

    but the way you offer can;t solve this.

    So, I overwrite the method - (void)night_updateColor in UINavigationBar+Night.m and add a property to support that, but this is just a temp way to solve this. Hope you offer a better way to solve this.

    • (DKColorPicker)dk_titleTintColorPicker { return objc_getAssociatedObject(self, @selector(dk_barTintColorPicker)); }

    • (void)dk_setTitleTintColorPicker:(DKColorPicker)picker{ objc_setAssociatedObject(self, @selector(dk_titleTintColorPicker), picker, OBJC_ASSOCIATION_COPY_NONATOMIC); UIColor *color = picker(self.dk_manager.themeVersion); NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys: [color copy],NSForegroundColorAttributeName, nil]; [self setTitleTextAttributes:navbarTitleTextAttributes]; [self.pickers setValue:[picker copy] forKey:@"setTitleTextAttributes:"]; }

    • (void)night_updateColor { [self.pickers enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull selector, DKColorPicker _Nonnull picker, BOOL * _Nonnull stop) { SEL sel = NSSelectorFromString(selector); id result = ((DKColorPicker)picker)(self.dk_manager.themeVersion); if([selector isEqualToString:@"setTitleTextAttributes:"]) { result = [NSDictionary dictionaryWithObjectsAndKeys: [result copy],NSForegroundColorAttributeName, nil]; } [UIView animateWithDuration:DKNightVersionAnimationDuration animations:^{ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" [self performSelector:sel withObject:result]; #pragma clang diagnostic pop }]; }]; }

    opened by 13098806890 4
  • Cocoa Pods重新pod install 后报错?

    Cocoa Pods重新pod install 后报错?

    之前可以正常编译运行,重新pod install后报错。 是版本更新的问题吗?按照readme的文档改了之后还是报错。

    _backView.dk_backgroundColorPicker = DKColorWithColors(KCOLOR_YELLOW_FDF5D8, [UIColor colorWithRGBHex:0x343434]);

    Implicit declaration of function 'DKColorWithColors' is invalid in C99

    Implicit conversion of 'int' to 'DKColorPicker' (aka 'UIColor *(^)(DKThemeVersion *__strong)') is disallowed with ARC

    Invalid block pointer conversion assigning to 'DKColorPicker' (aka 'UIColor *(^)(DKThemeVersion *__strong)') from 'int'

    opened by penguin1214 4
  • Crashed at [DKNightVersionManager setThemeVersion:]

    Crashed at [DKNightVersionManager setThemeVersion:]

    DKNightVersionManager.m line 57 -[DKNightVersionManager setThemeVersion:]

    detail provided here: http://crashes.to/s/13bfdbf85f3

    We are using 0.9.3. If you fix this bug in the latest release, feel free to close it.

    opened by portwatcher 4
  • if have many class use @pickerify(TableViewCell, cellTintColor), has warning

    if have many class use @pickerify(TableViewCell, cellTintColor), has warning

    if in two class use @pickerify(TableViewCell, cellTintColor),a warning to me, it said "same method from another category",how to fix it? Thanks

    opened by FirstDKS521 0
  • DKNightVersion创建单例有crash风险

    DKNightVersion创建单例有crash风险

    instance.themeVersion = themeVersion;这句代码使用了setter方法,在setter方法中发送通知修改主题,而如果某控制器中在自定义方式获取单例self.dk_manage就与该方法冲突造成了循环锁错误。本人认为解决办法应该是改成instance->_themeVersion = themeVersion.

    opened by fangzhenxing 0
  • What about iOS13 iPad multiwindow?

    What about iOS13 iPad multiwindow?

    I've been using this library since a long time and I love it. I am able to change from dark to light mode before iOS13.

    How can I use this library in multiwindow? When a scene goes away the system calls dark/light mode methods repeatedly... I think this should not be a singleton anymore to be able to alloc and pass an instance to each scene.

    What do you think?

    opened by fabiosoft 0
Owner
Draven
Go / Rails / Rust
Draven
ColorKit makes it easy to find the dominant colors of an image

ColorKit is your companion to work with colors on iOS. Features Installation Sample Project Contributing License Features Dominant Colors Col

Boris Emorine 569 Dec 29, 2022
Yet another extension to manipulate colors easily in Swift and SwiftUI

DynamicColor provides powerful methods to manipulate colors in an easy way in Swift and SwiftUI. Requirements • Usage • Installation • Contribution •

Yannick Loriot 2.8k Dec 30, 2022
All wikipedia colors implemented as easy to use UIColor extension 🌈

UIColor-WikiColors All wikipedia colors implemented as an easy to use UIColor extension. Have you ever tried using UIColor.lightBlue just to be welcom

Szymon Maślanka 58 Jul 30, 2022
A beautiful set of predefined colors and a set of color methods to make your iOS/OSX development life easier.

Installation Drag the included Colours.h and Colours.m files into your project. They are located in the top-level directory. You can see a demo of how

Ben Gordon 3.1k Dec 28, 2022
A pure Swift library that allows you to easily convert SwiftUI Colors to Hex String and vice versa.

iOS · macOS · watchOS · tvOS A pure Swift library that allows you to easily convert SwiftUI Colors to Hex String and vice versa. There is also support

Novem 3 Nov 20, 2022
Save the color of your moments. Remember your moments with colors you name.🎨

Pixel Palette ?? What was the color of the sunset yesterday? Or the color you would like to use in your vlog? Save the color of your moments with Pixe

Sue Cho 21 Aug 7, 2022
NetNewsWire-Themes - A crowd-source themes directory for the NetNewsWire RSS Reader

Unofficial Official NetNewsWire Themes Directory This is a theme directory for t

Hans 9 Dec 19, 2022
Color framework for Swift & Objective-C (Gradient colors, hexcode support, colors from images & more).

Swift 3 To use the Swift 3 version, add this to your Podfile (until 2.2 or higher is released): pod 'ChameleonFramework/Swift', :git => 'https://githu

Vicc Alexander 12.5k Dec 27, 2022
Random-Colors-iOS - Random colors generator app with auto layout

Random Colors Random colors generator app with auto layout Demo demo.mp4 Depende

Adem Özcan 8 Mar 23, 2022
Solitaire mahjong game with several themes and layouts. For android/iphone/ubuntu/firefoxos

green-mahjong Green Mahjong is a HTML5 based GPLv3 solitaire mahjong game. It features three nice themes, six different layouts and works accross all

Daniel Beck 82 Dec 25, 2022
Nikolai Saganenko 1 Jan 9, 2022
AZPeerToPeerConnectivity is a wrapper on top of Apple iOS Multipeer Connectivity framework. It provides an easier way to create and manage sessions. Easy to integrate

AZPeerToPeerConnection Controller Features Multipeer Connectivity Connection via Bluetooth or Wifi No need write all session, browser, services delega

Afroz Zaheer 66 Dec 19, 2022
ColorKit makes it easy to find the dominant colors of an image

ColorKit is your companion to work with colors on iOS. Features Installation Sample Project Contributing License Features Dominant Colors Col

Boris Emorine 569 Dec 29, 2022
Yet another extension to manipulate colors easily in Swift and SwiftUI

DynamicColor provides powerful methods to manipulate colors in an easy way in Swift and SwiftUI. Requirements • Usage • Installation • Contribution •

Yannick Loriot 2.8k Dec 30, 2022
Fetches the most dominant and prominent colors from an image.

UIImageColors iTunes style color fetcher for UIImage and NSImage. It fetches the most dominant and prominent colors. Installation Manual Copy UIImageC

null 3.2k Jan 1, 2023
All wikipedia colors implemented as easy to use UIColor extension 🌈

UIColor-WikiColors All wikipedia colors implemented as an easy to use UIColor extension. Have you ever tried using UIColor.lightBlue just to be welcom

Szymon Maślanka 58 Jul 30, 2022
A beautiful set of predefined colors and a set of color methods to make your iOS/OSX development life easier.

Installation Drag the included Colours.h and Colours.m files into your project. They are located in the top-level directory. You can see a demo of how

Ben Gordon 3.1k Dec 28, 2022
A charmful decade with many colors patterns, disco music, and other cultural expressions that we refer to as vintage

MontyHallProblem Welcome to the 70s! ?? That is a charmful decade with many colors patterns, disco music, and other cultural expressions that we refer

Diogo Infante 2 Dec 28, 2021
Create complementary gradients generated from dominant and prominent colors in supplied image. Inspired by Grade.js

ComplimentaryGradientView Create complementary gradients generated from dominant and prominent colors in supplied image. Inspired by Grade.js ❤️ .all

George Kye 728 Dec 17, 2022
Read colors from Xcode assets file.

XcodePalette Read colors from Xcode assets file. How to Use Download the XcodePalette.Executable.zip of the latest release. Extract the XcodePalette U

iMoeNya 0 Nov 12, 2021