     func fontFilename() -> String {
         switch self {
         case .solid:
-            return "Font Awesome 5 Free-Solid-900"
+            return FontAwesomeConfig.useProFonts ? "Font Awesome 5 Pro-Solid-900" : "Font Awesome 5 Free-Solid-900"
+        case .light:
+            return FontAwesomeConfig.useProFonts ? "Font Awesome 5 Pro-Light-300" : "Font Awesome 5 Free-Regular-400"
         case .regular:
-            return "Font Awesome 5 Free-Regular-400"
+            return FontAwesomeConfig.useProFonts ? "Font Awesome 5 Pro-Regular-400" : "Font Awesome 5 Free-Regular-400"
         case .brands:
             return "Font Awesome 5 Brands-Regular-400"
         }

        case .brands:
            return "Font Awesome 5 Brands"
        case .regular,
             .solid:
            return "Font Awesome 5 Free"
        }
    }
}


    /// Taken from FontAwesome.io's Fixed Width Icon CSS.
    public static let fontAspectRatio: CGFloat = 1.28571429

    /// Whether Font Awesome Pro fonts should be used (not included).
    ///
    /// To use Font Awesome Pro fonts, you should add these to your main project and
    /// make sure they are added to the target and are included in the Info.plist file.
    public static var useProFonts: Bool = false
}

public enum FontAwesomeStyle: String {
    case solid
    /// WARNING: Font Awesome Free doesn't include a Light variant. Using this with Free will fallback to Regular.
    case light
    case regular
    case brands

    func fontName() -> String {
        switch self {
        case .solid:
            return FontAwesomeConfig.useProFonts ? "FontAwesome5ProSolid" : "FontAwesome5Free-Solid"
        case .light:
            return FontAwesomeConfig.useProFonts ? "FontAwesome5ProLight" : "FontAwesome5Free-Regular"
        case .regular:
            return FontAwesomeConfig.useProFonts ? "FontAwesome5ProRegular" : "FontAwesome5Free-Regular"
        case .brands:
            return "FontAwesome5Brands-Regular"
        }
