Object-oriented frameworks are established tools for domain-specific reuse. Many framework design patterns have been documented, e.g. reverse engineering framework architectures from conventionally built applications for a given domain. The framework development cycle generally evolves from an open framework to a closed application. We describe a more flexible component-based approach to framework design that stresses a common interface for `plugging-in' new components at different lifecycle stages. An analysis of framework-related user roles shows that the classical developer/end-user boundary is too rigid. We see the framework's development as a continuum within which its `actors' can customise its behavior. This both increases the system's flexibility and reduces its maintenance requirement. A case study of three frameworks for different application domains illustrates the presented principles.