             where !shouldSelect {
             return
         }
-        
+
         if selectedIndex != currentIndex {
             let animationItem : RAMAnimatedTabBarItem = items[currentIndex]
             animationItem.playAnimation()
             
             let deselectItem = items[selectedIndex]
+
+            let containerPrevious : UIView = deselectItem.iconView!.icon.superview!
+            containerPrevious.backgroundColor = items[currentIndex].bgDefaultColor
+
             deselectItem.deselectAnimation()
+
+            let container : UIView = animationItem.iconView!.icon.superview!
+            container.backgroundColor = items[currentIndex].bgSelectedColor
             
             selectedIndex = gestureView.tag
             delegate?.tabBarController?(self, didSelectViewController: self)

            
            if 0 == index { // selected first elemet
                item.selectedState()
            }
            
            item.image = nil

    
    @IBInspectable public var textColor: UIColor = UIColor.blackColor()
    @IBInspectable public var iconColor: UIColor = UIColor.clearColor() // if alpha color is 0 color ignoring
    @IBInspectable var bgDefaultColor: UIColor = UIColor.grayColor()
    @IBInspectable var bgSelectedColor: UIColor = UIColor.whiteColor()

    public var badge: RAMBadge? // use badgeValue to show badge
    
    public var iconView: (icon: UIImageView, textLabel: UILabel)?
