diff --git a/src/components/core/About.astro b/src/components/core/About.astro index 15b5db9..b9d03e2 100644 --- a/src/components/core/About.astro +++ b/src/components/core/About.astro @@ -1,17 +1,34 @@ --- import { LiaDotCircle } from "react-icons/lia"; -const {title, text} = Astro.props; +const { title, text } = Astro.props; ---
-
- -

- {title} -

-
- -

- {text} +

+ +

+ {title}

-
\ No newline at end of file +
+ +

+ {text} +

+ + + diff --git a/src/components/core/Subtitle.astro b/src/components/core/Subtitle.astro index 6065c13..a03ee45 100644 --- a/src/components/core/Subtitle.astro +++ b/src/components/core/Subtitle.astro @@ -1,11 +1,26 @@ --- -const {title} = Astro.props; +const { title } = Astro.props; import { LiaDotCircle } from "react-icons/lia"; ---
- -

- {title} -

-
\ No newline at end of file + +

+ {title} +

+ + + diff --git a/src/components/join/Involvement.astro b/src/components/join/Involvement.astro index ab75b23..48308d5 100644 --- a/src/components/join/Involvement.astro +++ b/src/components/join/Involvement.astro @@ -4,41 +4,78 @@ import { GoArrowDownRight } from "react-icons/go"; import { FaGear } from "react-icons/fa6"; import { IoMdCalendar } from "react-icons/io"; import { RiRobot2Fill } from "react-icons/ri"; -const {image, text, link, delay} = Astro.props; +const { image, text, link, delay } = Astro.props; --- -
- involvement background - + involvement background + +
+
+ { + text === "PROJECTS" ? ( + + ) : text === "EVENTS" ? ( + + ) : ( + + ) + } +
+
+ +
-
-
- { - text === "PROJECTS"? : - text === "EVENTS"? : - - } -
-
- -
-
-

- {text} -

- -
- - {text === "H.A.R.D. HACK" && -

- UC San Diego’s largest - hardware focused hackathon - hold by IEEE UCSD, HKN, and TNT -

- } -
- +
+

+ {text} +

+ +
+ + { + text === "H.A.R.D. HACK" && ( +

+ UC San Diego's largest hardware focused hackathon hold by IEEE UCSD, + HKN, and TNT +

+ ) + } +
+
+ + diff --git a/src/components/main_page/Activity.astro b/src/components/main_page/Activity.astro index 89d81ef..5cd68a6 100644 --- a/src/components/main_page/Activity.astro +++ b/src/components/main_page/Activity.astro @@ -1,23 +1,53 @@ --- import Link from "next/link"; import { IoIosArrowDroprightCircle } from "react-icons/io"; -const { title, text, link, number, delay } = Astro.props; +const { title, text, link, number, delay } = Astro.props; --- -
-
-

- {title} -

-

- {text} -

+
+
+
+

+ {title} +

+

+ {text} +

- - more details - - -

- {number} -

-
\ No newline at end of file + + more details + + +

+ {number} +

+
+ + diff --git a/src/components/projects/AP.astro b/src/components/projects/AP.astro index bb632fa..4ccb80a 100644 --- a/src/components/projects/AP.astro +++ b/src/components/projects/AP.astro @@ -5,7 +5,7 @@ import ProjectSection from "./ProjectSection.astro";
- +

Annual Projects

@@ -21,7 +21,7 @@ import ProjectSection from "./ProjectSection.astro";
- +

Skills & Requirements

IEEE @ UCSD's annual projects are intended for students with intermediate @@ -30,27 +30,20 @@ import ProjectSection from "./ProjectSection.astro";

