Files
main/Tweaks/FLEX/Utility/FLEXColor.m
2023-06-27 09:54:41 +02:00

137 lines
3.4 KiB
Objective-C

//
// FLEXColor.m
// FLEX
//
// Created by Benny Wong on 6/18/19.
// Copyright © 2020 FLEX Team. All rights reserved.
//
#import "FLEXColor.h"
#import "FLEXUtility.h"
#define FLEXDynamicColor(dynamic, static) ({ \
UIColor *c; \
if (@available(iOS 13.0, *)) { \
c = [UIColor dynamic]; \
} else { \
c = [UIColor static]; \
} \
c; \
});
@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.97 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];
}
+ (UIColor *)groupedBackgroundColor {
return FLEXDynamicColor(
systemGroupedBackgroundColor,
colorWithHue:2.0/3.0 saturation:0.02 brightness:0.97 alpha:1
);
}
+ (UIColor *)groupedBackgroundColorWithAlpha:(CGFloat)alpha {
return [[self groupedBackgroundColor] colorWithAlphaComponent:alpha];
}
+ (UIColor *)secondaryGroupedBackgroundColor {
return FLEXDynamicColor(secondarySystemGroupedBackgroundColor, whiteColor);
}
+ (UIColor *)secondaryGroupedBackgroundColorWithAlpha:(CGFloat)alpha {
return [[self secondaryGroupedBackgroundColor] colorWithAlphaComponent:alpha];
}
#pragma mark - Text colors
+ (UIColor *)primaryTextColor {
return FLEXDynamicColor(labelColor, blackColor);
}
+ (UIColor *)deemphasizedTextColor {
return FLEXDynamicColor(secondaryLabelColor, lightGrayColor);
}
#pragma mark - UI Element Colors
+ (UIColor *)tintColor {
#if FLEX_AT_LEAST_IOS13_SDK
if (@available(iOS 13.0, *)) {
return UIColor.systemBlueColor;
} else {
return UIApplication.sharedApplication.keyWindow.tintColor;
}
#else
return UIApplication.sharedApplication.keyWindow.tintColor;
#endif
}
+ (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
);
}
+ (UIColor *)hairlineColor {
return FLEXDynamicColor(systemGray3Color, colorWithWhite:0.75 alpha:1);
}
+ (UIColor *)destructiveColor {
return FLEXDynamicColor(systemRedColor, redColor);
}
@end