         button.accessibilityHint = WMFLocalizedString("table-of-contents-close-accessibility-hint", value:"Close", comment:"Accessibility hint for closing table of contents\n{{Identical|Close}}")
         button.accessibilityLabel = WMFLocalizedString("table-of-contents-close-accessibility-label", value:"Close Table of contents", comment:"Accessibility label for closing table of contents")
 
+        button.translatesAutoresizingMaskIntoConstraints = false
+
         return button
     }()
+
+    var closeButtonTrailingConstraint: NSLayoutConstraint?
+    var closeButtonLeadingConstraint: NSLayoutConstraint?
+    var closeButtonTopConstraint: NSLayoutConstraint?
+    var closeButtonBottomConstraint: NSLayoutConstraint?
 
     lazy var backgroundView :UIVisualEffectView = {
         let view = UIVisualEffectView(frame: CGRect.zero)

    }

    func updateButtonConstraints() {
        guard let closeButtonSuperview = self.closeButton.superview else {
            return
        }
        self.closeButton.mas_remakeConstraints({ make in
            _ = make?.width.equalTo()(44)
            _ = make?.height.equalTo()(44)
            switch self.displaySide {
            case .right:
                fallthrough
            case .left:
                _ = make?.trailing.equalTo()(closeButtonSuperview.mas_trailing)?.offset()(0 - self.closeButtonLeadingPadding)
                _ = make?.top.equalTo()(self.closeButtonTopPadding + self.statusBarEstimatedHeight)
                break
            case .center:
                fallthrough
            default:
                _ = make?.leading.equalTo()(closeButtonSuperview.mas_leading)?.offset()(self.closeButtonLeadingPadding)
                _ = make?.bottom.equalTo()(closeButtonSuperview.mas_bottom)?.offset()(self.closeButtonTopPadding)
            }
            return ()
        })
    }

    

import UIKit

// MARK: - Delegate
@objc public protocol WMFTableOfContentsPresentationControllerTapDelegate {
