One of the best things about Drupal’s theme layer is the sheer amount of flexibility it provides. In the previous chapter you learned the basics of creating a theme: working with .info files, template files, and theme functions. When implementing more custom themes, sometimes these tools alone are not enough and you need to dig deeper. This is the point where the line between front-end developer and back-end developer gets a little blurry, but stay with us.
By the time you finish reading this chapter you’ll know how to work with variables in preprocess functions, customize forms, and use the new render API. I’ll also cover the ins and outs of working with CSS files and the basics of subtheming, and leave you with basics rules for creating sustainable Drupal themes. You’ll be transformed into a theming ninja in no time.