Weather

React Bootstrap 5 Weather templates & widgets

Responsive React Weather templates built with the latest Bootstrap 5. Examples of weather dashboards with icons, cards, real data from API, interactive animated backgrounds & more

Basic weather widget

Simple weather card with temperature, wind & humidity metrics.

Warsaw
15:07
13°C
Stormy
40 km/h
84%
0.2h
import React from "react";
import {
  MDBCard,
  MDBCardBody,
  MDBCol,
  MDBContainer,
  MDBIcon,
  MDBRow,
  MDBTypography,
} from "mdb-react-ui-kit";

export default function Basic() {
  return (
    <section className="vh-100" style={{ backgroundColor: "#4B515D" }}>
      <MDBContainer className="h-100">
        <MDBRow className="justify-content-center align-items-center h-100">
          <MDBCol md="8" lg="6" xl="4">
            <MDBCard style={{ color: "#4B515D", borderRadius: "35px" }}>
              <MDBCardBody className="p-4">
                <div className="d-flex">
                  <MDBTypography tag="h6" className="flex-grow-1">
                    Warsaw
                  </MDBTypography>
                  <MDBTypography tag="h6">15:07</MDBTypography>
                </div>

                <div className="d-flex flex-column text-center mt-5 mb-4">
                  <MDBTypography
                    tag="h6"
                    className="display-4 mb-0 font-weight-bold"
                    style={{ color: "#1C2331" }}
                  >
                    {" "}
                    13°C{" "}
                  </MDBTypography>
                  <span className="small" style={{ color: "#868B94" }}>
                    Stormy
                  </span>
                </div>

                <div className="d-flex align-items-center">
                  <div className="flex-grow-1" style={{fontSize: '1rem'}}>
                    <div>
                      <MDBIcon
                        fas
                        icon="wind fa-fw"
                        style={{ color: "#868B94" }}
                      />{" "}
                      <span className="ms-1"> 40 km/h</span>
                    </div>
                    <div>
                      <MDBIcon
                        fas
                        icon="tint fa-fw"
                        style={{ color: "#868B94" }}
                      />{" "}
                      <span className="ms-1"> 84% </span>
                    </div>
                    <div>
                      <MDBIcon
                        fas
                        icon="sun fa-fw"
                        style={{ color: "#868B94" }}
                      />{" "}
                      <span className="ms-1"> 0.2h </span>
                    </div>
                  </div>
                  <div>
                    <img
                      src="https://mdbcdn.b-cdn.net/img/Photos/new-templates/bootstrap-weather/ilu1.webp"
                      width="100px"
                    />
                  </div>
                </div>
              </MDBCardBody>
            </MDBCard>
          </MDBCol>
        </MDBRow>
      </MDBContainer>
    </section>
  );
}

Weather App

A simple application design for checking the weather in a given city.

Check the weather forecast

New York, US

Current temperature: 5.42°C

Feels like: 4.37°C

Max: 6.11°C, Min: 3.89°C

Scattered Clouds

import React from "react";
import {
  MDBCard,
  MDBCardBody,
  MDBCol,
  MDBContainer,
  MDBIcon,
  MDBInputGroup,
  MDBRadio,
  MDBRow,
  MDBTypography,
} from "mdb-react-ui-kit";

export default function WeatherApp() {
  return (
    <section className="vh-100">
      <MDBContainer className="h-100 py-5">
        <MDBRow className="justify-content-center align-items-center h-100">
          <MDBCol md="8" lg="6" xl="4">
            <MDBTypography tag="h3" className="mb-4 pb-2 fw-normal">
              Check the weather forecast
            </MDBTypography>

            <MDBInputGroup className="mb-3">
              <input
                className="form-control rounded"
                type="text"
                placeholder="City"
              />
              <a href="#!" type="button">
                <span
                  className="input-group-text border-0 fw-bold"
                  id="search-addon"
                >
                  Check!
                </span>
              </a>
            </MDBInputGroup>

            <div className="mb-4 p-2">
              <MDBRadio
                inline
                name="flexRadioDefault"
                id="flexRadioDefault1"
                label="Celcius"
                defaultChecked
              />
              <MDBRadio
                inline
                name="flexRadioDefault"
                id="flexRadioDefault2"
                label="Farenheit"
              />
            </div>

            <MDBCard className="shadow-0 border">
              <MDBCardBody className="p-4">
                <MDBTypography tag="h4" className="mb-1 sfw-normal">New York, US</MDBTypography>
                <p className="mb-2">
                  Current temperature: <strong>5.42°C</strong>
                </p>
                <p>
                  Feels like: <strong>4.37°C</strong>
                </p>
                <p>
                  Max: <strong>6.11°C</strong>, Min: <strong>3.89°C</strong>
                </p>

                <div className="d-flex flex-row align-items-center">
                  <p className="mb-0 me-4">Scattered Clouds</p>
                  <MDBIcon fas icon="cloud" size="3x" style={{color: '#eee'}} />
                </div>
              </MDBCardBody>
            </MDBCard>
          </MDBCol>
        </MDBRow>
      </MDBContainer>
    </section>
  );
}

