diff --git a/src/components/PageSection.jsx b/src/components/PageSection.jsx new file mode 100644 index 0000000..ec3a6f9 --- /dev/null +++ b/src/components/PageSection.jsx @@ -0,0 +1,32 @@ +export default function PageSection({ heading, colorVariant, children }) { + // split heading text so that yellow can be applied to last word only + var headingWithoutLastWord; + var headingLastWord; + if (heading) { + headingWithoutLastWord = + heading.length > 1 + ? heading.trim().split(/\s+/).slice(0, -1).join(" ") + : null; + headingLastWord = + heading.length > 1 ? heading.trim().split(/\s+/).pop() : heading; + } + + const bgColorClasses = { + A: "", + B: "backdrop-brightness-90", + }; + + return ( +
+
+ {heading && ( +

+ {headingWithoutLastWord}{" "} + {headingLastWord}{" "} +

+ )} + {children} +
+
+ ); +} diff --git a/src/components/SponsorTicker.jsx b/src/components/SponsorTicker.jsx index abd21fc..757ef42 100644 --- a/src/components/SponsorTicker.jsx +++ b/src/components/SponsorTicker.jsx @@ -100,100 +100,93 @@ const SponsorTicker = () => { const duplicatedLogos = [...logos, ...logos, ...logos, ...logos]; return ( -
-
-

- OUR SPONSORS -

-
-
-
-
- {duplicatedLogos.map((logo, index) => { - // Custom scaling and rectangle size for specific logos - let customImgStyle = { - maxHeight: 40, - maxWidth: 120, - width: "auto", - height: "auto", - objectFit: "contain", - background: "#fff", - borderRadius: "999px", - padding: 2, - margin: "0 auto", - display: "block", - }; - if (logo.name === "14 & Elm") { - customImgStyle.maxHeight = 60; - customImgStyle.maxWidth = 140; - } - if (logo.name === "L3 Harris") { - customImgStyle.maxHeight = 90; - customImgStyle.maxWidth = 220; - } - if (logo.name === "Williams Energy Partners") { - customImgStyle.maxHeight = 90; - customImgStyle.maxWidth = 220; - } - if (logo.name === "TAMU Mechanical Engineering") { - customImgStyle.maxHeight = 60; - customImgStyle.maxWidth = 220; - } - if (logo.name === "TAMU SEC") { - customImgStyle.maxHeight = 60; - customImgStyle.maxWidth = 220; - } - return ( - - {logo.alt} - - ); - })} -
+
+
+
+ {duplicatedLogos.map((logo, index) => { + // Custom scaling and rectangle size for specific logos + let customImgStyle = { + maxHeight: 40, + maxWidth: 120, + width: "auto", + height: "auto", + objectFit: "contain", + background: "#fff", + borderRadius: "999px", + padding: 2, + margin: "0 auto", + display: "block", + }; + if (logo.name === "14 & Elm") { + customImgStyle.maxHeight = 60; + customImgStyle.maxWidth = 140; + } + if (logo.name === "L3 Harris") { + customImgStyle.maxHeight = 90; + customImgStyle.maxWidth = 220; + } + if (logo.name === "Williams Energy Partners") { + customImgStyle.maxHeight = 90; + customImgStyle.maxWidth = 220; + } + if (logo.name === "TAMU Mechanical Engineering") { + customImgStyle.maxHeight = 60; + customImgStyle.maxWidth = 220; + } + if (logo.name === "TAMU SEC") { + customImgStyle.maxHeight = 60; + customImgStyle.maxWidth = 220; + } + return ( + + {logo.alt} + + ); + })}
-
+ ); }; diff --git a/src/pages/About.jsx b/src/pages/About.jsx index 0ae3e1e..e10ffea 100644 --- a/src/pages/About.jsx +++ b/src/pages/About.jsx @@ -2,6 +2,7 @@ import { useState } from "react"; import StatisticsCard from "../components/StatisticsCard"; import TextLink from "../components/TextLink"; import Hero from "../components/Hero"; +import PageSection from "../components/PageSection"; const About = () => { const statistics = [ @@ -151,124 +152,113 @@ const About = () => { > {/* Statistics Section */} -
-
-

- OUR IMPACT -

-
- {statistics.map((stat, index) => ( - - ))} -
+ +
+ {statistics.map((stat, index) => ( + + ))}
-
+ {/* Leadership Section */} -
-
-

- OUR TEAM -

- - {/* Executive Roles Accordion */} -
- - {openSection.executive && ( -
- {renderLeadership([ - "President", - "Internal VP", - "External VP", - "Project VP", - "Development VP", - ])} -
- )} -
+ + {/* Executive Roles Accordion */} +
+ + {openSection.executive && ( +
+ {renderLeadership([ + "President", + "Internal VP", + "External VP", + "Project VP", + "Development VP", + ])} +
+ )} +
- {/* Internal Branch Accordion */} -
- - {openSection.internal && ( -
- {renderLeadership([ - "Internal VP", - "Finance", - "Logistics", - "Lab Quality Chair", - "Documentation", - ])} -
- )} -
+ {/* Internal Branch Accordion */} +
+ + {openSection.internal && ( +
+ {renderLeadership([ + "Internal VP", + "Finance", + "Logistics", + "Lab Quality Chair", + "Documentation", + ])} +
+ )} +
- {/* External Branch Accordion */} -
- - {openSection.external && ( -
- {renderLeadership([ - "External VP", - "Public Relations", - "Webmaster", - "Corporate Relations", - "Events", - ])} -
- )} -
+ {/* External Branch Accordion */} +
+ + {openSection.external && ( +
+ {renderLeadership([ + "External VP", + "Public Relations", + "Webmaster", + "Corporate Relations", + "Events", + ])} +
+ )} +
- {/* Projects Branch Accordion */} -
- - {openSection.projects && ( -
- {renderLeadership(["Project VP", "Design Review Chair"])} -
- )} -
+ {/* Projects Branch Accordion */} +
+ + {openSection.projects && ( +
+ {renderLeadership(["Project VP", "Design Review Chair"])} +
+ )} +
- {/* Development Branch Accordion */} -
- - {openSection.development && ( -
- {renderLeadership([ - "Development VP", - "Workshops", - "Hatchling Director", - ])} -
- )} -
+ {/* Development Branch Accordion */} +
+ + {openSection.development && ( +
+ {renderLeadership([ + "Development VP", + "Workshops", + "Hatchling Director", + ])} +
+ )}
-
+ ); }; diff --git a/src/pages/Apply.jsx b/src/pages/Apply.jsx index 6d84149..eca2cbf 100644 --- a/src/pages/Apply.jsx +++ b/src/pages/Apply.jsx @@ -1,6 +1,6 @@ -import { Link } from "react-router-dom"; import ButtonLink from "../components/ButtonLink"; import Hero from "../components/Hero"; +import PageSection from "../components/PageSection"; const Apply = () => { // ✅ Toggle this to open/close applications @@ -20,162 +20,131 @@ const Apply = () => { > {applicationsOpen && ( - APPLY NOW + Apply Now )} {/* Application Process */} -
-
-

- JOIN TURTLE -

- -
-
-
📝
-

- Submit Application -

-

- Complete our online application form to join Hatchlings or - Advanced Project teams. -

-
-
-
🤝
-

- Open House -

-

- Meet with our team leaders to discuss your goals and project - preferences. -

-
-
-
🚀
-

- Start Contributing -

-

- Begin working on exciting robotics projects with TURTLE. -

-
+ +
+
+
📝
+

+ Submit Application +

+

+ Complete our online application form to join Hatchlings or + Advanced Project teams. +

-
-
- - {/* Contact Section (current) */} -
-
-

- CONTACT TURTLE -

-

- For any questions, email us at - - turtlerobotics@gmaill.com - -

-
-
- - {/* What We Look For Section */} -
-
- {/* Main Heading */} -

- WHAT WE LOOK FOR -

- - {/* Hatchling Subsection */} -
-

- Hatchling +
+
🤝
+

+ Open House

-

- No skills or prior experience required. The Hatchling Program is - designed for students of all backgrounds who are eager to learn, - explore robotics, and grow alongside a supportive team. +

+ Meet with our team leaders to discuss your goals and project + preferences.

- - {/* Advanced Projects Subsection */} -
-

- Advanced Projects +
+
🚀
+

+ Start Contributing

-
-
-

- Technical Skills -

-
    -
  • - - - Programming experience (Python, C++, ROS) - -
  • -
  • - - - Understanding of robotics fundamentals - -
  • -
  • - - - Experience with hardware and electronics - -
  • -
  • - - - Knowledge of control systems and algorithms - -
  • -
-
-
-

- Personal Qualities -

-
    -
  • - - - Strong problem-solving abilities - -
  • -
  • - - - Excellent teamwork and communication - -
  • -
  • - - - Passion for robotics and innovation - -
  • -
  • - - - Commitment to learning and growth - -
  • -
-
+

+ Begin working on exciting robotics projects with TURTLE. +

+
+
+ + + {/* What We Look For Section */} + + {" "} + {/* Hatchling Subsection */} +
+

+ Hatchling +

+

+ No skills or prior experience required. The Hatchling Program is + designed for students of all backgrounds who are eager to learn, + explore robotics, and grow alongside a supportive team. +

+
+ {/* Advanced Projects Subsection */} +
+

+ Advanced Projects +

+
+
+

+ Technical Skills +

+
    +
  • + + + Programming experience (Python, C++, ROS) + +
  • +
  • + + + Understanding of robotics fundamentals + +
  • +
  • + + + Experience with hardware and electronics + +
  • +
  • + + + Knowledge of control systems and algorithms + +
  • +
+
+
+

+ Personal Qualities +

+
    +
  • + + + Strong problem-solving abilities + +
  • +
  • + + + Excellent teamwork and communication + +
  • +
  • + + + Passion for robotics and innovation + +
  • +
  • + + + Commitment to learning and growth + +
  • +
-

+ ); }; diff --git a/src/pages/DevelopmentPrograms.jsx b/src/pages/DevelopmentPrograms.jsx index c81a3bc..dedcf1c 100644 --- a/src/pages/DevelopmentPrograms.jsx +++ b/src/pages/DevelopmentPrograms.jsx @@ -1,6 +1,7 @@ import { useNavigate } from "react-router-dom"; import ButtonLink from "../components/ButtonLink"; import Hero from "../components/Hero"; +import PageSection from "../components/PageSection"; const DevelopmentPrograms = () => { const navigate = useNavigate(); @@ -79,199 +80,180 @@ const DevelopmentPrograms = () => { {/* Program Sections */} {programs.map((program, index) => ( -
-
- {/* Section Title */} -

- {/* {program.title.toUpperCase()} */} -

+ {/* Large Glass Card */} +
+ {/* Background Image */} +
- {/* Large Glass Card */} -
- {/* Background Image */} -
+ {/* Glass Overlay Content */} +
+
+

+ {program.year} +

- {/* Glass Overlay Content */} -
-
-

- {program.year} -

+

+ {/* {program.tagline} */} + {program.title.toUpperCase()} +

-

- {/* {program.tagline} */} - {program.title.toUpperCase()} -

+

+ {program.description} +

-

- {program.description} -

- - {!program.disabled && ( - Learn More - )} -
+ {!program.disabled && ( + Learn More + )}
-
+ ))} {/* Stats, Impact, and Accolades Section */} -
-
-

- STATS & IMPACT -

- -
-
-
75%
-
- Weekly Attendance -
-
- Through 8 weeks of lecture -
+ +
+
+
75%
+
+ Weekly Attendance
- -
-
70%
-
- New Engineers -
-
- 70% of members enter without prior robotics experience -
+
+ Through 8 weeks of lecture
+
-
-
95%
-
- Recommendation Rate -
-
- Would recommend to others -
+
+
70%
+
+ New Engineers
- -
-
782
-
- Social Connection -
-
All time Members
+
+ 70% of members enter without prior robotics experience
- {/* Impact Stories */} -
-
-

- Professional Development -

-
    -
  • - - Internships and Research Positions -
  • -
  • - - SolidWorks certifications (CSWA and CSWP) -
  • -
  • - - Project Leads and Sub-Team Leads -
  • -
+
+
95%
+
+ Recommendation Rate +
+
+ Would recommend to others
+
-
-

- Leadership & Growth -

-
    -
  • - - Student Organization Presidents & Officers -
  • -
  • - - Hatchling Directors -
  • -
  • - - Social connection with peers -
  • -
+
+
782
+
+ Social Connection
+
All time Members
+
- {/* More Info Section with Embedded PDF */} -
-

- More Info + {/* Impact Stories */} +
+
+

+ Professional Development

-
-
📊
-

- Detailed Program Impact Report -

-

- View our comprehensive impact report with detailed statistics, - success stories, and program outcomes. -

+
    +
  • + + Internships and Research Positions +
  • +
  • + + SolidWorks certifications (CSWA and CSWP) +
  • +
  • + + Project Leads and Sub-Team Leads +
  • +
+
- {/* Embedded PDF Viewer */} +
+

+ Leadership & Growth +

+
    +
  • + + Student Organization Presidents & Officers +
  • +
  • + + Hatchling Directors +
  • +
  • + + Social connection with peers +
  • +
+
+
-
- -
+ {/* More Info Section with Embedded PDF */} +
+

More Info

+
+
📊
+

+ Detailed Program Impact Report +

+

+ View our comprehensive impact report with detailed statistics, + success stories, and program outcomes. +

- + {/* Embedded PDF Viewer */} + +
+ +
+ +
-

+ {/* Call to Action Section */} -
-
-

- Ready to Start Your{" "} - Journey? -

+ +

Join TURTLE and gain the skills needed to excel in robotics

@@ -279,7 +261,7 @@ const DevelopmentPrograms = () => { Apply Now
-
+ ); }; diff --git a/src/pages/Hatchling.jsx b/src/pages/Hatchling.jsx index 6453c82..059d637 100644 --- a/src/pages/Hatchling.jsx +++ b/src/pages/Hatchling.jsx @@ -2,6 +2,7 @@ import { useEffect, useState } from "react"; import ImageCarousel from "../components/ImageCarousel"; import ButtonLink from "../components/ButtonLink"; import Hero from "../components/Hero"; +import PageSection from "../components/PageSection"; const Hatchling = () => { // Check localStorage for slides visibility @@ -170,433 +171,391 @@ const Hatchling = () => { > {/* Mission Statement Section */} -
-
-

- OUR MISSION -

- -
-

- Founded in the fall of 2015, Hatchling is our premier development - program that introduces foundational technical, soft, and - engineering skills -

-
+ +
+

+ Founded in the fall of 2015, Hatchling is our premier development + program that introduces foundational technical, soft, and + engineering skills +

-
+ {/* Trusted Organizations Section */} -
-
-

- CURRENTLY TRUSTED AT -

- -
-
-
🏢
-

3

-

Organizations

-
+ +
+
+
🏢
+

3

+

Organizations

+
-
across
+
across
-
-
🎓
-

2

-

Universities

-
+
+
🎓
+

2

+

Universities

+
-
-

+
+

- {/* Bring Hatchling to Your Organization */} -
-

- Bring the Hatchling Mission to Your Student Organization -

-

- Interested in expanding robotics education at your university? - Let's discuss how we can bring the Hatchling program to your - campus. -

- - Inquire Now - -
+ {/* Bring Hatchling to Your Organization */} +
+

+ Bring the Hatchling Mission to Your Student Organization +

+

+ Interested in expanding robotics education at your university? + Let's discuss how we can bring the Hatchling program to your + campus. +

+ + Inquire Now +
-
+ {/* Scrolling Pictures Section */} -
-
-

- HATCHLING GALLERY -

- -
- -
+ +
+
-
+ {/* Learning Objectives and Schedule Section */} -
-
-

- LEARNING OBJECTIVES & SCHEDULE -

+ + {/* Learning Objectives - Full Width on Top */} +
+

+ Core Learning Objectives +

+

+ Hatchlings graduate from the program with a community, passion for + engineering, and the following skills: +

- {/* Learning Objectives - Full Width on Top */} -
-

- Core Learning Objectives -

-

- Hatchlings graduate from the program with a community, passion for - engineering, and the following skills: -

+
+ {learningObjectiveGroups.map((group) => ( +
+

+ {group.groupName} +

+
    + {group.objectives.map((objective) => ( +
  • + + {objective} +
  • + ))} +
+
+ ))} +
+
-
- {learningObjectiveGroups.map((group) => ( -
-

- {group.groupName} + {/* Program Schedule - Horizontal Scrollable Timeline */} +
+

+ 10-Week Program Schedule +

+
+ {/* Scrollable Timeline Container */} +
+ {programScheduleItems.map((item) => ( +
+
+ {item.heading} +
+

+ {item.subheading}

-
    - {group.objectives.map((objective) => ( -
  • - - {objective} -
  • +
      + {item.objectives.map((objective) => ( +
    • • {objective}
    • ))} + {item.milestone ? ( +
    • + • Project Milestone: {item.milestone} +
    • + ) : null}
))}
-
- - {/* Program Schedule - Horizontal Scrollable Timeline */} -
-

- 10-Week Program Schedule -

-
- {/* Scrollable Timeline Container */} -
- {programScheduleItems.map((item) => ( -
-
- {item.heading} -
-

- {item.subheading} -

-
    - {item.objectives.map((objective) => ( -
  • • {objective}
  • - ))} - {item.milestone ? ( -
  • - • Project Milestone: {item.milestone} -
  • - ) : null} -
-
- ))} -
- {/* Scroll Indicator */} -
-

- ← Scroll to see all 10 weeks → -

-
+ {/* Scroll Indicator */} +
+

+ ← Scroll to see all 10 weeks → +

-

+ {/* Published Materials Section */} -
-
-

- PUBLISHED MATERIALS -

- - {/* Weekly Content PDFs (toggleable) */} - {slidesVisible && ( -
-
-
-
📚
-

- Slides -

-
- - {(() => { - const pdfMap = { - 1: "/pdfs/Hatchling Week 1 - Introduction.pptx.pdf", - 2: "/pdfs/Hatchling Week 2 - SolidWorks (CAD) Foundation.pptx.pdf", - 3: "/pdfs/Hatchling Week 3 - SolidWorks 3D.pptx.pdf", - 4: "/pdfs/Hatchling Week 4 - Tools, Project, and Process.pptx.pdf", - 5: "/pdfs/Hatchling Week 5 - Design Review and Cpp.pptx.pdf", - 6: "/pdfs/Hatchling Week 6 - SolidWorks Assembly.pptx.pdf", - 7: "/pdfs/Hatchling Week 7 - Programming and Git GitHub.pptx.pdf", - 8: "/pdfs/Hatchling Week 8 - Electronics and Soldering.pptx.pdf", - }; - - return ( -
- - - - Download PDF - -
- ); - })()} + + {/* Weekly Content PDFs (toggleable) */} + {slidesVisible && ( +
+
+
+
📚
+

+ Slides +

-
- )} - {/* Additional Materials */} -
-
-
📝
-

- Hatchling Syllabus -

- - Download Syllabus - -
+ {(() => { + const pdfMap = { + 1: "/pdfs/Hatchling Week 1 - Introduction.pptx.pdf", + 2: "/pdfs/Hatchling Week 2 - SolidWorks (CAD) Foundation.pptx.pdf", + 3: "/pdfs/Hatchling Week 3 - SolidWorks 3D.pptx.pdf", + 4: "/pdfs/Hatchling Week 4 - Tools, Project, and Process.pptx.pdf", + 5: "/pdfs/Hatchling Week 5 - Design Review and Cpp.pptx.pdf", + 6: "/pdfs/Hatchling Week 6 - SolidWorks Assembly.pptx.pdf", + 7: "/pdfs/Hatchling Week 7 - Programming and Git GitHub.pptx.pdf", + 8: "/pdfs/Hatchling Week 8 - Electronics and Soldering.pptx.pdf", + }; + + return ( +
+ -
-
🎨
-

- CAD Examples -

- - Download Examples - + + Download PDF + +
+ ); + })()}
+
+ )} + + {/* Additional Materials */} +
+
+
📝
+

+ Hatchling Syllabus +

+ + Download Syllabus + +
-
-
-

- Project Tips & Controller Resources -

- - Download Guide - -
+
+
🎨
+

+ CAD Examples +

+ + Download Examples + +
+ +
+
+

+ Project Tips & Controller Resources +

+ + Download Guide +
-
+ {/* Stats, Impact, and Accolades Section */} -
-
-

- STATS & IMPACT -

- -
-
-
75%
-
- Weekly Attendance -
-
- Through 8 weeks of lecture -
+ +
+
+
75%
+
+ Weekly Attendance
- -
-
70%
-
- New Engineers -
-
- 70% of members enter without prior robotics experience -
+
+ Through 8 weeks of lecture
+
-
-
95%
-
- Recommendation Rate -
-
- Would recommend to others -
+
+
70%
+
+ New Engineers
- -
-
782
-
- Social Connection -
-
All time Members
+
+ 70% of members enter without prior robotics experience
- {/* Impact Stories */} -
-
-

- Professional Development -

-
    -
  • - - Internships and Research Positions -
  • -
  • - - SolidWorks certifications (CSWA and CSWP) -
  • -
  • - - Project Leads and Sub-Team Leads -
  • -
+
+
95%
+
+ Recommendation Rate +
+
+ Would recommend to others
+
-
-

- Leadership & Growth -

-
    -
  • - - Student Organization Presidents & Officers -
  • -
  • - - Hatchling Directors -
  • -
  • - - Social connection with peers -
  • -
+
+
782
+
+ Social Connection
+
All time Members
+
- {/* More Info Section with Embedded PDF */} -
-

- More Info + {/* Impact Stories */} +
+
+

+ Professional Development

-
-
📊
-

- Detailed Program Impact Report -

-

- View our comprehensive impact report with detailed statistics, - success stories, and program outcomes. -

+
    +
  • + + Internships and Research Positions +
  • +
  • + + SolidWorks certifications (CSWA and CSWP) +
  • +
  • + + Project Leads and Sub-Team Leads +
  • +
+
- {/* Embedded PDF Viewer */} - -
- -
+
+

+ Leadership & Growth +

+
    +
  • + + Student Organization Presidents & Officers +
  • +
  • + + Hatchling Directors +
  • +
  • + + Social connection with peers +
  • +
+
+
- + {/* More Info Section with Embedded PDF */} +
+

More Info

+
+
📊
+

+ Detailed Program Impact Report +

+

+ View our comprehensive impact report with detailed statistics, + success stories, and program outcomes. +

+ + {/* Embedded PDF Viewer */} + +
+ +
+ +
-

+ {/* Call to Action */} -
+
-

- READY TO JOIN? -

-

Become part of the next generation of robotics innovators. Apply now to join the Hatchling Program and accelerate your robotics journey. @@ -604,14 +563,14 @@ const Hatchling = () => {

- APPLY NOW + Apply Now - LEARN MORE + Learn More
-
+ ); }; diff --git a/src/pages/Home.jsx b/src/pages/Home.jsx index 1082007..4acd9d3 100644 --- a/src/pages/Home.jsx +++ b/src/pages/Home.jsx @@ -3,6 +3,7 @@ import { Link } from "react-router-dom"; import SponsorTicker from "../components/SponsorTicker"; import ButtonLink from "../components/ButtonLink"; import Hero from "../components/Hero"; +import PageSection from "../components/PageSection"; const ENABLE_SHOWCASE_POPUPS = true; @@ -24,7 +25,7 @@ const Home = () => { sizeVariant="large" style="primary" > - EXPLORE PROJECTS + Explore Projects { sizeVariant="large" style="primary-outline" > - LEARN MORE + Learn More - - {/* About Section */} -
-
-

- ABOUT TURTLE -

-
-
-
🎓
-

- Student Leadership -

-

- Developing the next generation of robotics leaders through - hands-on experience and mentorship. -

-
-
-
🔬
-

- Research Excellence -

-

- Cutting-edge robotics research across multiple domains and - applications. -

-
-
-
⚙️
-

- Engineering Development -

-

- Hands-on engineering experience through real-world robotics - projects, technical workshops, and collaborative problem - solving. -

-
+ +
+
+
🎓
+

+ Student Leadership +

+

+ Developing the next generation of robotics leaders through + hands-on experience and mentorship. +

+
+
+
🔬
+

+ Research Excellence +

+

+ Cutting-edge robotics research across multiple domains and + applications. +

+
+
+
⚙️
+

+ Engineering Development +

+

+ Hands-on engineering experience through real-world robotics + projects, technical workshops, and collaborative problem + solving. +

+ {/* Competition Accolades - Large Rectangle */}
🏆
@@ -104,24 +99,18 @@ const Home = () => {
-
- - {/* Contact Section */} -
-
-

- READY TO JOIN US -

+ + +
- APPLY NOW + Apply Now
-
- + {/* Kung Fu Tea Profit Share Popup - Mobile */} {/* {ENABLE_SHOWCASE_POPUPS && showMobilePopup && ( @@ -168,7 +157,6 @@ const Home = () => { )} */} - {/* Kung Fu Tea Profit Share Popup - Desktop */} {/* {ENABLE_SHOWCASE_POPUPS && ( @@ -199,42 +187,38 @@ const Home = () => { )} */} - - {/* Calendar Section */} -
-
-

- Calendar -

-
-
-
- -
+ +
+
+
+
-
- + + + + + ); diff --git a/src/pages/MechanicalIncubator.jsx b/src/pages/MechanicalIncubator.jsx index 726ead1..3b4c57a 100644 --- a/src/pages/MechanicalIncubator.jsx +++ b/src/pages/MechanicalIncubator.jsx @@ -1,7 +1,7 @@ -import ImageCarousel from "../components/ImageCarousel"; import ButtonLink from "../components/ButtonLink"; import TextLink from "../components/TextLink"; import Hero from "../components/Hero"; +import PageSection from "../components/PageSection"; const MechanicalIncubator = () => { const learningObjectiveGroups = [ @@ -150,110 +150,93 @@ const MechanicalIncubator = () => { > {/* Mission Statement Section */} -
-
-

- PREVIEW WORKSHOP -

- -
-

- TURTLE is thrilled to announce the launch of our Mechanical and - Software Incubator. Building upon the success of the Hatchling - Development Program, Incubator will provide hands-on opportunities - to learn new technical and leadership skills. Join us at our - upcoming preview workshops and RSVP for free{" "} - here - . -

-
+ +
+

+ TURTLE is thrilled to announce the launch of our Mechanical and + Software Incubator. Building upon the success of the Hatchling + Development Program, Incubator will provide hands-on opportunities + to learn new technical and leadership skills. Join us at our + upcoming preview workshops and RSVP for free{" "} + here. +

-
+ {/* Learning Objectives and Schedule Section */} -
-
-

- LEARNING OBJECTIVES & SCHEDULE -

+ + {/* Learning Objectives - Full Width on Top */} +
+

+ Core Learning Objectives +

+

+ Mechanical Incubator Members graduate from the program with a + community, passion for engineering, and the following skills: +

- {/* Learning Objectives - Full Width on Top */} -
-

- Core Learning Objectives -

-

- Mechanical Incubator Members graduate from the program with a - community, passion for engineering, and the following skills: -

+
+ {learningObjectiveGroups.map((group) => ( +
+

+ {group.groupName} +

+
    + {group.objectives.map((objective) => ( +
  • + + {objective} +
  • + ))} +
+
+ ))} +
+
-
- {learningObjectiveGroups.map((group) => ( -
-

- {group.groupName} + {/* Program Schedule - Horizontal Scrollable Timeline */} +
+

+ 10-Week Program Schedule +

+
+ {/* Scrollable Timeline Container */} +
+ {programScheduleItems.map((item) => ( +
+
+ {item.heading} +
+

+ {item.subheading}

-
    - {group.objectives.map((objective) => ( -
  • - - {objective} -
  • +
      + {item.objectives.map((objective) => ( +
    • • {objective}
    • ))} + {item.milestone ? ( +
    • + • Project Milestone: {item.milestone} +
    • + ) : null}
))}
-
- - {/* Program Schedule - Horizontal Scrollable Timeline */} -
-

- 10-Week Program Schedule -

-
- {/* Scrollable Timeline Container */} -
- {programScheduleItems.map((item) => ( -
-
- {item.heading} -
-

- {item.subheading} -

-
    - {item.objectives.map((objective) => ( -
  • • {objective}
  • - ))} - {item.milestone ? ( -
  • - • Project Milestone: {item.milestone} -
  • - ) : null} -
-
- ))} -
- {/* Scroll Indicator */} -
-

- ← Scroll to see all 10 weeks → -

-
+ {/* Scroll Indicator */} +
+

+ ← Scroll to see all 10 weeks → +

-

+ {/* Call to Action */} -
+
-

- READY TO JOIN? -

-

Become part of the next generation of robotics innovators. Apply now to join the Mechanical Incubator Program and accelerate your @@ -262,14 +245,14 @@ const MechanicalIncubator = () => {

- APPLY NOW + Apply Now - LEARN MORE + Learn More
-
+ ); }; diff --git a/src/pages/NotFound.jsx b/src/pages/NotFound.jsx index a60b87b..1045817 100644 --- a/src/pages/NotFound.jsx +++ b/src/pages/NotFound.jsx @@ -1,18 +1,15 @@ -import React from "react"; -import { Link } from "react-router-dom"; import ButtonLink from "../components/ButtonLink"; +import Hero from "../components/Hero"; const NotFound = () => ( -
-

404

-

Page Not Found

-

- Sorry, the page you are looking for does not exist. -

+ Go Home -
+ ); export default NotFound; diff --git a/src/pages/ProjectDetail.jsx b/src/pages/ProjectDetail.jsx index c0787b1..aafd16c 100644 --- a/src/pages/ProjectDetail.jsx +++ b/src/pages/ProjectDetail.jsx @@ -28,7 +28,7 @@ const ProjectDetail = () => { }, [project]); return ( -
+
{/* Back Button */} { {project.subtitle}

- + {project.category} {project.tags?.slice(0, 4).map((tag, i) => ( diff --git a/src/pages/Projects.jsx b/src/pages/Projects.jsx index 1cbdb75..3df411a 100644 --- a/src/pages/Projects.jsx +++ b/src/pages/Projects.jsx @@ -3,6 +3,7 @@ import { useState, useMemo } from "react"; import { projects } from "../data/projects"; import ButtonLink from "../components/ButtonLink"; import Hero from "../components/Hero"; +import PageSection from "../components/PageSection"; const Projects = () => { const [searchTerm, setSearchTerm] = useState(""); @@ -32,130 +33,126 @@ const Projects = () => { > {/* Projects Grid */} -
-
-
-
-
- setSearchTerm(e.target.value)} - className="w-full px-4 py-3 pl-12 border border-gray-600 rounded-xl bg-gray-800 text-gray-100 focus:ring-2 focus:ring-accent focus:border-transparent transition-all duration-200" + +
+
+
+ setSearchTerm(e.target.value)} + className="w-full px-4 py-3 pl-12 border border-gray-600 rounded-xl bg-gray-800 text-gray-100 focus:ring-2 focus:ring-accent focus:border-transparent transition-all duration-200" + /> + + - - - -
+
-
- {filteredProjects.map((project, index) => ( - - {/* Image */} -
- {project.title} -
-
- - {project.category} - - {project.tags?.slice(0, 2).map((tag, tagIndex) => ( - - {tag} - - ))} -
-
- - Click to expand +
+
+ {filteredProjects.map((project, index) => ( + + {/* Image */} +
+ {project.title} +
+
+ + {project.category} + + {project.tags?.slice(0, 2).map((tag, tagIndex) => ( + + {tag} -
+ ))} +
+
+ + Click to expand +
+
- {/* Content */} -
-

- {project.title} -

-

- {project.subtitle} -

-

- {project.description} -

+ {/* Content */} +
+

+ {project.title} +

+

+ {project.subtitle} +

+

+ {project.description} +

- {/* Project Lead */} -

- Lead: {project.lead} -

+ {/* Project Lead */} +

+ Lead: {project.lead} +

- {/* Status and Duration */} -
- - {project.status} - - - {project.duration} - -
+ {/* Status and Duration */} +
+ + {project.status} + + + {project.duration} + +
- {/* View Details Button */} -
+ {/* View Details Button */} +
+ + View Details → + + {project.status !== "Archived" && ( - View Details → + Apply - {project.status !== "Archived" && ( - - Apply - - )} -
+ )}
- - ))} -
+
+ + ))}
-
- - {/* Removed modal: clicking a card navigates to /projects/:id */} +
); }; diff --git a/src/pages/Showcase.jsx b/src/pages/Showcase.jsx index 5c6c501..272385f 100644 --- a/src/pages/Showcase.jsx +++ b/src/pages/Showcase.jsx @@ -1,4 +1,5 @@ import { useEffect, useState } from "react"; +import PageSection from "../components/PageSection"; import TextLink from "../components/TextLink"; const ENABLE_SHOWCASE_COUNTDOWN = true; @@ -103,7 +104,7 @@ function Showcase() { > {/* Title with text shadow for better readability */}

- TURTLE Showcase + TURTLE SHOWCASE

{ENABLE_SHOWCASE_COUNTDOWN ? ( @@ -182,12 +183,8 @@ function Showcase() {
{/* FAQ SECTION */} -
+
-

- Frequently Asked Questions -

-
@@ -272,14 +269,11 @@ function Showcase() { )}
-
+ {/* SHOWCASE PROJECT INTEREST FORM SECTION (deprecated Jan 2026, replaced with email link) */} -
+
-

- Showcase Project Interest -

To express your interest in a project, please email us directly at:

@@ -287,7 +281,7 @@ function Showcase() { turtlerobotics@gmail.com
-
+