Green and yellow represent keyframes. One of them- I don’t remember which, in vanilla Blender, means there is a keyframe on this frame, the other means there is a keyframe generally. Purple means it has a driver.
Yep, green means there are keyframes on some other frames in that value. Yellow means there is a keyframe on the current frame. If either of those colors is darker, it means that you have changed the value on the current frame, but you have not added or replaced the keyframe. So darker color means that the current value is not “saved” yet and will be reset according to keyframes if you change the frame, play animation or close Blender. Or do some other operations that will update animations, like enable a collection or toggle between edit and object modes.