2 Answers
2

What terminal emulator are you using? You can check the number of supported colors by running echotc Co. For example, my urxvt supports 88 colors, but xterm supports only 8, and bright variations are not included.

All “colors” you are talking about are just escape sequences in a form \e[{color_code}m. Zsh function colors does nothing more then adding a few zsh associative array variables mapping human-readable color names to terminal escape sequences. Thus you can either directly use

PS1=%{$'\e[54m'%}...

or try out @Mischa Arefiev’s answer, it is more readable. Note that escape sequences work in any shell, while constructions like %F{54}... work only in zsh.