     
     // Thanks to Kite Compositor (kiteapp.co)
     override func mouseExited(with event: NSEvent) {
-        guard let layer = self.layer else { return }
+        guard self.growsOnHover, let layer = self.layer else { return }
         
         let transformScaleAnimation1 = CASpringAnimation()
-        transformScaleAnimation1.beginTime = layer.convertTime(CACurrentMediaTime(), from: nil) + 0.000001
+        
         transformScaleAnimation1.duration = 0.99321
         transformScaleAnimation1.fillMode = kCAFillModeForwards
         transformScaleAnimation1.isRemovedOnCompletion = false

class LinkButton: NSButton {
    @IBInspectable var growsOnHover: Bool = true
    @IBInspectable var growFactor: CGFloat = 1.15
    private var trackingArea: NSTrackingArea?
    
    override func layout() {
        super.layout()

    }
    
    override func updateTrackingAreas() {
        super.updateTrackingAreas()
        
        self.trackingAreas.forEach(self.removeTrackingArea(_:))
        let trackingArea = NSTrackingArea(rect: self.bounds, options: [.activeAlways, .mouseEnteredAndExited], owner: self, userInfo: nil)
        self.addTrackingArea(trackingArea)
    }
    
    override func resetCursorRects() {
