Interface design is the discipline of defining the boundaries, contracts, and points of interaction between components, systems, or between a system and its users. In software it encompasses both human-facing user interface design and machine-facing application programming interface design, focusing on clarity, consistency, and ease of correct use. Good interface design minimises coupling, communicates intent, and shapes how reliably and pleasantly the parts of a system can be combined or operated.

Overview

  • Interface design spans two complementary surfaces: the human surface, where layout, affordances, and feedback determine usability, and the programmatic surface, where method signatures, data contracts, and error semantics determine composability. In both cases the central principle is to make correct use easy and incorrect use difficult, surfacing the right capabilities while hiding implementation detail. Strong interfaces act as stable contracts that allow the systems on either side to evolve independently.

Key aspects

  • Clear contracts that decouple producers from consumers
  • Consistency in naming, behaviour, and visual language
  • Affordances and feedback that communicate intent
  • Error handling and graceful degradation at boundaries
  • Accessibility and inclusive design considerations

Applications

  • User interface and product design
  • Public and internal API design
  • Hardware and protocol interface specification
  • Design systems and component libraries
  • Cross-team integration contracts

Provenance

  • This class was materialised to resolve inbound references from existing classes in the knowledge graph.