Awesome
<p align="center"> <img src=".artwork/logo.png" width="890" alt="Tabman"/> </p> <p align="center"> <a href="https://travis-ci.org/uias/Randient"> <img src="https://travis-ci.org/uias/Randient.svg?branch=master" /> </a> <img src="https://img.shields.io/badge/Swift-4 | 5-orange.svg?style=flat" /> <a href="https://cocoapods.org/pods/Randient"> <img src="https://img.shields.io/cocoapods/v/Randient.svg" alt="CocoaPods" /> </a> <a href="https://cocoapods.org/pods/Randient"> <img src="https://img.shields.io/cocoapods/p/Randient.svg" alt="Platforms" /> </a> <a href="https://github.com/Carthage/Carthage"> <img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" /> </a> <a href="https://github.com/uias/Randient/releases"> <img src="https://img.shields.io/github/release/uias/Randient.svg" /> </a> </p> <p align="center"> <img src=".artwork/randient.gif" width="450" alt="Tabman"/> </p>⭐️ Features
- Beautiful, automatically generated gradients from uiGradients in Swift.
- Smoothly animating, randomizable gradient views.
- Life is like a box of chocolates.
📋 Requirements
iOS 9 & Swift 4 / 5.
📲 Installation
CocoaPods
To install Randient using CocoaPods, add this line to your Podfile
:
pod 'Randient'
Carthage
To install Randient using Carthage, add this line to your Cartfile
:
github "Randient"
🚀 Usage
Gradient Roulette
RandientView
is a simple view that will display a randomly selected gradient from the uiGradients catalog.
let randientView = RandientView()
randientView.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
view.addSubview(randientView)
Updating to a new gradient is as simple as...
randientView.randomize(animated: true)
Those wonderful gradients
An enum of all the gradients from uiGradients is generated every time that Randient is built.
These are available as an enum via UIGradient
.
let gradient = UIGradient.royalBlue
let colors = gradient.data.colors
If you're feeling lucky, a randomized UIGradient
can also be retrieved.
let randomGradient = Randient.randomize()
The raw stuff
Each UIGradient
has associated Data
which can be accessed via .data
.
struct Data {
public let name: String
public let colors: [UIColor]
}
Metadata
is also available, accessible via .metadata
.
struct Metadata {
public let isPredominantlyLight: Bool
}
Gradient View
RandientView
inherits from GradientView
, which under the hood uses simply uses a CAGradientLayer
for rendering gradients.
GradientView
provides the following:
.colors: [UIColor]?
- Colors of the gradient..locations: [Double]?
- Locations of each gradient stop..startPoint: CGPoint
- Start point of the gradient (Defaults to0.5, 0.0
)..endPoint: CGPoint
- End point of the gradient (Defaults to0.5, 1.0
).
👨🏻💻 About
- Created by Merrick Sapsford (@MerrickSapsford)
- Heavily inspired by UIColor-uiGradientsAdditions by kaiinui.
❤️ Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/uias/Randient.
👮🏻♂️ License
The library is available as open source under the terms of the MIT License.