# Color The `color` rule sets the text color of a widget. ## Syntax --8<-- "docs/snippets/syntax_block_start.md" color: (<color> | auto) [<percentage>]; --8<-- "docs/snippets/syntax_block_end.md" The style `color` needs a [``](../css_types/color.md) followed by an optional [``](../css_types/percentage.md) to specify the color transparency. Instead of a [``](../css_types/color.md), one can use the special value `"auto"` to choose automatically the color with the best contrast for readability purposes. ### Values #### <color> --8<-- "docs/snippets/type_syntax/color.md" The alternative value `"auto"` picks the color that provides the best contrast for readability purposes. #### <percentage> --8<-- "docs/snippets/type_syntax/percentage.md" ## Examples This example sets a different text color for each of three different widgets. === "color.py" ```python --8<-- "docs/examples/styles/color.py" ``` === "color.css" ```css --8<-- "docs/examples/styles/color.css" ``` === "Output" ```{.textual path="docs/examples/styles/color.py"} ``` The next example shows how `auto` chooses between a lighter or a darker text color to increase the contrast and improve readability. === "color_auto.py" ```py --8<-- "docs/examples/styles/color_auto.py" ``` === "color_auto.css" ```css hl_lines="2" --8<-- "docs/examples/styles/color_auto.css" ``` === "Output" ```{.textual path="docs/examples/styles/color_auto.py"} ``` ## CSS ```sass /* Blue text */ color: blue; /* 20% red text */ color: red 20%; /* RGB color */ color: rgb(100,120,200); /* Automatically choose color with suitable contrast for readability */ color: auto; ``` ## Python You can use the same syntax as CSS, or explicitly set a `Color` object. ```python # Set blue text widget.styles.color = "blue" from textual.color import Color # Set with a color object widget.styles.color = Color.parse("pink") ```