         // Set overrides
         self.parseData(overridesData, colors: colors)
     }
-    
-    func parseData(data:[String:AnyObject], colors:[String:UIColor]) {
+	
+	
+	// -----------------------------------------------------------------------------------------------------------------------
+	//
+	// MARK: Computed properties
+	//
+	// -----------------------------------------------------------------------------------------------------------------------
+	
+	// Foreground colors
+	public var foregroundColor:UIColor {
+		return self.colorWithName(self.foregroundColorName, orDefaultColor: UIColor.darkGrayColor())
+	}
+	
+	public var highlightedForegroundColor:UIColor {
+		return self.colorWithName(self.highlightedForegroundColorName, orDefaultColor: UIColor.blackColor())
+	}
+	
+	public var selectedForegroundColor:UIColor {
+		return self.colorWithName(self.selectedForegroundColorName, orDefaultColor: UIColor.blueColor())
+	}
+	
+	public var disabledForegroundColor:UIColor {
+		return self.colorWithName(self.disabledForegroundColorName, orDefaultColor: UIColor.lightGrayColor())
+	}
+	
+	// Background colors
+	public var backgroundColor:UIColor {
+		return self.colorWithName(self.backgroundColorName, orDefaultColor: UIColor.whiteColor())
+	}
+	
+	public var highlightedBackgroundColor:UIColor {
+		return self.colorWithName(self.highlightedBackgroundColorName, orDefaultColor: UIColor.lightGrayColor())
+	}
+	
+	public var selectedBackgroundColor:UIColor {
+		return self.colorWithName(self.selectedBackgroundColorName, orDefaultColor: UIColor.lightGrayColor())
+	}
+	
+	public var disabledBackgroundColor:UIColor {
+		return self.colorWithName(self.disabledBackgroundColorName, orDefaultColor: UIColor.whiteColor())
+	}
+	
+	// Border style
+	public var borderColor:UIColor {
+		return self.colorWithName(self.borderColorName, orDefaultColor: UIColor.clearColor())
+	}
+	
+	public var highlightedBorderColor:UIColor {
+		return self.colorWithName(self.highlightedBorderColorName, orDefaultColor: UIColor.clearColor())
+	}
+	
+	public var selectedBorderColor:UIColor {
+		return self.colorWithName(self.selectedBorderColorName, orDefaultColor: UIColor.clearColor())
+	}
+	
+	public var disabledBorderColor:UIColor {
+		return self.colorWithName(self.disabledBorderColorName, orDefaultColor: UIColor.clearColor())
+	}
+	
+	// Cell separator style
+	public var tableViewSeparatorColor:UIColor {
+		return self.colorWithName(self.tableViewSeparatorColorName, orDefaultColor: UIColor.lightGrayColor())
+	}
+	
+	
+	// -----------------------------------------------------------------------------------------------------------------------
+	//
+	// MARK: Internal methods
+	//
+	// -----------------------------------------------------------------------------------------------------------------------
+	
+	func parseData(data:[String:AnyObject], colors:[String:UIColor]) {
         // Foreground colors
-        if let foregroundColor = self.parseColor(data: data, key: "foregroundColor", colors: colors) {
-            self.foregroundColor = foregroundColor
-        }
-        if let highlightedForegroundColor = self.parseColor(data: data, key: "highlightedForegroundColor", colors: colors) {
-            self.highlightedForegroundColor = highlightedForegroundColor
-        }
-        if let selectedForegroundColor = self.parseColor(data: data, key: "selectedForegroundColor", colors: colors) {
-            self.selectedForegroundColor = selectedForegroundColor
-        }
-        if let disabledForegroundColor = self.parseColor(data: data, key: "disabledForegroundColor", colors: colors) {
-            self.disabledForegroundColor = disabledForegroundColor
-        }
-        
+		self.foregroundColorName = data["foregroundColor"] as? String
+        self.highlightedForegroundColorName = data["highlightedForegroundColor"] as? String
+        self.selectedForegroundColorName = data["selectedForegroundColor"] as? String
+        self.disabledForegroundColorName = data["disabledForegroundColor"] as? String
+		
         // Foreground colors
-        if let backgroundColor = self.parseColor(data: data, key: "backgroundColor", colors: colors) {
-            self.backgroundColor = backgroundColor
-        }
-        if let highlightedBackgroundColor = self.parseColor(data: data, key: "highlightedBackgroundColor", colors: colors) {
-            self.highlightedBackgroundColor = highlightedBackgroundColor
-        }
-        if let selectedBackgroundColor = self.parseColor(data: data, key: "selectedBackgroundColor", colors: colors) {
-            self.selectedBackgroundColor = selectedBackgroundColor
-        }
-        if let disabledBackgroundColor = self.parseColor(data: data, key: "disabledBackgroundColor", colors: colors) {
-            self.disabledBackgroundColor = disabledBackgroundColor
-        }
-        
+        self.backgroundColorName = data["backgroundColor"] as? String
+        self.highlightedBackgroundColorName = data["highlightedBackgroundColor"] as? String
+        self.selectedBackgroundColorName = data["selectedBackgroundColor"] as? String
+        self.disabledBackgroundColorName = data["disabledBackgroundColor"] as? String
+		
         // Border style
         if let borderWidth = data["borderWidth"] as? CGFloat {
             self.borderWidth = borderWidth
         }
-        if let borderColor = self.parseColor(data: data, key: "borderColor", colors: colors) {
-            self.borderColor = borderColor
-        }
-        if let highlightedBorderColor = self.parseColor(data: data, key: "highlightedBorderColor", colors: colors) {
-            self.highlightedBorderColor = highlightedBorderColor
-        }
-        if let selectedBorderColor = self.parseColor(data: data, key: "selectedBorderColor", colors: colors) {
-            self.selectedBorderColor = selectedBorderColor
-        }
-        if let disabledBorderColor = self.parseColor(data: data, key: "disabledBorderColor", colors: colors) {
-            self.disabledBorderColor = disabledBorderColor
-        }
+        self.borderColorName = data["borderColor"] as? String
+        self.highlightedBorderColorName = data["highlightedBorderColor"] as? String
+        self.selectedBorderColorName = data["selectedBorderColor"] as? String
+        self.disabledBorderColorName = data["disabledBorderColor"] as? String
+		
         if let borderStyle = data["borderStyle"] as? String {
             switch borderStyle {
             case "None":

        
        // - cell separator style
        self.tableViewSeparatorStyle = parentStyle.tableViewSeparatorStyle
        self.tableViewSeparatorColor = parentStyle.tableViewSeparatorColor
        
        // - font
        self.font = parentStyle.font

public class Style {
	public let name:String
	
    // Border style
	public var borderWidth:CGFloat = 0.0
    public var borderStyle = UITextBorderStyle.RoundedRect
	
	// Image tinting
	public var tintImageWithForegroundColor:Bool = false
	
    // Cell separator style
    public var tableViewSeparatorStyle = UITableViewCellSeparatorStyle.SingleLine
	
	// Text
	public var font:UIFont = UIFont.systemFontOfSize(16.0)
	
	// Corners
	public var cornerRadius:CGFloat = 0.0
	
	
	// Foreground color names
	private (set) var foregroundColorName:String?
	private (set) var highlightedForegroundColorName:String?
	private (set) var selectedForegroundColorName:String?
	private (set) var disabledForegroundColorName:String?
	
	// Background color names
	private (set) var backgroundColorName:String?
	private (set) var highlightedBackgroundColorName:String?
	private (set) var selectedBackgroundColorName:String?
	private (set) var disabledBackgroundColorName:String?
	
	// Border color names
	private (set) var borderColorName:String?
	private (set) var highlightedBorderColorName:String?
	private (set) var selectedBorderColorName:String?
	private (set) var disabledBorderColorName:String?
	
	// Cell style color names
	private (set) var tableViewSeparatorColorName:String?
	
	
	// -----------------------------------------------------------------------------------------------------------------------
