Skip to content
/ Awesome Public

FontAwesome 6 Swift & SwiftUI implementation for iOS, tvOS & macOS

License

Notifications You must be signed in to change notification settings

LiveUI/Awesome

Repository files navigation

Awesome

Font Awesome Slack Version License Platform

Super easy to use library containing the brand new Font Awesome 6, completely redesigned for Swift 5

Slack

Get help using and installing this product on our Slack, channel #help-awesome

Installation

Awesome is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'AwesomeEnum'

for Carthage just add:

github "LiveUI/Awesome"

for Swift Package Manager

You can add in your project settings under Swift Packages or File -> Swift Packages -> Add Package to enter the following url and select version to complete.

https://github.com/LiveUI/Awesome

If you want to add in package.swift manifest file add under dependencies.

.package(url "https://github.com/LiveUI/Awesome", from: 2.0.0)

Usage

Import will be slightly different for Cocoapods/Carthage/SPM. Sorry for the confusion of names but some unreasonable fellow has already registered an Awesome pod before us :).

Cocoapods

import AwesomeEnum

Carthage

import Awesome

Swift Package Manager

import Awesome

All icons are available through autogenerated enums like this:

// UKit and AppKit
let image = Awesome.Solid.handScissors.asImage(size: 40.0)
// or
let image = Awesome.Brand.android.asImage(size: CGSize(width: 40, height: 40), color: .red, backgroundColor: .blue) // :trollface:
// or
let attributedText = Awesome.Regular.envelopeOpen.asAttributedText(fontSize: 17, color: .red, backgroundColor: .blue)

// SwiftUI
Awesome.Brand.apple.image
// Set some modifiers
Awesome.Brand.android.image
	.size(40)
	.foregroundColor(.red)
	.backgroundColor(.blue)
// Scales automatically with font
Awesome.Brand.android.image
    .foregroundColor(.red)
    .backgroundColor(.blue)
    .font(.largeTitle)
// or
Awesome.Image(icon: Awesome.Brand.apple)

Font Awesome Pro

The Font Awesome Free files are included and loaded for you out of the box. Font Awesome Pro licensing terms don't allow to publish the font files however, so we can't add those for you. As such you will need to manually add the fonts to your project and register them before using them:

// AppDelegate application(_:didFinishLaunchingWithOptions:)

// Load all fonts
AwesomePro.loadFonts(from: Bundle.main)

// Load only some fonts
AwesomePro.loadFonts(from: Bundle.main, only: [.brand, .solid])

//For registering fonts use Bundle.module
let resourceURLString = Bundle.module.url(forResource: fontName, withExtension: nil)

The filenames have to match Font Awesome's naming scheme (fa-brands-400.ttf, fa-light-300.ttf, fa-regular-400.ttf, fa-solid-900.ttf). You only have to include the fonts you are using.

Once the fonts are registered you can use the AwesomePro enum just as you'd use the Awesome enum, except that you now have access to all Font Awesome Pro icons.

Contributors

License

Awesome is available under the MIT license. See the LICENSE for more info. All fonts are property of Font Awesome!