Introduction

Most web design books are filled with great techniques and examples that you can pick up and use right away. They’re often filled with reams of documentation on which HTML tags to use in which situation and what each and every CSS property does. And most include some sort of sample project or projects for you to work along with in order to see how the code examples come together.

This is not that kind of book. This is a philosophy book about designing for the ever-changing, ever-evolving Web.

There are thousands of technique books out there for you to buy and hundreds of thousands of technique-based articles for you to read. Many of them are quite good. Sadly, however, most of them have a shelf life measured in months.

Technologies...browsers...toolsets...they’re constantly changing. I struggle to keep up and often find myself overwhelmed, adrift on a churning sea of far too many options and ways I could be building websites. When I’m being tossed hither and thither by the waves, I affix my gaze on the one thing that helps me get my bearings and make sense of what’s happening: the philosophy of progressive enhancement.

This philosophy—which is the heart and soul of an adaptive approach to web design—grounds me and helps me put any new technology, technique, or idea in perspective. Furthermore, it makes my sites more robust and capable of reaching more users with fewer headaches. It has made me a better web designer, and I know it can do the same for you.