     
     // MARK: Properties
     
+    public override var intrinsicContentSize: CGSize {
+        if let fontIntrinsicContentSize = self.fontIntrinsicContentSize {
+            return fontIntrinsicContentSize
+        }
+        return super.intrinsicContentSize
+    }
+    private var fontIntrinsicContentSize: CGSize?
+    
     private let label = UILabel()
     
+    public override var contentInset: UIEdgeInsets {
+        set {
+            super.contentInset = newValue
+            calculateFontIntrinsicContentSize(for: text)
+        } get {
+            return super.contentInset
+        }
+    }
+    
+    /// Text to display in the button.
+    public var text: String? {
+        set {
+            label.text = newValue
+        } get {
+            return label.text
+        }
+    }
+    
+    /// Color of the text when unselected / normal.
     public var color: UIColor = .black {
         didSet {
             if !isSelected {

            }
        }
    }
    public var selectedColor: UIColor = UIView.defaultTintColor {
        didSet {
            if isSelected  {
                label.textColor = selectedColor
            }
        }
    }
    


import UIKit

/// `TMBarButton` that consists of a single label - that's it!
///
/// Probably the most commonly seen example of a bar button.
public final class TMLabelBarButton: TMBarButton {
    
    // MARK: Defaults
