-
Notifications
You must be signed in to change notification settings - Fork 5
/
SourceSansPro.swift
61 lines (50 loc) · 1.58 KB
/
SourceSansPro.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//
// SourceSansPro.swift
// Font
//
// Created by Adam Yanalunas on 10/2/15.
// Copyright © 2015 CocoaPods. All rights reserved.
//
import Font
public extension Font {
private static func sourceSansProWeight(_ weight:FontWeight) -> String {
switch weight {
case .ultralight:
return "ExtraLight"
case .thin:
fallthrough
case .light:
return "Light"
case .regular:
fallthrough
case .medium:
return "Regular"
case .semibold:
return "Semibold"
case .bold:
fallthrough
case .heavy:
return "Bold"
case .black:
return "Black"
}
}
private static func name(weight:FontWeight, style:FontStyle) -> String {
let base = "SourceSansPro"
let weightNumber = sourceSansProWeight(weight)
let weightAndStyle:String
switch style {
case _ where style == .italic && (weight == .regular || weight == .medium):
weightAndStyle = "It"
case .italic:
weightAndStyle = "\(weightNumber)It"
default:
weightAndStyle = weightNumber
}
return "\(base)-\(weightAndStyle)"
}
static func SourceSansPro(size:CGFloat = 16, weight:FontWeight = .medium, style:FontStyle = .none) -> Font {
let fontName = name(weight: weight, style:style)
return Font(fontName: fontName, size: size, weight: weight, style: style)
}
}