Printing Colored, CLId Unicode Chess Board - follow-up
This is some nice polished code. I have just a few remarks.

When initializing ELEMENTS, the piece names get pasted in twice.
Perhaps you'd like to loop over them,
adding a black and a white variant to the dict?
You might even associate the proper unicode code point
with each enum member, rather than calling auto().


        [(Color.BLACK, Piece.PAWN) for _ in range(8)],



You have nice helpers everywhere.
Except for the two lines about pawns.
Maybe you'd like a get_pawns(color) function?

Instead of enumerating row and then doing this:


        piece = ELEMENTS.get(piece)



consider running enumerate over map(ELEMENTS.get, row).