FLEXColor.m 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. #pragma mark - Background Colors
  12. + (UIColor *)primaryBackgroundColor {
  13. if (@available(iOS 13.0, *)) {
  14. return [UIColor systemBackgroundColor];
  15. } else {
  16. return [UIColor whiteColor];
  17. }
  18. }
  19. + (UIColor *)primaryBackgroundColorWithAlpha:(CGFloat)alpha {
  20. return [[self primaryBackgroundColor] colorWithAlphaComponent:alpha];
  21. }
  22. + (UIColor *)secondaryBackgroundColor {
  23. if (@available(iOS 13.0, *)) {
  24. return [UIColor secondarySystemBackgroundColor];
  25. } else {
  26. return [UIColor colorWithHue:2.0/3.0 saturation:0.02 brightness:0.95 alpha:1];
  27. }
  28. }
  29. + (UIColor *)secondaryBackgroundColorWithAlpha:(CGFloat)alpha {
  30. return [[self secondaryBackgroundColor] colorWithAlphaComponent:alpha];
  31. }
  32. + (UIColor *)tertiaryBackgroundColor {
  33. if (@available(iOS 13.0, *)) {
  34. // All the background/fill colors are varying shades
  35. // of white and black with really low alpha levels.
  36. // We use this instead to avoid alpha issues.
  37. return [UIColor systemGray4Color];
  38. } else {
  39. return [UIColor lightGrayColor];
  40. }
  41. }
  42. + (UIColor *)tertiaryBackgroundColorWithAlpha:(CGFloat)alpha {
  43. return [[self tertiaryBackgroundColor] colorWithAlphaComponent:alpha];
  44. }
  45. #pragma mark - Text colors
  46. + (UIColor *)primaryTextColor {
  47. if (@available(iOS 13.0, *)) {
  48. return [UIColor labelColor];
  49. } else {
  50. return [UIColor blackColor];
  51. }
  52. }
  53. + (UIColor *)deemphasizedTextColor {
  54. if (@available(iOS 13.0, *)) {
  55. return [UIColor tertiaryLabelColor];
  56. } else {
  57. return [UIColor lightGrayColor];
  58. }
  59. }
  60. #pragma mark - UI Element Colors
  61. + (UIColor *)scrollViewBackgroundColor {
  62. if (@available(iOS 13.0, *)) {
  63. return [UIColor systemGroupedBackgroundColor];
  64. } else {
  65. return [UIColor colorWithHue:2.0/3.0 saturation:0.02 brightness:0.95 alpha:1];
  66. }
  67. }
  68. + (UIColor *)iconColor {
  69. if (@available(iOS 13.0, *)) {
  70. return [UIColor labelColor];
  71. } else {
  72. return [UIColor blackColor];
  73. }
  74. }
  75. + (UIColor *)borderColor {
  76. return [self primaryBackgroundColor];
  77. }
  78. + (UIColor *)toolbarItemHighlightedColor {
  79. if (@available(iOS 13.0, *)) {
  80. return [UIColor quaternaryLabelColor];
  81. } else {
  82. return [UIColor colorWithHue:2.0/3.0 saturation:0.1 brightness:0.25 alpha:0.6];
  83. }
  84. }
  85. + (UIColor *)toolbarItemSelectedColor {
  86. if (@available(iOS 13.0, *)) {
  87. return [UIColor secondaryLabelColor];
  88. } else {
  89. return [UIColor colorWithHue:2.0/3.0 saturation:0.1 brightness:0.25 alpha:0.68];
  90. }
  91. }
  92. @end