These statements of architectural principle explain the thinking behind the specifications. These are personal notes by Tim Berners-Lee: they are not endorsed by W3C. They are aimed at the technical community, to explain reasons, provide a framework to provide consistency for for future developments, and avoid repetition of discussions once resolved.
Why doesn't HTML include tags for style? Why can't you put text inside SMIL? Why doesn't CSS include commands to transform a document? Why, in short, does W3C modularize its specification and why in this particular way? This essay tries to make explicit what the developers in the various W3C working groups mean when they invoke words like efficiency, maintainability, accessibility, extensibility, learnability, simplicity, longevity, and other long words ending in -y.
The following principles are fundamental to the design and implementation of effective interfaces, whether for traditional GUI environments or the web. Of late, many web applications have reflected a lack of understanding of many of these principles of interaction design, to their great detriment. Because an application or service appears on the web, the principles do not change. If anything, applying these principles become even more important.
Interfaces exist to enable interaction between humans and our world. They can help clarify, illuminate, enable, show relationships, bring us together, pull us apart, manage our expectations, and give us access to services. The act of designing interfaces is not art and they are not monuments unto themselves. Interfaces do a job and their effectiveness can be measured. They are not just utilitarian, however. The best interfaces can inspire, evoke, mystify, and intensify our relationship with the world.
Clarity is job #1
Interfaces exist to enable interaction
Conserve attention at all costs
Keep users in control
Direct manipulation is best
One primary action per screen
Keep secondary actions secondary
Provide a natural next step
Appearance follows behavior (aka form follows function)
Inclusive Design is where innovation and imagination flourish. Meeting the needs of the widest variety of people does not inhibit creativity. It opens our minds and inspires excellence.
Equitable: Be welcoming.
Flexible: Provide options.
Straightforward: Be obvious and not ambiguous.
Perceptible: Don’t assume anything.
Informative: Be timely, predictable, uncomplicated and precise.
Preventative: Provide easy to follow instructions and gently guide users.
Tolerant: Handle errors respectfully.
Effortless: Don’t make demands or place restrictions on your users.
Accommodating: Be approachable, uncluttered and give people room to manoeuvre.
Consistent: Follow standards, guidelines, conventions and best practices.
Paul Robert Lloyd
We can start the work of building this framework, by agreeing upon a set design principles, each working in service of a broader goal, that of building a web that is and remains accessible to all.
Creativity needs the support of knowledge to be able to perform at its best. It is not the intention of this little book to stifle creativity or to reduce it to a bunch of rules. It is not the formula that prevents good design from happening but lack of knowledge of the complexity of the Design profession. It’s up to the brain to use the proper formula to achieve the desired result.
Part One: The Intangibles
Semantics
Syntactics
Pragmatics
Discipline
Appropriateness
Ambiguity
Design is One
Visual Power
Intellectual Elegance
Timelessness
Responsibility
Equity
Part Two: The Tangibles
Paper Sizes
Grids, Margins, Columns and Modules
A Company Letterhead
Grids for Books
Typefaces, The Basic Ones
Flush left, centered, justified
Type Size Relationships
Rulers
Contrasting Type Sizes
Scale
Texture
Color
Layouts
Sequence
Binding
Indentity and Diversity
White Space
A collection of experiences
Willem Sandberg
A poster has to be joyous, unless it has to arouse compassion.
Red has to be in every poster.
A poster has to provoke a closer look, otherwise it doesn’t endure.
With a respect for society, designer and director both are responsible for the street scene. A poster does not only have to revive the street, it also has to be human.
So, in the absence of anything else, here are 15 principles on what makes a good service. They’re based on years of working on bad services, and trying to build good ones.
Enable a user to complete the outcome they set out to do
Be easy to find
Clearly explain its purpose
Set the expectations a user has of it
Be agnostic of organisational structures
Require the minimum possible steps to complete
Be consistent throughout
Have no dead ends
Be usable by everyone, equally
Respond to change quickly
Work in a way that is familiar
Encourage the right behaviours from users and staff
Clearly explain why a decision has been made
Make it easy to get human assistance
Require no prior knowledge to use
Brian Eno
Several of the principles were immediately useful, and put straight into practice; they either reinforced an earlier thought or opened up entirely new vistas. Several others are unfurling as we go. A few more are more broadly relevant, well beyond our street-oriented agenda. Here they are:
The web should be a platform that helps people and provides a positive social benefit. As we continue to evolve the web platform, we must therefore consider the consequences of our work. The following document sets out ethical principles that will drive the W3C's continuing work in this direction.
Reduce the cost of using and acting on the evidence in the archive.
Engage new people in the records.
Preserve access to the evidence for as long as possible in as many ways as possible.
Focus on people their lives, their work, their dreams.
Every millisecond counts.
Simplicity is powerful.
Engage beginners and attract experts.
Dare to innovate.
Design for the world.
Plan for today’s and tomorrow’s business.
Delight the eye without distracting the mind.
Be worthy of people’s trust.
Add a human touch.
Government Digital Service
These guidelines are intended for people building digital services for the GOV.UK domain. … We believe that the work should do the talking, so underneath each of the principles there are examples of how we have applied that thinking in the work released so far.
These principles guide all of our design. Use them to get started on a project and to help with making decisions. They're inspired by the NHS Constitution that's steered the NHS for 70 years.
Put people at the heart of everything you do
Design for the outcome
Be inclusive
Design for context
Design for trust
Test your assumptions
Make, learn, iterate
Do the hard work to make it simple
Make things open. It makes things better
U.S. Digital Services
To increase the success rate of these projects, the U.S. Government needs a new approach. We created a playbook of 13 key “plays” drawn from successful best practices from the private sector and government that, if followed together, will help government build effective digital services.
Our 8 design principles outline our approach to design for digital
channels — they are the foundation of our UI and UX output. Using
them will help with decision making and can be used to measure
the success of a design.
Our digital design principles reflect how we think about design. They provide a way for us to look at the work we create and how we create it: building the right thing; building the thing right.
At Pitch, we believe that software development is inherently collaborative. After growing to more than 70 engineers around the world, we decided it was a good time to write down our principles to keep us aligned as we scale.
Unlocking the team over individual contribution
Group knowledge over individual expertise
Small incremental changes over perfection at first try
Mental health services need to be clear in how they are delivered, what they offer and when and how change will occur in order for people to make informed choices.
People should feel they are able to safely engage in expressing themselves and receive support in a safe manner with appropriate guidance and rules to ensure theirs and others’ safety and privacy is maintained.
Build reliability and consistency in your service delivery. This ensures the promise you make can be reliably delivered for people to use and retains a level of consistency in service continuity for users, particularly across multi-service provision.
The guidelines and Success Criteria are organized around the following four principles, which lay the foundation necessary for anyone to access and use Web content. Anyone who wants to use the Web must have content that is:
Perceivable
It can't be invisible to all of their senses.
Operable
The interface cannot require interaction that a user cannot perform.
Understandable
The content or operation cannot be beyond their understanding.
Robust
As technologies and user agents evolve, the content should remain accessible.
These design principles are meant to guide the ongoing design and development of AMP. They should help us make internally consistent decisions.
User Experience > Developer Experience > Ease of Implementation.
Don’t design for a hypothetical faster future browser.
Don’t break the web.
Solve problems on the right layer.
Only do things if they can be made fast.
Prioritise things that improve the user experience – but compromise when needed.
No whitelists.
Software Design Principles
Front-end Development
I realized that in order to really know whether our work is any good, we need a higher level of principles that can be used as a measuring stick for implementing design. We need something that is removed from a specific language like CSS or an opinionated way of writing it.
The document is written semantically and logically, with or without styles.
Efficient
The least amount of markup and assets are used to achieve the design.
Standardized
Rules for common values are stored and used liberally.
Abstracted
Base elements are separated from a specific context and form a core framework.
Modular
Common elements are logically broken into reusable parts.
Configurable
Customizations to base elements are available through optional parameters.
Scalable
The code is easily extended and anticipates enhancements in the future.
Documented
All elements are described for others to use and extend.
Accurate
The final output is an appropriate representation of the intended design.
Inclusive Design
They are intended to give anyone involved in the design and development of websites and applications - designers, user experience professionals, developers, product owners, idea makers, innovators, artists and thinkers — a broad approach to inclusive design.
Ensure your interface provides a comparable experience for all so people can accomplish tasks in a way that suits their needs without undermining the quality of the content.
Consider situation
People use your interface in different situations. Make sure your interface delivers a valuable experience to people regardless of their circumstances.
Be consistent
Use familiar conventions and apply them consistently.
Give control
Ensure people are in control. People should be able to access and interact with content in their preferred way.
Offer choice
Consider providing different ways for people to complete tasks, especially those that are complex or non standard.
Prioritise content
Help users focus on core tasks, features, and information by prioritising them within the content and layout.
Add value
Consider the value of features and how they improve the experience for different users.
Exclusive Design
Where Inclusive Design is about designing for everybody in every context, Exclusive Design is for those of us who do not know everybody in every context yet.
We work with one real person with a disability, and closely observe how they react to our design.
Ignore conventions
If during our tests it turns out the conventions/guidelines/best practices aren't good enough, we improve them.
Prioritise Identity
We get to know the person we work with closely, and soak our design, our process and our organisations with their identity.
Add Nonsense
We explicitly allow crazy/weird/uncommon/uncomfortable ideas to flourish. That’s where the unknown things are hidden.
Web Development
As web developers, we are responsible for shaping the experiences of user’s online lives. By making choices that are ethical and user-centered, we create a better web for everyone.
It's what enables us to debate whether something “Is Facebook” or “Isn't Facebook,” it's what allows us to evaluate whether anything we’re designing could be improved.
It’s never too early to talk about principles for your product. They can feel premature because they’re not what we typically consider signs of progress, such as mocks or prototypes. Nevertheless, if written correctly, you’ll be surprised at how often they will come up in conversations, during new employee onboarding, design critiques, and brainstorms.
This principle was often referred to while we were designing the Medium editor. We purposely traded layout, type, and color choices for guidance and direction. Direction was more appropriate for the product because we wanted people to focus on writing, and not get distracted by choice.
Appropriate over Consistent.
This might seem controversial, but when applied across devices, its purpose is clear. We were willing to break consistency if it was more appropriate for the OS, device, or context.
Evolving over Finalized.
This is exemplified in the ability to share Medium drafts, write responses, and leave notes. The content on Medium should be antifragile, improving with use and evolving overtime. We did not want to design printed books for the internet.
Mapbox
After a few weeks sketching and debating, we stepped back and created some simple design principles before moving forward:
Transitional interfaces are easier to learn and more pleasant to use.
Interactions should be delightful and surprising.
Focus the user on one primary action at a time.
Firefox
Is what we’re making a clear expression of what it means to be Firefox? What will make it more Firefoxy? What will we not do because it’s not true to Firefox?
These design principles were developed by and for the Android User Experience Team to keep users' best interests in mind. For Android developers and designers, they continue to underlie the more detailed design guidelines for different types of devices.
Focus on not stopping the user and all else will follow
Design for big gestures
Think about stream cards first
Do one thing, really fast
Design for the corner of the eye
Don’t be a constant shoulder tapper
Google Glass
Glass is fundamentally different than existing mobile platforms in both design and use. Follow these principles when building Glassware to give users the best experience.
Celebrate data while respecting user and device context.
Be smart and appropriate for the task at hand.
Understand the broader contexts of use.
Arch Linux
The following five core principles comprise what is commonly referred to as the Arch Way, or the Arch Philosophy, perhaps best summarized by the acronym KISS for Keep It Simple, Stupid.
Arch Linux defines simplicity as without unnecessary additions, modifications, or complications, and provides a lightweight UNIX-like base structure that allows an individual user to shape the system according to their own needs. In short: an elegant, minimalist approach.
Code-correctness over convenience
Simplicity of implementation, code-elegance, and minimalism shall always remain the reigning priorities of Arch development.
User-centric
Arch Linux targets and accommodates competent GNU/Linux users by giving them complete control and responsibility over the system.
Openness
Arch Linux uses simple tools, that are selected or built with openness of the sources and their output in mind.
Freedom
By keeping the system simple, Arch Linux provides the freedom to make any choice about the system.
Web Design
What principles do designers need to understand to create better designs?
For all of these principles, it is not yet clear how to best achieve them, and there are sure to be many possible solutions with different tradeoffs. We’ll need to experiment as community with various approaches. The collective’s primary goal is to report on such efforts and raise awareness of work in these directions.
Easy to change
Software must be as easy to change as it is to use it.
Arbitrary recombination and reuse
All layers, from the user interface through functionality to the data within, must support arbitrary recombination and reuse in new environments.
Open-ended potential
Tools should strive to be easy to begin working with but still have lots of open-ended potential.
Retain ownership and control
People of all experience levels must be able to retain ownership and control.
Freely sharable
Recombined workflows and experiences must be freely sharable with others.
Modifying in the context of use
Modifying a system should happen in the context of use, rather than through some separate development toolchain and skill set.
Thoughtfully crafted
Computing should be a thoughtfully crafted, fun, and empowering experience.
Hardware Design Principles
The Clock Of The Long Now
These are the principles that Danny Hillis used in the initial stages of designing a 10,000 Year Clock. We have found these are generally good principles for designing anything to last a long time.
Rather than solving problems from scratch, adapt other people's solutions, and then give them credit.
Design for materials and components which are reasonably cheap to buy, low-carbon and fully recyclable or biodegradable.
Design structures which can be assembled with minimal formal skill or training, and without the use of power tools.
WikiHouses should be capable of being habitable throughout the year, and as efficient as possible in the use of energy and water.
Design in such a way as to offer maximum provision for the safety, security and health (both mental and physical) of the users at all stages of the structure's life.
As a general rule, design for the climate, culture, economy and legal / planning framework in which you live, and you know best. Others will then be able to adapt the design to suit their environment.
Share your work as much and as openly as possible, it might come back better. At very least you'll have contributed to solving a common problem.
“It is easier to ship recipes than cakes and biscuits” — John Maynard Keynes
Design to dismantle. The easier it is to dismantle structures or replace individual parts, the better.
Design for mistakes. Try to design components which either make it impossible for the assembler to get it wrong or are designed in such a way that it doesn't matter if they do.