Weather SVG Icons

A Flutter package for displaying static and animated weather SVG icons with an API similar to Flutter's Icon widget. It includes WMO weather-code mapping, day and night variants, and a typed icon catalog.

Features

  • Use familiar constants such as WeatherSvgIcons.rain.
  • Access all 519 bundled icons through typed WeatherSvgIcons.* constants.
  • Select icons directly from WMO weather interpretation codes.
  • Switch between static and animated SVG variants with one parameter.
  • Use the same API on Android, iOS, Linux, macOS, web, and Windows.

Installation

Add the package to your pubspec.yaml:

dependencies:
  weather_svg_icons: ^0.3.0

Then fetch the dependency:

flutter pub get

Usage by WMO code

import 'package:weather_svg_icons/weather_svg_icons.dart';

WeatherSvgIcon.byCode(
  61,
  isDay: true,
  animated: true,
  size: 32,
);

isDay selects the appropriate day or night variant for codes that support both.

Usage with an icon constant

Use an icon constant similarly to Flutter's Icon widget:

WeatherSvgIcon(
  WeatherSvgIcons.rain,
  isDay: true,
  animated: true,
  size: 32,
);

Every static icon in the package has a lower-camel-case constant. Asset names are converted directly, for example:

WeatherSvgIcons.partlyCloudyDayRain // partly-cloudy-day-rain.svg
WeatherSvgIcons.thermometerCelsius  // thermometer-celsius.svg
WeatherSvgIcons.windBeaufort10      // wind-beaufort-10.svg

When an animated variant is unavailable, animated: true safely falls back to the static SVG.

Available options

Parameter Default Description
isDay true Selects day or night variants when using WeatherSvgIcon.byCode.
animated false Uses the animated SVG asset.
size null Sets both width and height.
width / height null Sets dimensions independently when size is not provided.
fit BoxFit.contain Controls how the SVG fits its bounds.
colorFilter null Applies a color filter where supported by the renderer.
placeholder null Displays a widget while a native or static SVG is loading.
semanticsLabel icon name Provides an accessibility label.

Supported WMO codes

Codes Condition
0 Clear sky
1 Mainly clear
2 Partly cloudy
3 Overcast
45, 48 Fog
51, 53, 55 Drizzle
56, 57, 66, 67 Freezing drizzle or rain / sleet
61, 63, 65 Rain
71, 73, 75, 77 Snow
80, 81, 82 Rain showers
85, 86 Snow showers
95 Thunderstorm
96, 99 Thunderstorm with hail

Unknown codes use WeatherSvgIcons.notAvailable.

Platform behavior

Static icons are rendered with flutter_svg. Animated icons use full_svg_flutter on native platforms and the browser's SVG rendering on web.

Attribution

The bundled weather SVG assets are based on Meteocons by Bas Milius and are distributed under the MIT License. See LICENSE for the complete notices.

License

This package is available under the MIT License.

Libraries

weather_svg_icons