GUI only sizing up to one direction

Hey guys, i have this problem when im trying to resize my gui from a script
basically what happens is it only increases size from the right side, and then decreases from the same side, whereas i want it to stay in the same position its at and increase its size on both sides simultaneously whilst maintaining the end goal, i tried using tweenSize and anchor points but to no avail, any help will be appreciated, thanks!

local button = script.Parent 
button.MouseEnter:Connect(function()
button.Size = Udim2.new(2.7, 0, 2.7, 0)
end)

button.MouseExit:Connect(function()
button.Size = Udim2.new(1, 0, 1, 0)
end)
button.MouseEnter:Connect(function()

	button.Size = button.Size + UDim2.new(1, 0, 0, 0)
	button.Position = button.Position - UDim2.new(.5, 0, 0, 0)
end)

button.MouseLeave:Connect(function()
	
	button.Size = button.Size - UDim2.new(1, 0, 0, 0)
	button.Position = button.Position + UDim2.new(.5, 0, 0, 0)
end)