No-Library (pure JS), HTML, CSS, JavaScript
Pure CSS steps. Personalize the sprites to your needs. States: - not done (blank style) - completed - current - last "last completed" needs to be set for correct representation.