1
1
mirror of https://github.com/neosubhamoy/neosubhamoy-portfolio.git synced 2025-12-20 02:19:34 +05:30

made featured projects sidebar dynamic

This commit is contained in:
2023-10-26 19:28:38 +05:30
parent da0ea2437d
commit a773bd7b4a
2 changed files with 44 additions and 176 deletions

View File

@@ -809,10 +809,6 @@ video {
margin-top: 2.2rem; margin-top: 2.2rem;
} }
.mb-2 {
margin-bottom: 0.5rem;
}
.flex { .flex {
display: flex; display: flex;
} }
@@ -926,10 +922,6 @@ video {
width: 100vw; width: 100vw;
} }
.w-\[252px\] {
width: 252px;
}
.rotate-\[15deg\] { .rotate-\[15deg\] {
--tw-rotate: 15deg; --tw-rotate: 15deg;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -1021,8 +1013,8 @@ video {
border-radius: 0.125rem; border-radius: 0.125rem;
} }
.rounded { .border-\[1px\] {
border-radius: 0.25rem; border-width: 1px;
} }
.border-\[2px\] { .border-\[2px\] {
@@ -1033,14 +1025,6 @@ video {
border-width: 5px; border-width: 5px;
} }
.border-\[1px\] {
border-width: 1px;
}
.border-2 {
border-width: 2px;
}
.border-b-\[2px\] { .border-b-\[2px\] {
border-bottom-width: 2px; border-bottom-width: 2px;
} }
@@ -1062,18 +1046,13 @@ video {
border-color: rgba(56, 189, 248, 0.30); border-color: rgba(56, 189, 248, 0.30);
} }
.border-accent_secondary_transparent {
border-color: rgba(255, 255, 255, 0.30);
}
.border-accent_secondary { .border-accent_secondary {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgb(255 255 255 / var(--tw-border-opacity)); border-color: rgb(255 255 255 / var(--tw-border-opacity));
} }
.border-bg_primary { .border-accent_secondary_transparent {
--tw-border-opacity: 1; border-color: rgba(255, 255, 255, 0.30);
border-color: rgb(15 23 42 / var(--tw-border-opacity));
} }
.border-accent_three { .border-accent_three {
@@ -1115,48 +1094,22 @@ video {
background-color: rgb(30 41 59 / var(--tw-bg-opacity)); background-color: rgb(30 41 59 / var(--tw-bg-opacity));
} }
.bg-\[rgba\(0\2c 0\2c 0\2c 0\)\] {
background-color: rgba(0,0,0,0);
}
.bg-gradient-to-r { .bg-gradient-to-r {
background-image: linear-gradient(to right, var(--tw-gradient-stops)); background-image: linear-gradient(to right, var(--tw-gradient-stops));
} }
.bg-gradient-to-l {
background-image: linear-gradient(to left, var(--tw-gradient-stops));
}
.from-accent_secondary_transparent { .from-accent_secondary_transparent {
--tw-gradient-from: rgba(255, 255, 255, 0.30) var(--tw-gradient-from-position); --tw-gradient-from: rgba(255, 255, 255, 0.30) var(--tw-gradient-from-position);
--tw-gradient-to: rgba(255, 255, 255, 0) var(--tw-gradient-to-position); --tw-gradient-to: rgba(255, 255, 255, 0) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
} }
.from-accent_primary {
--tw-gradient-from: #38BDF8 var(--tw-gradient-from-position);
--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-bg_third { .from-bg_third {
--tw-gradient-from: #26334A var(--tw-gradient-from-position); --tw-gradient-from: #26334A var(--tw-gradient-from-position);
--tw-gradient-to: rgb(38 51 74 / 0) var(--tw-gradient-to-position); --tw-gradient-to: rgb(38 51 74 / 0) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
} }
.from-bg_primary {
--tw-gradient-from: #0F172A var(--tw-gradient-from-position);
--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-accent_secondary {
--tw-gradient-from: #FFFFFF var(--tw-gradient-from-position);
--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.p-10 { .p-10 {
padding: 2.5rem; padding: 2.5rem;
} }
@@ -1219,21 +1172,16 @@ video {
padding-bottom: 1.25rem; padding-bottom: 1.25rem;
} }
.py-\[0\.30rem\] {
padding-top: 0.30rem;
padding-bottom: 0.30rem;
}
.py-\[0\.20rem\] {
padding-top: 0.20rem;
padding-bottom: 0.20rem;
}
.py-\[0\.15rem\] { .py-\[0\.15rem\] {
padding-top: 0.15rem; padding-top: 0.15rem;
padding-bottom: 0.15rem; padding-bottom: 0.15rem;
} }
.py-\[0\.30rem\] {
padding-top: 0.30rem;
padding-bottom: 0.30rem;
}
.font-cormorant { .font-cormorant {
font-family: "Cormorant Upright", serif; font-family: "Cormorant Upright", serif;
} }
@@ -1286,6 +1234,10 @@ video {
line-height: 1rem; line-height: 1rem;
} }
.font-\[300\] {
font-weight: 300;
}
.font-bold { .font-bold {
font-weight: 700; font-weight: 700;
} }
@@ -1298,10 +1250,6 @@ video {
font-weight: 400; font-weight: 400;
} }
.font-\[300\] {
font-weight: 300;
}
.text-\[\#38BDF8\] { .text-\[\#38BDF8\] {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgb(56 189 248 / var(--tw-text-opacity)); color: rgb(56 189 248 / var(--tw-text-opacity));
@@ -1368,10 +1316,6 @@ video {
opacity: 0.75; opacity: 0.75;
} }
.opacity-0 {
opacity: 0;
}
.shadow-\[0px_0px_100px_10px\] { .shadow-\[0px_0px_100px_10px\] {
--tw-shadow: 0px 0px 100px 10px; --tw-shadow: 0px 0px 100px 10px;
--tw-shadow-colored: 0px 0px 100px 10px var(--tw-shadow-color); --tw-shadow-colored: 0px 0px 100px 10px var(--tw-shadow-color);
@@ -1442,26 +1386,14 @@ video {
transition-duration: 150ms; transition-duration: 150ms;
} }
.transition-all {
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.transition-\[border-width\] { .transition-\[border-width\] {
transition-property: border-width; transition-property: border-width;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms; transition-duration: 150ms;
} }
.transition-\[background-image\] { .transition-all {
transition-property: background-image; transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.transition-\[opacity\] {
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms; transition-duration: 150ms;
} }
@@ -1478,10 +1410,6 @@ video {
transition-duration: 500ms; transition-duration: 500ms;
} }
.duration-200 {
transition-duration: 200ms;
}
.last\:mb-3:last-child { .last\:mb-3:last-child {
margin-bottom: 0.75rem; margin-bottom: 0.75rem;
} }
@@ -1492,24 +1420,12 @@ video {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
} }
.hover\:transform:hover {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:rounded-lg:hover {
border-radius: 0.5rem;
}
.hover\:rounded:hover { .hover\:rounded:hover {
border-radius: 0.25rem; border-radius: 0.25rem;
} }
.hover\:border-2:hover { .hover\:rounded-lg:hover {
border-width: 2px; border-radius: 0.5rem;
}
.hover\:border-\[5px\]:hover {
border-width: 5px;
} }
.hover\:border-\[3px\]:hover { .hover\:border-\[3px\]:hover {
@@ -1521,11 +1437,6 @@ video {
border-color: rgb(56 189 248 / var(--tw-border-opacity)); border-color: rgb(56 189 248 / var(--tw-border-opacity));
} }
.hover\:border-accent_secondary:hover {
--tw-border-opacity: 1;
border-color: rgb(255 255 255 / var(--tw-border-opacity));
}
.hover\:bg-accent_secondary:hover { .hover\:bg-accent_secondary:hover {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity)); background-color: rgb(255 255 255 / var(--tw-bg-opacity));
@@ -1536,12 +1447,6 @@ video {
background-color: rgb(38 51 74 / var(--tw-bg-opacity)); background-color: rgb(38 51 74 / var(--tw-bg-opacity));
} }
.hover\:from-accent_primary:hover {
--tw-gradient-from: #38BDF8 var(--tw-gradient-from-position);
--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.hover\:text-accent_secondary:hover { .hover\:text-accent_secondary:hover {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity)); color: rgb(255 255 255 / var(--tw-text-opacity));
@@ -1553,12 +1458,6 @@ video {
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
} }
.hover\:shadow:hover {
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-accent_primary_transparent:hover { .hover\:shadow-accent_primary_transparent:hover {
--tw-shadow-color: rgba(56, 189, 248, 0.30); --tw-shadow-color: rgba(56, 189, 248, 0.30);
--tw-shadow: var(--tw-shadow-colored); --tw-shadow: var(--tw-shadow-colored);
@@ -1569,18 +1468,6 @@ video {
--tw-shadow: var(--tw-shadow-colored); --tw-shadow: var(--tw-shadow-colored);
} }
.hover\:transition:hover {
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.hover\:duration-500:hover {
transition-duration: 500ms;
}
.group:hover .group-hover\:flex { .group:hover .group-hover\:flex {
display: flex; display: flex;
} }
@@ -1589,41 +1476,11 @@ video {
width: 100%; width: 100%;
} }
.group:hover .group-hover\:transform {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:bg-accent_secondary { .group:hover .group-hover\:bg-accent_secondary {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity)); background-color: rgb(255 255 255 / var(--tw-bg-opacity));
} }
.group:hover .group-hover\:bg-gradient-to-r {
background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.group:hover .group-hover\:from-bg_third {
--tw-gradient-from: #26334A var(--tw-gradient-from-position);
--tw-gradient-to: rgb(38 51 74 / 0) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.group:hover .group-hover\:opacity-100 {
opacity: 1;
}
.group:hover .group-hover\:transition {
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.group:hover .group-hover\:duration-500 {
transition-duration: 500ms;
}
@media (min-width: 1024px) { @media (min-width: 1024px) {
.lg\:bottom-\[-6rem\] { .lg\:bottom-\[-6rem\] {
bottom: -6rem; bottom: -6rem;

View File

@@ -20,6 +20,13 @@ function fetch_projects_by_year($conn, $year) {
$result = $conn -> query($sql); $result = $conn -> query($sql);
return $result; return $result;
} }
//function to fetch top 2 featured projects for sidebar
function fetch_featured_projects_sidebar($conn) {
$sql = "SELECT * FROM featured_projects LIMIT 2";
$result = $conn -> query($sql);
return $result;
}
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
@@ -138,22 +145,26 @@ function fetch_projects_by_year($conn, $year) {
</div> </div>
<h5 class="text-xl font-bold mb-5">Featured Projects</h5> <h5 class="text-xl font-bold mb-5">Featured Projects</h5>
<div class="w-full flex flex-col justify-center items-center mb-12"> <div class="w-full flex flex-col justify-center items-center mb-12">
<div class="group w-[250px] rounded-lg overflow-hidden my-3 relative border-accent_three hover:border-[3px] transition-[border-width] transform duration-100"> <?php
<div class="overlay absolute w-full h-full bg-gradient-to-r from-bg_third z-20 flex-col p-3 hidden group-hover:flex">
<h6 class="text-xl mb-1">FantasyWalls</h6> $featured_projects = fetch_featured_projects_sidebar($conn);
<p class="text-xs font-[300] mb-4 text-accent_three">An open-souced community crafted wallpaper collection app</p>
<a class="text-sm font-[300] bg-gradient-to-r from-accent_secondary_transparent border-[1px] border-accent_secondary px-3 py-[0.15rem] w-fit rounded-full hover:rounded" href="https://techishfellow.weebly.com/fantasywalls-official.html" target="_blank">View Now</a> if($featured_projects -> num_rows > 0){
</div> while($featured_item = $featured_projects -> fetch_assoc()) {
<img class="opacity-[0.75]" src="./assets/images/fantasywalls.jpg" alt="fantasywalls"> echo "
</div> <div class='group w-[250px] rounded-lg overflow-hidden my-3 relative border-accent_three hover:border-[3px] transition-[border-width] transform duration-100'>
<div class="group w-[250px] rounded-lg overflow-hidden my-3 relative border-accent_three hover:border-[3px] transition-[border-width] transform duration-100"> <div class='overlay absolute w-full h-full bg-gradient-to-r from-bg_third z-20 flex-col p-3 hidden group-hover:flex'>
<div class="overlay absolute w-full h-full bg-gradient-to-r from-bg_third z-20 flex-col p-3 hidden group-hover:flex"> <h6 class='text-xl mb-1'>".$featured_item['name']."</h6>
<h6 class="text-xl mb-1">ProURL</h6> <p class='text-xs font-[300] mb-4 text-accent_three'>".$featured_item['description']."</p>
<p class="text-xs font-[300] mb-4 text-accent_three">All in one link shortener and management tool webapp</p> <a class='text-sm font-[300] bg-gradient-to-r from-accent_secondary_transparent border-[1px] border-accent_secondary px-3 py-[0.15rem] w-fit rounded-full hover:rounded' href='".$featured_item['link']."' target='_blank'>View Now</a>
<a class="text-sm font-[300] bg-gradient-to-r from-accent_secondary_transparent border-[1px] border-accent_secondary px-3 py-[0.15rem] w-fit rounded-full hover:rounded" href="https://prourl.eu.org" target="_blank">View Now</a> </div>
</div> <img class='opacity-[0.75]' src='".$featured_item['thumbnail']."' alt='".strtolower($featured_item['name'])."'>
<img class="opacity-[0.75]" src="./assets/images/prourl.jpg" alt="prourl"> </div>
</div> ";
}
}
?>
</div> </div>
<h5 class="text-xl font-bold mb-5">Currently Working On</h5> <h5 class="text-xl font-bold mb-5">Currently Working On</h5>
<div class="w-full flex flex-col justify-center flex-wrap mb-12"> <div class="w-full flex flex-col justify-center flex-wrap mb-12">