# PhorteCourseCard

> Cursos Livres (E-commerce) — fora do catálogo. Peça de produto do fluxo de cursos livres: não é uma das 81 peças do kit, não tem estado de promoção e não foi feita para reuso. Segue as mesmas regras de cor e acessibilidade.

Cartão de curso na grade do catálogo.

- Mora em: `app/components/organisms/cursos-phorte/PhorteCourseCard.tsx`
- Página: [https://phorte-design-system.vercel.app/styleguide/cursos-livres/PhorteCourseCard](https://phorte-design-system.vercel.app/styleguide/cursos-livres/PhorteCourseCard)
- Ficha: `stories/cursos-livres/phorte-course-card.stories.tsx` (no Storybook local — fora do catálogo publicado)
- Prévia ao vivo, sozinha: [https://phorte-design-system.vercel.app/previa/PhorteCourseCard/0](https://phorte-design-system.vercel.app/previa/PhorteCourseCard/0)
- Todas as peças: [https://phorte-design-system.vercel.app/llms.txt](https://phorte-design-system.vercel.app/llms.txt)

## Como usar no código

```tsx
import { PhorteCourseCard } from '@/app/components/organisms/cursos-phorte/PhorteCourseCard';

<PhorteCourseCard course={…} />
```

O `…` marca as props obrigatórias — ver *Propriedades*.

## Uso

### Variantes na ficha

1. [Padrão](https://phorte-design-system.vercel.app/previa/PhorteCourseCard/0)
2. [Outro curso](https://phorte-design-system.vercel.app/previa/PhorteCourseCard/1)

_Peça fora do catálogo: tem o resumo e o papel, e não texto de uso completo (decisão da E89). O resto desta página vem do código._

## Especificação

### Propriedades

| Prop | Tipo | Padrão | Obrigatória | Descrição |
| --- | --- | --- | --- | --- |
| `course` | `PhorteCourse` | — | sim |  |

### Tokens de cor

| Token | Valor | Usado como |
| --- | --- | --- |
| `--border` | #E5E5E5 | `bg-border`, `border-border` |
| `--foreground` | #1A1A1A | `bg-ink/85`, `text-ink` |
| `--primary` | #D42B2B | `border-primary`, `text-primary` |
| `--card` | #FFFFFF | `bg-card` |
| `--ink-inverse` | #FAFAFA | `text-ink-inverse` |
| `--muted` | #F4F6F9 | `bg-muted` |
| `--muted-foreground` | #595959 | `text-muted-foreground` |
| `--secondary` | #0B8434 | `bg-secondary` |
| `--secondary-foreground` | #FFFFFF | `text-secondary-foreground` |

## Acessibilidade

Sem estado de promoção: a peça está fora do catálogo. O axe roda nas variantes da ficha em `npm run test`; contraste abaixo de AA vira exceção declarada na própria ficha, com a conta.

## Status e recursos

| Tipo | Recurso | Status |
| --- | --- | --- |
| Código | `app/components/organisms/cursos-phorte/PhorteCourseCard.tsx` | Disponível |
| Ficha | `stories/cursos-livres/phorte-course-card.stories.tsx` | Storybook local |
| Teste de acessibilidade | axe em `npm run test` | No gate de todo commit |
| Design | Figma | Desativado até a Fase 2 |

### Histórico

- `fdd10ff` 2026-09-29 — ESTADO: E109 concluida, roteiro final fechado; proximo o merge na main
- Histórico completo no GitHub: https://github.com/srbunnie/Pos-Phorte-Design-System/commits/main/app/components/organisms/cursos-phorte/PhorteCourseCard.tsx
