Texture atlas

A texture atlas, also known as a spritesheet, is an arrangement of game sprites on a single image file, used by the game to store and access associated sprites more efficiently than with individual files. Minecraft uses both procedurally-generated and predefined texture atlases for different purposes.

Procedurally-generated texture atlases
Block and item textures are combined into the same atlas. It is not known where particle, painting, status effect and other individual textures are combined.

bars.png
bars.png is used for storing boss bar textures and their overlays. As of Java Edition 1.16.4, this file is still in use.

The file was compressed in 15w49a, 1.11-pre1 and 19w41a.

icons.png
icons.png is used for storing the textures of certain UI elements.

As of Java Edition 1.17, this file is still used in the game.

inventory.png
This file is only loosely defined as a texture atlas due to the small amount of auxiliary sprites surrounding the main inventory box. Nonetheless, it has a notable history of housing several status effect textures.

kz.png
kz.png is used for storing the textures of paintings.

map_icons.png
This file is used for static icons on maps. Interestingly, it has many unused icons which have existed for many years.

particles.png
particles.png is used for storing the textures of most particles. Two other atlases, explosion.png and sweep.png, were used for respectively storing explosion and sweeping attack particles.

widgets.png
widgets.png (previously known as gui.png ) is used for defining several types of menu buttons and icons. The file is still in use as of Java Edition 1.16.4.

items.png
items.png was used for storing the textures of items

terrain.png
terrain.png was used for storing the textures of blocks.

History
Specific changes to texture files are documented in each texture file's dedicated section or page.