A modern cross-platform weather application built with Avalonia UI and .NET 9, featuring real-time data, dynamic animations, and adaptive themes.
- UI Design: Material Design 3 with glassmorphism, smooth animations, circadian themes (12 periods), interactive charts, and responsive layout.
- Weather Data: Real-time from OpenWeatherMap, 7-day forecast, hourly trends, multi-city tracking, advanced search (e.g.,
rainy:london). - Animations: Realistic effects for clouds, rain, snow, lightning, fog, sun, and day/night cycles based on sunrise/sunset.
- Data Management: Local storage for favorites, caching, persistent settings, auto-refresh.
- Clone the repository:
git clone https://github.com/mehranqadirian/Weather-Dashboard.git cd Weather-Dashboard - Restore dependencies:
dotnet restore - Configure API Key: Replace
YOUR_API_KEYinServices/WeatherApiService.cswith your OpenWeatherMap key. - Build and run:
dotnet build dotnet run --project Weather.Dashboard.Avalonia
Download the latest version from Releases.
- Portable: win-x64.zip
- Portable: linux-x64.zip
- Intel: mac-x64.zip
- Apple Silicon: mac-arm64.zip
Search bar supports filters:
- City:
london - Conditions:
rainy:tokyo,snowy:moscow,sunny:california(also cloudy, storm, partly, foggy).
Weather.Dashboard.Avalonia/
├── Controls/ # Custom UI controls
│ ├── AnimatedBackgroundControl.axaml
│ ├── CityWeatherCard.axaml
│ ├── DetailView.axaml
│ └── SimpleLineChart.axaml
├── Services/ # Business logic
│ ├── WeatherApiService.cs
│ ├── CacheService.cs
│ ├── CircadianThemeService.cs
│ └── AnimationService.cs
├── ViewModels/ # MVVM ViewModels
│ ├── MainViewModel.cs
│ └── CityWeatherViewModel.cs
├── Models/ # Data models
│ ├── CurrentWeather.cs
│ ├── ForecastItem.cs
│ └── AnimationState.cs
└── Styles/ # UI styling
├── CommonStyles.axaml
└── Colors.axaml
- Avalonia UI 11.3.7
- .NET 9.0
- Polly for resilience
- System.Text.Json
- OpenWeatherMap API
- Material Design 3
- Edit
AnimationState.csfor particle/speed adjustments. - Extend
WeatherConditionenum inModels/WeatherCondition.csfor new conditions. - Modify
CircadianThemeService.csfor theme colors.
- Weather: OpenWeatherMap
- Icons: Material Design
- Powered by Lumora Flow
- Built with Avalonia UI
- Developer: Mehran Qadirian
- Email: [email protected] (update as needed)
- Project: https://github.com/mehranqadirian/Weather-Dashboard
- AppImage needs testing on Linux.
- Animations may lag on older hardware.
- API limits: 60 calls/minute (free tier).
- Air quality display
- Alerts/notifications
- Historical charts
- Desktop widgets
- Multi-language
- Theme override
- CSV export
Made with ❤️ using Avalonia UI
⭐ Star this repo if you find it useful!
