Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status

#Verona Verona is a microframework for elegantly creating NSAttributedString in Swift.

Verona makes it easy to create NSAttributedString in a typesafe manner that doesn't require memorizing or looking up attribute names.


All NSAttributedString attributes are available as a Swift enum with associated values of their intended type, which makes easy and safe to use.

case Font(UIFont)
case ParagraphStyle(NSParagraphStyle)
case Color(UIColor)
case BackgroundColor(UIColor)
case Ligature(Bool)
case Kerning(Int)

###Make Closure The easiest way to create NSAttributedString is via the built in extension which provides a make closure

let attributedString = NSAttributedString.make("Ciao, Verona", make: { (make: NSAttributedStringAttributeBuilder) -> Void in
    make.setAttribute(.Font(UIFont(name: "HelveticaNeue", size: 18)!))

###Directly using the builder You can directly use the underlying NSAttributedStringAttributeBuilder to generate attribute dictionaries

let builder = NSAttributedStringAttributeBuilder()
builder.setAttribute(.Font(UIFont(name: "HelveticaNeue", size: 18)!))

let attString = NSAttributedString(string: string, attributes: builder.attributedStringAttributesDictionary())

###Tests Verona is currently unit tested using FBSnapshotTestCase for all cases. To run the unit tests, be sure to run cocoapods first. Test results can be found here:

All tests should be run against the iPhone 6 iOS 9.0

##Try it out The easiest way to try out Verona is through the included Playground TryVerona.playground

To setup the project for development + tests, clone this repo, cd into Verona and run make bootstrap

##Contributing Enjoying Verona!? We can use your help! The following guidelines have been adopted from AshFurrow/Moya (

Open source isn't just writing code. Verona could use your help with any of the following:

  • Finding (and reporting!) bugs.
  • New feature suggestions.
  • Answering questions on issues.
  • Documentation improvements.
  • Reviewing pull requests.
  • Helping to manage issue priorities.
  • Fixing bugs/new features.

If any of that sounds cool to you, send a pull request! After a few contributions, we'll add you as admins to the repo so you can merge pull requests 🎉

##License Verona is released under an MIT license. See LICENSE for more information.