01 · Flutter package
full_svg_flutter
Tieni l'SVG come formato sorgente dentro Flutter.
Perché esiste
Le icone statiche sono solo una piccola parte di SVG. Gli asset di prodotto possono dipendere da SMIL, animazioni CSS, morphing, filtri, testo o un player JavaScript inline. Convertirli aggiunge una seconda fonte di verità; una WebView aggiunge un secondo sistema di rendering.
Installazione
flutter pub add full_svg_flutterQuick start
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');Copertura
- 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
Come funziona
Il package analizza il documento SVG in un proprio modello che preserva il DOM, valuta lo stato di stile e animazione, poi disegna tramite Flutter. Contenuto statico e animato condividono lo stesso motore. JavaScript parte in modo lazy, solo quando è presente un elemento script.
Usalo quando
- Ricevi asset SVG animati o SVGator e non puoi cambiare il formato sorgente.
- Ti serve una fedeltà di filtri, maschere, testo o animazioni che vada oltre il rendering di icone statiche.
- Vuoi un'API familiare in stile flutter_svg e un percorso di migrazione senza WebView.
Mappa dell'API
FSvgPicture- Widget principale per asset statici o animati da asset, rete, stringa, file o byte.
SvgPicture- Entry point statico, compatibile con flutter_svg.
AnimatedSvgController- Play, pausa, seek, cambio di velocità o direzione e passaggio tra view SVG.
renderSvgToPicture- Registra un SVG in una Picture per painting custom o rasterizzazione.
svg.cache- Cache configurabile delle sorgenti decodificate, condivisa tra i widget.
Da sapere prima del rilascio
- È un runtime SVG, non un DOM browser completo: foreignObject e i framework che dipendono dal browser sono fuori scope.
- Verifica visivamente gli asset con filtri complessi e testo a direzione mista prima del rilascio.