// // FLEXColor.m // FLEX // // Created by Benny Wong on 6/18/19. // Copyright © 2019 Flipboard. All rights reserved. // #import "FLEXColor.h" #import "FLEXUtility.h" #if FLEX_AT_LEAST_IOS13_SDK #define FLEXDynamicColor(dynamic, static) ({ \ UIColor *c; \ if (@available(iOS 13, *)) { \ c = [UIColor dynamic]; \ } else { \ c = [UIColor static]; \ } \ c; \ }); #else #define FLEXDynamicColor(dynamic, static) [UIColor static] #endif @implementation FLEXColor #pragma mark - Background Colors + (UIColor *)primaryBackgroundColor { return FLEXDynamicColor(systemBackgroundColor, whiteColor); } + (UIColor *)primaryBackgroundColorWithAlpha:(CGFloat)alpha { return [[self primaryBackgroundColor] colorWithAlphaComponent:alpha]; } + (UIColor *)secondaryBackgroundColor { return FLEXDynamicColor( secondarySystemBackgroundColor, colorWithHue:2.0/3.0 saturation:0.02 brightness:0.95 alpha:1 ); } + (UIColor *)secondaryBackgroundColorWithAlpha:(CGFloat)alpha { return [[self secondaryBackgroundColor] colorWithAlphaComponent:alpha]; } + (UIColor *)tertiaryBackgroundColor { // All the background/fill colors are varying shades // of white and black with really low alpha levels. // We use systemGray4Color instead to avoid alpha issues. return FLEXDynamicColor(systemGray4Color, lightGrayColor); } + (UIColor *)tertiaryBackgroundColorWithAlpha:(CGFloat)alpha { return [[self tertiaryBackgroundColor] colorWithAlphaComponent:alpha]; } #pragma mark - Text colors + (UIColor *)primaryTextColor { return FLEXDynamicColor(labelColor, blackColor); } + (UIColor *)deemphasizedTextColor { return FLEXDynamicColor(tertiaryLabelColor, lightGrayColor); } #pragma mark - UI Element Colors + (UIColor *)scrollViewBackgroundColor { return FLEXDynamicColor( systemGroupedBackgroundColor, colorWithHue:2.0/3.0 saturation:0.02 brightness:0.95 alpha:1 ); } + (UIColor *)iconColor { return FLEXDynamicColor(labelColor, blackColor); } + (UIColor *)borderColor { return [self primaryBackgroundColor]; } + (UIColor *)toolbarItemHighlightedColor { return FLEXDynamicColor( quaternaryLabelColor, colorWithHue:2.0/3.0 saturation:0.1 brightness:0.25 alpha:0.6 ); } + (UIColor *)toolbarItemSelectedColor { return FLEXDynamicColor( secondaryLabelColor, colorWithHue:2.0/3.0 saturation:0.1 brightness:0.25 alpha:0.68 ); } @end