Skip to content
Extensões

Comment

Componente de discussão com avatar, autor, timestamp, conteúdo e ações. Suporta aninhamento para respostas em thread. Usado para discussão em processos, pareceres técnicos e anotações. Dark mode automático via variáveis semânticas.

components/comment.css

Uso

Quando e como utilizar o componente de comentário.

  • Comentário único — Estrutura básica com avatar, autor, data e conteúdo.
  • Lista de comentários — Múltiplos comentários em sequência via .comment-list.
  • Respostas aninhadas — Thread de respostas indentadas via .comment__children.
  • Destacado — Comentário com fundo de destaque via .comment--highlighted.
  • Com área de resposta — Formulário integrado via .comment__reply.

Exemplos

Veja abaixo os exemplos interativos do componente de comentário.

Carregando exemplo...

Anatomia

Estrutura interna do componente e seus elementos.

ParteElementoDescrição
Container.commentFlex horizontal (avatar + body)
Avatar.comment__avatarCírculo 32px com foto ou iniciais
Body.comment__bodyContainer flex: 1
Header.comment__headerAutor + timestamp
Conteúdo.comment__contentTexto do comentário
Ações.comment__actionsLinks de responder, editar, excluir
Respostas.comment__childrenContainer indentado com border-left
Resposta.comment__replyTextarea + botões
Lista.comment-listContainer vertical com gap

Propriedades

Classes e estados disponíveis.

PropriedadeTipoDefaultDescrição
.commentclasseContainer de um comentário individual.
.comment__avatarclasseAvatar do autor (32x32, circular).
.comment__avatar--placeholderclassePlaceholder com iniciais quando não há foto.
.comment__bodyclasseContainer do conteúdo (flex: 1).
.comment__headerclasseLinha com autor e timestamp.
.comment__authorclasseNome do autor (14px w600).
.comment__timeclasseTimestamp do comentário (12px secundário).
.comment__contentclasseTexto do comentário.
.comment__actionsclasseAções: responder, editar, excluir.
.comment__actions-itemclasseBotão de ação individual.
.comment__childrenclasseRespostas aninhadas (indentadas com border-left).
.comment__replyclasseÁrea de resposta com textarea.
.comment-listclasseContainer para múltiplos comentários.
.comment--highlightedestadoComentário destacado (fundo amarelo sutil).
.comment--editingestadoModo edição do comentário.

Código

Snippets prontos para copiar e usar no seu projeto.

Comentário básico

html
<div class="comment">
  <div class="comment__avatar">
    <img src="foto.jpg" alt="Ana Silva" />
  </div>
  <div class="comment__body">
    <div class="comment__header">
      <span class="comment__author">Ana Silva</span>
      <span class="comment__time">há 2 horas</span>
    </div>
    <p class="comment__content">Texto do comentário.</p>
    <div class="comment__actions">
      <button class="comment__actions-item">Responder</button>
      <button class="comment__actions-item">Editar</button>
    </div>
  </div>
</div>

Com placeholder de avatar

html
<div class="comment__avatar comment__avatar--placeholder">AS</div>

Lista com respostas aninhadas

html
<div class="comment-list">
  <div class="comment">
    <div class="comment__avatar"><!-- ... --></div>
    <div class="comment__body">
      <!-- header, content, actions -->
      <div class="comment__children">
        <div class="comment">
          <!-- resposta aninhada -->
        </div>
      </div>
    </div>
  </div>
</div>

Design

Especificações visuais e tokens utilizados.

Especificações

PropriedadeValor
Avatar32x32 circular
Gap avatar-body12px
AutorInter 14px w600
TimestampInter 12px
ConteúdoInter 14px, line-height 1.6
AçõesInter 12px w500
Indent filhos20px margin-left + 20px padding-left
Border filhos2px solid

Tokens utilizados

ElementoToken
Autor--text-base-neutral-default
Timestamp--text-base-neutral-secondary
Conteúdo--text-base-neutral-default
Ações--text-base-neutral-secondary → hover: --text-base-brand-default
Border filhos--border-base-neutral-default
Highlighted bg--surface-base-alert-container-warning

Design System interno do GALES