-
- -
+
diff --git a/src/components/projects/ProjectSection.astro b/src/components/projects/ProjectSection.astro index 78c5a16..1f9a8dc 100644 --- a/src/components/projects/ProjectSection.astro +++ b/src/components/projects/ProjectSection.astro @@ -7,7 +7,7 @@ import { Image } from "astro:assets"; ---
{ Object.entries(annualProjects).map(([title, project], index) => ( @@ -26,7 +26,7 @@ import { Image } from "astro:assets"; class="opacity-70 w-full md:h-full h-[30vw] object-cover rounded-[1.5vw] aspect-[2/3] transition-transform duration-500 ease-in-out md:group-hover:scale-110 my-[2vw] md:my-0" />
-
+

{title}

@@ -36,17 +36,17 @@ import { Image } from "astro:assets";
- +
-
+
@@ -64,19 +64,6 @@ import { Image } from "astro:assets"; transition: transform 0.3s ease-in-out; } - /* iOS-specific fixes */ - @supports (-webkit-touch-callout: none) { - .project-card { - height: auto; - min-height: 30vw; - } - - .project-card img { - height: auto; - min-height: 30vw; - } - } - @media (min-width: 768px) { .project-card.expanded { flex: 2; @@ -91,17 +78,33 @@ import { Image } from "astro:assets"; } } - /* Fix for iOS Safari and mobile devices */ - @media screen and (max-width: 767px) { - .project-card { - width: 100%; - margin-bottom: 5vw; - height: auto; + /* iOS-specific fixes for icon alignment */ + @supports (-webkit-touch-callout: none) { + .icon-fix { + /* Fix vertical alignment on iOS */ + position: relative; + top: 0; + display: inline-flex; + align-items: center; + justify-content: center; + transform: translateY(0); } - .project-card img { - height: 60vw; - object-fit: cover; + /* Specific fixes for project card icons */ + .project-card .bg-white { + display: flex; + align-items: center; + justify-content: center; + } + + /* Fix for the arrow icon at the bottom */ + .project-card .GoArrowDownRight { + margin-bottom: 0.1vw; + } + + /* Fix for the more details icon */ + .project-card .IoIosArrowDroprightCircle { + vertical-align: middle; } } @@ -156,23 +159,20 @@ import { Image } from "astro:assets"; function handleImageLoading() { const projectImages = document.querySelectorAll(".project-card img"); - projectImages.forEach((img) => { - // Type assertion to fix TypeScript errors - const image = img as HTMLImageElement; - + projectImages.forEach((image) => { // Ensure the image is fully loaded, even if it's already in cache - if (image.complete) { - image.style.opacity = "1"; - const skeleton = image.previousElementSibling as HTMLElement; + if ((image as HTMLImageElement).complete) { + (image as HTMLElement).style.opacity = "1"; + const skeleton = image.previousElementSibling; if (skeleton && skeleton.classList.contains("skeleton")) { - skeleton.style.display = "none"; + (skeleton as HTMLElement).style.display = "none"; } } else { image.addEventListener("load", () => { - image.style.opacity = "1"; - const skeleton = image.previousElementSibling as HTMLElement; + (image as HTMLElement).style.opacity = "1"; + const skeleton = image.previousElementSibling; if (skeleton && skeleton.classList.contains("skeleton")) { - skeleton.style.display = "none"; + (skeleton as HTMLElement).style.display = "none"; } }); } @@ -183,4 +183,27 @@ import { Image } from "astro:assets"; setTimeout(handleImageLoading, 100); handleImageLoading(); document.addEventListener("astro:page-load", handleImageLoading); + + // iOS detection and class addition + document.addEventListener("DOMContentLoaded", () => { + // Check if the device is iOS + const isIOS = + /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; + + if (isIOS) { + // Add iOS-specific class to the body for additional styling if needed + document.body.classList.add("ios-device"); + + // Apply additional fixes for specific iOS versions if needed + const iOSVersion = parseInt( + (navigator.userAgent.match(/OS (\d+)_/) || [])[1], + 10, + ); + + if (iOSVersion && iOSVersion < 15) { + // Additional fixes for older iOS versions + document.body.classList.add("ios-legacy"); + } + } + }); diff --git a/src/components/projects/QP.astro b/src/components/projects/QP.astro index 9bc3ae1..7abeb90 100644 --- a/src/components/projects/QP.astro +++ b/src/components/projects/QP.astro @@ -7,56 +7,68 @@ import { IoIosArrowDroprightCircle } from "react-icons/io"; ---
-
- -

Quarterly Project

-
-
-
- qp showcase photo -
-
- + +

Quarterly Project

+
+
+
+ qp showcase photo - more details - - -
-

Quarterly Project

-

- Getting started on hardware development or want to make your own - project? Need something to put on your resume? IEEE's Quarterly - Projects aims to provide students with project experience in a span - of 10 weeks. Check out QP page for more detail! -

+ />
+
+ + more details + + +
+

Quarterly Project

+

+ Getting started on hardware development or want to make your own project? + Need something to put on your resume? IEEE's Quarterly Projects aims to + provide students with project experience in a span of 10 weeks. Check out + QP page for more detail! +

+
- diff --git a/src/components/qp/PastProject.astro b/src/components/qp/PastProject.astro index 8e1a8d1..9b59bde 100644 --- a/src/components/qp/PastProject.astro +++ b/src/components/qp/PastProject.astro @@ -1,18 +1,49 @@ --- -const {title, link, image, col} = Astro.props; +const { title, link, image, col } = Astro.props; import { GoArrowDownRight } from "react-icons/go"; import Link from "next/link"; --- - - past projects image + + past projects image -
-
-

- {title} -

- -
+
+
+

+ {title} +

+
- \ No newline at end of file +
+ + + diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index e9b173b..790ef48 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -6,37 +6,80 @@ import InView from "../components/core/InView.astro"; - - - - - - IEEEUCSD - - - - - -
-
- -
-
- -
-
-
- + + + + + + IEEEUCSD + + + + + + +
+
+ +
+
+ +
+
+
+ +