Since version 10 many builtins use such a display. These are called summary boxes. There are internal undocumented functions that make it easy to create a standard looking summary box. But at the time when I implemented this part of the package I wasn't fully comfortable using those, so I made my own imitation. I wanted the implementation to be as future proof as possible.
You can read about how to use either the internal functions or imitate the appearance using only documented functions here:
You can also look at the source of IGraph/M:
https://github.com/szhorvat/IGraphM/blob/master/IGraphM/IGraphM.m#L2823
Other than the formatting, IGClusterData
objects just wrap an association. Some "properties" then just extract keys from it, others compute something based on what's stored inside.