ClipDescendants not working as intended?

For some reason my X button isn’t disappearing until the whole of the X has been cut off from the frame and also appears before the frame has reached it.

Shouldn’t the text be part of ClipDescendants?

You could use a delay function to wait however long you want, then set the X button’s visible property to false. If ClipDescendants now works like that, I wouldn’t rely on it too much. If you dislike the thing I mentioned, try turning on clip descendants for all of the TextButton’s parents. As mentioned in the API, if it is rotated, it won’t clip off.