In Cartesian coordinates our circles is \[ \left(x-h\right)^{2}+\left(y-k\right)^{2}=r^{2} \] The constants, $(h,k)$ are the $x$ and $y$ coordinates of the circle center. The value $r$ is the circle radius. In standard form, the circle equation becomes \[ x^{2}+y^{2}-2hx-2ky=r^{2}-h^{2}-k^{2}. \] For finding the tangent and then the normal (the perpendicular), we usually use derivatives and they might be slightly easier in the standard form.
In parametric coordinates, a circle with radius $R,$ about center point, $C,$ in a plane with basis vectors $\mathbf{u}$ and $\mathbf{v}$ is defined by \begin{equation} \mathbf{X}=C+R\cdot\cos\theta\cdot\mathbf{u}+R\sin\theta\cdot\mathbf{v}.\label{eq:GeneralParametricCircle} \tag{EQ 1} \end{equation} I have used $\mathbf{X}$ to represent either a $2$ or $3$ dimensional vector. $\theta$ is the parameter and spans $2\pi.$ We are considering vector functions of the type $\mathbb{R}\rightarrow\mathbb{R}^{(2\text{ or }3)}$. Our generalized vector function will be named $\mathbf{r(t)}.$ Its first derivative is the tangent. \[ \mathbf{r'}=\left\{ \frac{\partial r_{1}}{\partial t},\frac{\partial r_{2}}{\partial t},\frac{\partial r_{3}}{\partial t}\cdots\right\} \] Although the vector function derivative is general to $n$ dimensions, we are only to consider $\mathbb{R}^{2}$ and $\mathbb{R}^{3}.$ Let $\mathbf{r}$ be the parametric circle of \ref{eq:GeneralParametricCircle}. We need to identify $r_{1}(t),$$r_{2}(t)$ and $r_{3}(t).$ \[ \mathbf{r}=\left(\begin{array}{c} r_{1}\\ r_{2}\\ r_{3} \end{array}\right)=\left(\begin{array}{c} C_{x}\\ C_{y}\\ C_{z} \end{array}\right)+R\cdot\cos\theta\cdot\left(\begin{array}{c} u_{x}\\ u_{y}\\ u_{z} \end{array}\right)+R\cdot\sin\theta\cdot\left(\begin{array}{c} v_{x}\\ v_{y}\\ v_{z} \end{array}\right) \] \[ \mathbf{r^{\prime}=}\left(\begin{array}{c} r_{1}^{\prime}\\ r_{2}^{\prime}\\ r_{3}^{\prime} \end{array}\right)=-R\cdot\sin\theta\cdot\left(\begin{array}{c} u_{x}\\ u_{y}\\ u_{z} \end{array}\right)+R\cdot\cos\theta\cdot\left(\begin{array}{c} v_{x}\\ v_{y}\\ v_{z} \end{array}\right) \] Once $\theta$ is given a value, $\mathbf{r^{\prime}}$ resolves into a single $3$ element vector. That vector is the direction vector of the tangent line. \[ \mathbf{r^{\prime}=\text{Tangent Line Direction Vector}} \] The tangent line itself is the usual \[ \text{Line(x,y,z)}=P(\theta)+t\mathbf{\cdot r^{\prime}}(\theta)\qquad\left(-10\le t\le10\right) \label{EQ2} \tag{EQ 2} \] Here, $P$ is a point on the circle and $\theta$ is the parameter used to get both the point and the tangent vector. In equation \ref{EQ2}, $P(\theta)$ and $\mathbf{r^{\prime}}(\theta)$ are function notation.
The normal is just a perpendicular to the tangent line at the tangent point. If we are in $\mathbb{R}^{2},$ we would do it as usual and just get a ``normal'' vector by swapping the $x$ and $y$ vector coordinates and changing the sign of one of them. So \[ \mathbf{r^{\prime}}=\left(\begin{array}{c} r_{x}^{\prime}\\ r_{y}^{\prime} \end{array}\right) \] then \[ \text{normal vector}=\mathbf{n}=\left(\begin{array}{c} r_{y}^{\prime}\\ -r_{x}^{\prime} \end{array}\right) \] Then, using the parameter $q$ from the prior example, the normal line is then \[ Normal(q)=P(q)+t\cdot\mathbf{n}(q)\qquad-\infty\le t\le\infty\Leftarrow\text{The normal line} \]
The normal vector for a circle is super easy, although not very general. It is the vector from the center point, $C,$ to any point, $P,$ on the circle. \[ \mathbf{\hat{n}}=\frac{P-C}{|P-C|}=\left(\begin{array}{c} n_{x}\\ n_{y}\\ n_{z} \end{array}\right) \] The normal describes a plane which is tangent to the circle at point $P$. \[ tangent\,\,plane:\ n_{x}x+n_{y}y+n_{z}z=n_{x}P_{x}+n_{y}P_{y}+n_{z}P_{z} \] By picking another point $Q,$on the circle we can do the vector cross product \[ circle\ \ normal\ \ vector:\mathbf{c}=(P-C)\times(Q-C) \] to get the plane of the circle. \[ circle\ \ plane:\ \ c_{x}x+c_{y}y+c_{z}z=c_{x}P_{x}+c_{y}P_{y}+c_{z}P_{z} \] The intersection of these two planes is the tangent line. To get the direction vector of that tangent, we just cross the two plane normals. I am arbitrarily naming the tangent vector $\mathbf{r^{\prime}.}$ \[ Tangent\ \ Direction\ \ Vector:\ \mathbf{r^{\prime}=}(\mathbf{c}\times\mathbf{n)} \] \[ Tangent\ \ Line:\ \mathbf{X}=P+t\cdot\mathbf{r^{\prime}} \]
It might actually be less work to get the tangent vector by the more general method. However, the normal was really easy. Also this special method avoids knowing calculus. Even so, most people who can manipulate vectors at this complexity already know calculus.
The proper way to do this, which is a bit more general is the following.