On most if not all terminal emulators, you can't set different font sizes or different fonts, only colors and a few attributes (bold, underlined, standout).
In bash (or in zsh or any other shell), you can use the terminal escape sequences directly (apart from a few exotic ones, all terminals follow xterm's lead these days). `CSI` is `ESC `, written `$'\e['` in bash. The escape sequence to change attributes is `CSI Ps m`.
echo $'\e[32;1mbold red\e[0mplain\e[4munderlined'
Zsh has a [convenient function for that.
autoload -U colors
colors
echo $bold_color$fg[red]bold red${reset_color}plain$'\e['$color[underline]munderlined
Or can do it as part of _prompt expansion_ , also done with `print -P`, or the `%` _parameter expansion flag_ :
print -P '%F{red}%Bbold%b red%f %Uunderline%u'