import CoreText import UIKit extension NSAttributedString { func rd_paginatedFrames( size: CGSize, fragmentOffsets: [String: Int] = [:], config: RDEPUBTextLayoutConfig = .default ) -> [RDEPUBTextLayoutFrame] { RDEPUBTextLayouter(attributedString: self, pageSize: size, config: config) .layoutFrames(fragmentOffsets: fragmentOffsets) } func ss_pageRanges(size: CGSize) -> [NSRange] { rd_paginatedFrames(size: size).map(\.contentRange) } } extension UIColor { var ss_cssString: String { var red: CGFloat = 0 var green: CGFloat = 0 var blue: CGFloat = 0 var alpha: CGFloat = 0 getRed(&red, green: &green, blue: &blue, alpha: &alpha) return String(format: "rgba(%d, %d, %d, %.3f)", Int(red * 255), Int(green * 255), Int(blue * 255), alpha) } }