Weather dashboard with API

A simple dashboard displaying current & future weather with data from free API setup using JavaScript.

Pressure: | Humidity:
Now
Today
Tomorrow
28
Day after tomorrow
28
import React, { useEffect, useMemo, useState } from "react";
import {
  MDBCard,
  MDBCardBody,
  MDBCardHeader,
  MDBCol,
  MDBContainer,
  MDBRow,
} from "mdb-react-ui-kit";

const QUERY_URL = "https://api.openweathermap.org/data/2.5/onecall?";
const LAT = "lat=52.229676&";
const LON = "lon=21.012229&";
const API_OPTIONS = "units=metric&exclude=minutely,alerts&";
const API_KEY = "appid=dbb76c5d98d5dbafcb94441c6a10236e";
const FILE = QUERY_URL + LAT + LON + API_OPTIONS + API_KEY;
const NAME = "Warsaw";
const TIME_NOW = new Date().getHours();

// Icons
let iconBaseUrl = "http://openweathermap.org/img/wn/";
let iconFormat = ".png";

export default function ApiExample() {
  const [data, setData] = useState(undefined);
  const [description, setDescription] = useState(undefined);
  const [temp, setTemp] = useState(undefined);
  const [pressure, setPressure] = useState(undefined);
  const [humidity, setHumidity] = useState(undefined);
  const [bgGif, setBGGif] = useState(undefined);

  const iconsFullyUrl = useMemo(
    () => ({
      today: iconBaseUrl + data?.current.weather[0].icon + iconFormat,
      tomorrow: iconBaseUrl + data?.daily[0].weather[0].icon + iconFormat,
      dAT: iconBaseUrl + data?.daily[1].weather[0].icon + iconFormat,
      now: iconBaseUrl + data.daily[1].weather[0].icon + iconFormat,
      plus1: iconBaseUrl + data.hourly[1].weather[0].icon + iconFormat,
      plus2: iconBaseUrl + data.hourly[2].weather[0].icon + iconFormat,
      plus3: iconBaseUrl + data.hourly[3].weather[0].icon + iconFormat,
      plus4: iconBaseUrl + data.hourly[4].weather[0].icon + iconFormat,
      plus5: iconBaseUrl + data.hourly[5].weather[0].icon + iconFormat,
    }),
    [data]
  );

  useEffect(() => {
    fetch(FILE)
      .then((res) => res.json())
      .then((data) => {
        setData(data);
        setDescription(data.current.weather[0].description);
        setTemp(Math.round(data.current.temp));
        setPressure(data.current.pressure);
        setHumidity(data.current.humidity);

        const main = data.current.weather[0].main;

        switch (main) {
          case "Snow":
            setBGGif(
              "url('https://mdbgo.io/ascensus/mdb-advanced/img/snow.gif')"
            );
            break;
          case "Clouds":
            setBGGif(
              "url('https://mdbgo.io/ascensus/mdb-advanced/img/clouds.gif')"
            );
            break;
          case "Fog":
            setBGGif(
              "url('https://mdbgo.io/ascensus/mdb-advanced/img/fog.gif')"
            );
            break;
          case "Rain":
            setBGGif(
              "url('https://mdbgo.io/ascensus/mdb-advanced/img/rain.gif')"
            );
            break;
          case "Clear":
            setBGGif(
              "url('https://mdbgo.io/ascensus/mdb-advanced/img/clear.gif')"
            );
            break;
          case "Thunderstorm":
            setBGGif(
              "url('https://mdbgo.io/ascensus/mdb-advanced/img/thunderstorm.gif')"
            );
            break;
          default:
            setBGGif(
              "url('https://mdbgo.io/ascensus/mdb-advanced/img/clear.gif')"
            );
            break;
        }
      });
  }, []);

  return (
    <section className="vh-100">
      <MDBContainer className="h-100">
        <MDBRow className="justify-content-center align-items-center h-100">
          <MDBCol md="9" lg="7" xl="5">
            <MDBCard
              className="text-white bg-image shadow-4-strong"
              style={{
                backgroundImage: bgGif ?? "url(https://mdbgo.io/ascensus/mdb-advanced/img/clouds.gif)"
              }}
            >
              <MDBCardHeader className="p-4 border-0">
                <div className="text-center mb-3">
                  <p className="h2 mb-1">{NAME}</p>
                  <p className="mb-1">{description}</p>
                  <p className="display-1 mb-1">{temp}°C</p>
                  <span className="">Pressure: {pressure}</span>
                  <span className="mx-2">|</span>
                  <span className="">Humidity: {humidity}%</span>
                </div>
              </MDBCardHeader>

              <MDBCardBody className="p-4 border-top border-bottom mb-2">
                <MDBRow className="text-center">
                  <MDBCol size="2">
                    <strong className="d-block mb-2">Now</strong>
                    <img src={iconsFullyUrl.now} className="" alt="" />
                    <strong className="d-block">{data?.hourly[0].temp}°</strong>
                  </MDBCol>

                  <MDBCol size="2">
                    <strong className="d-block mb-2">{TIME_NOW + 1}</strong>
                    <img src={iconsFullyUrl.plus1} className="" alt="" />
                    <strong className="d-block">{data?.hourly[1].temp}°</strong>
                  </MDBCol>

                  <MDBCol size="2">
                    <strong className="d-block mb-2">{TIME_NOW + 2}</strong>
                    <img src={iconsFullyUrl.plus2} className="" alt="" />
                    <strong className="d-block">{data?.hourly[2].temp}°</strong>
                  </MDBCol>

                  <MDBCol size="2">
                    <strong className="d-block mb-2">{TIME_NOW + 3}</strong>
                    <img src={iconsFullyUrl.plus3} className="" alt="" />
                    <strong className="d-block">{data?.hourly[3].temp}°</strong>
                  </MDBCol>

                  <MDBCol size="2">
                    <strong className="d-block mb-2">{TIME_NOW + 4}</strong>
                    <img src={iconsFullyUrl.plus4} className="" alt="" />
                    <strong className="d-block">{data?.hourly[4].temp}°</strong>
                  </MDBCol>

                  <MDBCol size="2">
                    <strong className="d-block mb-2">{TIME_NOW + 5}</strong>
                    <img src={iconsFullyUrl.plus5} className="" alt="" />
                    <strong className="d-block">{data?.hourly[5].temp}°</strong>
                  </MDBCol>
                </MDBRow>
              </MDBCardBody>

              <MDBCardBody className="px-5">
                <MDBRow className="align-items-center">
                  <MDBCol lg="6">
                    <strong>Today</strong>
                  </MDBCol>

                  <MDBCol lg="2" className="text-center">
                    <img className="w-100" src={iconsFullyUrl.today} alt="" />
                  </MDBCol>

                  <MDBCol lg="4" className="text-end">
                    {temp}°
                  </MDBCol>
                </MDBRow>

                <MDBRow className="align-items-center">
                  <MDBCol lg="6">
                    <strong>Tomorrow</strong>
                  </MDBCol>

                  <MDBCol lg="2" className="text-center">
                    <img
                      className="w-100"
                      src={iconsFullyUrl.tomorrow}
                      alt=""
                    />
                  </MDBCol>

                  <MDBCol lg="4" className="text-end">
                    {Math.round(data?.daily[0].temp.day) ?? undefined}°
                  </MDBCol>
                </MDBRow>

                <MDBRow className="align-items-center">
                  <MDBCol lg="6">
                    <strong>Day after tommorow</strong>
                  </MDBCol>

                  <MDBCol lg="2" className="text-center">
                    <img className="w-100" src={iconsFullyUrl.dAT} alt="" />
                  </MDBCol>

                  <MDBCol lg="4" className="text-end">
                    {Math.round(data?.daily[1].temp.day) ?? undefined}°
                  </MDBCol>
                </MDBRow>
              </MDBCardBody>
            </MDBCard>
          </MDBCol>
        </MDBRow>
      </MDBContainer>
    </section>
  );
}

