                 NSLayoutConstraint(item: contentView, attribute: .bottom, relatedBy: .equal, toItem: container, attribute: .bottom, multiplier: 1.0, constant: 0.0),
                 NSLayoutConstraint(item: contentView, attribute: .leading, relatedBy: .equal, toItem: container, attribute: .leading, multiplier: 1.0, constant: 0.0),
                 NSLayoutConstraint(item: contentView, attribute: .trailing, relatedBy: .equal, toItem: container, attribute: .trailing, multiplier: 1.0, constant: 0.0),
-            ])
+                ])
 
             NSLayoutConstraint.activate(additionalConstraints)
         }
     }
 
-    override internal var backgroundColor: UIColor? {
-        didSet {
-            container.backgroundColor = backgroundColor
+    /// Proxy to the centering container `layer.cornerRadius`
+    var cornerRadius: CGFloat {
+        get {
+            return container.layer.cornerRadius
+        }
+        set {
+            container.layer.cornerRadius = newValue
+        }
+    }
+
+    @available(iOS 11.0, *)
+    var maskedCorners: CACornerMask {
+        get {
+            return container.layer.maskedCorners
+        }
+        set {
+            container.layer.maskedCorners = newValue
         }
     }
 

            trailingLessThan,
        ])
    }
}

#endif

        let view = UIView(frame: .zero)
        view.translatesAutoresizingMaskIntoConstraints = false
        view.backgroundColor = .clear
        view.layer.masksToBounds = true
        return view
    }()

    override public var backgroundColor: UIColor? {
        didSet {
            container.backgroundColor = backgroundColor
        }
    }

    private var additionalConstraints: [NSLayoutConstraint] = []

    override init(frame: CGRect) {
        super.init(frame: frame)
        initializeSubviews()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initializeSubviews()
    }

    private func initializeSubviews() {
