x[u_,v_]=Cos[u]Sin[v];
y[u_,v_]=Sin[u]Sin[v];
z[u_,v_]=Cos[v];
r[u_,v_]={x[u,v],y[u,v],z[u,v]};

Manipulate[
{uMin,vMin}=LowerLeftPt;
{du,dv}=delta;
{uMax,vMax}=LowerLeftPt+delta;

GraphicsGrid[{{

RegionPlot[uMin≤u&&u≤uMax&&vMin≤v&&v≤vMax,{u,0,2π},{v,0,π},FrameTicks->None,FrameLabel->{u,v},PlotLabel->"Domain (parameters)"],

ParametricPlot3D[r[u,v],{u,uMin,uMax},{v,vMin,vMax},PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}},AxesLabel->{x,y,z},Ticks->None,PlotLabel->"Parametric Surface"]},

{Show[{ParametricPlot3D[{r[uMin,v],r[u,vMin]},{u,0,2π},{v,0,π}],
Graphics3D[{Red,Arrowheads[0.05],Arrow[Tube[{r[uMin,vMin],r[uMin,vMin]+D[r[u,vMin],u]*du/.u->uMin},0.025]],Arrow[Tube[{r[uMin,vMin],r[uMin,vMin]+D[r[uMin,v],v]*dv/.v->vMin},0.025]]}]},PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}},AxesLabel->{x,y,z},Ticks->None,PlotLabel->"Gridlines and Tangents"],

Show[{
ParametricPlot3D[r[u,v],{u,uMin,uMax},{v,vMin,vMax}],
ParametricPlot3D[{r[uMin,v],r[u,vMin]},{u,0,2π},{v,0,π}],
Graphics3D[{Red,Arrowheads[0.05],
Arrow[Tube[{r[uMin,vMin],r[uMin,vMin]+D[r[u,vMin],u]*du/.u->uMin},0.025]],
Arrow[Tube[{r[uMin,vMin],r[uMin,vMin]+D[r[uMin,v],v]*dv/.v->vMin},0.025]]}],
Graphics3D[{Opacity[t],Polygon[{r[uMin,vMin],r[uMin,vMin]+D[r[u,vMin],u]*du/.u->uMin,r[uMin,vMin]+(D[r[u,vMin],u]*du/.u->uMin)+(D[r[uMin,v],v]*dv/.v->vMin),r[uMin,vMin]+D[r[uMin,v],v]*dv/.v->vMin}]}]
},PlotRange->{{-1.5,1.5},{-1.5,1.5},{-1.5,1.5}},AxesLabel->{x,y,z},Ticks->None,PlotLabel->"Surface and Patch"]
}}],

(*Manipulate Controllers*)
Style["Parametric Surfaces",Bold,12],(*Title*)

Delimiter,

Style["",Plain,8],
Style["The domain (parameters)",Bold,10],
Style["The lower left corner of the region",Plain,8],
{{LowerLeftPt,{5,1}, "((Subscript[u, 0]),(Subscript[v, 0]))"},{0,0},{2π,π}},
Style["The width and height of the domain",Plain,8],
{{delta,{1,.5}, "(Δu,Δv)"},{.01,.01},{2π,π}},
Style["The opacity of the patch",Plain,8],
{{t,0.5, "Opacity"},0,1,ImageSize->Small}
,TrackedSymbols->Manipulate,ControlPlacement->Left
]