—Contracts and their composition may be used with different goals in a component-based design flow: on the one hand, a component contract describes the guarantees a component is able to give, depending on its environment. On the other hand, a requirement contract, or aspect, specifies a guarantee that must be ensured under some hypothesis. For component contracts we define a “best effort” composition satisfying the property of independent implementability. For aspects we define a composition based on modal conjunction, which is shown to be sound. Modal contracts allow keeping a larger design space than their nonmodal version, and thus avoid prematurely ruling out possible implementations.