diff --git a/src/textual/color.py b/src/textual/color.py index 5899d2c47..73adbabf3 100644 --- a/src/textual/color.py +++ b/src/textual/color.py @@ -277,11 +277,14 @@ class Color(NamedTuple): if rgb_hex_triple is not None: r, g, b = rgb_hex_triple - color = cls(int(r + r, 16), int(g + g, 16), int(b + b, 16)) + color = cls(int(f"{r}{r}", 16), int(f"{g}{g}", 16), int(f"{b}{b}", 16)) elif rgb_hex_quad is not None: r, g, b, a = rgb_hex_quad color = cls( - int(r + r, 16), int(g + g, 16), int(b + b, 16), int(a + a, 16) / 255.0 + int(f"{r}{r}", 16), + int(f"{g}{g}", 16), + int(f"{b}{b}", 16), + int(f"{a}{a}", 16) / 255.0, ) elif rgb_hex is not None: r, g, b = [int(pair, 16) for pair in split_pairs3(rgb_hex)] diff --git a/tests/test_color.py b/tests/test_color.py index 26f65f724..e1db3922b 100644 --- a/tests/test_color.py +++ b/tests/test_color.py @@ -93,6 +93,8 @@ def test_color_blend(): ("#000000", Color(0, 0, 0, 1.0)), ("#ffffff", Color(255, 255, 255, 1.0)), ("#FFFFFF", Color(255, 255, 255, 1.0)), + ("#fab", Color(255, 170, 187, 1.0)), # #ffaabb + ("#fab0", Color(255, 170, 187, .0)), # #ffaabb00 ("#020304ff", Color(2, 3, 4, 1.0)), ("#02030400", Color(2, 3, 4, 0.0)), ("#0203040f", Color(2, 3, 4, 0.058823529411764705)),