InheritedWidget is a base class that allows classes that extend it to propagate information down the tree efficiently. Basically, it works by notifying registered build contexts if there is any change . Therefore, the descendant widgets that depend on it will only be rebuilt if necessary.