Pseudo-classes can be difficult to understand at first as they are not explicitly defined in an elements class attribute, and they also don’t appear in the source code like classes do.

However, pseudo classes are similar to classes and they can target elements dynamically based on user interaction, an elements state and more.

You can think of Pseudo classes to be like a keyword that we can add to a selector that will enable us to style a special state of an element on a webpage, for example, we can add styling to a button only when a user hovers over it with the mouse cursor.