What is the Unity-recommended way to handle using the same (variable) color with different transparencies in USS? A use case is defining a style sheet with some color variables (primary, secondary, tertiary, info, success, error, etc.) in a single place and reusing it throughout a (maybe large) system of UI components with varying values of transparency.
Transparency is a property outside the color itself, and it’s also known as alpha component, You can’t code transparent as pure RGB (Red-Green-Blue), but you can use the RGBA notation, in which you define the color + alpha channel together:
rgba(red, green, blue, alpha)
Where alpha defines the opacity as a number between 0.0 (fully transparent) and 1.0 (fully opaque)
color: rgba(255, 0, 0, 0.5); /* 0.5 is the transparency value */
There’s also the HEXA notation ( #RRGGBBAA ) now supported on all major browsers, which is pretty much the same as RGBA color code but using hexadecimal notation instead of decimal. It’s called HEXA ( HEX + Alpha ). It takes in 8 digits instead of 6. The last pair is Alpha. So the pattern of pairs is #RRGGBBAA. Having 4 digits also works: #RGBA.
color: #FF000080; /* red at 50% opacity */
Here the FF0000 is the color and 80 is the transparency. Where 80 is the hexadecimal equivalent of 50%.