The color of the most sulfides of p- and d-block elements
The band gap between conduction band and the valence band plays a role in color of these compounds. The good example is $\ce{SnS2}$, which is bronze color (Image $\bf{A}$; $\ce{SnS2}$ is used in decorative coating where it is known as mosaic gold) and have a band gap of $\pu{2.18-2.44 eV}$ (Image $\bf{B}$; Ref.1). When an electron in the conduction band falls down to the valence band, it loses energy and the lost energy is emitted as a photon ($h\nu$). This photon has an energy equal to the band gap (Image $\bf{C}$). In mathematics, it is: $E_\mathrm{gap} = h\nu$. The crystals of $\ce{SnS2}$ and its calculated band gap is shown below:

The compounds is colored when the band gap is between $1.8$ and $\pu{3.0 eV}$ (visible range). The compounds with larger band gaps $(\gt \pu{3.0 eV})$ are either white or transparent crystals.  Those with smaller band gaps $(\lt \pu{1.8 eV})$ give  black color crystals. For example, the band gap of $\ce{ZnS}$ is $\pu{3.54 eV}$, the color of which is white. Meantime, the color of $\ce{CdS}$ (Pigment name: Cadmium yellow) is yellow because its band gap is $\pu{2.45 eV}$. On the other hand, the colors of $\ce{CdSe}$ and $\ce{CdTe}$, which have the same structure of $\ce{CdS}$, are black because their band gaps are $\pu{1.74 eV}$ and $\pu{1.49 eV}$, respectively. Also, the color of $\ce{PbS}$ is black because its band gap is $\pu{0.37 eV}$.
For some crystals, the band gap change with temperature (Ref.1). Hence, for those, the color depend on temperature.
References:

Lee A. Burton, Thomas J. Whittles, David Hesp, Wojciech M. Linhart, Jonathan M. Skelton, Bo Hou, Richard F. Webster, Graeme O'Dowd, Christian Reece, David Cherns, David J. Fermin, Tim D. Veal, Vin R. Dhanak, Aron Walsh, “Electronic and optical properties of single crystal SnS2: an earth-abundant disulfide photocatalyst,” J. Mater. Chem. A 2016, 4, 1312-1318 (https://doi.org/10.1039/C5TA08214E).