flocks_phosphor library
Phosphor Icons como AppIconProvider do Flocks.
Os 1.512 ícones do Phosphor nos 6 pesos, em fonte — seis TTFs de ~500 KB, de uma versão fixada do upstream, com os codepoints que o próprio Phosphor publica.
Ser fonte é a questão inteira do pacote. O Flutter não faz tree-shaking
de asset: enquanto isto aqui eram 9.072 SVGs, todo adotante levava 35 MB
para o bundle usando vinte ícones. Fonte ele sabe podar — o
--tree-shake-icons remonta cada TTF só com os glifos que o app cita. É a
mesma razão pela qual flocks_material nunca teve o problema: ícone do
Material é fonte, e vem dentro do Flutter.
Duas portas de entrada, e a diferença entre elas é o que preserva o ganho:
- o PhosphorIconProvider, que serve os 55
AppIconToken— o contrato — e é o que faz o design system inteiro desenhar; - as classes por peso (FlocksPhosphorRegular, FlocksPhosphorBold, …), para os outros 1.457, uma constante de cada vez.
É também a implementação de referência do eixo de ícone — um
flocks_material ou um flocks_lucide tem esta mesma forma.
Classes
- FlocksPhosphorBold
-
Os 1.512 ícones do Phosphor no peso
bold. - FlocksPhosphorDuotone
-
Os 1.512 ícones do Phosphor no peso
duotone. - FlocksPhosphorFill
-
Os 1.512 ícones do Phosphor no peso
fill. - FlocksPhosphorLight
-
Os 1.512 ícones do Phosphor no peso
light. - FlocksPhosphorRegular
-
Os 1.512 ícones do Phosphor no peso
regular. - FlocksPhosphorThin
-
Os 1.512 ícones do Phosphor no peso
thin. - PhosphorDuotoneIcon
-
Desenha um ícone
duotone— as duas camadas empilhadas. - PhosphorDuotoneIconData
-
Um ícone
duotone: dois glifos sobrepostos — quase sempre. - PhosphorIcon
- Desenha um glifo do Phosphor a partir de um IconData.
- PhosphorIconProvider
- Serve o contrato do Flocks com glifos do Phosphor, em qualquer um dos 6 pesos.
Enums
- PhosphorWeight
- Os seis pesos do Phosphor.
Constants
-
kFlocksToPhosphor
→ const Map<
String, String> - A tradução de um slug do Flocks para o nome no Phosphor.
-
kPhosphorContractBold
→ const Map<
String, IconData> -
kPhosphorContractDuotoneFigure
→ const Map<
String, IconData> -
A camada
figuredos 55AppIconTokenemduotone. -
kPhosphorContractDuotoneGround
→ const Map<
String, IconData> -
A camada
grounddos 55AppIconTokenemduotone. -
kPhosphorContractFill
→ const Map<
String, IconData> -
kPhosphorContractLight
→ const Map<
String, IconData> -
kPhosphorContractRegular
→ const Map<
String, IconData> -
kPhosphorContractThin
→ const Map<
String, IconData> -
A tradução dos 55
AppIconTokenem glifo, peso a peso. - kPhosphorDuotoneGroundOpacity → const double
- A opacidade da camada de fundo de um ícone duotone.
Functions
-
phosphorGlyph(
BuildContext context, {required IconData icon, required double size, Color? color}) → Widget -
O glifo cru de
icon, sem caixa, semântica nem centralização.