Compound components are a React pattern that provides an expressive and flexible way for a parent component to communicate with its children, while expressively separating logic and UI. In compound components instead of passing state through props, we pass elements as children to a parent element.
Full article