61 lines
1.2 KiB
Swift
61 lines
1.2 KiB
Swift
struct TextStyle: Decodable {
|
|
var color: String? = "black"
|
|
var fontSize: CGFloat? = 12
|
|
var fontStyle: String? = "normal"
|
|
var fontWeight: FontWeight?
|
|
var letterSpacing: Double?
|
|
var textAlign: String? = "auto"
|
|
var lineHeight: Double?
|
|
var textDecorationLine: TextDecorationLine?
|
|
var flex: Int?
|
|
}
|
|
|
|
enum FontWeight: String, Decodable {
|
|
case bold
|
|
case normal
|
|
case one = "100"
|
|
case two = "200"
|
|
case three = "300"
|
|
case four = "400"
|
|
case five = "500"
|
|
case six = "600"
|
|
case seven = "700"
|
|
case eight = "800"
|
|
case nine = "900"
|
|
|
|
func toFontWeight() -> UIFont.Weight {
|
|
switch self {
|
|
case .bold:
|
|
return .bold
|
|
case .normal:
|
|
return .regular
|
|
case .one:
|
|
return .ultraLight
|
|
case .two:
|
|
return .ultraLight
|
|
case .three:
|
|
return .light
|
|
case .four:
|
|
return .regular
|
|
case .five:
|
|
return .medium
|
|
case .six:
|
|
return .semibold
|
|
case .seven:
|
|
return .semibold
|
|
case .eight:
|
|
return .bold
|
|
case .nine:
|
|
return .heavy
|
|
}
|
|
}
|
|
}
|
|
|
|
enum TextDecorationLine: String, Decodable {
|
|
case underline
|
|
case lineThrough = "line-through"
|
|
case underlineLineThrough = "underline line-through"
|
|
|
|
case normal
|
|
}
|