- define all reusable shapes, visuals, backgrounds and name them - define components, their layers, and their children - components can be fed options that are injected into the properties (button text)