Here's my explanation.
Why do objects have color?
Objects appear to have color because they can selectively absorb certain wavelengths of visible light and reflect back others.
For example, an object will appear red when it absorbs all wavelengths of visible light except for red.
The red light is reflected back to our eye, so the object looks red
Diamond is a network solid in which every carbon atom is attached to its neighbours by σ bonds.
Diamond can absorb light if the electrons in its σ orbitals are excited to its σ* antibonding orbitals.
The problem is that there is an enormous difference between these energy levels.
Visible light does not have enough energy to excite electrons from the σ to the σ* orbitals.
All the wavelengths of visible light are reflected back to our eyes, so diamond appears white.
Graphite is also a network solid, but the carbon atoms are arranged in sheets of fused hexagonal rings with many π bonds.
(Adapted from Learning Chemistry Easily)
The energy difference between the π and π* orbitals is in the range of visible light.
Graphite absorbs virtually all the visible light that hits it. It reflects none of this light back to our eyes, so graphite appears black.