#4213·rich

perf: Remove sqrt in palette match

Author: LeuchakCreated Aug 30, 2026Updated Sep 15, 2026

sqrt is not needed when only the minimum distance is required.

diff --git i/rich/palette.py w/rich/palette.py
index f2958794..8c6ba963 100644
--- i/rich/palette.py
+++ w/rich/palette.py
@@ -1,4 +1,3 @@
-from math import sqrt
 from functools import lru_cache
 from typing import Sequence, Tuple, TYPE_CHECKING
 
@@ -52,17 +51,16 @@ class Palette:
             int: Index of closes matching color.
         """
         red1, green1, blue1 = color
-        _sqrt = sqrt
         get_color = self._colors.__getitem__
 
-        def get_color_distance(index: int) -> float:
+        def get_color_distance(index: int) -> int:
             """Get the distance to a color."""
             red2, green2, blue2 = get_color(index)
             red_mean = (red1 + red2) // 2
             red = red1 - red2
             green = green1 - green2
             blue = blue1 - blue2
-            return _sqrt(
+            return (
                 (((512 + red_mean) * red * red) >> 8)
                 + 4 * green * green
                 + (((767 - red_mean) * blue * blue) >> 8)