User Agent Design

Version 0.0.1

Goals

To establish simple, idiomatic guidelines for web design and development. To freely define and interrogate web paradigms. To understand and harness the preferences and inherent perspective of the web as a medium. To facilitate communication and creativity.

Principles

  1. Lead with intent.
  2. Functionality serves information. Presentation serves functionality.
  3. Presentation is the confluence of content and container.
  4. Prefer idiomatic paradigms. Or evolve them.

Applications

  1. Rely mostly on markup.
  2. Markup should answer: who am I? What do I express?
  3. Prefer modular composition.
  4. Variants of and exceptions to rules must be justified by information.
  5. Why do you need this?
  6. Prefer relative and flexible units: rems, ems, frs, vw, vh, %.
  7. Prefer user agent features to custom implementations.
  8. Prefer idiomatic to custom paradigms.
  9. Prefer noJS to JS.
  10. Progressive enhancement always. (see: "Why do you need this?")
  11. Accessibility always.