Screenshot of a megahexagon, yay!

  1. Use overflow: hidden on almost all blocks.
  2. Use visibility: hidden on all blocks except the last one.
  3. Use a lot of transform: rotate(…) to create intersections that would hide parts of your blocks.
  4. Get convex polygons, that have true clickable/hoverable areas that you can use for masking images/content and create different nice shapes.

Enjoy! And don't forget to create more shapes by yourself and make pull requests ;)