Skip to content
Icons fonts for iOS (FontAwesome, Iconic, Ionicon, Octicon, Themify, MapIcon, MaterialIcon)
Swift Ruby Other
Branch: master
Clone or download
Latest commit 23b1737 May 27, 2019

SwiftIconFont Banner

Build Status Version License Platform Carthage compatible Reviewed by Hound



Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate SwiftIconFont into your Xcode project using Carthage, specify it in your Cartfile:

github "0x73/SwiftIconFont"


CocoaPods is a dependency manager for Cocoa projects.

You can install it with the following command:

$ gem install cocoapods

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


pod 'SwiftIconFont'


To run the example project, clone the repo, and run pod install from the Example directory first.


Font Prefix Cheat Sheet
Font Awesome fa: List
Ion Icons io: List
Octicons oc: List
Open Iconic ic: List
Material Icon ma: List
Themify ti: List
Map Icons mi: List
Segoe MDL2 sm: List


public enum Fonts: String {
    case fontAwesome = "FontAwesome"
    case iconic = "open-iconic"
    case ionicon = "Ionicons"
    case octicon = "octicons"
    case themify = "themify"
    case mapIcon = "map-icons"
    case materialIcon = "MaterialIcons-Regular"
    case segoeMDL2 = "Segoe mdl2 assets"

Runtime Structure

< Prefix >:< Icon >


In your UILabel, UIButton or UITextField, set a text containing a placeholder anywhere you want the icon to be. Somethink like this


Then you can choose between 3 ways you can use SwiftIconFont.

1. Without Custom Class

Simply import SwiftIconFont and call processIcons on any UILabel, UIButton or UITextField that has a placeholder.


2. Custom Class

The lazy way, just set your UILabel, UITextField, UIButton, UITextView, UIBarButtonItem class as SwiftIconLabel, SwiftIconTextField, SwiftIconButton, SwiftIconTextView, SwiftBarButtonItem, and thats it, your icons will be processed at runtime.

3. Programmatically

import SwiftIconFont

label.font = UIFont.icon(from: .fontAwesome, ofSize: 50.0)
label.text = String.fontAwesomeIcon(code: "twitter")

UIBarButtonItem (Without Custom Class)

import SwiftIconFont

twitterBarButton.icon(from: .fontAwesome, code: "twitter", ofSize: 20)

UITabBarItem (Without Custom Class)

import SwiftIconFont

twitterTabBarButton.icon(from: .fontAwesome, code: "twitter", imageSize: CGSizeMake(20, 20), ofSize: 20)


import SwiftIconFont

let githubLogo = UIImage(from: .octicon, code: "logo-github", textColor: .black, backgroundColor: .clear, size: CGSize(width: 150, height: 50))


import SwiftIconFont

let githubLogoImageView: UIImageView = UIImageView(frame: CGRect(x: 120, y: self.view.frame.size.height - 130, width: 150, height: 50))
githubLogoImageView.setIcon(from: .octicon, code: "logo-github", textColor: .black, backgroundColor: .clear, size: nil)



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


  1. Fork it (
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
You can’t perform that action at this time.