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
```
[![enter image description here][1]][1]
[1]: https://i.sstatic.net/ny2YJGPN.png