# Components Spec

Components are elements that provide concrete functionality.

# Conventions

Components must:

  • Define a descriptive name
  • Have one single responsibility
  • Name properties as nouns
  • Declare private/protected properties only
  • Implement a defined interface

Components should:

  • Prefer composition over inherence
  • Prefer to implement immutability

# Design

TIP

Components inherit the Interface Spec.