Fundamentos
Ícones
betaPhosphor é a única família. Ícone herda a cor do texto ao redor.
Ainda não é estável porque Pendência editorial: oQueE, quandoUsar, quandoNaoUsar; Rota não varrida pelo sensor. Ausência de medição não é aprovação. O contrato de maturidade explica o que cada requisito exige.
Uma família só
Phosphor é a única biblioteca de ícones do sistema. Ícone herda a cor do texto ao redor, então acompanha o tema sem ninguém pintá-lo.
// componente de servidor
import { GraduationCap } from "@phosphor-icons/react/dist/ssr"
// componente de cliente
import { GraduationCap } from "@phosphor-icons/react"
<GraduationCap className="size-4 text-muted-foreground" />Pesos
regular é o padrão. fill marca estado ativo ou selecionado. Os demais existem para momentos de display — não misture pesos na mesma superfície.
thin
light
regular
bold
fill
duotone
Tamanhos
Dimensione com as utilidades de tamanho, não com a prop size — assim o ícone acompanha o componente que o contém.
size-3dentro de botão xs
size-4controles e menus
size-5ícone isolado
size-6destaque
Dentro de componentes
O espaçamento entre ícone e texto vem do atributo data-icon, não de margem manual. Em botão só de ícone, sempre defina aria-label.
<Button>
<Plus data-icon="inline-start" />
Nova turma
</Button>
<Button size="icon-md" variant="outline" aria-label="Adicionar">
<Plus />
</Button>