… we’ve learned from some of the core ideas that have made the Internet so powerful, principles like Postel’s Law (“Be conservative in what you do, be liberal in what you accept from others.”), the Principle of Least Surprise (“In interface design, always do the least surprising thing.”), and key insights from the Unix philosophy.
Knowing which capability you are building and whether you are implementing, affording, or styling it enables you to maintain focus. Be conscious of the feature you are working on and what it lacks to carry users over the gap. Check yourself when you make visual decisions. Are you trying to reveal the feature? To explain how it works? Is the problem artistic or does it hinder users from reaching their goal?
This is the framework I use when I design products. The core of the product is its capabilities. Capabilities are the things that customers care about and depend on you for. Capabilities are afforded by the interface. The interface reveals them, explains them, makes them possible. And finally the capabilities are implemented in code so something tangible happens when users operate that interface.