In this article, we propose a theoretical account of software appropriation as a basis for considering how to design software for appropriation. The analysis we develop is based on a holistic perspective including artifact mediation (how software acts as a mediator of users' activities and how users develop instruments), ecologies of artifacts (taking into consideration that users use multiple artifacts), collective and work practice aspects, and technical and software engineering aspects (different forms of and approaches to software adaptation by users). It leads to an understanding that software appropriation is related to how users consider software as a mediator of their activity and turn it into an instrument for themselves based on the functional values they attribute to it. Building on this analysis, We outline a general perspective on designing for appropriation as empowering users to continue software design in use, review some principles and means, and introduce research questions for future work.