26 lines
1.2 KiB
Swift
26 lines
1.2 KiB
Swift
import UIKit
|
|
|
|
// See: https://noahgilmore.com/blog/dark-mode-uicolor-compatibility/
|
|
extension UIColor {
|
|
/// `.systemBackground ?? .white`
|
|
static var sysBackground: UIColor { if #available(iOS 13.0, *) { return .systemBackground } else { return .white } }
|
|
/// `.link ?? .systemBlue`
|
|
static var sysLink: UIColor { if #available(iOS 13.0, *) { return .link } else { return .systemBlue } }
|
|
|
|
/// `.label ?? .black`
|
|
static var sysLabel: UIColor { if #available(iOS 13.0, *) { return .label } else { return .black } }
|
|
/// `.secondaryLabel ?? rgba(60, 60, 67, 0.6)`
|
|
static var sysLabel2: UIColor { if #available(iOS 13.0, *) { return .secondaryLabel } else { return .init(red: 60/255.0, green: 60/255.0, blue: 67/255.0, alpha: 0.6) } }
|
|
/// `.tertiaryLabel ?? rgba(60, 60, 67, 0.3)`
|
|
static var sysLabel3: UIColor { if #available(iOS 13.0, *) { return .tertiaryLabel } else { return .init(red: 60/255.0, green: 60/255.0, blue: 67/255.0, alpha: 0.3) } }
|
|
}
|
|
|
|
extension NSMutableAttributedString {
|
|
func withColor(_ color: UIColor, fromBack: Int) -> Self {
|
|
let l = length - fromBack
|
|
let r = (l < 0) ? NSMakeRange(0, length) : NSMakeRange(l, fromBack)
|
|
self.addAttribute(.foregroundColor, value: color, range: r)
|
|
return self
|
|
}
|
|
}
|