gui content dynamic change with screen size

So I understand how to use Screen.width and Screen.height to set my group, box and buttons to scale with different screen sizes.

How would you control the button sizes so they are always proportional to the box? I cant seem to find a way to reference the box.

And as the buttons change how to dynamically adjust the font sizes of text in the buttons at the same time so the text always fits in the buttons.
Any thoughts or insights?
I did a lot of searching on this and maybe missed the answer.
If you have seen it a link would be great.
Thanks.

For example …

void OnGUI () {

	GUI.BeginGroup(new Rect(Screen.width/2 -(Screen.width*0.9f/2), Screen.height - Screen.height * .05f, Screen.width * .9f, Screen.height*.05f));
	GUI.Box(new Rect(0,0, Screen.width * .9f, Screen.height*.05f), "");
	GUI.Button(new Rect(5,5,100,40),"this is a bunch");
	GUI.EndGroup();

}

Use GUI.matrix. As to work with it, watch my pregoing response. I hope, it will help you.