FLEXColor.m 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. //
  2. // FLEXColor.m
  3. // FLEX
  4. //
  5. // Created by Benny Wong on 6/18/19.
  6. // Copyright © 2019 Flipboard. All rights reserved.
  7. //
  8. #import "FLEXColor.h"
  9. #import "FLEXUtility.h"
  10. @implementation FLEXColor
  11. static UIColor *colorWithDynamicProvider(UIColor *lightColor, UIColor *darkColor) {
  12. #if FLEX_AT_LEAST_IOS13_SDK
  13. if (@available(iOS 13.0, *)) {
  14. return [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull traitCollection) {
  15. return (traitCollection.userInterfaceStyle == UIUserInterfaceStyleLight
  16. ? lightColor
  17. : darkColor);
  18. }];
  19. }
  20. #endif
  21. return lightColor;
  22. }
  23. + (UIColor *)systemBackgroundColor {
  24. return [self systemBackgroundColorWithAlpha:1.0];
  25. }
  26. + (UIColor *)systemBackgroundColorWithAlpha:(CGFloat)alpha {
  27. return colorWithDynamicProvider([UIColor colorWithWhite:1.0 alpha:alpha],
  28. [UIColor colorWithWhite:0.0 alpha:alpha]);
  29. }
  30. + (UIColor *)secondaryBackgroundColor {
  31. return [self secondaryBackgroundColorWithAlpha:1.0];
  32. }
  33. + (UIColor *)secondaryBackgroundColorWithAlpha:(CGFloat)alpha {
  34. return colorWithDynamicProvider([UIColor colorWithWhite:0.9 alpha:alpha],
  35. [UIColor colorWithWhite:0.1 alpha:alpha]);
  36. }
  37. + (UIColor *)scrollViewBackgroundColor {
  38. return colorWithDynamicProvider([UIColor colorWithRed:239.0/255.0 green:239.0/255.0 blue:244.0/255.0 alpha:1.0],
  39. [UIColor colorWithRed:16.0/255.0 green:16.0/255.0 blue:11.0/255.0 alpha:1.0]);
  40. }
  41. + (UIColor *)primaryTextColor {
  42. return colorWithDynamicProvider([UIColor blackColor],
  43. [UIColor whiteColor]);
  44. }
  45. + (UIColor *)deemphasizedTextColor {
  46. return colorWithDynamicProvider([UIColor lightGrayColor],
  47. [UIColor darkGrayColor]);
  48. }
  49. @end