Issue with notations on the definition of function differential Following the issue on this link, I want to know the nature of a differential function from a tensor calculus point of view.
In one of the answers, it is said that one has to use the Riesz lemma with the standard dot product for each linear functional $df(p)$, obtaining then a vector ${\rm grad}\,f(p)$ satisfying $$df(p)(v) = \langle {\rm grad}\,f(p),v\rangle,$$for all $v$
Then, taking the starting basis $\{e_{i}=\dfrac{\partial}{\partial x^{i}}\}$ and its dual basis $\{e^{i}=\text{d}x^{i}\}$, we can write the differential function $df$ and $\vec{grad}\,f$ as :
$$\begin{align} df &= \frac{\partial f}{\partial x}\,dx + \frac{\partial f}{\partial y}\,dy + \frac{\partial f}{\partial z}\, dz \\ {\rm grad}\,f &=  \frac{\partial f}{\partial x}\,\frac{\partial }{\partial x} + \frac{\partial f}{\partial y}\,\frac{\partial }{\partial y} + \frac{\partial f}{\partial z}\, \frac{\partial }{\partial z}. \end{align}$$
So with vectors $e_{i}$ and $e^{i}$ :
$$\begin{align} df &= \frac{\partial f}{\partial x}\,\vec{e^1} + \frac{\partial f}{\partial y}\,\vec{e^2} + \frac{\partial f}{\partial z}\, \vec{e^3} \\ {\rm grad}\,f &=  \frac{\partial f}{\partial x}\,\vec{e_1} + \frac{\partial f}{\partial y}\,\vec{e_2} + \frac{\partial f}{\partial z}\, \vec{e_3}. \end{align}$$
So, we could say that ${\rm grad}\,f$ is a classic vector (I mean no covector) and $\text{d}f$ is a co-vector (relatively to basis vectors and dual basis vectors).
My issue is about the nature of $\text{d}f$, I don't understand how the dot product between a vector $\vec{v}$ (maybe a covector with the definition of dot prouct) and the classic vector ${\rm grad}\,f$ could give a differential function under the form of a co-vector, i.e the expression :
$$df(p)(v) = \langle {\rm grad}\,f(p),v\rangle,$$
I thought that the result of a dot product between a vector (${\rm grad\,f}$) and a co-vector $\vec{v}$ is a scalar, not a co-vector.
Maybe I do confusions between the value (scalar value ???) expressed as :
$$df(p)(v) = \langle {\rm grad}\,f(p),v\rangle=$$
 $$\begin{align} df(p)(v) &= \frac{\partial f}{\partial x}\,v^x + \frac{\partial f}{\partial y}\,v^y + \frac{\partial f}{\partial z}\,v^z\end{align}$$
