Components represent containers that can process input and do something interactive or dynamic by itself. They do not contain any graphics and can not render it by itself.
Most important properties are Canvas Object Lists (called COList) and Single Canvas Objects (called COSpecial). These are outputs from components where graphics can be connected. Simple static component (KISComponent) has only one COList - COList_Static. This is list of canvas objects that are always rendered. Good example of COLists is button. Button has four COLists: Idle, Hover, Clicked, Static.
Idle - canvas objects rendered when you do nothing with button.
Hover - canvas objects rendered when you are hovering on button by mouse cursor.
Clicked - canvas objects rendered when button is clicked/pressed.
Static - always rendered canvas objects.
This means that you can use different graphics for different states/situations of components. Some components does not allow use of multiple canvas objects because they can work only with one. That is why they do not use COLists but COSpecials. Good example is KISComponent_TextInput which is simple one line text field. Can you imagine that one text field will work with ten texts and fonts ? Of course, you can not. That is why we can use only one canvas object there.