Компоненты в Реакте делятся на несколько основных групп (напишите где ошибаюсь):
Ошибаетесь в том что в реакте компоненты делятся на какие-то такие группы. В реакте компоненты делятся совсем по другому - функциональные, на основе классов и так далее.
на презентативные/контейнеры они делятся уже не "в реакте", а в вашем конкретном приложении, при условии что вы выбрали тот подход для построения который предлагается в статьях Дена Абрамова.
Стоит отметить что это было просто его мнение на тот момент, а сейчас он пишет:
Update from 2019: I wrote this article a long time ago and my views have since evolved. In particular, I don’t suggest splitting your components like this anymore.
Можно выбрать и какой-то другой подход. И делить по другому. Или вообще на других принципах строить архитектуру. Или видоизменить его подход под какие-то свои конкретные нужны и так далее.
поэтому ответ на вопрос:
Если мы хотим чтобы шапка была серая, куда писать этот стиль?
Зависит от того - как вы в итоге строите свое приложение.
Поэтому ответ - как вы сами считаете правильным.
Для меня критейрий прост - если вы решили делать вещи каким-то образом и через время, когда вам нужно что-то сделать в этом коде вы материтесь и страдаете - решение было неверным. надо делать по другому. Если же меняете то что нужно достаточно легко и без проблем - вы все сделали правильно.
Когда приложение достаточно вырастет - вы сами поймете как для вас лучше, если будете обращать внимание.
Если вам обязательно нужны формальные правила построения компонентов - определите для себя любые как больше нравится и им следуйте. Потом поменяете, если не зайдет.