Weather card

Minimalistic weather cards with background image reflecting temperature and clouds & sun icons.

import React from "react";
import {
  MDBCard,
  MDBCardBody,
  MDBCol,
  MDBContainer,
  MDBIcon,
  MDBRow,
  MDBTypography,
} from "mdb-react-ui-kit";

export default function Card() {
  return (
    <section className="vh-100" style={{ backgroundColor: "#C1CFEA" }}>
      <MDBContainer className="h-100">
        <MDBRow
          className="justify-content-center align-items-center h-100"
          style={{ color: "#282828" }}
        >
          <MDBCol md="9" lg="7" xl="5">
            <MDBCard
              className="mb-4 gradient-custom"
              style={{ borderRadius: "25px" }}
            >
              <MDBCardBody className="p-4">
                <div className="d-flex justify-content-between pb-2">
                  <div>
                    <h2 className="display-2">
                      <strong>23°C</strong>
                    </h2>
                    <p className="text-muted mb-0">Coimbra, Portugal</p>
                  </div>
                  <div>
                    <img
                      src="https://mdbcdn.b-cdn.net/img/Photos/new-templates/bootstrap-weather/ilu3.webp"
                      width="150px"
                    />
                  </div>
                </div>
              </MDBCardBody>
            </MDBCard>

            <MDBCard className="mb-4" style={{ borderRadius: "25px" }}>
              <MDBCardBody className="p-4">
                <div className="d-flex justify-content-around text-center pb-3 pt-2">
                  <div className="flex-column">
                    <p className="small">
                      <strong>21°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="sun"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>12:00</strong>
                    </p>
                    <p
                      className="mb-0 text-muted"
                      style={{ fontSize: ".65rem" }}
                    >
                      PM
                    </p>
                  </div>
                  <div className="flex-column">
                    <p className="small">
                      <strong>2°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="sun"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>1:00</strong>
                    </p>
                    <p
                      className="mb-0 text-muted"
                      style={{ fontSize: ".65rem" }}
                    >
                      PM
                    </p>
                  </div>
                  <div className="flex-column">
                    <p className="small">
                      <strong>20°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="cloud"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>2:00</strong>
                    </p>
                    <p
                      className="mb-0 text-muted"
                      style={{ fontSize: ".65rem" }}
                    >
                      PM
                    </p>
                  </div>
                  <div className="flex-column">
                    <p className="small">
                      <strong>19°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="cloud"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>3:00</strong>
                    </p>
                    <p
                      className="mb-0 text-muted"
                      style={{ fontSize: ".65rem" }}
                    >
                      PM
                    </p>
                  </div>
                  <div className="flex-column">
                    <p className="small">
                      <strong>18°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="cloud-showers-heavy"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>4:00</strong>
                    </p>
                    <p
                      className="mb-0 text-muted"
                      style={{ fontSize: ".65rem" }}
                    >
                      PM
                    </p>
                  </div>
                </div>
              </MDBCardBody>
            </MDBCard>

            <MDBCard className="mb-4" style={{ borderRadius: "25px" }}>
              <MDBCardBody className="p-4">
                <div className="d-flex justify-content-around text-center pb-3 pt-2">
                  <div className="flex-column">
                    <p className="small">
                      <strong>21°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="sun"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>Mon</strong>
                    </p>
                  </div>
                  <div className="flex-column">
                    <p className="small">
                      <strong>20°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="sun"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>Tue</strong>
                    </p>
                  </div>
                  <div className="flex-column">
                    <p className="small">
                      <strong>16°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="cloud"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>Wed</strong>
                    </p>
                  </div>
                  <div className="flex-column">
                    <p className="small">
                      <strong>17°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="cloud"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>Thu</strong>
                    </p>
                  </div>
                  <div className="flex-column">
                    <p className="small">
                      <strong>18°C</strong>
                    </p>
                    <MDBIcon
                      fas
                      icon="cloud-showers-heavy"
                      size="2x"
                      className="mb-3"
                      style={{ color: "#ddd" }}
                    />
                    <p className="mb-0">
                      <strong>Fri</strong>
                    </p>
                  </div>
                </div>
              </MDBCardBody>
            </MDBCard>
          </MDBCol>
        </MDBRow>
      </MDBContainer>
    </section>
  );
}
.gradient-custom {
/* fallback for old browsers */
background: #ffffff;

/* Chrome 10-25, Safari 5.1-6 */
background: -webkit-linear-gradient(to right, rgba(255, 255, 255, 1), rgba(255, 236, 210, 1));

/* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
background: linear-gradient(to right, rgba(255, 255, 255, 1), rgba(255, 236, 210, 1))
}

.carousel-indicators li {
background-color: #282828;
width: 7px;
height: 7px;
border-radius: 50%;
}

Current Weather info card

An illustrated card with current weather information.

weather

Juneau, Alaska, US

1.28°C

Feels Like: -1.08 °C

Snowy
import React from "react";
import {
  MDBCard,
  MDBCardBody,
  MDBCardImage,
  MDBCol,
  MDBContainer,
  MDBIcon,
  MDBRow,
  MDBTypography,
} from "mdb-react-ui-kit";

export default function CurrentInfo() {
  return (
    <section className="vh-100" style={{ backgroundColor: "#f5f6f7" }}>
      <MDBContainer className="h-100">
        <MDBRow className="justify-content-center align-items-center h-100">
          <MDBCol md="10" lg="8" xl="6">
            <MDBCard
              className="bg-dark text-white"
              style={{ borderRadius: "40px" }}
            >
              <div className="bg-image" style={{ borderRadius: "35px" }}>
                <MDBCardImage
                  src="https://mdbcdn.b-cdn.net/img/Photos/new-templates/bootstrap-weather/draw1.webp"
                  className="card-img"
                  alt="weather"
                />
                <div
                  className="mask"
                  style={{ backgroundColor: "rgba(190, 216, 232, .5)" }}
                ></div>
              </div>
              <div className="card-img-overlay text-dark p-5">
                <MDBTypography tag="h4" className="mb-0">Juneau, Alaska, US</MDBTypography>
                <p className="display-2 my-3">1.28°C</p>
                <p className="mb-2">
                  Feels Like: <strong>-1.08 °C</strong>
                </p>
                <MDBTypography tag="h5">Snowy</MDBTypography>
              </div>
            </MDBCard>
          </MDBCol>
        </MDBRow>
      </MDBContainer>
    </section>
  );
}

Weather report

A minimalistic weather report dashboard with white background and black borders and a simple table for weather data.

Toronto

21.02.2021

Rain map

-4°C

10:00

Sunday

Cloudy

Sun

-4°C

Mon

-4°C

Tue

-4°C

Wed

-4°C

Thu

-4°C

Fri

-4°C

Sat

-4°C

For a month

11:00 -4°

12:00 -4°

13:00 -5°

14:00 -7°

15:00 -6°

16:00 -4°

17:00 -3°

import React from "react";
import {
  MDBCard,
  MDBCardBody,
  MDBCol,
  MDBContainer,
  MDBRow
} from "mdb-react-ui-kit";

export default function Report() {
  return (
    <section className="vh-100" style={{ backgroundColor: "#cdc4f9" }}>
      <MDBContainer className="h-100">
        <MDBRow className="justify-content-center align-items-center h-100">
          <MDBCol md="12" xl="10">
            <MDBCard
              className="shadow-0 border border-dark border-5 text-dark"
              style={{ borderRadius: "10px" }}
            >
              <MDBCardBody className="p-4">
                <div className="row text-center">
                  <div
                    className="col-md-9 text-center border-end border-5 border-dark py-4"
                    style={{marginTop: '-1.5rem', marginBottom: '-1.5rem'}}
                  >
                    <div className="d-flex justify-content-around mt-3">
                      <p className="small">Toronto</p>
                      <p className="small">21.02.2021</p>
                      <p className="small">Rain map</p>
                    </div>
                    <div className="d-flex justify-content-around align-items-center py-5 my-4">
                      <p className="fw-bold mb-0" style={{fontSize: '7rem'}}>
                        -4°C
                      </p>
                      <div className="text-start">
                        <p className="small">10:00</p>
                        <p className="h3 mb-3">Sunday</p>
                        <p className="small mb-0">Cloudy</p>
                      </div>
                    </div>
                    <div className="d-flex justify-content-around align-items-center mb-3">
                      <div className="flex-column">
                        <i className="fas fa-minus"></i>
                      </div>
                      <div
                        className="flex-column border"
                        style={{borderRadius: '10px', padding: '.75rem'}}
                      >
                        <p className="small mb-1">Sun</p>
                        <p className="small mb-0">
                          <strong>-4°C</strong>
                        </p>
                      </div>
                      <div className="flex-column">
                        <p className="small mb-1">Mon</p>
                        <p className="small mb-0">
                          <strong>-4°C</strong>
                        </p>
                      </div>
                      <div className="flex-column">
                        <p className="small mb-1">Tue</p>
                        <p className="small mb-0">
                          <strong>-4°C</strong>
                        </p>
                      </div>
                      <div className="flex-column">
                        <p className="small mb-1">Wed</p>
                        <p className="small mb-0">
                          <strong>-4°C</strong>
                        </p>
                      </div>
                      <div className="flex-column">
                        <p className="small mb-1">Thu</p>
                        <p className="small mb-0">
                          <strong>-4°C</strong>
                        </p>
                      </div>
                      <div className="flex-column">
                        <p className="small mb-1">Fri</p>
                        <p className="small mb-0">
                          <strong>-4°C</strong>
                        </p>
                      </div>
                      <div className="flex-column">
                        <p className="small mb-1">Sat</p>
                        <p className="small mb-0">
                          <strong>-4°C</strong>
                        </p>
                      </div>
                      <div className="flex-column">
                        <i className="fas fa-minus"></i>
                      </div>
                    </div>
                  </div>
                  <div className="col-md-3 text-end">
                    <p className="small mt-3 mb-5 pb-5">For a month</p>
                    <p className="pb-1">
                      <span className="pe-2">11:00</span> <strong>-4°</strong>
                    </p>
                    <p className="pb-1">
                      <span className="pe-2">12:00</span> <strong>-4°</strong>
                    </p>
                    <p className="pb-1">
                      <span className="pe-2">13:00</span> <strong>-5°</strong>
                    </p>
                    <p className="pb-1">
                      <span className="pe-2">14:00</span> <strong>-7°</strong>
                    </p>
                    <p className="pb-1">
                      <span className="pe-2">15:00</span> <strong>-6°</strong>
                    </p>
                    <p className="pb-1">
                      <span className="pe-2">16:00</span> <strong>-4°</strong>
                    </p>
                    <p>
                      <span className="pe-2">17:00</span> <strong>-3°</strong>
                    </p>
                  </div>
                </div>
              </MDBCardBody>
            </MDBCard>
          </MDBCol>
        </MDBRow>
      </MDBContainer>
    </section>
  );
}

Weather card UI

Beautiful weather widget styling, with basic weather info.

Clear night

Detroit, US

20°C

Yesterday

23°C

Tommorow

21°C

import React from "react";
import {
  MDBCard,
  MDBCardBody,
  MDBCardImage,
  MDBCol,
  MDBContainer,
  MDBIcon,
  MDBRipple,
  MDBRow,
  MDBTypography,
} from "mdb-react-ui-kit";

export default function CardUI() {
  return (
    <section className="vh-100" style={{ backgroundColor: "#eee" }}>
      <MDBContainer className="h-100">
        <MDBRow className="justify-content-center align-items-center h-100">
          <MDBCol md="8" lg="6" xl="4">
            <MDBCard style={{ borderRadius: "10px" }}>
              <MDBRipple
                tag="div"
                className="bg-image"
                rippleColor="light"
                style={{
                  borderTopLeftRadius: "10px",
                  borderTopRightRadius: "10px",
                }}
              >
                <MDBCardImage
                  src="https://mdbcdn.b-cdn.net/img/Photos/new-templates/bootstrap-weather/draw2.webp"
                  className="w-100"
                />
                <div
                  className="mask"
                  style={{ backgroundColor: "rgba(0,0,0,.45)" }}
                >
                  <div className="d-flex justify-content-between p-4">
                    <a href="#!" className="text-white">
                      <MDBIcon fas icon="chevron-left" size="lg" />
                    </a>
                    <a href="#!" className="text-white">
                      <MDBIcon fas icon="cog" size="lg" />
                    </a>
                  </div>
                  <div className="text-center text-white">
                    <p className="h3 mb-4">Clear night</p>
                    <p className="h5 mb-4">Detroit, US</p>
                    <p className="display-2">
                      <strong>20°C</strong>{" "}
                    </p>
                  </div>
                </div>
              </MDBRipple>
              <MDBCardBody className="p-4 text-center">
                <a href="#!" className="text-body">
                  <MDBIcon fas icon="chevron-up mb-4" size="lg" />
                </a>
                <div className="d-flex justify-content-between mb-3">
                  <p className="h5 fw-normal">Yesterday</p>
                  <p className="h5 fw-normal">
                    <MDBIcon fas icon="sun pe-2" /> 23°C
                  </p>
                </div>
                <div
                  className="d-flex justify-content-between"
                  style={{ color: "#aaa" }}
                >
                  <p className="h5 fw-normal">Tommorow</p>
                  <p className="h5 fw-normal">
                    <MDBIcon fas icon="cloud pe-2" /> 21°C
                  </p>
                </div>
              </MDBCardBody>
            </MDBCard>
          </MDBCol>
        </MDBRow>
      </MDBContainer>
    </section>
  );
}