Pricing Cards
Em andamentoSeção "Planos Transparentes": três planos lado a lado — Básico, Pro (em destaque, "Mais Popular") e Empresarial —, cada um com preço, período, benefícios e, com href, "Assinar Agora". Os planos vêm por planos (E74).
- Função
- Campanha (marketing)
- Também chamado de
- planos, preços, tabela de preços, pricing
- Mora em
- app/components/organisms/marketing/PricingCards.tsx
- Última mudança
- 2026-09-30
Prévia
A peça ao vivo, vinda da ficha, na largura escolhida. Em larguras fixas, ela roda num quadro do tamanho de uma tela de verdade.
1280px, em tamanho real
Variantes na ficha
Lidas da ficha no build, na ordem do palco. Cada uma abre sozinha, sem o styleguide em volta — é o endereço que o palco carrega.
Quando usar
Em página de campanha com mais de um plano para comparar.
Faça
- Passe
planos, cada um com ohrefda assinatura; semhref, o plano fica sem botão.
Evite
- Publicar com os planos de exemplo (os que vêm sem prop).
Quando não usar. Para uma oferta só, com contagem regressiva, use o FloatingPricingCard. Para o preço de um curso, o CourseCard com preco.
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Título — Typography `h2` e a frase.
- Plano — Um Card: nome (`CardTitle`, `h3`), preço (Typography `h2` como `<p>`, E74) e período, benefícios com visto e, com `href`, o Button.
- Destaque — No plano popular: Card `elevated`, borda vermelha e o Badge "Mais Popular" no topo.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Plano popular | Maior (avança sobre os vizinhos), borda vermelha, Badge e Button primary. |
| Outros planos | Card padrão e Button outline. |
Comportamento
| Situação | O que acontece |
|---|---|
| "Assinar Agora" | Leva ao href do plano; sem ele, não aparece (E74) — testado na ficha. |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import { PricingCards } from '@/app/components/organisms/marketing/PricingCards';
<PricingCards />Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
planos | PlanoDePreco[] | PLANOS_PADRAO | não | Os planos por prop (E74): eram fixos no arquivo. |
Tokens de cor
Os tokens semânticos que o código da peça usa, com o valor de hoje em app/globals.css.
| Token | Valor | Usado como |
|---|---|---|
--primary | #D42B2B | bg-primaryborder-primaryring-primary/20text-primary |
--background | #FAFAFA | bg-background |
--border | #E5E5E5 | border-border |
--foreground | #1A1A1A | text-ink |
--muted-foreground | #595959 | text-muted-foreground |
--primary-foreground | #FFFFFF | text-primary-foreground |
Teclado
| Tecla | Faz |
|---|---|
| Tab | O "Assinar Agora" de cada plano com `href` — medido. |
| Enter | Segue o link da assinatura. |
Leitor de tela
O que é anunciado, e por quê.
- O nome de cada plano é
h3(CardTitle); o preço tem a aparência deh2, mas é parágrafo (E74) — o mapa de títulos ficava "Pro" (h3) > "R$ 99" (h2). - Cada "Assinar Agora" diz o plano no nome ("Assinar Agora: plano Pro",
sr-only).
O que sustenta o estado
Esta peça usa estatico. O estado dela é o de quem já foi ouvido com leitor de tela nesses padrões — e não uma passada sobre esta peça em específico.
Falta ouvir: estatico — ver docs/a11y-screen-reader-checklist.md.
Status e recursos
| Tipo | Recurso | Status |
|---|---|---|
| Código | app/components/organisms/marketing/PricingCards.tsx | Disponível |
| Ficha | Storybook (abre em outra aba) | Disponível |
| Teste de acessibilidade | axe em npm run test | No gate de todo commit |
| Leitor de tela | Passada da E33 | Falta ouvir |
| Design | Figma | Desativado até a Fase 2 |
Histórico
Os últimos commits que tocaram o arquivo, lidos do git no build.
0298af82026-09-30E147: fechamento da Entrega 11 — REPORT.md, verificação cross-agent e o gate estático estrito
O histórico completo está no GitHub (abre em outra aba).