From f6eeb4b7bce5d0e5386ee57173807ea5e7546e94 Mon Sep 17 00:00:00 2001 From: arichorn <78001398+arichorn@users.noreply.github.com> Date: Sat, 2 Sep 2023 12:24:40 -0500 Subject: [PATCH] LowContrastMode v1.4.2 --- Source/LowContrastMode.xm | 1715 ++----------------------------------- 1 file changed, 84 insertions(+), 1631 deletions(-) diff --git a/Source/LowContrastMode.xm b/Source/LowContrastMode.xm index eeeb725..1921162 100644 --- a/Source/LowContrastMode.xm +++ b/Source/LowContrastMode.xm @@ -4,43 +4,22 @@ static BOOL IsEnabled(NSString *key) { return [[NSUserDefaults standardUserDefaults] boolForKey:key]; } -static int colorContrastMode() { - return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcmColor"]; +static int contrastMode() { + return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"]; } -static BOOL defaultContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 0; +static BOOL lowContrastMode() { + return IsEnabled(@"lowContrastMode_enabled") && contrastMode() == 0; } -static BOOL redContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 1; -} -static BOOL blueContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 2; -} -static BOOL greenContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 3; -} -static BOOL yellowContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 4; -} -static BOOL orangeContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 5; -} -static BOOL purpleContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 6; -} -static BOOL violetContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 7; -} -static BOOL pinkContrastMode() { - return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 8; +static BOOL customContrastMode() { + return IsEnabled(@"lowContrastMode_enabled") && contrastMode() == 1; } -%group gLowContrastMode // Low Contrast Mode v1.4.0 (Compatible with only YouTube v16.05.7-v17.38.10) +%group gLowContrastMode // Low Contrast Mode v1.4.2 (Compatible with only YouTube v16.05.7-v17.38.10) %hook UIColor + (UIColor *)whiteColor { // Dark Theme Color return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; } -+ (UIColor *)darkTextColor { ++ (UIColor *)lightTextColor { return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; } + (UIColor *)placeholderTextColor { @@ -58,53 +37,48 @@ static BOOL pinkContrastMode() { + (UIColor *)quaternaryLabelColor { return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; } -// testing below -+ (UIColor *)systemTextColor { - return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; -} -+ (UIColor *)systemPlaceholderColor { - return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; -} -+ (UIColor *)systemLabelColor { - return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; -} -+ (UIColor *)systemSecondaryLabelColor { - return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; -} -+ (UIColor *)systemTertiaryLabelColor { - return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; -} -+ (UIColor *)systemQuaternaryLabelColor { - return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; -} %end %hook YTCommonColorPalette - (UIColor *)textPrimary { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; } - (UIColor *)textSecondary { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; } - (UIColor *)overlayTextPrimary { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; } - (UIColor *)overlayTextSecondary { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; } - (UIColor *)iconActive { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; } - (UIColor *)iconActiveOther { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; } - (UIColor *)brandIconActive { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; } - (UIColor *)staticBrandWhite { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; } - (UIColor *)overlayIconActiveOther { - return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; // Dark Theme + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} +%end +%hook YTColor ++ (UIColor *)white2 { + return [UIColor whiteColor]; +} ++ (UIColor *)white3 { + return [UIColor whiteColor]; +} ++ (UIColor *)white4 { + return [UIColor whiteColor]; +} ++ (UIColor *)white5 { + return [UIColor whiteColor]; } %end %hook QTMColorGroup @@ -146,6 +120,12 @@ static BOOL pinkContrastMode() { %orig(currentImage); } %end +%hook UIExtendedSRGColorSpace +- (void)setTextColor:(UIColor *)textColor { + textColor = [[UIColor whiteColor] colorWithAlphaComponent:0.9]; + %orig(); +} +%end %hook VideoTitleLabel - (void)setTextColor:(UIColor *)textColor { textColor = [UIColor whiteColor]; @@ -241,85 +221,72 @@ static BOOL pinkContrastMode() { %end %end -%group gRedContrastMode // Red Contrast Mode +%group gCustomContrastMode // Custom Contrast Mode (Hex Color) %hook UIColor + (UIColor *)whiteColor { - return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; + return hexColor; } -+ (UIColor *)darkTextColor { - return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; ++ (UIColor *)lightTextColor { + return hexColor; } + (UIColor *)placeholderTextColor { - return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; + return hexColor; } + (UIColor *)labelColor { - return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; + return hexColor; } + (UIColor *)secondaryLabelColor { - return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; + return hexColor; } + (UIColor *)tertiaryLabelColor { - return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; + return hexColor; } + (UIColor *)quaternaryLabelColor { - return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; + return hexColor; } %end %hook YTCommonColorPalette - (UIColor *)textPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} - (UIColor *)textSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} - (UIColor *)overlayTextPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} - (UIColor *)overlayTextSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} - (UIColor *)iconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} - (UIColor *)iconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} - (UIColor *)brandIconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} - (UIColor *)staticBrandWhite { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} - (UIColor *)overlayIconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.84 green: 0.25 blue: 0.23 alpha: 1.00]; // Fallback Version - } + return self.pageStyle == 1 ? [UIColor whiteColor] : %orig; +} +%end +%hook YTColor ++ (UIColor *)white2 { + return [UIColor whiteColor]; +} ++ (UIColor *)white3 { + return [UIColor whiteColor]; +} ++ (UIColor *)white4 { + return [UIColor whiteColor]; +} ++ (UIColor *)white5 { + return [UIColor whiteColor]; +} %end %hook QTMColorGroup - (UIColor *)tint100 { @@ -360,1503 +327,10 @@ static BOOL pinkContrastMode() { %orig(currentImage); } %end -%hook VideoTitleLabel +%hook UIExtendedSRGColorSpace - (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UILabel -+ (void)load { - @autoreleasepool { - [[UILabel appearance] setTextColor:[UIColor whiteColor]]; - } -} -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextField -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextView -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISearchBar -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISegmentedControl -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook UIButton -- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { - color = [UIColor whiteColor]; - %orig(color, state); -} -%end -%hook UIBarButtonItem -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook NSAttributedString -- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - return %orig(str, modifiedAttributes); -} -%end -%hook CATextLayer -- (void)setTextColor:(CGColorRef)textColor { - %orig([UIColor whiteColor].CGColor); -} -%end -%hook ASTextNode -- (NSAttributedString *)attributedString { - NSAttributedString *originalAttributedString = %orig; - NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; - [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; - return newAttributedString; -} -%end -%hook ASTextFieldNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASTextView -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASButtonNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%end - -%group gBlueContrastMode // Blue Contrast Mode -%hook UIColor -+ (UIColor *)whiteColor { - return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; -} -+ (UIColor *)darkTextColor { - return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; -} -+ (UIColor *)placeholderTextColor { - return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; -} -+ (UIColor *)labelColor { - return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; -} -+ (UIColor *)secondaryLabelColor { - return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; -} -+ (UIColor *)tertiaryLabelColor { - return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; -} -+ (UIColor *)quaternaryLabelColor { - return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; -} -%end -%hook YTCommonColorPalette -- (UIColor *)textPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -- (UIColor *)textSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -- (UIColor *)brandIconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -- (UIColor *)staticBrandWhite { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayIconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.04 green: 0.41 blue: 0.62 alpha: 1.00]; // Fallback Version - } -%end -%hook QTMColorGroup -- (UIColor *)tint100 { - return [UIColor whiteColor]; -} -- (UIColor *)tint300 { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnLighterColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnRegularColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnDarkerColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnOnBrightAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)lightBodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)buttonBackgroundColor { - return [UIColor whiteColor]; -} -%end -%hook YTQTMButton -- (void)setImage:(UIImage *)image { - UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - [self setTintColor:[UIColor whiteColor]]; - %orig(currentImage); -} -%end -%hook VideoTitleLabel -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UILabel -+ (void)load { - @autoreleasepool { - [[UILabel appearance] setTextColor:[UIColor whiteColor]]; - } -} -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextField -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextView -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISearchBar -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISegmentedControl -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook UIButton -- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { - color = [UIColor whiteColor]; - %orig(color, state); -} -%end -%hook UIBarButtonItem -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook NSAttributedString -- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - return %orig(str, modifiedAttributes); -} -%end -%hook CATextLayer -- (void)setTextColor:(CGColorRef)textColor { - %orig([UIColor whiteColor].CGColor); -} -%end -%hook ASTextNode -- (NSAttributedString *)attributedString { - NSAttributedString *originalAttributedString = %orig; - NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; - [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; - return newAttributedString; -} -%end -%hook ASTextFieldNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASTextView -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASButtonNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%end - -%group gGreenContrastMode // Green Contrast Mode -%hook UIColor -+ (UIColor *)whiteColor { - return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; -} -+ (UIColor *)darkTextColor { - return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; -} -+ (UIColor *)placeholderTextColor { - return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; -} -+ (UIColor *)labelColor { - return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; -} -+ (UIColor *)secondaryLabelColor { - return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; -} -+ (UIColor *)tertiaryLabelColor { - return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; -} -+ (UIColor *)quaternaryLabelColor { - return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; -} -%end - -%hook YTCommonColorPalette -- (UIColor *)textPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -- (UIColor *)textSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -- (UIColor *)brandIconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -- (UIColor *)staticBrandWhite { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayIconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.00 green: 0.50 blue: 0.13 alpha: 1.00]; // Fallback Version - } -%end -%hook QTMColorGroup -- (UIColor *)tint100 { - return [UIColor whiteColor]; -} -- (UIColor *)tint300 { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnLighterColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnRegularColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnDarkerColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnOnBrightAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)lightBodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)buttonBackgroundColor { - return [UIColor whiteColor]; -} -%end -%hook YTQTMButton -- (void)setImage:(UIImage *)image { - UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - [self setTintColor:[UIColor whiteColor]]; - %orig(currentImage); -} -%end -%hook VideoTitleLabel -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UILabel -+ (void)load { - @autoreleasepool { - [[UILabel appearance] setTextColor:[UIColor whiteColor]]; - } -} -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextField -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextView -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISearchBar -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISegmentedControl -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook UIButton -- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { - color = [UIColor whiteColor]; - %orig(color, state); -} -%end -%hook UIBarButtonItem -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook NSAttributedString -- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - return %orig(str, modifiedAttributes); -} -%end -%hook CATextLayer -- (void)setTextColor:(CGColorRef)textColor { - %orig([UIColor whiteColor].CGColor); -} -%end -%hook ASTextNode -- (NSAttributedString *)attributedString { - NSAttributedString *originalAttributedString = %orig; - NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; - [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; - return newAttributedString; -} -%end -%hook ASTextFieldNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASTextView -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASButtonNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%end - -%group gYellowContrastMode // Yellow Contrast Mode -%hook UIColor -+ (UIColor *)whiteColor { - return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; -} -+ (UIColor *)darkTextColor { - return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; -} -+ (UIColor *)placeholderTextColor { - return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; -} -+ (UIColor *)labelColor { - return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; -} -+ (UIColor *)secondaryLabelColor { - return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; -} -+ (UIColor *)tertiaryLabelColor { - return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; -} -+ (UIColor *)quaternaryLabelColor { - return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; -} -%end -%hook YTCommonColorPalette -- (UIColor *)textPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -- (UIColor *)textSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -- (UIColor *)brandIconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -- (UIColor *)staticBrandWhite { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayIconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Fallback Version - } -%end -%hook QTMColorGroup -- (UIColor *)tint100 { - return [UIColor whiteColor]; -} -- (UIColor *)tint300 { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnLighterColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnRegularColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnDarkerColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnOnBrightAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)lightBodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)buttonBackgroundColor { - return [UIColor whiteColor]; -} -%end -%hook YTQTMButton -- (void)setImage:(UIImage *)image { - UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - [self setTintColor:[UIColor whiteColor]]; - %orig(currentImage); -} -%end -%hook VideoTitleLabel -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UILabel -+ (void)load { - @autoreleasepool { - [[UILabel appearance] setTextColor:[UIColor whiteColor]]; - } -} -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextField -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextView -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISearchBar -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISegmentedControl -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook UIButton -- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { - color = [UIColor whiteColor]; - %orig(color, state); -} -%end -%hook UIBarButtonItem -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook NSAttributedString -- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - return %orig(str, modifiedAttributes); -} -%end -%hook CATextLayer -- (void)setTextColor:(CGColorRef)textColor { - %orig([UIColor whiteColor].CGColor); -} -%end -%hook ASTextNode -- (NSAttributedString *)attributedString { - NSAttributedString *originalAttributedString = %orig; - NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; - [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; - return newAttributedString; -} -%end -%hook ASTextFieldNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASTextView -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASButtonNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%end - -%group gOrangeContrastMode // Orange Contrast Mode -%hook UIColor -+ (UIColor *)whiteColor { - return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; -} -+ (UIColor *)darkTextColor { - return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; -} -+ (UIColor *)placeholderTextColor { - return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; -} -+ (UIColor *)labelColor { - return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; -} -+ (UIColor *)secondaryLabelColor { - return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; -} -+ (UIColor *)tertiaryLabelColor { - return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; -} -+ (UIColor *)quaternaryLabelColor { - return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; -} -%end -%hook YTCommonColorPalette -- (UIColor *)textPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -- (UIColor *)textSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -- (UIColor *)brandIconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -- (UIColor *)staticBrandWhite { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayIconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Fallback Version - } -%end -%hook QTMColorGroup -- (UIColor *)tint100 { - return [UIColor whiteColor]; -} -- (UIColor *)tint300 { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnLighterColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnRegularColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnDarkerColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnOnBrightAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)lightBodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)buttonBackgroundColor { - return [UIColor whiteColor]; -} -%end -%hook YTQTMButton -- (void)setImage:(UIImage *)image { - UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - [self setTintColor:[UIColor whiteColor]]; - %orig(currentImage); -} -%end -%hook VideoTitleLabel -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UILabel -+ (void)load { - @autoreleasepool { - [[UILabel appearance] setTextColor:[UIColor whiteColor]]; - } -} -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextField -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextView -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISearchBar -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISegmentedControl -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook UIButton -- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { - color = [UIColor whiteColor]; - %orig(color, state); -} -%end -%hook UIBarButtonItem -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook NSAttributedString -- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - return %orig(str, modifiedAttributes); -} -%end -%hook CATextLayer -- (void)setTextColor:(CGColorRef)textColor { - %orig([UIColor whiteColor].CGColor); -} -%end -%hook ASTextNode -- (NSAttributedString *)attributedString { - NSAttributedString *originalAttributedString = %orig; - NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; - [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; - return newAttributedString; -} -%end -%hook ASTextFieldNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASTextView -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASButtonNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%end - -%group gPurpleContrastMode // Purple Contrast Mode -%hook UIColor -+ (UIColor *)whiteColor { - return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; -} -+ (UIColor *)darkTextColor { - return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; -} -+ (UIColor *)placeholderTextColor { - return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; -} -+ (UIColor *)labelColor { - return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; -} -+ (UIColor *)secondaryLabelColor { - return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; -} -+ (UIColor *)tertiaryLabelColor { - return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; -} -+ (UIColor *)quaternaryLabelColor { - return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; -} -%end -%hook YTCommonColorPalette -- (UIColor *)textPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -- (UIColor *)textSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -- (UIColor *)brandIconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -- (UIColor *)staticBrandWhite { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayIconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.42 green: 0.05 blue: 0.68 alpha: 1.00]; // Fallback Version - } -%end -%hook QTMColorGroup -- (UIColor *)tint100 { - return [UIColor whiteColor]; -} -- (UIColor *)tint300 { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnLighterColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnRegularColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnDarkerColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnOnBrightAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)lightBodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)buttonBackgroundColor { - return [UIColor whiteColor]; -} -%end -%hook YTQTMButton -- (void)setImage:(UIImage *)image { - UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - [self setTintColor:[UIColor whiteColor]]; - %orig(currentImage); -} -%end -%hook VideoTitleLabel -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UILabel -+ (void)load { - @autoreleasepool { - [[UILabel appearance] setTextColor:[UIColor whiteColor]]; - } -} -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextField -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextView -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISearchBar -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISegmentedControl -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook UIButton -- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { - color = [UIColor whiteColor]; - %orig(color, state); -} -%end -%hook UIBarButtonItem -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook NSAttributedString -- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - return %orig(str, modifiedAttributes); -} -%end -%hook CATextLayer -- (void)setTextColor:(CGColorRef)textColor { - %orig([UIColor whiteColor].CGColor); -} -%end -%hook ASTextNode -- (NSAttributedString *)attributedString { - NSAttributedString *originalAttributedString = %orig; - NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; - [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; - return newAttributedString; -} -%end -%hook ASTextFieldNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASTextView -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASButtonNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%end - -%group gVioletContrastMode // Violet Contrast Mode -%hook UIColor -+ (UIColor *)whiteColor { - return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; -} -+ (UIColor *)darkTextColor { - return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; -} -+ (UIColor *)placeholderTextColor { - return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; -} -+ (UIColor *)labelColor { - return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; -} -+ (UIColor *)secondaryLabelColor { - return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; -} -+ (UIColor *)tertiaryLabelColor { - return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; -} -+ (UIColor *)quaternaryLabelColor { - return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; -} -%end -%hook YTCommonColorPalette -- (UIColor *)textPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -- (UIColor *)textSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -- (UIColor *)brandIconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -- (UIColor *)staticBrandWhite { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayIconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.29 green: 0.00 blue: 0.51 alpha: 1.00]; // Fallback Version - } -%end -%hook QTMColorGroup -- (UIColor *)tint100 { - return [UIColor whiteColor]; -} -- (UIColor *)tint300 { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnLighterColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnRegularColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnDarkerColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnOnBrightAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)lightBodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)buttonBackgroundColor { - return [UIColor whiteColor]; -} -%end -%hook YTQTMButton -- (void)setImage:(UIImage *)image { - UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - [self setTintColor:[UIColor whiteColor]]; - %orig(currentImage); -} -%end -%hook VideoTitleLabel -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UILabel -+ (void)load { - @autoreleasepool { - [[UILabel appearance] setTextColor:[UIColor whiteColor]]; - } -} -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextField -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UITextView -- (void)setTextColor:(UIColor *)textColor { - %log; - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISearchBar -- (void)setTextColor:(UIColor *)textColor { - textColor = [UIColor whiteColor]; - %orig(textColor); -} -%end -%hook UISegmentedControl -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook UIButton -- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { - color = [UIColor whiteColor]; - %orig(color, state); -} -%end -%hook UIBarButtonItem -- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - %orig(modifiedAttributes, state); -} -%end -%hook NSAttributedString -- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs { - NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs]; - [modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; - return %orig(str, modifiedAttributes); -} -%end -%hook CATextLayer -- (void)setTextColor:(CGColorRef)textColor { - %orig([UIColor whiteColor].CGColor); -} -%end -%hook ASTextNode -- (NSAttributedString *)attributedString { - NSAttributedString *originalAttributedString = %orig; - NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; - [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; - return newAttributedString; -} -%end -%hook ASTextFieldNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASTextView -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%hook ASButtonNode -- (void)setTextColor:(UIColor *)textColor { - %orig([UIColor whiteColor]); -} -%end -%end - -%group gPinkContrastMode // Pink Contrast Mode -%hook UIColor -+ (UIColor *)whiteColor { - return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; -} -+ (UIColor *)darkTextColor { - return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; -} -+ (UIColor *)placeholderTextColor { - return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; -} -+ (UIColor *)labelColor { - return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; -} -+ (UIColor *)secondaryLabelColor { - return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; -} -+ (UIColor *)tertiaryLabelColor { - return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; -} -+ (UIColor *)quaternaryLabelColor { - return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; -} -%end -%hook YTCommonColorPalette -- (UIColor *)textPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -- (UIColor *)textSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextPrimary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayTextSecondary { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -- (UIColor *)iconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -- (UIColor *)brandIconActive { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -- (UIColor *)staticBrandWhite { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -- (UIColor *)overlayIconActiveOther { - if (self.pageStyle == 1) { - return [UIColor whiteColor]; // Dark Theme - } - return [UIColor colorWithRed: 0.81 green: 0.56 blue: 0.71 alpha: 1.00]; // Fallback Version - } -%end -%hook QTMColorGroup -- (UIColor *)tint100 { - return [UIColor whiteColor]; -} -- (UIColor *)tint300 { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnLighterColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnRegularColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnDarkerColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)bodyTextColorOnOnBrightAccentColor { - return [UIColor whiteColor]; -} -- (UIColor *)lightBodyTextColor { - return [UIColor whiteColor]; -} -- (UIColor *)buttonBackgroundColor { - return [UIColor whiteColor]; -} -%end -%hook YTQTMButton -- (void)setImage:(UIImage *)image { - UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - [self setTintColor:[UIColor whiteColor]]; - %orig(currentImage); + textColor = [[UIColor whiteColor] colorWithAlphaComponent:0.9]; + %orig(); } %end %hook VideoTitleLabel @@ -1957,31 +431,10 @@ static BOOL pinkContrastMode() { # pragma mark - ctor %ctor { %init; - if (defaultContrastMode()) { + if (lowContrastMode()) { %init(gLowContrastMode); } - if (redContrastMode()) { - %init(gRedContrastMode); - } - if (blueContrastMode()) { - %init(gBlueContrastMode); - } - if (greenContrastMode()) { - %init(gGreenContrastMode); - } - if (yellowContrastMode()) { - %init(gYellowContrastMode); - } - if (orangeContrastMode()) { - %init(gOrangeContrastMode); - } - if (purpleContrastMode()) { - %init(gPurpleContrastMode); - } - if (violetContrastMode()) { - %init(gVioletContrastMode); - } - if (pinkContrastMode()) { - %init(gPinkContrastMode); + if (customContrastMode()) { + %init(gCustomContrastMode); } }