SWCore / Componentes / Rating

Rating Componentes

Avaliação por estrelas, somente-leitura ou interativa, com suporte a meia-estrela.

O que é

Mostra ou coleta uma nota de 1 a N estrelas — avaliação de produto, feedback de atendimento.

Como funciona

Com um valor numérico no atributo, renderiza estático (inclusive meia-estrela via gradiente de texto). Sem valor, vira interativo: clique define a nota, clicar de novo na mesma estrela zera.

Exemplos

Somente leitura — sw-rating="4.5" Ao vivo
(127)
<!-- Valor no atributo: inteiro ou decimal -->
<div sw-rating="5"></div>
<div sw-rating="4.5"></div>
<div sw-rating="3.7"></div>

<!-- Com contador de avaliações -->
<div sw-rating="4.5"></div>
<span class="sw-rating-cnt">(127 avaliações)</span>
Interativo Ao vivo

5 estrelas (padrão)

Valor inicial = 3

10 estrelas

<!-- Interativo — sw-rating sem valor -->
<div sw-rating class="is-int"></div>

<!-- Com valor inicial -->
<div sw-rating sw-rating-val="3" class="is-int"></div>

<!-- 10 estrelas -->
<div sw-rating sw-rating-max="10" class="is-int"></div>
Em formulário Ao vivo

Avalie este produto

<form method="POST" action="/avaliar">
  <div sw-rating class="is-int">
    <input type="hidden" name="nota" value="0">
  </div>
  <button type="submit">Enviar</button>
</form>
Tamanhos Ao vivo

SM

Normal

LG

SM interativo

LG interativo

<div sw-rating="4" class="is-sm"></div>  <!-- pequeno -->
<div sw-rating="4"></div>                <!-- normal (padrão) -->
<div sw-rating="4" class="is-lg"></div>  <!-- grande -->
Cores Ao vivo

Padrão (dourado)

Primário

Sucesso

Erro

Primário interativo

<div sw-rating="4"></div>              <!-- dourado (padrão) -->
<div sw-rating="4" class="is-pri"></div>  <!-- cor primária -->
<div sw-rating="4" class="is-suc"></div>  <!-- sucesso (verde) -->
<div sw-rating="4" class="is-err"></div>  <!-- erro (vermelho) -->
API JavaScript Ao vivo
// Pegar instância (elemento com is-int)
const el = document.querySelector('[sw-rating].is-int');
const inst = el._swRating;

// Ler nota atual
console.log(inst.getValue()); // ex: 4

// Definir por código
inst.setValue(5);

// Ouvir eventos de mudança
el.addEventListener('sw:rating:change', (e) => {
  console.log('Nova nota:', e.detail.value);
});
Exemplo real — card de produto Ao vivo

Fone Bluetooth Pro X

(2.349)

R$ 349,90

Deixe sua avaliação

Como você avalia este produto?

Atributos

sw-rating="3.5"
valor fixo, somente leitura (aceita meio ponto)
sw-rating (vazio) + class="is-int"
interativo
sw-rating-max
total de estrelas (padrão 5)
sw-rating-val
no modo interativo, valor inicial já marcado (padrão 0) — sem efeito no modo somente leitura

Variantes

is-int
ativa o modo interativo (clicável, com hover e navegação por teclado)
is-sm / is-lg
tamanhos pequeno e grande
is-pri / is-suc / is-err
cores alternativas às estrelas ativas (padrão é dourado)

Eventos

sw:rating:change
{ value }

API (JavaScript)

el._swRating.getValue()
retorna a nota atual (só no modo interativo)
el._swRating.setValue(n)
define a nota por código (só no modo interativo)

Requisitos

Nenhuma.

Limitações — o que ele não faz

  • Não tem os aliases legados swrating-*/y2rating-* do SW original — só a API sw-rating.