Abstract : Customization often corresponds to a simple functional customization, restricting the functionalities of a component to some configuration values, without performing any code optimization. However, when resources are limited, as in embedded systems, customization needs to be pushed to code customization. This form of customization usually requires one to program low-level and intricate transformations. This paper proposes a declarative approach to expressing customization properties of components. The declarations enable the developer to focus on what to customize in a component, as opposed to how to customize it. Customization transformations are automatically determined by compiling both the declarations and the component code; this process produces a customizable component. Such a component is then ready to be custom-fitted to any application. Besides the declaration compiler, we have developed a graphical environment both to assist the component developer in the creation of a customizable component, and to enable a component user to tailor a component to a given application.