Files
2025-09-18 17:55:52 -04:00

576 lines
24 KiB
Objective-C

//
// RobloxTheme.m
// RobloxMobile
//
// Created by Ariel Lichtin on 5/29/14.
// Copyright (c) 2014 ROBLOX. All rights reserved.
//
#import "RobloxTheme.h"
#import "RBRoundedeBorder.h"
@implementation RobloxTheme
// Style Guide
//Header Typography
+ (NSString*) fontNameSourceSansPro { return @"SourceSansPro-Regular"; }
+ (NSString*) fontNameSourceSansProSemiBold { return @"SourceSansPro-Semibold"; }
+ (NSString*) fontNameSourceSansProLight { return @"SourceSansPro-Light"; }
+ (UIFont*) fontH1 { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansPro] size:48]; } // page headers
+ (UIFont*) fontH2 { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansPro] size:36]; } // page footer
+ (UIFont*) fontH3 { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansPro] size:24]; } // ALL CAPS - SECTION AND FORM HEADER
+ (UIFont*) fontH4 { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansProSemiBold] size:21]; } // secondary section and form header
//Body Typography
+ (UIFont*) fontBody { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansPro] size:20]; } // body, validation error, success, item info, feed text, description
+ (UIFont*) fontBodyBold { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansProSemiBold] size:20]; } // highlighted text, game title, username on feed
+ (UIFont*) fontBodyLarge { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansPro] size:22]; } // horizontal tab, table header
+ (UIFont*) fontBodyLargeBold { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansProSemiBold] size:24]; } // article title
+ (UIFont*) fontBodySmall { return [UIFont fontWithName:[RobloxTheme fontNameSourceSansProLight] size:16]; } // footnote, hint
//Colors
+ (UIColor*) colorRed1 { return [UIColor colorWithRed:(226.0 / 255.0) green:( 35.0 / 255.0) blue:( 26.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorRed2 { return [UIColor colorWithRed:(253.0 / 255.0) green:( 40.0 / 255.0) blue:( 67.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorRed3 { return [UIColor colorWithRed:(216.0 / 255.0) green:(107.0 / 255.0) blue:(104.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorOrange1 { return [UIColor colorWithRed:(246.0 / 255.0) green:(136.0 / 255.0) blue:( 2.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorOrange2 { return [UIColor colorWithRed:(246.0 / 255.0) green:(183.0 / 255.0) blue:( 2.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorGreen1 { return [UIColor colorWithRed:( 2.0 / 255.0) green:(183.0 / 255.0) blue:( 87.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorGreen2 { return [UIColor colorWithRed:( 63.0 / 255.0) green:(198.0 / 255.0) blue:(121.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorGreen3 { return [UIColor colorWithRed:(163.0 / 255.0) green:(226.0 / 255.0) blue:(189.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorBlue1 { return [UIColor colorWithRed:( 0.0 / 255.0) green:(162.0 / 255.0) blue:(255.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorBlue2 { return [UIColor colorWithRed:( 50.0 / 255.0) green:(181.0 / 255.0) blue:(255.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorBlue3 { return [UIColor colorWithRed:( 0.0 / 255.0) green:(116.0 / 255.0) blue:(189.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorBlue4 { return [UIColor colorWithRed:(153.0 / 255.0) green:(218.0 / 255.0) blue:(255.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorGray1 { return [UIColor colorWithRed:( 25.0 / 255.0) green:( 25.0 / 255.0) blue:( 25.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorGray2 { return [UIColor colorWithRed:(117.0 / 255.0) green:(117.0 / 255.0) blue:(117.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorGray3 { return [UIColor colorWithRed:(184.0 / 255.0) green:(184.0 / 255.0) blue:(184.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorGray4 { return [UIColor colorWithRed:(204.0 / 255.0) green:(204.0 / 255.0) blue:(204.0 / 255.0) alpha:1.0]; }
+ (UIColor*) colorGray5 { return [UIColor colorWithRed:(227.0 / 255.0) green:(227.0 / 255.0) blue:(227.0 / 255.0) alpha:1.0]; }
//Image and Thumbnail Sizes and Ratios
+ (CGSize) sizeGameCoverSquare { return CGSizeMake(120, 120); } //CGSizeMake(128, 128); } //changed on 10/13/2015
+ (CGSize) sizeGameCoverRectangle { return CGSizeMake(192, 108); }
+ (CGSize) sizeGameCoverRectangleLarge { return CGSizeMake(576, 324); }
+ (CGSize) sizeProfilePictureExtraSmall { return CGSizeMake( 48, 48); }
+ (CGSize) sizeProfilePictureSmall { return CGSizeMake( 60, 60); }
+ (CGSize) sizeProfilePictureMedium { return CGSizeMake(110, 110); } //CGSizeMake( 90, 90); }
+ (CGSize) sizeProfilePictureLarge { return CGSizeMake(110, 110); } //CGSizeMake(120, 120); }
+ (CGSize) sizeProfilePictureExtraLarge { return CGSizeMake(360, 360); }
+ (CGSize) sizeItemThumbnail { return CGSizeMake(176, 176); }
+ (CGSize) sizeItemThumbnailLarge { return CGSizeMake(180, 180); }
+ (CGSize) sizeItemDetail { return CGSizeMake(360, 360); }
+ (CGSize) sizeSponsoredEvent { return CGSizeMake(117, 30); }
+ (CGSize) ratioGameCoverRectangle { return CGSizeMake(16, 9); }
+ (CGSize) ratioGameCoverSquare { return CGSizeMake( 1, 1); }
+ (CGSize) ratioProfilePicture { return CGSizeMake( 1, 1); }
+ (CGSize) ratioItemPicture { return CGSizeMake( 1, 1); }
+ (CGSize) ratioSponsoredEvent { return CGSizeMake(39, 10); }
//Themes
+ (void) applyToHeaderText:(UILabel*)header
{
[header setFont:[RobloxTheme fontH1]];
[header setTextColor:[RobloxTheme colorGray1]];
}
+ (void) applyToBodyText:(UILabel*)body
{
[body setFont:[RobloxTheme fontBody]];
[body setTextColor:[RobloxTheme colorGray1]];
}
+ (void) applyToFootNote:(UILabel*)footnote
{
[footnote setFont:[RobloxTheme fontBodySmall]];
[footnote setTextColor:[RobloxTheme colorGray4]];
}
+ (void) applyToButtonText:(UIButton*)button
{
[button.titleLabel setFont:[RobloxTheme fontBody]];
[button.titleLabel setTextColor:[RobloxTheme colorGray4]];
}
//add more of these as necessary
+ (void) animateNavBar:(UINavigationBar*)navBar
toColor:(UIColor*)targetColor
withLighterColor:(UIColor*)lighterColor
withInterval:(NSTimeInterval)interval
{
if (interval <= 0.0)
{
[navBar setBarTintColor:targetColor];
}
else
{
//check if we have already animated there
if (CGColorEqualToColor(navBar.barTintColor.CGColor, targetColor.CGColor))
{
//flash a brighter color instead, and then loop back
[UIView animateWithDuration:interval * 0.5
animations:^{ navBar.barTintColor = lighterColor; }
completion:^(BOOL finished)
{
if (finished)
{
[UIView animateWithDuration:interval * 0.5
animations:^{ navBar.barTintColor = targetColor; }];
}
}];
}
else
{
//simply animate to the target color
[UIView animateWithDuration:interval
animations:^{ navBar.barTintColor = targetColor; }];
}
}
}
+ (void) applyTheme:(RBXTheme)theme toViewController:(UIViewController*)vc quickly:(BOOL)isFast
{
//This should be an RBXTheme instead of an NSInteger
UIColor* color1;
UIColor* color2;
switch (theme)
{
case RBXThemeGame:
{
color1 = [RobloxTheme colorGreen1];
color2 = [RobloxTheme colorGreen2];
}break;
case RBXThemeSocial:
{
color1 = [RobloxTheme colorBlue3];
color2 = [RobloxTheme colorBlue2];
}break;
case RBXThemeCreative:
{
color1 = [RobloxTheme colorOrange1];
color2 = [RobloxTheme colorOrange2];
}break;
default: //case RBXThemeGeneric:
{
color1 = [RobloxTheme colorGray1];
color2 = [RobloxTheme colorGray2];
}break;
}
if (vc.navigationController && vc.navigationController.navigationBar)
[RobloxTheme animateNavBar:vc.navigationController.navigationBar
toColor:color1
withLighterColor:color2
withInterval:isFast ? 0.0 : 0.7];
if (vc.tabBarController && vc.tabBarController.tabBar)
[vc.tabBarController.tabBar setTintColor:color1];
}
+ (void) configureDefaultAppearance
{
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
//[[UINavigationBar appearance] setTranslucent:NO]; <-- this crashes the app. Don't do this.
//[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:0.2549f green:0.3882f blue:0.6f alpha:1.0f]];
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSFontAttributeName:[UIFont fontWithName:@"SourceSansPro-Regular" size:10.0] } forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSFontAttributeName:[UIFont fontWithName:@"SourceSansPro-Regular" size:10.0] } forState:UIControlStateSelected];
}
+ (CGFloat) scaleFactor
{
return [UIScreen mainScreen].scale;
}
+ (UIColor*) lightBackground
{
return [UIColor colorWithRed:(242/255.0f) green:(243/255.f) blue:(247/255.f) alpha:1.0f];
}
+ (UIImageRenderingMode) iconColoringMode
{
return UIImageRenderingModeAlwaysTemplate;
}
+ (UIButton*)applyCloseButtonToUINavigationItem:(UINavigationItem*)item {
UIButton* close = [UIButton buttonWithType:UIButtonTypeCustom];
close.frame = CGRectMake(0.0, 0.0, 16.0, 22.0);
[close setImage:[UIImage imageNamed:@"Close Button"] forState:UIControlStateNormal];
item.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:close];
return close;
}
+ (UIButton*)applyCloseButtonToWebUINavigationItem:(UINavigationItem*)item {
UIButton* close = [UIButton buttonWithType:UIButtonTypeCustom];
close.frame = CGRectMake(0.0, 0.0, 16.0, 22.0);
[close setImage:[UIImage imageNamed:@"Close Button"] forState:UIControlStateNormal];
item.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:close];
return close;
}
+ (void) applyShadowToView:(UIView*)view
{
[view.layer setShadowColor:[UIColor blackColor].CGColor];
[view.layer setShadowOpacity:0.4];
[view.layer setShadowRadius:2.0];
[view.layer setShadowOffset:CGSizeMake(0.0, 0.5)];
}
+ (void) applyRoundedBorderToView:(UIView*)view
{
RBRoundedeBorder* roundedBorder = [[RBRoundedeBorder alloc] init];
[view addSubview:roundedBorder];
}
+ (void) applyToWelcomeLoginButton:(UIButton*)button
{
[button setTitleColor:[UIColor colorWithRed:(0x6F/255.0f) green:(0x6F/255.0f) blue:(0x6F/255.0f) alpha:1.0f] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:24]];
}
+ (void) applyToFacebookButton:(UIButton*)button
{
//add the FB logo to the button
UIImageView *fbLogo = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"FB-Icon-White-Flat"]];
CGRect frame = fbLogo.frame;
frame.origin = CGPointMake(20, button.frame.size.height * 0.25);
frame.size = CGSizeMake(button.frame.size.height - (frame.origin.y * 2), button.frame.size.height - (frame.origin.y * 2));
fbLogo.frame = frame;
fbLogo.contentMode = UIViewContentModeScaleAspectFit;
if ([button subviews].count > 1)
{
NSArray* views = [button subviews];
for (UIView* aView in views)
if ([aView.class isSubclassOfClass:fbLogo.class])
[aView removeFromSuperview];
}
[button addSubview:fbLogo];
//style the button
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button.titleLabel setTextColor:[UIColor whiteColor]];
[button.titleLabel setFont:[RobloxTheme fontBody]];
[button setTitleEdgeInsets:UIEdgeInsetsMake(0, CGRectGetMaxX(fbLogo.frame), 0, 0)];
[button setBackgroundImage:nil forState:UIControlStateNormal];
[button setBackgroundColor:[UIColor colorWithRed:(59.0/255.0) green:(89.0/255.0) blue:(152.0/255.0) alpha:1.0]];
[button.layer setCornerRadius:5.0f];
[RobloxTheme applyShadowToView:button];
}
+ (void) applyToModalPopupNavBar:(UINavigationBar*)navBar
{
[navBar setBackgroundColor:[UIColor whiteColor]];
[navBar setTintColor:[UIColor colorWithRed:(0x42/255.f) green:(0x52/255.f) blue:(0x8F/255.f) alpha:1.0f]];
[navBar setBarTintColor:[UIColor whiteColor]];
UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0.0);
UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[navBar setBackgroundImage:blank forBarMetrics:UIBarMetricsDefault];
[navBar setShadowImage:[UIImage imageNamed:@"Header Line"]];
[navBar setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:(0x42/255.f) green:(0x52/255.f) blue:(0x8F/255.f) alpha:1.0f], NSForegroundColorAttributeName,
[UIFont fontWithName:@"SourceSansPro-Regular" size:18], NSFontAttributeName,
nil]];
}
+ (void) applyToModalPopupNavBarButton:(UIBarButtonItem*)button
{
[button setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:(0x42/255.f) green:(0x52/255.f) blue:(0x8F/255.f) alpha:1.0f], NSForegroundColorAttributeName,
[UIFont fontWithName:@"SourceSansPro-Semibold" size:18], NSFontAttributeName,
nil]
forState:UIControlStateNormal];
}
+ (void) applyToModalLoginButton:(UIButton*)button
{
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:24]];
}
+ (void) applyToModalLoginTextField:(UITextField*)textfield
{
[textfield setBorderStyle:UITextBorderStyleNone];
[textfield setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:18]];
[textfield setTextColor:[UIColor colorWithWhite:(0xA9/255.f) alpha:1.0f]];
[textfield setContentVerticalAlignment:UIControlContentVerticalAlignmentBottom];
}
+ (void) applyToModalLoginTitleLabel:(UILabel*)label
{
label.font = [RobloxTheme fontBody]; //[UIFont fontWithName:@"SourceSansPro-Regular" size:18];
label.textColor = [UIColor colorWithWhite:(0xA9/255.f) alpha:1.0f];
}
+ (void) applyToModalLoginHintLabel:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Light" size:12];
label.textColor = [UIColor colorWithWhite:(0xA9/255.f) alpha:1.0f];
}
+ (void) applyToModalLoginSelectableButton:(UIButton*)button
{
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:18]];
[button setTitleColor:[UIColor colorWithWhite:(0xA9/255.f) alpha:1.0f] forState:UIControlStateNormal];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected | UIControlStateHighlighted];
[button setBackgroundImage:[UIImage imageNamed:@"Gender Button"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"Gender Button Down"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"Gender Button Down"] forState:UIControlStateSelected | UIControlStateHighlighted];
}
+ (void) applyToModalCancelButton:(UIButton *)button
{
[button setTitleColor:[RobloxTheme colorGray3] forState:UIControlStateNormal];
[button.layer setCornerRadius:5];
[button.layer setBorderColor:[RobloxTheme colorGray4].CGColor];
[button.layer setBorderWidth:1.0];
[button.titleLabel setFont:[self fontBody]]; //[UIFont systemFontOfSize:15]];
}
+ (void) applyToModalSubmitButton:(UIButton *)button
{
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button setBackgroundColor:[RobloxTheme colorBlue1]];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:18]];
[button.layer setCornerRadius:5];
[button.titleLabel setFont:[self fontBody]]; //[UIFont systemFontOfSize:15]];
}
+ (void) applyToDisabledModalSubmitButton:(UIButton *)button
{
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button setBackgroundColor:[RobloxTheme colorGray5]];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:18]];
[button.layer setCornerRadius:5];
[button.titleLabel setFont:[self fontBody]]; //[UIFont systemFontOfSize:15]];
}
+ (void) applyToGamesNavBar:(UINavigationBar*)navBar
{
[navBar setBarStyle:UIBarStyleBlack];
[navBar setTintColor:[UIColor whiteColor]];
[navBar setBarTintColor:[UIColor colorWithRed:0.2549f green:0.3882f blue:0.6f alpha:1.0f]];
}
+ (void) applyToSearchNavItem:(UISearchBar*)searchBar
{
// Find the internal textfield in the search bar
UITextField* searchBarTextField = nil;
for (UIView *subView in searchBar.subviews)
{
subView.clipsToBounds = NO;
for (UIView *secondLevelSubview in subView.subviews)
{
secondLevelSubview.clipsToBounds = NO;
if ([secondLevelSubview isKindOfClass:[UITextField class]])
{
searchBarTextField = (UITextField *)secondLevelSubview;
break;
}
}
}
searchBar.tintColor = [UIColor whiteColor];
searchBar.backgroundColor = [UIColor clearColor];
if(searchBarTextField != nil)
{
UIImageView *iconView = (id)searchBarTextField.leftView;
iconView.image = [iconView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
iconView.tintColor = [UIColor whiteColor];
searchBarTextField.textColor = [UIColor whiteColor];
searchBarTextField.tintColor = [UIColor whiteColor];
searchBarTextField.clipsToBounds = NO;
searchBarTextField.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:14];
[searchBarTextField.subviews[0] removeFromSuperview];
searchBarTextField.layer.cornerRadius=5.0f;
searchBarTextField.layer.masksToBounds=NO;
searchBarTextField.layer.borderColor=[[UIColor whiteColor]CGColor];
searchBarTextField.layer.borderWidth= 1.0f;
searchBarTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:searchBarTextField.placeholder attributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
}
}
+ (void) applyToGameSearchToolbarCell:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Semibold" size:20];
label.textColor = [UIColor whiteColor];
}
+ (void) applyToGameSortSeeAllButton:(UIButton*)button
{
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:17]];
[button setBackgroundColor:[RobloxTheme colorBlue1]];
[button.layer setCornerRadius:5.0];
}
+ (void) applyToGameSortTitle:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Light" size:20];
label.textColor = [UIColor colorWithRed:(0x47/255.0f) green:(0x47/255.0f) blue:(0x47/255.0f) alpha:1.0f];
}
+ (void) applyToCarouselThumbnailTitle:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:28];
label.textColor = [UIColor whiteColor];
}
+ (void) applyToConsumableSellerTitle:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Semibold" size:18];
label.textColor = [UIColor colorWithWhite:(0x80/255.0f) alpha:1.0f];
}
+ (void) applyToConsumableSellerButton:(UIButton*)button
{
[button setTitleColor:[UIColor colorWithRed:(0x00/255.0f) green:(0xA2/255.0f) blue:(0xFF/255.0f) alpha:1.0f] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Light" size:18]];
}
+ (void) applyToBuyWithRobuxButton:(UIButton*)button
{
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Semibold" size:18]];
}
+ (void) applyToBuyWithTixButton:(UIButton*)button
{
[button setTitleColor:[UIColor colorWithWhite:(0x80/255.0f) alpha:1.0f] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:18]];
}
+ (void) applyToFavoriteLabel:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];
label.textColor = [UIColor colorWithWhite:(0x80/255.f) alpha:1.0f];
}
+ (void) applyToConsumableDescriptionTitle:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Light" size:18];
label.textColor = [UIColor colorWithWhite:(0x60/255.f) alpha:1.0f];
}
+ (void) applyToConsumableDescriptionTextView:(UITextView*)textView
{
textView.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:14];
textView.textColor = [UIColor colorWithWhite:(0x80/255.f) alpha:1.0f];
}
+ (void) applyToGameThumbnailTitle:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Semibold" size:14];
label.textColor = [UIColor colorWithWhite:(0x60/255.f) alpha:1.0f];
}
+ (void) applyToGamePreviewTitle:(UILabel*)title
{
title.font = [UIFont fontWithName:@"SourceSansPro-Light" size:32];
title.textColor = [UIColor colorWithWhite:(0x19/255.f) alpha:1.0f];
}
+ (void) applyToGamePreviewDetailTitle:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Semibold" size:18];
label.textColor = [UIColor colorWithWhite:(0x80/255.f) alpha:1.0f];
}
+ (void) applyToGamePreviewDetailText:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Semibold" size:14];
label.textColor = [UIColor colorWithWhite:(0xA9/255.f) alpha:1.0f];
}
+ (void) applyToGamePreviewBuilderButton:(UIButton*)button
{
[button setTitleColor:[UIColor colorWithRed:(0x00/255.0f) green:(0xA2/255.0f) blue:(0xFF/255.0f) alpha:1.0f] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Light" size:18]];
}
+ (void) applyToGamePreviewDescription:(UITextView*)textview
{
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineHeightMultiple = 50.0f;
paragraphStyle.maximumLineHeight = 50.0f;
paragraphStyle.minimumLineHeight= 50.0f;
textview.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:14];
textview.textColor = [UIColor colorWithWhite:(0x80/255.f) alpha:1.0f];
}
+ (void) applyToConsumablePriceLabel:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Semibold" size:18];
label.textColor = [UIColor colorWithRed:(0x18/255.f) green:(0xB6/255.f) blue:(0x5B/255.f) alpha:1.0f];
}
+ (void) applyToConsumableTitleLabel:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Semibold" size:14];
label.textColor = [UIColor colorWithRed:(0x18/255.f) green:(0xB6/255.f) blue:(0x5B/255.f) alpha:1.0f];
}
+ (void) applyToGamePreviewMoreInfoTitle:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:13];
label.textColor = [UIColor colorWithWhite:(0x80/255.f) alpha:1.0f];
}
+ (void) applyToGamePreviewMoreInfoValue:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Light" size:20];
label.textColor = [UIColor colorWithWhite:(0x47/255.f) alpha:1.0f];
}
+ (void) applyToTableHeaderTitle:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Light" size:20];
label.textColor = [UIColor colorWithRed:(0x47/255.0f) green:(0x47/255.0f) blue:(0x47/255.0f) alpha:1.0f];
}
+ (void) applyToProfileHeaderSubtitle:(UILabel*)subtitle
{
subtitle.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:13];
subtitle.textColor = [UIColor colorWithWhite:(0x80/255.0f) alpha:1.0f];
}
+ (void) applyToProfileHeaderValue:(UILabel*)header
{
header.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:32];
header.textColor = [UIColor colorWithRed:(0x41/255.0f) green:(0x63/255.0f) blue:(0x99/255.0f) alpha:1.0f];
}
+ (void) applyToProfileActionButton:(UIButton*)button
{
[button setTitleColor:[UIColor colorWithRed:(0x41/255.0f) green:(0x63/255.0f) blue:(0x99/255.0f) alpha:1.0f] forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont fontWithName:@"SourceSansPro-Regular" size:18]];
}
+ (void) applyToFriendCellLabel:(UILabel*)label
{
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:11];
label.textColor = [UIColor colorWithWhite:(0x47/255.0f) alpha:1.0f];
}
@end