A beautiful, configurable weather widget for your Filament dashboard.
Powered by the OpenWeatherMap API, fully translatable, and supports °C/°F, animated Weather Icons, and optional response caching.
- 🌤️ Displays current temperature, condition, hourly forecast and weather icons
- 🔁 Auto-refresh at a configurable interval
- ☁️ Supports both metric and imperial units (°C/°F)
- 🌍 Multi-language support
- 🧠 Optional caching (prevents exceeding API rate limits)
- ⚙️ Customizable location by
city - 🎨 Supports 3 icon styles: Monochrome, Line, and Fill
- 🔄 Supports static and animated icon variants
- PHP 8.2 or higher
- Laravel 11.x or 12.x
- Filament 4.x or 5.x
You can install the package via composer:
composer require arshaviras/weather-widgetAdd the widget to your Filament panel configuration:
use Arshaviras\WeatherWidget\Widgets\WeatherWidget;
use Filament\Panel;
public function panel(Panel $panel): Panel
{
return $panel
// ... other configuration
->widgets([
//...
WeatherWidget::class,
])
}Publish the config file:
php artisan vendor:publish --tag="weather-widget-config"This is the contents of the published config file:
return [
/**
* API Key for Current Weather Data
* You can get your API key from OpenWeatherMap:
* https://openweathermap.org/price
*/
'api_key' => env('OPENWEATHER_API_KEY', ''),
/**
* Default city for weather data
*/
'city' => 'Yerevan',
/**
* Units for temperature and other measurements
* Options: 'metric', 'imperial'
* 'metric' - Celsius (°C), 'imperial' - Fahrenheit (°F)
* Default is 'metric'
*/
'units' => 'metric',
/**
* Refresh (Poll) interval in minutes
* This determines how often the weather data will be refreshed.
* This also factors into the cache duration.
*/
'refresh_minutes' => 30,
/**
* Icon settings
* You can customize the icon set and variant used in the widget.
* 'icon_set' can be 'fill', 'line', or 'monochrome'.
*/
'icon_set' => 'fill',
/**
* Icon variant
* Options: 'static', 'animated' (only for fill/line icons)
*/
'icon_variant' => 'animated',
];If you want to customize the translations, you can publish the translations file:
php artisan vendor:publish --tag="weather-widget-translations"Once the widget is registered, a "Weather Widget" will automatically be added to your Filament Dashboard.
fill– Filled iconsline– Outlined iconsmonochrome– Black/White icons
| Light Mode | Dark Mode |
|---|---|
![]() |
![]() |
| Light Mode | Dark Mode |
|---|---|
![]() |
![]() |
| Light Mode | Dark Mode |
|---|---|
![]() |
![]() |
Static and Animated (only for fill/line icons)
static- Static Iconsanimated- Animated icons
Meteo Icons by Bas Milius





