Оба подхода могут быть правильными в зависимости от конкретного контекста и целей проекта.
Если вы ожидаете, что блок карточки будет использоваться в нескольких местах на вашем сайте или приложении, то лучше использовать второй подход, где классы будут относиться к абстрактным блокам (header, body, footer), чтобы их можно было легко переиспользовать.
Если же блок карточки будет использоваться только в одном месте и имеет уникальный дизайн, то можно использовать первый подход, где классы будут отражать конкретные элементы карточки (username, avatar, actions).
В любом случае, важно придерживаться консистентности и использовать понятные и легко запоминающиеся имена классов для удобства сопровождения и совместной работы с другими разработчиками