OK, sine my rewording
If I only want to use one single
Polygon[…]for multiple polygons, how can I style them separately in a simpler way?
has been approved by OP, here's my solution:
colored[p_Polygon, colorlst_ : ColorData[97, "ColorList"]] := With[{pointlst = p[[1]]}, Append[p, VertexColors -> MapThread[ Table, {PadRight[colorlst, Length@pointlst, colorlst], Length /@ pointlst}]]] Alternatively, use the new-in-14.3 Cyclic, which makes the code slightly shorter, but slightly slower:
colored[p_Polygon, colorlst_ : ColorData[97, "ColorList"]] := With[{pointlst = p[[1]]}, Append[p, VertexColors -> MapIndexed[Table[Cyclic[colorlst]@#2[[1]], Length@#] &, pointlst]]] Usage:
polycollection = Polygon[Append[ Table[RotationMatrix[n Pi/3] . # & /@ {{0, 0}, {1, 0}, {1/2, Sqrt[3]/2}}, {n, 0, 5}], {{1, 1}, {2, 1}, {2, 2}, {1, 2}}]]; colored@polycollection // Graphics 