The document discusses the separation of appearance and functionality in components. It shows how components can have a skin that controls graphics, layout, animation, parts, and states, while the underlying component manages behavior, logic, and data. This allows the skin and look to be changed without affecting the underlying functionality. Samples of code are provided to demonstrate how states can be defined and skins can be created using graphics, layouts, and effects like gradients and how they will update based on the state of the component.