diff --git a/weather_app/app/components/feelLike/FeelLike.tsx b/weather_app/app/components/feelLike/FeelLike.tsx
new file mode 100644
index 0000000..ebf679b
--- /dev/null
+++ b/weather_app/app/components/feelLike/FeelLike.tsx
@@ -0,0 +1,41 @@
+"use client"
+import { useGlobalContext } from '@/app/context/globalContext';
+import { kelvinToFarenheit } from '@/app/utils/Misc';
+import { Skeleton } from '@/components/ui/skeleton';
+import React from 'react'
+import { BsThermometerHalf } from "react-icons/bs";
+
+const FeelLike = () => {
+ const {forecast} = useGlobalContext();
+ if(!forecast || !forecast?.main || !forecast?.main?.feels_like){
+ return
+ }
+ const {feels_like, temp_min, temp_max} = forecast?.main;
+ const feelLike = (feelsLike: number, mintemp: number, maxTemp: number) => {
+ const avgTemp = (mintemp + maxTemp) /2;
+ if(feelsLike < avgTemp - 3){
+ return "Wind is making it feel colder";
+ }
+ if(feelsLike > avgTemp - 3 && feelsLike <= avgTemp + 3){
+ return "Similar to the actual temperature";
+ }
+ if(feelsLike > avgTemp + 3){
+ return "Sun is making it feel warm";
+ }
+ return "Temperature feelinf is typical for this range"
+ };
+ const feelLikeDesc = feelLike(feels_like, temp_min, temp_max);
+
+
+ return (
+
+
+
< BsThermometerHalf/> Feels Like
+
{kelvinToFarenheit(feels_like)} °F
+
+
{feelLikeDesc}
+
+ )
+}
+
+export default FeelLike
\ No newline at end of file
diff --git a/weather_app/app/components/humidity/Humidity.tsx b/weather_app/app/components/humidity/Humidity.tsx
new file mode 100644
index 0000000..1ac2ac2
--- /dev/null
+++ b/weather_app/app/components/humidity/Humidity.tsx
@@ -0,0 +1,39 @@
+"use client"
+import { useGlobalContext } from '@/app/context/globalContext';
+import { Skeleton } from '@/components/ui/skeleton';
+import React from 'react'
+import { WiHumidity } from "react-icons/wi";
+
+const Humidity = () => {
+ const {forecast} = useGlobalContext();
+ if(!forecast || !forecast?.main || !forecast?.main?.humidity){
+ return
+ };
+ const {humidity} = forecast?.main;
+ const humidityData = (humidity: number) => {
+ if(humidity < 25)
+ return "Poor low humidity levels";
+ if(humidity >= 25 && humidity < 30)
+ return "Fair";
+ if(humidity >= 30 && humidity < 60)
+ return "Maintain your helthy levels";
+ if(humidity >= 60 && humidity < 70)
+ return "Fair";
+ if(humidity >= 70 )
+ return "Poor high humidity levels";
+ return "Humidaty data is not availiable at this moment"
+ };
+
+
+ return (
+
+
+
Humidity
+
{humidity} %
+
+
{humidityData(humidity)}
+
+ )
+}
+
+export default Humidity
\ No newline at end of file
diff --git a/weather_app/app/components/visibility/Visibility.tsx b/weather_app/app/components/visibility/Visibility.tsx
new file mode 100644
index 0000000..311e21c
--- /dev/null
+++ b/weather_app/app/components/visibility/Visibility.tsx
@@ -0,0 +1,43 @@
+"use client"
+import { useGlobalContext } from '@/app/context/globalContext';
+import { Skeleton } from '@/components/ui/skeleton';
+import React from 'react'
+import { MdVisibility } from "react-icons/md";
+
+const Visibility = () => {
+ const {forecast} = useGlobalContext();
+ if(!forecast || !forecast?.visibility){
+ return
+ }
+ const {visibility} = forecast;
+
+ const visibilityData = (visibility: number) => {
+ const visibilityInMiles = Math.round((visibility / 1000) * 0.621);
+ if(visibilityInMiles <= 1 )
+ return "Thick fog"
+ if(visibilityInMiles <= 2 )
+ return "Haze"
+ if(visibilityInMiles <= 6 )
+ return "Light haze"
+ if(visibilityInMiles <= 12 )
+ return "Clear"
+ if(visibilityInMiles <= 31 )
+ return "Very Clear"
+ if(visibilityInMiles > 31 )
+ return "Exceptionally clear"
+ return "Pure Air"
+ }
+
+
+ return (
+
+
+
Visibility
+
{Math.round((visibility / 1000) * 0.621)} mi
+
+
{visibilityData(visibility)}
+
+ )
+}
+
+export default Visibility
\ No newline at end of file