I made a button system that utilizes TextService:GetTextSize() to create labels that can be assigned functions (such as activated, mousebutton1down), you can see the function in action when I click the inventory button in the showcase below:
Thanks for the feedback! The boxes being created when chatting was just to showcase the sizing, but I could tween them when a player hides and unhides the menus.