Flourish UI for Custom Modals, Buttons and More

Login to Access Code

We absolutely love beautiful interfaces! As an organization named Unicorn, we are obligated to be unique and majestic. That is why we have made this highly configurable, out-of-the-box-pretty, User Interface library/kit thingy. It has a minimal set of UI components now, but already packs quite a punch with the UIColor extension, animated Material-inspired buttons, and modal views.

Note This library was built on Swift 1.2, but does offer decent backwards compatibility. We haven’t tested older devices thoroughly however, so if you find a breaking issue, please file an issue on the repo or submit a pull request!


This library was hand-written, but borrowed heavily from concepts in ZFRipple, SLCAlertView and Material. We’d like to thank them for paving the way for some cool concepts and for contributing their code as MIT. Following suit, we have also made this open source and completely void of Copyright or restrictions. Just use it already, and make your apps look like sexy unicorns!


Easy, just drap and drop the FlourishUI folder (or individual files) into your project and start using!


Most of the code should be pretty self documenting. FlourishUI uses structs and enums heavily to make an easy-to-read and highly meta approach.


The Button class is ready to go with Interface Builder and IBDesignable, just inherit! You can check the demo to see this configured with IB.


Modals are heavily based on configurations, and thus, are built and called in code. We plan on making them more robust in time, but for now, you’ll want to simply treat them like you would an AlertView.

Modal.Overlay.blurStyle = .ExtraLight
Modal.Dialog.shadowType = .Hover
Modal.Dialog.shadowRadius = CGFloat(5)
Modal.Dialog.shadowOffset = CGSize(width: 0, height: 0)
Modal.Dialog.shadowOpacity = 0.1

Modal(title: sender.titleLabel?.text, body: body, status: .Warning).show()

UIColor Extension

You would think Apple would just drop in support for little utilities like these, but alas, we’ve recreated them:

// Create colors with hex value in string
let red = UIColor(rgba: "#ff0000")

// Darken or lighten the value (lightness)
// 1 = 100% therefore > 1 is lighter and < 1 is darker
UIColor.adjustValue(red, percentage: 1.5)