Design principles

Unobtrusive JavaScript

  1. the user interface should be intuitive and not draw attention to itself
  2. features that fail or operate incorrectly should be omitted rather than producing errors
  3. core functionality should be guaranteed even if scripts fail
  4. content (HTML), presentation (CSS), and behavior (JavaScript) should be kept separate
  5. write clear, documented, maintable code

Graceful degradation

  1. graceful degradation is another name for fault tolerance
  2. core web page functionality should be guaranteed even when scripts fail to run
  3. features which are not fully functional should be eliminated from a page
  4. graceful degradation and progressive enhancement are somewhat opposed

Progressive enhancement

  1. first goal is to guarantee basic functionality and content
  2. accessibility is a primary concern
  3. enhanced features may be added if they are available and work properly
  4. empasizes sepaaration of content (HTML), presentation (CSS), and behavior (JavaScript)
  5. progressive enhancement and graceful degradation are somewhat opposed

Responsive web design

  1. goal is to provide optimal viewing on any type of device
  2. website should detect environment and adapt
  3. designs should use fluid layouts and relative measurements
  4. CSS styles using the @media rule are used to change layout without using JavaScript

Polyfill

  1. a polyfill provides a browser with a feature it is missing
  2. one example is using ExplorerCanvas or FlashCanvas for Internet Explorer versions 8 and previous
  3. HTML5 Please: list of poyfills by feature
  4. Modernizr's list of polyfills