The problem of designing hybrid controllers in order to satisfy safety or liveness specifications has received much attention in the past decade. Much more recently, there is an increased interest in designing hybrid controllers in order to achieve more sophisticated discrete specifications, such as those expressible in temporal logics. A great challenge is how to compose safety and liveness controllers in order to achieve more complex specifications. Existing approaches are predominantly bottom-up, in the sense that the overall control and composition (or switching) logic requires verification of the integrated closed-loop hybrid system. In this paper, we advocate and develop a top-down approach for this problem by synthesizing controllers which satisfy the specification by construction. Given a flat linear temporal logic specification as an input, we develop an algorithm that translates the temporal logic specification into a hybrid automaton where in each discrete mode we impose controller specifications for the continuous dynamics. In addition to achieving the desired specification by construction, our methodology provides a very natural interface between high level logic design and low level control design.