and the expression of $df$ as a co-vector (vector expressed in dual basis $\{e^{i}=\text{d}x^{i}\}$) :
\begin{align} df &= \frac{\partial f}{\partial x}\,\vec{e^1} + \frac{\partial f}{\partial y}\,\vec{e^2} + \frac{\partial f}{\partial z}\, \vec{e^3} \end{align}
Someone could help me to understand better or give me clarifications ?
UPDATE 1 :
@Uldreth Your answer is very interesting, especially by your formulation : 
$$\langle \text{grad}f,v\rangle=(g^{\mu\nu}\partial_\mu f)g_{\nu\kappa}v^\kappa$$
Then, as I said, this expression is equivalent to :
$$df(\vec{v})=\langle {\rm grad}\,f(p),v\rangle =\partial^\mu f v_\mu$$
because we can swap metric tensor $g_{ij}$ between the 2 equations.
I thought usually that gradient vector was considered like a covector because its components are transformed like the basis vector.
But by noting :
$${\rm grad}\,f =  \frac{\partial f}{\partial x}\,\frac{\partial }{\partial x} + \frac{\partial f}{\partial y}\,\frac{\partial }{\partial y} + \frac{\partial f}{\partial z}\, \frac{\partial }{\partial z}.$$
$${\rm grad}\,f =  \frac{\partial f}{\partial x}\,\vec{e_1} + \frac{\partial f}{\partial y}\,\vec{e_2} + \frac{\partial f}{\partial z}\, \vec{e_3}.$$
We can see that $\vec{e_{i}}$ are starting basis vectors (not dual basis vectors), so $\frac{\partial f}{\partial x_{i}}$ represent the contravariant components of ${\rm grad}\,f$.
But we can also consider that, with the  the expression of $df(v)=\partial_\mu fv^\mu=\partial^\mu f v_\mu$, $\partial^\mu$ represents the contravariant components and $v_\mu$ covariant components.
For example, into 2D polar coordinates, for the $\theta$ component of ${\rm grad}\,f$, we have (taking $x_\theta$ like the covariant component and $x^{\theta}=\theta$ like the contravariant component).
UPDATE 2 :
I wonder why one says that "${\rm \overrightarrow{grad}}\,f$" is a covector (because $({\rm \overrightarrow{grad}}\,f)_{i}$ components are covariant components (relatively to $\{\vec{e_i}\}$ basis vectors since $({\rm \overrightarrow{grad}}\,f)_{i}=({\rm \overrightarrow{grad}}\,f)\cdot\vec{e_i}$) and SO contravariant components relatively to $\{e^i\}$ dual basis vectors since $({\rm \overrightarrow{grad}}\,f)=({\rm \overrightarrow{grad}}\,f)_{i}\vec{e^i}$).
Should I rather call it a "classical vector", i.e its covariant components transform in the same way that $\{e_{i}\}$ basis vectors and its contravariant components in the same way that $\{e^{i}\}$ dual basis vectors ?
By "classical vectors", I mean that I can just express this gradient vector under 2 different forms, i.e :
$$({\rm \overrightarrow{grad}}\,f)=({\rm \overrightarrow{grad}}\,f)_{i}\vec{e^i}=\partial_{i}f\vec{e^i}$$
OR
$$({\rm \overrightarrow{grad}}\,f)=({\rm \overrightarrow{grad}}\,f)^{i}\vec{e_i}=\partial^{i}f\vec{e_i}$$
???
Thanks for your help.
 A: I'll give another approach, which is coordinate-free. Let's start with just linear algebra. Given a vector space $V$ over the field $\mathbb{K}$, we define its dual $V^\ast$ as the space of all linear functionals $f: V\to \mathbb{K}$ mapping vectors to scalars. Elements of $V^\ast$ are functions defined on $V$ taking values in $\mathbb{K}$. They are often called covectors.
Now let's tackle  your situation. You are talking about differentiating functions, so we need a so-called differentiable structure given in a smooth manifold (I'll assume afterwards that the main concets of smooth manifolds are known. If you don't know what a smooth manifold is, pick a book like "Spacetime and Geometry by Sean Carroll" to get started).
To develop this, let $M$ be a smooth manifold and let $x\in M$ be a point. We can consider $T_x M$ the tangent space at $x$ being the space of all vectors at $x$. It is well known that these vectors can be properly defined either as equivalence classes of curves or as derivations on smooth functions. In the second approach, a vector $v\in T_x M$ is a mapping on smooth functions that is linear and obeys Liebnitz rule
$$v(fg)=v(f)g+fv(g), \quad \forall f,g\in C^\infty(M).$$
The intuition is that $v(f)$ is the directional derivative of $f$ in the direction of $v$. In this context, given all tangent spaces at all points of $M$ we can form the so-called tangent bundle of $M$ given by
$$TM = \bigcup_{x\in M}\{x\}\times T_xM = \{(x,v_x) : v_x\in T_xM\}$$
together with the projection $\pi : TM\to M$ which maps $\pi(x,v_x)=x$. The tuple $(TM,\pi,M)$ is what is known as a vector bundle, which intuitively is the smooth association of a vector space to each point of a smooth manifold.
The definition of $TM$ allows one to define vector fields. These are the so-called sections of the vector bundle, which are easy to define. A vector field is a mapping $X : M\to TM$ such that $\pi(X(p))=p$, in other words, given $p\in M$, $X$ associates a vector at $p$.
Now we know what are duals and every $T_xM$ is a vector space. So we define the cotangent space to $M$ at $x\in M$ to be $T^\ast_xM$ the dual space of $T_xM$, in other words, all linear functionals of vectors at $T_xM$. We can similarly define the cotangent bundle $T^\ast M$ with a similar projection $\pi^\ast$.
A covector field is then a section of $T^\ast M$ which is just a mapping $\omega : M\to T^\ast M$ such that $\pi^\ast(\omega(p))=p$.
We now come to the main defintion:

