A beautiful, interactive weather web app built with React + Vite, featuring a liquid-glass UI, a 3D backdrop that reacts to your mouse, real-time conditions, and a full 7-day + 24-hour forecast.
- π Search any city (press Enter or click π) + quick-pick city chips
- π "My Location" β auto-detects where you are using geolocation
- π‘οΈ Live weather β temperature, feels-like, description & animated icon
- π 7-Day Forecast β day/date, icon, rain chance and min/max range bars
- β° Next 24 Hours β scrollable hourly strip with temps & rain chance
- π§ Today's Details β humidity, wind + compass, pressure, visibility, UV index, precipitation, sunrise & sunset
- π Live clock with full date, plus the local time of the place you searched
- π‘οΈ Β°C / Β°F toggle
- π§ Liquid-glass design β frosted panels, aurora background, cursor glow
- π Interactive 3D β glass cubes, orbs & rings that parallax with your mouse, and a hero card that tilts toward your cursor
- React 19 + Vite
- Plain CSS (glassmorphism & 3D transforms β no UI libraries)
- OpenWeatherMap API β current conditions
- Open-Meteo API β 7-day & hourly forecast (free, no key needed)
# 1. Clone & enter the project
git clone https://github.com/arunmeyyappanplhere/Weather-App.git
cd Weather-App
# 2. Install dependencies
npm install
# 3. Add your OpenWeatherMap API key
# Create a .env file in the project root:
echo VITE_APP_ID=your_api_key_here > .env
# Free key: https://openweathermap.org/api
# 4. Run it
npm run devThen open π http://localhost:5173
src/
βββ assets/ # Weather icons (sun, cloud, rain, snowβ¦)
βββ components/
β βββ Weather.jsx # All app logic + UI
β βββ Weather.css # Glass, aurora & 3D styling
βββ App.jsx
βββ index.css
βββ main.jsx
- You search a city (or hit My Location).
- OpenWeatherMap returns the current conditions + coordinates.
- Those coordinates are passed to Open-Meteo, which supplies the 7-day and hourly forecast.
- Everything renders in frosted-glass panels over an animated 3D scene β move your mouse around and watch it respond! β¨
β If you like this project, give it a star on GitHub!