01 · Flutter package
full_svg_flutter
Mantenha o SVG como formato de origem dentro do Flutter.
Por que existe
Ícones estáticos são só uma pequena parte do SVG. Assets de produto podem depender de SMIL, animação CSS, morphing, filtros, texto ou de um player JavaScript inline. Converter cria uma segunda fonte da verdade; uma WebView adiciona um segundo sistema de renderização.
Instalação
flutter pub add full_svg_flutterInício rápido
import 'package:full_svg_flutter/full_svg_flutter.dart';
// Static or animated — the runtime detects the document.
FSvgPicture.asset(
'assets/hero.svg',
width: 240,
semanticsLabel: 'Product illustration',
);
// Existing static flutter_svg usage can keep the familiar API.
SvgPicture.asset('assets/icon.svg');Cobertura
- Static SVG and DOM-preserving rendering
- SMIL and CSS @keyframes animation
- Path morphing and motion paths
- All 17 SVG filter primitives
- Masks, clipping, gradients, patterns, and rich text
- Inline JavaScript and SVGator exports
- Playback control and SVG <view> navigation
- flutter_svg-compatible static API
Como funciona
O pacote faz o parsing do documento SVG em um modelo próprio que preserva o DOM, avalia o estado de estilo e animação e então pinta pelo Flutter. Conteúdo estático e animado compartilham o mesmo motor. O JavaScript só inicia, sob demanda, quando existe um elemento script.
Use quando
- Você recebe SVGs animados ou assets do SVGator e não pode mudar o formato de origem.
- Você precisa de fidelidade em filtros, máscaras, texto ou animação além da renderização de ícones estáticos.
- Você quer uma API familiar no estilo do flutter_svg e um caminho de migração sem WebView.
Mapa da API
FSvgPicture- Widget principal para assets estáticos ou animados a partir de asset, rede, string, arquivo ou bytes.
SvgPicture- Ponto de entrada estático, compatível com o flutter_svg.
AnimatedSvgController- Reproduz, pausa, faz seek, muda velocidade ou direção e alterna views do SVG.
renderSvgToPicture- Grava um SVG em um Picture para pintura customizada ou rasterização.
svg.cache- Cache configurável de documentos decodificados, compartilhado entre widgets.
Saiba antes de publicar
- É um runtime SVG, não um DOM de navegador completo; foreignObject e frameworks que dependem do navegador estão fora do escopo.
- Valide visualmente assets com filtros complexos e texto em direções mistas antes da release.