Given a smooth function $f\in C^\infty(M)$ we can define a covector field called the exterior derivative of $f$ by the following rule: for each $p\in M$ define $df(p)$ to be $df(p) : T_p M\to \mathbb{R}$
$$df(p)(v)=v(f).$$
The mapping $df : M\to T^\ast M$ is a covector field.

So $df$ is exactly this: for each point, it gives you a linear functional $df(p)$ which produces the directional derivative of $f$ in the direction of the vector you feed into it. So: $df$ is a covector field, a function that for each point gives a covector, while $df(p)$ is a covector at a point, and finaly given $v\in T_p M$, we have $df(p)(v)$ a number, which is the value of the covector at the point evaluated at the particular vector $v$.
Finally, suppose $M$ has a metric tensor $g$. The metric tensor gives at each $T_p M$ one inner product $g(p) : T_pM\times T_pM\to \mathbb{R}$. This inner product establishes an isomorphism $T_pM\simeq T_p^\ast M$. Actually this isomorphism can be extended to an isomorphism between vector fields and covector fields.
The covector field associated to the vector field $X$ is $X^{\displaystyle \flat}$ defined by
$$X^{\displaystyle \flat}(p)(v)=g(p)(X(p),v).$$
As I said, the mapping $X\to X^{\displaystyle \flat}$ is bijective and called the musical isomorphism. Since this map is bijective, for each $\omega$ there is one $X$ such that $\omega = X^{\displaystyle \flat}$. The inverse of $\flat$ is denoted $\sharp$ so that if $\omega = X^{\displaystyle \flat}$ then $X = \omega^{\displaystyle \sharp}$.
Thus we make the following definition:

Let $M$ be a smooth manifold with a metric tensor $g$ and let $f\in C^\infty(M)$. We define the gradient vector field $\nabla f$ of $f$ by $\nabla f = df^{\displaystyle \sharp}$. In other words, it is the unique vector field such that $v(f)=g(p)(\nabla f(p), v)$ for every $v\in T_p M$.

EDIT: Answering the comment, $v(f)$ is the action of $v$ on $f$. It is exactly the directional derivative of $f$ along $v$. As I said at first, when you have one abstract manifold you need to decide how to define vectors at specific points. There are two routes: equivalence classes of curves that point in the same direction at said point, or as directional derivative operators. It is important to know both routes and how they are related.
The partial derivatives appear on $v$ as soon as you pick a chart $(x,U)$, i.e., a coordinate system. It has coordinate functions $x^i : U\to \mathbb{R}$ and each of them defines a vector at each point of the chart domain: you simply define $\frac{\partial}{\partial x^i}$ to act on $f$ by producing the $i$-th partial derivative at the point. According to the "directional derivative operator" definition, this is a vector at each point. Actualy one can show it is a basis, thus for every $v\in T_p M$ you can decompose it as
$$v = v^i\dfrac{\partial}{\partial x^i}\bigg|_p$$
so that the action of $v$ on $f$ is $v(f) = v^i \partial_i f(p)$. To define this you don't need any metric tensor or inner product at all, just the manifold structure!
The point is that when there is a metric tensor, you can ask yourself: is there a vector field such that $v(f)$ is $v$ dotted with it through the metric? The answer is yes and you define it as the gradient. The details are what I wrote before.
A: Well, $\langle \text{grad}f,v\rangle$ is scalar valued, and so is $df(v)$. 
Remember that $df(v)$ is NOT the covector field itself, but its value on the vector field $v$.
If index notation helps, then $\langle \text{grad}f,v\rangle=(g^{\mu\nu}\partial_\mu f)g_{\nu\kappa}v^\kappa$ and $df(v)=\partial_\mu fv^\mu$.
As you can see, if you perform the contraction $g^{\mu\nu}g_{\nu\kappa}$ first, you get the second expression.
