Manages CSS classes for a component. There are two semantic extensions to CSS class names:
- A "-" character preceding a class name indicates that it is to be removed.
- A group name may precede a class name, separated by a ":" character. When a class with a
group name is added, any previous class associated with that group will be removed. A group name
with no following class name simply removes the class currently associated with that group. This
facilitates managing classes that are mutually exclusive.