https://github.com/fromkk/colorset
Change theme color of your apps without Reactive extension.
https://github.com/fromkk/colorset
ios ios-library ios-swift swift swift5
Last synced: about 1 year ago
JSON representation
Change theme color of your apps without Reactive extension.
- Host: GitHub
- URL: https://github.com/fromkk/colorset
- Owner: fromkk
- License: mit
- Created: 2019-04-21T07:41:43.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-19T01:14:33.000Z (almost 7 years ago)
- Last Synced: 2025-04-23T22:51:35.223Z (about 1 year ago)
- Topics: ios, ios-library, ios-swift, swift, swift5
- Language: Swift
- Homepage:
- Size: 479 KB
- Stars: 24
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ColorSet
[](https://app.bitrise.io/app/388601b81b3a10f8)
[](https://developer.apple.com/swift)
[](https://opensource.org/licenses/MIT)
## Description
Change theme color of your apps.

## Installation
### Carthage
- Insert `github "fromkk/ColorSet"` to your Cartfile .
- Run `carthage update`
- Link your app with `ColorSet_iOS.framework` in Carthage/Build
## Usage
### Define your ColorSet
```swift
import ColorSet_iOS
protocol ColorSet {
static var backgroundColor: UIColor { get }
static var textColor: UIColor { get }
}
struct MyColorSet {
static let backgroundColor: ColorObservable = .init(DefaultColorSet.backgroundColor)
static let textColor: ColorObservable = .init(DefaultColorSet.textColor)
static func replace(_ colorSet: ColorSet.Type) {
backgroundColor.accept(colorSet.backgroundColor)
textColor.accept(colorSet.textColor)
}
}
struct DefaultColorSet: ColorSet {
static var backgroundColor: UIColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
static var textColor: UIColor = #colorLiteral(red: 0.2549019754, green: 0.2745098174, blue: 0.3019607961, alpha: 1)
}
struct DarkColorSet: ColorSet {
static var backgroundColor: UIColor = #colorLiteral(red: 0.2549019754, green: 0.2745098174, blue: 0.3019607961, alpha: 1)
static var textColor: UIColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
}
```
### Change color set
```swift
import UIKit
import ColorSet_iOS
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var darkmodeSwitch: UISwitch!
let observationBag = ColorObservationBag()
override func viewDidLoad() {
super.viewDidLoad()
MyColorSet.backgroundColor.bind(to: view, keyPath: \.backgroundColor).append(to: observationBag)
MyColorSet.textColor.bind(to: label, keyPath: \.textColor).append(to: observationBag)
MyColorSet.textColor.subscribe { [weak self] color in
self?.label.layer.borderColor = color.cgColor
}.append(to: observationBag)
}
@IBAction func darkmodeSwitchDidChanged(_ sender: UISwitch) {
if sender.isOn {
MyColorSet.replace(DarkColorSet.self)
} else {
MyColorSet.replace(DefaultColorSet.self)
}
}
}
```