Using an existing template (and customizing it) will help you getting great results while saving lots of time, compared to creating your own template from scratch. However, if you want full control or need a unique layout you can make a Joomla! template all by yourself. It isn't really complicated, but it does require a good deal of HTML and CSS coding skills. If you know how to build a website without Joomla!, using HTML and CSS, then you won't experience any problems converting your design into a Joomla! template. Most of your time and effort will go into creating a page design from scratch rather than into the adjustments needed to adapt that design for Joomla!
As it is mainly a question of HTML and CSS coding, we won't cover template creation in full detail here. To get you started, here are a few pointers. These are the five main steps it takes to create your own template:
1. Sketching: Design an overall layout for your website (yes, you may use old school...