I've learned about the Band Theory of metallic bonds and how they produce color, but how does a covalent bond produce color? Normally a metal such as iron absorbs and emits back the full range of colors due to metallic bonds, but when oxygen or sulfur get added it produces a different color. Can someone explain what happens here? One explanation for iron oxide and another for iron sulfate or iron sulfide, please. If possible explain in Layman's terms.