# Components spec

Components are elements that provide concrete functionality.

# Conventions

Components must:

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

Components should:

  • Prefer composition over inheritance.
  • Prefer to implement immutability.

# Design

TIP

Components inherit the Interface Spec.