How to structure a uGUI

Maybe this is more of a style question than anything.

How do I best structure a GUI using the new (4.6, 5) GUI system? That is, how do I make screens?

Should I have one canvas per screen and make buttons flip between them (disable old and enable new)?

Or should I just have one canvas, and make each screen a panel? Then the buttons disable the old panel and enable the new one.

Or, if I don’t need panels, should the screens just be different empty game objects under the canvas? These would have a rect transform? Or a 3D transform?

Since you can’t really control (animate or the like) a canvas, you probably only need 1 canvas for your screenspace overlay mode. (World space canvases as “real” objects in your scene can be more.) Then I recommend to create an empty root object for every menu, screen or whatever entity you want to separate. Next you can use panels for backgrounds and nest all your objects underneath. This way you can animate your backgroundpanel for “flipping” through menus or things like that, but you can still just grab your gameobject and drag it off the screen to work on it. Then at the start of the game, just recenter all of your menus. Everything changes if you need parts of your menus in other scenes, but not the whole thing. Then you would create prefabs and multiple canvases.