The solution is likely some combination of parented and anchored RectTransforms.
Here are some notes on UI Anchoring, Scaling, CanvasScaler, etc: