I’d like to have a text with more than 256 grey level.
Is there a way to chose a 16 bit color for a UI text (or a TextMeshPro component) ?
No, because most hardware use 8 bit per color channel. Even when you use latest high-end hardware which supports “deep color” it’s usually just 10 bit per channel. Also they usually use the additional space for HDR so the usual usable range would still be around 8bit per color.
Any “grey” color simply satisfies the condition
R == G == B. Since each channel has only 8 bit you only have 256 grey levels.
Note that if you actually have high end hardware (GPU + cable / interface + monitor) it should basically work out-of-the-box. Shaders use a single precision float per channel.
I’m just wondering why you need more than 256 levels? Keep in mind that even when using 10bit deep color you only have 1024 levels max. In almost all cases it doesn’t make any difference.