From 7e5fc2ad455c7198b7f066ac7f237befff11bcb0 Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:18:34 -0700 Subject: [PATCH 01/19] importing all images --- .../_components/StarterKit/Ideate.tsx | 36 +++++ .../hackers/starter-kit/ideate/arrow_icon.svg | 3 + public/hackers/starter-kit/ideate/auth0.svg | 10 ++ .../ideate/designer_responsibilities.svg | 132 ++++++++++++++++++ .../starter-kit/ideate/designer_tips1.svg | 9 ++ .../starter-kit/ideate/designer_tips2.svg | 9 ++ .../ideate/developer_responsibilities.svg | 109 +++++++++++++++ public/hackers/starter-kit/ideate/divider.svg | 3 + .../starter-kit/ideate/figma_beginners.svg | 10 ++ .../starter-kit/ideate/figma_shapes.svg | 9 ++ public/hackers/starter-kit/ideate/mongodb.svg | 10 ++ .../starter-kit/ideate/scroll_bar1.svg | 4 + .../starter-kit/ideate/tabler_brand-figma.svg | 5 + .../ideate/tabler_brand-github.svg | 3 + .../ideate/tabler_device-desktop-code.svg | 3 + .../ideate/tabler_image-in-picture.svg | 3 + .../ideate/tabler_message-chatbot.svg | 3 + .../ideate/tabler_presentation-analytics.svg | 3 + .../starter-kit/ideate/tabler_shape.svg | 3 + .../starter-kit/ideate/tabler_sparkles-2.svg | 3 + .../starter-kit/ideate/tabler_text-size.svg | 3 + .../ideate/tabler_writing-sign.svg | 3 + .../hackers/starter-kit/ideate/timeline.svg | 20 +++ .../table-number-checkin/diag-arrow.svg | 5 + .../mascots-hanging-out.svg | 95 +++++++++++++ .../table-number-checkin/sleeping-frog.svg | 22 +++ public/hackers/table-number-checkin/stars.svg | 6 + public/judges/projects/project-cow.svg | 117 ++++------------ 28 files changed, 553 insertions(+), 88 deletions(-) create mode 100644 public/hackers/starter-kit/ideate/arrow_icon.svg create mode 100644 public/hackers/starter-kit/ideate/auth0.svg create mode 100644 public/hackers/starter-kit/ideate/designer_responsibilities.svg create mode 100644 public/hackers/starter-kit/ideate/designer_tips1.svg create mode 100644 public/hackers/starter-kit/ideate/designer_tips2.svg create mode 100644 public/hackers/starter-kit/ideate/developer_responsibilities.svg create mode 100644 public/hackers/starter-kit/ideate/divider.svg create mode 100644 public/hackers/starter-kit/ideate/figma_beginners.svg create mode 100644 public/hackers/starter-kit/ideate/figma_shapes.svg create mode 100644 public/hackers/starter-kit/ideate/mongodb.svg create mode 100644 public/hackers/starter-kit/ideate/scroll_bar1.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_brand-figma.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_brand-github.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_image-in-picture.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_message-chatbot.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_shape.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_sparkles-2.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_text-size.svg create mode 100644 public/hackers/starter-kit/ideate/tabler_writing-sign.svg create mode 100644 public/hackers/starter-kit/ideate/timeline.svg create mode 100644 public/hackers/table-number-checkin/diag-arrow.svg create mode 100644 public/hackers/table-number-checkin/mascots-hanging-out.svg create mode 100644 public/hackers/table-number-checkin/sleeping-frog.svg create mode 100644 public/hackers/table-number-checkin/stars.svg diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index 8c6b49011..51506e520 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -1,3 +1,39 @@ +'use client'; + +import Image from "next/image"; +import type { StaticImageData } from "next/image"; // why statuc image data? +// Icons +import writing_sign from "@public/hackers/starter-kit/ideate/tabler_writing-sign.svg"; +import presentation_analytics from "@public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg"; +import sparkles from "@public/hackers/starter-kit/ideate/tabler_sparkles-2.svg"; +import figma from "@public/hackers/starter-kit/ideate/tabler_brand-figma.svg"; + +import github from "@public/hackers/starter-kit/ideate/tabler_brand-github.svg"; +import desktop_code from "@public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg"; +import message_chatbot from "@public/hackers/starter-kit/ideate/tabler_message-chatbot.svg"; + +import text_size from "@public/hackers/starter-kit/ideate/tabler_text-size.svg"; +import image_in_picture from "@public/hackers/starter-kit/ideate/tabler_image-in-picture.svg"; +import shape from "@public/hackers/starter-kit/ideate/tabler_shape.svg"; + +import arrow from "@public/hackers/starter-kit/ideate/arrow_icon.svg"; + +// Big Images +import designer_responsibilities_image from "@public/hackers/starter-kit/ideate/designer_responsibilities.svg"; +import developer_responsibilities_image from "@public/hackers/starter-kit/ideate/developer_responsibilities.svg"; +import designer_tips1_image from "@public/hackers/starter-kit/ideate/designer_tips1.svg"; +import designer_tips2_image from "@public/hackers/starter-kit/ideate/designer_tips2.svg"; + +import figma_beginners_image from "@public/hackers/starter-kit/ideate/figma_beginners.svg"; +import figma_shapes from "@public/hackers/starter-kit/ideate/figma_shapes.svg"; +import mongodb from "@public/hackers/starter-kit/ideate/mongodb.svg"; +import auth0 from "@public/hackers/starter-kit/ideate/auth0.svg"; + +import timeline from "@public/hackers/starter-kit/ideate/timeline.svg"; + +// Extra +import scroll_bar1 from "@public/hackers/starter-kit/ideate/scroll_bar1.svg"; +import divider from "@public/hackers/starter-kit/ideate/divider.svg"; export default function Ideate() { return
Ideate
; } diff --git a/public/hackers/starter-kit/ideate/arrow_icon.svg b/public/hackers/starter-kit/ideate/arrow_icon.svg new file mode 100644 index 000000000..6e1703f1e --- /dev/null +++ b/public/hackers/starter-kit/ideate/arrow_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/auth0.svg b/public/hackers/starter-kit/ideate/auth0.svg new file mode 100644 index 000000000..826de569c --- /dev/null +++ b/public/hackers/starter-kit/ideate/auth0.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/hackers/starter-kit/ideate/designer_responsibilities.svg b/public/hackers/starter-kit/ideate/designer_responsibilities.svg new file mode 100644 index 000000000..9a41d5ccd --- /dev/null +++ b/public/hackers/starter-kit/ideate/designer_responsibilities.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/hackers/starter-kit/ideate/designer_tips1.svg b/public/hackers/starter-kit/ideate/designer_tips1.svg new file mode 100644 index 000000000..ff8554a8c --- /dev/null +++ b/public/hackers/starter-kit/ideate/designer_tips1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/hackers/starter-kit/ideate/designer_tips2.svg b/public/hackers/starter-kit/ideate/designer_tips2.svg new file mode 100644 index 000000000..456f2d75d --- /dev/null +++ b/public/hackers/starter-kit/ideate/designer_tips2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/hackers/starter-kit/ideate/developer_responsibilities.svg b/public/hackers/starter-kit/ideate/developer_responsibilities.svg new file mode 100644 index 000000000..c9bbf73a5 --- /dev/null +++ b/public/hackers/starter-kit/ideate/developer_responsibilities.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/hackers/starter-kit/ideate/divider.svg b/public/hackers/starter-kit/ideate/divider.svg new file mode 100644 index 000000000..2e5e0b56b --- /dev/null +++ b/public/hackers/starter-kit/ideate/divider.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/figma_beginners.svg b/public/hackers/starter-kit/ideate/figma_beginners.svg new file mode 100644 index 000000000..ab245ee3c --- /dev/null +++ b/public/hackers/starter-kit/ideate/figma_beginners.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/hackers/starter-kit/ideate/figma_shapes.svg b/public/hackers/starter-kit/ideate/figma_shapes.svg new file mode 100644 index 000000000..11db21c95 --- /dev/null +++ b/public/hackers/starter-kit/ideate/figma_shapes.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/hackers/starter-kit/ideate/mongodb.svg b/public/hackers/starter-kit/ideate/mongodb.svg new file mode 100644 index 000000000..0fc9e7fcc --- /dev/null +++ b/public/hackers/starter-kit/ideate/mongodb.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/hackers/starter-kit/ideate/scroll_bar1.svg b/public/hackers/starter-kit/ideate/scroll_bar1.svg new file mode 100644 index 000000000..4b16cafff --- /dev/null +++ b/public/hackers/starter-kit/ideate/scroll_bar1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/hackers/starter-kit/ideate/tabler_brand-figma.svg b/public/hackers/starter-kit/ideate/tabler_brand-figma.svg new file mode 100644 index 000000000..0560fa2f8 --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_brand-figma.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/hackers/starter-kit/ideate/tabler_brand-github.svg b/public/hackers/starter-kit/ideate/tabler_brand-github.svg new file mode 100644 index 000000000..9c4ae3c2e --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_brand-github.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg b/public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg new file mode 100644 index 000000000..feb13ae42 --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/tabler_image-in-picture.svg b/public/hackers/starter-kit/ideate/tabler_image-in-picture.svg new file mode 100644 index 000000000..0ee3b76ae --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_image-in-picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/tabler_message-chatbot.svg b/public/hackers/starter-kit/ideate/tabler_message-chatbot.svg new file mode 100644 index 000000000..9a585fbbe --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_message-chatbot.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg b/public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg new file mode 100644 index 000000000..07993a8c6 --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/tabler_shape.svg b/public/hackers/starter-kit/ideate/tabler_shape.svg new file mode 100644 index 000000000..0f2ebc546 --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_shape.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/tabler_sparkles-2.svg b/public/hackers/starter-kit/ideate/tabler_sparkles-2.svg new file mode 100644 index 000000000..4c7675c4d --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_sparkles-2.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/tabler_text-size.svg b/public/hackers/starter-kit/ideate/tabler_text-size.svg new file mode 100644 index 000000000..74ef7406b --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_text-size.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/tabler_writing-sign.svg b/public/hackers/starter-kit/ideate/tabler_writing-sign.svg new file mode 100644 index 000000000..937ffeee2 --- /dev/null +++ b/public/hackers/starter-kit/ideate/tabler_writing-sign.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/hackers/starter-kit/ideate/timeline.svg b/public/hackers/starter-kit/ideate/timeline.svg new file mode 100644 index 000000000..7ed89c02c --- /dev/null +++ b/public/hackers/starter-kit/ideate/timeline.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/public/hackers/table-number-checkin/diag-arrow.svg b/public/hackers/table-number-checkin/diag-arrow.svg new file mode 100644 index 000000000..ebcc8fe0c --- /dev/null +++ b/public/hackers/table-number-checkin/diag-arrow.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/hackers/table-number-checkin/mascots-hanging-out.svg b/public/hackers/table-number-checkin/mascots-hanging-out.svg new file mode 100644 index 000000000..bc3909e47 --- /dev/null +++ b/public/hackers/table-number-checkin/mascots-hanging-out.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/hackers/table-number-checkin/sleeping-frog.svg b/public/hackers/table-number-checkin/sleeping-frog.svg new file mode 100644 index 000000000..4deb77999 --- /dev/null +++ b/public/hackers/table-number-checkin/sleeping-frog.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/hackers/table-number-checkin/stars.svg b/public/hackers/table-number-checkin/stars.svg new file mode 100644 index 000000000..d51c422e3 --- /dev/null +++ b/public/hackers/table-number-checkin/stars.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/judges/projects/project-cow.svg b/public/judges/projects/project-cow.svg index f0ae65eb8..3328476d6 100644 --- a/public/judges/projects/project-cow.svg +++ b/public/judges/projects/project-cow.svg @@ -1,93 +1,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + From 165b224695d55a576fd507efc21df68c01989b9d Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:27:50 -0700 Subject: [PATCH 02/19] link section --- .../_components/StarterKit/Ideate.tsx | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index 51506e520..b9ba45586 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -34,6 +34,33 @@ import timeline from "@public/hackers/starter-kit/ideate/timeline.svg"; // Extra import scroll_bar1 from "@public/hackers/starter-kit/ideate/scroll_bar1.svg"; import divider from "@public/hackers/starter-kit/ideate/divider.svg"; + +interface Link { + type: string; + title: string; + description: string; + image: StaticImageData; + buttonName: string; + link: string; + alt: string; +} + +function Link({link} : {link: Link}) { + return ( +
+ {link.alt} +
+

{link.type}

+

{link.title}

+

{link.description}

+ +
+
+ ); +} export default function Ideate() { return
Ideate
; } From 95b032dd9bf5bc01d509650dce813a33f07d37ba Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:28:40 -0700 Subject: [PATCH 03/19] resources section --- app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index b9ba45586..feed9d591 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -61,6 +61,15 @@ function Link({link} : {link: Link}) { ); } +function Resources({title, link1, link2} : {title: string, link1: Link, link2: Link}) { + return ( +
+

{title}

+ + +
+ ); +} export default function Ideate() { return
Ideate
; } From c9ab9e4e045881b91d2e8b1716133091db1a4f80 Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:30:42 -0700 Subject: [PATCH 04/19] responsibilties section --- .../_components/StarterKit/Ideate.tsx | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index feed9d591..7faef8179 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -70,6 +70,81 @@ function Resources({title, link1, link2} : {title: string, link1: Link, link2: L ); } + +interface Responsibility { + icon: StaticImageData; + title: string; + description: string; +} + +// shi figure out that bar!!!!!! +function Responsibilities({image, title, responsibilities, reverse} : {image: StaticImageData, title: string, responsibilities: Responsibility[], reverse: boolean}) { + const sectionRef = useRef(null); + const scrollRef = useRef(null); + + const [responsibilityIndex, setResponsibilityIndex] = useState(0); + const [scrollPos, setScrollPos] = useState(50); + + /*useEffect(() => { + const onPageScroll = () => { + const section = sectionRef.current.scrollTo(); + const scrollContainer = scrollRef.current; + if (!section) return; + + const rect = section.getBoundingClientRect(); + const anchorY = window.innerHeight * 0.35; + const traveled = anchorY - rect.top; + const rawProgress = traveled / Math.max(rect.height, 1); + const progress = Math.min(Math.max(rawProgress, 0), 0.999); + const nextIndex = Math.floor(progress * responsibilities.length); + const clampedIndex = Math.max(0, Math.min(responsibilities.length - 1, nextIndex)); + + setResponsibilityIndex(clampedIndex); + + if (scrollContainer) { + const maxHeight = scrollContainer.clientHeight; + const fillProgress = responsibilities.length > 1 ? clampedIndex / (responsibilities.length - 1) : 0; + setScrollPos(fillProgress * maxHeight); + } + }; + + onPageScroll(); + window.addEventListener("scroll", onPageScroll, { passive: true }); + //window.addEventListener("resize", onPageScroll); + + return () => { + window.removeEventListener("scroll", onPageScroll); + //window.removeEventListener("resize", onPageScroll); + }; + }, );//[responsibilities.length]);*/ + + return ( +
+

IDEATE

+

{title}

+
+ {`${title} + +
+
+
+
+
+ {responsibilities.map((responsibility, index) => ( +
+
+ {`${responsibility.title} + {index == responsibilityIndex ?

{responsibility.title}

:

{responsibility.title}

} +
+ {index == responsibilityIndex &&

{responsibility.description}

} +
+ ))} +
+
+
+
+ ); +} export default function Ideate() { return
Ideate
; } From 0b051c1fd07bab5afdb913a6a9f2c32c4bda6ed9 Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:31:29 -0700 Subject: [PATCH 05/19] tips section --- .../_components/StarterKit/Ideate.tsx | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index 7faef8179..8999b8e9f 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -145,6 +145,36 @@ function Responsibilities({image, title, responsibilities, reverse} : {image: St ); } + +interface Tip { + icon?: StaticImageData; + title?: string; + tip: string; +} + +function Tips({image, subtitle, title, description, tips, reverse} : {image: StaticImageData, subtitle: string, title: string, description: string, tips: Tip[], reverse: boolean}) { + return ( +
+ {`${title} +
+

{subtitle}

+

{title}

+

{description}

+
+ {tips.map((tip, index) => ( +
+ {tip.icon ? {`${tip.title} :

{`0${index + 1}.`}

} +
+

{tip.title && {tip.title}:} {tip.tip}

+
+
+ ))} +
+
+ ); +} + + export default function Ideate() { return
Ideate
; } From 35c0c821c7280ffa875af46cd8be91eb6caf0f71 Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:32:35 -0700 Subject: [PATCH 06/19] the data/words that go in each section --- .../_components/StarterKit/Ideate.tsx | 69 ++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index 8999b8e9f..34fd49dc8 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -176,5 +176,72 @@ function Tips({image, subtitle, title, description, tips, reverse} : {image: Sta export default function Ideate() { - return
Ideate
; + // Data + const designer_responsibilities = [ + {icon: writing_sign, title: "Research problem statement", description: "A problem statement should include: background, people affected, and the impact of the problem."}, + {icon: figma, title: "Craft UI/UX visuals", description: "Create wireframes, mockups, and prototypes that bring the product vision to life."}, + {icon: sparkles, title: "Iterate on feedback & refine", description: "Collaborate with your team, gather insights, and polish the design through multiple iterations."}, + {icon: presentation_analytics, title: "Create presentation & pitch", description: "Be prepared to present design decisions, rationale, and final deliverables to the judges!"}, + ] + + const developer_responsibilities = [ + {icon: writing_sign, title: "Plan out system design", description: "Figure out what tech stack and technologies you want to use for your product."}, + {icon: github, title: "Set up codebase scaffolding", description: "Create a GitHub repo and initialize the project so your team can collaborate."}, + {icon: message_chatbot, title: "Divide and conquer", description: "Split the product into features and assign tasks so teammates can build in parallel."}, + {icon: desktop_code, title: "Build a functioning demo", description: "Implement core features and ensure you have a working product ready for presentations."}, + ] + + const design_tips1 = [ + {tip: "Go in the left panel and navigate to Assets"}, + {tip: "Press Add more libraries"}, + {tip: "Click UI Kits on the left panel in the Libraries Module"}, + {tip: "Add your preferred library to your design file!"}, + ] + + const design_tips2 = [ + {icon: shape, title: "Iconify", tip: "A library of 100,000+ icons."}, + {icon: image_in_picture, title: "Remove BG", tip: "Removes the background of any photo instantly."}, + {icon: text_size, title: "Stark", tip: "Checks if your text is readable for accessibility."}, + ] + + const designer_link1 = { + type: "FIGMA COURSE", + title: "Figma for Beginners", + description: "New to Figma? This hands-on course offers a quick tour of key features, while guiding you through designing a portfolio website from scratch.", + image: figma_beginners_image, + buttonName: "Start Course", + link: "https://help.figma.com/hc/en-us/sections/30880632542743-Figma-Design-for-beginners", + alt: "Figma Design For Beginners course preview image", + } + + const designer_link2 = { + type: "FIGMA BLOG", + title: "What is Product Design?", + description: "How can you create the best product or service for your users? This article by Figma explains how Product Design is the process of developing experiences to meet user needs and align with business goals + strategies.", + image: figma_shapes, + buttonName: "Read", + link: "https://www.figma.com/resource-library/what-is-product-design/", + alt: "What is product design blog post preview image", + } + + const developer_link1 = { + type: "MLH STARTER KIT", + title: "Get Started with MongoDB", + description: "Whether you are new to MongoDB or looking for a little inspiration to get your hackathon project started, the MongoDB Developer Center has all the latest MongoDB tutorials, videos and code examples featuring over a dozen programming languages, and even more technology integrations!", + image: mongodb, + buttonName: "Read", + link: "https://news.mlh.io/read-and-write-to-a-mongodb-atlas-database-in-minutes-04-19-2023?utm_source=mlh&utm_medium=referral&utm_content=MongoDB+Starter+Kit", + alt: "MongoDB logo", + } + + const developer_link2 = { + type: "MLH STARTER KIT", + title: "Get Started with Authentication", + description: "Auth0 is an easy to use authentication and authorization platform! If your hackathon project requires a log in and sign up workflow, Auth0 supports this functionality straight out of the box. Best of all, it’s simple and free to get started.", + image: auth0, + buttonName: "Read", + link: "https://news.mlh.io/enable-user-authentication-for-your-hackathon-project-in-as-little-as-ten-minutes-05-12-2023?utm_source=mlh&utm_medium=referral&utm_content=Auth0+Starter+Kit", + alt: "Auth0 logo", + + } } From f57ca8ed065edf4ef1ad10255f03e1a747c8e54e Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:33:05 -0700 Subject: [PATCH 07/19] all the sections together --- .../_components/StarterKit/Ideate.tsx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index 34fd49dc8..cf7895bdd 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -244,4 +244,46 @@ export default function Ideate() { alt: "Auth0 logo", } + + return ( +
+ {/** Section 1 */} +
+ +
+ + {/** Section 2 */} +
+

Design Tips

+ +
+ + {/** Section 3 */} +
+ +
+ + {/** Section 4 */} +
+ +
+ + {/** Section 5 */} +
+ +
+ + {/** Section 6 */} +
+ +
+ + {/** Section 7 */} +
+

OUR RECOMMENDED BREAKDOWN TO

+

Keep track of time

+ timeline +
+
+ ); } From cb03022fe62e1578f69939c354fe431a996716e3 Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:34:18 -0700 Subject: [PATCH 08/19] import usestate useref useeffect for animation --- app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index cf7895bdd..174a2348d 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -2,6 +2,8 @@ import Image from "next/image"; import type { StaticImageData } from "next/image"; // why statuc image data? +import { useState, useRef, useEffect } from 'react'; + // Icons import writing_sign from "@public/hackers/starter-kit/ideate/tabler_writing-sign.svg"; import presentation_analytics from "@public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg"; From 6ed38c8f1e48d710f16fb0fbefbd684fde254b9b Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:34:43 -0700 Subject: [PATCH 09/19] i forgot to change the font for link --- app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index 174a2348d..97702d7f9 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -52,7 +52,7 @@ function Link({link} : {link: Link}) {
{link.alt}
-

{link.type}

+

{link.type}

{link.title}

{link.description}

); } + function Resources({title, link1, link2} : {title: string, link1: Link, link2: Link}) { return (
From 47d12650db443704e8b9a8e413beeb71e352e3e7 Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 17:45:48 -0700 Subject: [PATCH 10/19] linting --- .../_components/StarterKit/Ideate.tsx | 455 +++++++++++++----- 1 file changed, 322 insertions(+), 133 deletions(-) diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index 97702d7f9..6004315f7 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -1,53 +1,53 @@ 'use client'; -import Image from "next/image"; -import type { StaticImageData } from "next/image"; // why statuc image data? -import { useState, useRef, useEffect } from 'react'; +import Image from 'next/image'; +import type { StaticImageData } from 'next/image'; // why statuc image data? +import { useState, useRef } from 'react'; // Icons -import writing_sign from "@public/hackers/starter-kit/ideate/tabler_writing-sign.svg"; -import presentation_analytics from "@public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg"; -import sparkles from "@public/hackers/starter-kit/ideate/tabler_sparkles-2.svg"; -import figma from "@public/hackers/starter-kit/ideate/tabler_brand-figma.svg"; - -import github from "@public/hackers/starter-kit/ideate/tabler_brand-github.svg"; -import desktop_code from "@public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg"; -import message_chatbot from "@public/hackers/starter-kit/ideate/tabler_message-chatbot.svg"; +import writing_sign from '@public/hackers/starter-kit/ideate/tabler_writing-sign.svg'; +import presentation_analytics from '@public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg'; +import sparkles from '@public/hackers/starter-kit/ideate/tabler_sparkles-2.svg'; +import figma from '@public/hackers/starter-kit/ideate/tabler_brand-figma.svg'; -import text_size from "@public/hackers/starter-kit/ideate/tabler_text-size.svg"; -import image_in_picture from "@public/hackers/starter-kit/ideate/tabler_image-in-picture.svg"; -import shape from "@public/hackers/starter-kit/ideate/tabler_shape.svg"; +import github from '@public/hackers/starter-kit/ideate/tabler_brand-github.svg'; +import desktop_code from '@public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg'; +import message_chatbot from '@public/hackers/starter-kit/ideate/tabler_message-chatbot.svg'; -import arrow from "@public/hackers/starter-kit/ideate/arrow_icon.svg"; +import text_size from '@public/hackers/starter-kit/ideate/tabler_text-size.svg'; +import image_in_picture from '@public/hackers/starter-kit/ideate/tabler_image-in-picture.svg'; +import shape from '@public/hackers/starter-kit/ideate/tabler_shape.svg'; + +import arrow from '@public/hackers/starter-kit/ideate/arrow_icon.svg'; // Big Images -import designer_responsibilities_image from "@public/hackers/starter-kit/ideate/designer_responsibilities.svg"; -import developer_responsibilities_image from "@public/hackers/starter-kit/ideate/developer_responsibilities.svg"; -import designer_tips1_image from "@public/hackers/starter-kit/ideate/designer_tips1.svg"; -import designer_tips2_image from "@public/hackers/starter-kit/ideate/designer_tips2.svg"; +import designer_responsibilities_image from '@public/hackers/starter-kit/ideate/designer_responsibilities.svg'; +import developer_responsibilities_image from '@public/hackers/starter-kit/ideate/developer_responsibilities.svg'; +import designer_tips1_image from '@public/hackers/starter-kit/ideate/designer_tips1.svg'; +import designer_tips2_image from '@public/hackers/starter-kit/ideate/designer_tips2.svg'; -import figma_beginners_image from "@public/hackers/starter-kit/ideate/figma_beginners.svg"; -import figma_shapes from "@public/hackers/starter-kit/ideate/figma_shapes.svg"; -import mongodb from "@public/hackers/starter-kit/ideate/mongodb.svg"; -import auth0 from "@public/hackers/starter-kit/ideate/auth0.svg"; +import figma_beginners_image from '@public/hackers/starter-kit/ideate/figma_beginners.svg'; +import figma_shapes from '@public/hackers/starter-kit/ideate/figma_shapes.svg'; +import mongodb from '@public/hackers/starter-kit/ideate/mongodb.svg'; +import auth0 from '@public/hackers/starter-kit/ideate/auth0.svg'; -import timeline from "@public/hackers/starter-kit/ideate/timeline.svg"; +import timeline from '@public/hackers/starter-kit/ideate/timeline.svg'; // Extra -import scroll_bar1 from "@public/hackers/starter-kit/ideate/scroll_bar1.svg"; -import divider from "@public/hackers/starter-kit/ideate/divider.svg"; +//import scroll_bar1 from '@public/hackers/starter-kit/ideate/scroll_bar1.svg'; +//import divider from '@public/hackers/starter-kit/ideate/divider.svg'; interface Link { type: string; title: string; description: string; image: StaticImageData; - buttonName: string; + buttonName: string; link: string; alt: string; } -function Link({link} : {link: Link}) { +function Link({ link }: { link: Link }) { return (
{link.alt} @@ -55,19 +55,36 @@ function Link({link} : {link: Link}) {

{link.type}

{link.title}

{link.description}

- +
); } -function Resources({title, link1, link2} : {title: string, link1: Link, link2: Link}) { +function Resources({ + title, + link1, + link2, +}: { + title: string; + link1: Link; + link2: Link; +}) { return (
-

{title}

+

+ {title} +

@@ -81,12 +98,22 @@ interface Responsibility { } // shi figure out that bar!!!!!! -function Responsibilities({image, title, responsibilities, reverse} : {image: StaticImageData, title: string, responsibilities: Responsibility[], reverse: boolean}) { +function Responsibilities({ + image, + title, + responsibilities, + reverse, +}: { + image: StaticImageData; + title: string; + responsibilities: Responsibility[]; + reverse: boolean; +}) { const sectionRef = useRef(null); const scrollRef = useRef(null); - const [responsibilityIndex, setResponsibilityIndex] = useState(0); - const [scrollPos, setScrollPos] = useState(50); + const [responsibilityIndex] = useState(0); + const [scrollPos] = useState(50); /*useEffect(() => { const onPageScroll = () => { @@ -125,21 +152,54 @@ function Responsibilities({image, title, responsibilities, reverse} : {image: St

IDEATE

{title}

-
- {`${title} +
+ {`${title}
-
-
+
+
{responsibilities.map((responsibility, index) => (
- {`${responsibility.title} - {index == responsibilityIndex ?

{responsibility.title}

:

{responsibility.title}

} + {`${responsibility.title} + {index == responsibilityIndex ? ( +

+ {responsibility.title} +

+ ) : ( +

+ {responsibility.title} +

+ )}
- {index == responsibilityIndex &&

{responsibility.description}

} + {index == responsibilityIndex && ( +

+ {responsibility.description} +

+ )}
))}
@@ -149,26 +209,63 @@ function Responsibilities({image, title, responsibilities, reverse} : {image: St ); } -interface Tip { +interface Tip { icon?: StaticImageData; title?: string; tip: string; } -function Tips({image, subtitle, title, description, tips, reverse} : {image: StaticImageData, subtitle: string, title: string, description: string, tips: Tip[], reverse: boolean}) { +function Tips({ + image, + subtitle, + title, + description, + tips, + reverse, +}: { + image: StaticImageData; + subtitle: string; + title: string; + description: string; + tips: Tip[]; + reverse: boolean; +}) { return ( -
- {`${title} +
+ {`${title}

{subtitle}

{title}

{description}

-
+
{tips.map((tip, index) => ( -
- {tip.icon ? {`${tip.title} :

{`0${index + 1}.`}

} +
+ {tip.icon ? ( + {`${tip.title} + ) : ( +

{`0${index + 1}.`}

+ )}
-

{tip.title && {tip.title}:} {tip.tip}

+

+ {tip.title && ( + + {tip.title}: + + )}{' '} + {tip.tip} +

))} @@ -177,116 +274,208 @@ function Tips({image, subtitle, title, description, tips, reverse} : {image: Sta ); } - export default function Ideate() { // Data const designer_responsibilities = [ - {icon: writing_sign, title: "Research problem statement", description: "A problem statement should include: background, people affected, and the impact of the problem."}, - {icon: figma, title: "Craft UI/UX visuals", description: "Create wireframes, mockups, and prototypes that bring the product vision to life."}, - {icon: sparkles, title: "Iterate on feedback & refine", description: "Collaborate with your team, gather insights, and polish the design through multiple iterations."}, - {icon: presentation_analytics, title: "Create presentation & pitch", description: "Be prepared to present design decisions, rationale, and final deliverables to the judges!"}, - ] + { + icon: writing_sign, + title: 'Research problem statement', + description: + 'A problem statement should include: background, people affected, and the impact of the problem.', + }, + { + icon: figma, + title: 'Craft UI/UX visuals', + description: + 'Create wireframes, mockups, and prototypes that bring the product vision to life.', + }, + { + icon: sparkles, + title: 'Iterate on feedback & refine', + description: + 'Collaborate with your team, gather insights, and polish the design through multiple iterations.', + }, + { + icon: presentation_analytics, + title: 'Create presentation & pitch', + description: + 'Be prepared to present design decisions, rationale, and final deliverables to the judges!', + }, + ]; const developer_responsibilities = [ - {icon: writing_sign, title: "Plan out system design", description: "Figure out what tech stack and technologies you want to use for your product."}, - {icon: github, title: "Set up codebase scaffolding", description: "Create a GitHub repo and initialize the project so your team can collaborate."}, - {icon: message_chatbot, title: "Divide and conquer", description: "Split the product into features and assign tasks so teammates can build in parallel."}, - {icon: desktop_code, title: "Build a functioning demo", description: "Implement core features and ensure you have a working product ready for presentations."}, - ] + { + icon: writing_sign, + title: 'Plan out system design', + description: + 'Figure out what tech stack and technologies you want to use for your product.', + }, + { + icon: github, + title: 'Set up codebase scaffolding', + description: + 'Create a GitHub repo and initialize the project so your team can collaborate.', + }, + { + icon: message_chatbot, + title: 'Divide and conquer', + description: + 'Split the product into features and assign tasks so teammates can build in parallel.', + }, + { + icon: desktop_code, + title: 'Build a functioning demo', + description: + 'Implement core features and ensure you have a working product ready for presentations.', + }, + ]; const design_tips1 = [ - {tip: "Go in the left panel and navigate to Assets"}, - {tip: "Press Add more libraries"}, - {tip: "Click UI Kits on the left panel in the Libraries Module"}, - {tip: "Add your preferred library to your design file!"}, - ] + { tip: 'Go in the left panel and navigate to Assets' }, + { tip: 'Press Add more libraries' }, + { tip: 'Click UI Kits on the left panel in the Libraries Module' }, + { tip: 'Add your preferred library to your design file!' }, + ]; const design_tips2 = [ - {icon: shape, title: "Iconify", tip: "A library of 100,000+ icons."}, - {icon: image_in_picture, title: "Remove BG", tip: "Removes the background of any photo instantly."}, - {icon: text_size, title: "Stark", tip: "Checks if your text is readable for accessibility."}, - ] + { icon: shape, title: 'Iconify', tip: 'A library of 100,000+ icons.' }, + { + icon: image_in_picture, + title: 'Remove BG', + tip: 'Removes the background of any photo instantly.', + }, + { + icon: text_size, + title: 'Stark', + tip: 'Checks if your text is readable for accessibility.', + }, + ]; const designer_link1 = { - type: "FIGMA COURSE", - title: "Figma for Beginners", - description: "New to Figma? This hands-on course offers a quick tour of key features, while guiding you through designing a portfolio website from scratch.", + type: 'FIGMA COURSE', + title: 'Figma for Beginners', + description: + 'New to Figma? This hands-on course offers a quick tour of key features, while guiding you through designing a portfolio website from scratch.', image: figma_beginners_image, - buttonName: "Start Course", - link: "https://help.figma.com/hc/en-us/sections/30880632542743-Figma-Design-for-beginners", - alt: "Figma Design For Beginners course preview image", - } + buttonName: 'Start Course', + link: 'https://help.figma.com/hc/en-us/sections/30880632542743-Figma-Design-for-beginners', + alt: 'Figma Design For Beginners course preview image', + }; const designer_link2 = { - type: "FIGMA BLOG", - title: "What is Product Design?", - description: "How can you create the best product or service for your users? This article by Figma explains how Product Design is the process of developing experiences to meet user needs and align with business goals + strategies.", + type: 'FIGMA BLOG', + title: 'What is Product Design?', + description: + 'How can you create the best product or service for your users? This article by Figma explains how Product Design is the process of developing experiences to meet user needs and align with business goals + strategies.', image: figma_shapes, - buttonName: "Read", - link: "https://www.figma.com/resource-library/what-is-product-design/", - alt: "What is product design blog post preview image", - } + buttonName: 'Read', + link: 'https://www.figma.com/resource-library/what-is-product-design/', + alt: 'What is product design blog post preview image', + }; const developer_link1 = { - type: "MLH STARTER KIT", - title: "Get Started with MongoDB", - description: "Whether you are new to MongoDB or looking for a little inspiration to get your hackathon project started, the MongoDB Developer Center has all the latest MongoDB tutorials, videos and code examples featuring over a dozen programming languages, and even more technology integrations!", + type: 'MLH STARTER KIT', + title: 'Get Started with MongoDB', + description: + 'Whether you are new to MongoDB or looking for a little inspiration to get your hackathon project started, the MongoDB Developer Center has all the latest MongoDB tutorials, videos and code examples featuring over a dozen programming languages, and even more technology integrations!', image: mongodb, - buttonName: "Read", - link: "https://news.mlh.io/read-and-write-to-a-mongodb-atlas-database-in-minutes-04-19-2023?utm_source=mlh&utm_medium=referral&utm_content=MongoDB+Starter+Kit", - alt: "MongoDB logo", - } + buttonName: 'Read', + link: 'https://news.mlh.io/read-and-write-to-a-mongodb-atlas-database-in-minutes-04-19-2023?utm_source=mlh&utm_medium=referral&utm_content=MongoDB+Starter+Kit', + alt: 'MongoDB logo', + }; const developer_link2 = { - type: "MLH STARTER KIT", - title: "Get Started with Authentication", - description: "Auth0 is an easy to use authentication and authorization platform! If your hackathon project requires a log in and sign up workflow, Auth0 supports this functionality straight out of the box. Best of all, it’s simple and free to get started.", + type: 'MLH STARTER KIT', + title: 'Get Started with Authentication', + description: + 'Auth0 is an easy to use authentication and authorization platform! If your hackathon project requires a log in and sign up workflow, Auth0 supports this functionality straight out of the box. Best of all, it’s simple and free to get started.', image: auth0, - buttonName: "Read", - link: "https://news.mlh.io/enable-user-authentication-for-your-hackathon-project-in-as-little-as-ten-minutes-05-12-2023?utm_source=mlh&utm_medium=referral&utm_content=Auth0+Starter+Kit", - alt: "Auth0 logo", - - } + buttonName: 'Read', + link: 'https://news.mlh.io/enable-user-authentication-for-your-hackathon-project-in-as-little-as-ten-minutes-05-12-2023?utm_source=mlh&utm_medium=referral&utm_content=Auth0+Starter+Kit', + alt: 'Auth0 logo', + }; return ( -
- {/** Section 1 */} -
- -
+
+ {/** Section 1 */} +
+ +
- {/** Section 2 */} -
-

Design Tips

- -
+ {/** Section 2 */} +
+

+ Design Tips +

+ +
- {/** Section 3 */} -
- -
+ {/** Section 3 */} +
+ +
- {/** Section 4 */} -
- -
+ {/** Section 4 */} +
+ +
- {/** Section 5 */} -
- -
+ {/** Section 5 */} +
+ +
- {/** Section 6 */} -
- -
+ {/** Section 6 */} +
+ +
- {/** Section 7 */} -
-

OUR RECOMMENDED BREAKDOWN TO

-

Keep track of time

- timeline + {/** Section 7 */} +
+

+ OUR RECOMMENDED BREAKDOWN TO +

+

+ Keep track of time +

+ timeline +
-
); } From 6c38913bdaf297c2adfefe3f38380a3382f8facf Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 18:35:46 -0700 Subject: [PATCH 11/19] moved everything to design resources --- .../StarterKit/DesignResources.tsx | 480 +++++++++++++++++- .../_components/StarterKit/Ideate.tsx | 480 +----------------- 2 files changed, 480 insertions(+), 480 deletions(-) diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx b/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx index 4c7626c9a..5824c473e 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx @@ -1,3 +1,481 @@ +'use client'; + +import Image from 'next/image'; +import type { StaticImageData } from 'next/image'; // why statuc image data? +import { useState, useRef } from 'react'; + +// Icons +import writing_sign from '@public/hackers/starter-kit/ideate/tabler_writing-sign.svg'; +import presentation_analytics from '@public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg'; +import sparkles from '@public/hackers/starter-kit/ideate/tabler_sparkles-2.svg'; +import figma from '@public/hackers/starter-kit/ideate/tabler_brand-figma.svg'; + +import github from '@public/hackers/starter-kit/ideate/tabler_brand-github.svg'; +import desktop_code from '@public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg'; +import message_chatbot from '@public/hackers/starter-kit/ideate/tabler_message-chatbot.svg'; + +import text_size from '@public/hackers/starter-kit/ideate/tabler_text-size.svg'; +import image_in_picture from '@public/hackers/starter-kit/ideate/tabler_image-in-picture.svg'; +import shape from '@public/hackers/starter-kit/ideate/tabler_shape.svg'; + +import arrow from '@public/hackers/starter-kit/ideate/arrow_icon.svg'; + +// Big Images +import designer_responsibilities_image from '@public/hackers/starter-kit/ideate/designer_responsibilities.svg'; +import developer_responsibilities_image from '@public/hackers/starter-kit/ideate/developer_responsibilities.svg'; +import designer_tips1_image from '@public/hackers/starter-kit/ideate/designer_tips1.svg'; +import designer_tips2_image from '@public/hackers/starter-kit/ideate/designer_tips2.svg'; + +import figma_beginners_image from '@public/hackers/starter-kit/ideate/figma_beginners.svg'; +import figma_shapes from '@public/hackers/starter-kit/ideate/figma_shapes.svg'; +import mongodb from '@public/hackers/starter-kit/ideate/mongodb.svg'; +import auth0 from '@public/hackers/starter-kit/ideate/auth0.svg'; + +import timeline from '@public/hackers/starter-kit/ideate/timeline.svg'; + +// Extra +//import scroll_bar1 from '@public/hackers/starter-kit/ideate/scroll_bar1.svg'; +//import divider from '@public/hackers/starter-kit/ideate/divider.svg'; + +interface Link { + type: string; + title: string; + description: string; + image: StaticImageData; + buttonName: string; + link: string; + alt: string; +} + +function Link({ link }: { link: Link }) { + return ( +
+ {link.alt} +
+

{link.type}

+

{link.title}

+

{link.description}

+ +
+
+ ); +} + +function Resources({ + title, + link1, + link2, +}: { + title: string; + link1: Link; + link2: Link; +}) { + return ( +
+

+ {title} +

+ + +
+ ); +} + +interface Responsibility { + icon: StaticImageData; + title: string; + description: string; +} + +// shi figure out that bar!!!!!! +function Responsibilities({ + image, + title, + responsibilities, + reverse, +}: { + image: StaticImageData; + title: string; + responsibilities: Responsibility[]; + reverse: boolean; +}) { + const sectionRef = useRef(null); + const scrollRef = useRef(null); + + const [responsibilityIndex] = useState(0); + const [scrollPos] = useState(50); + + /*useEffect(() => { + const onPageScroll = () => { + const section = sectionRef.current.scrollTo(); + const scrollContainer = scrollRef.current; + if (!section) return; + + const rect = section.getBoundingClientRect(); + const anchorY = window.innerHeight * 0.35; + const traveled = anchorY - rect.top; + const rawProgress = traveled / Math.max(rect.height, 1); + const progress = Math.min(Math.max(rawProgress, 0), 0.999); + const nextIndex = Math.floor(progress * responsibilities.length); + const clampedIndex = Math.max(0, Math.min(responsibilities.length - 1, nextIndex)); + + setResponsibilityIndex(clampedIndex); + + if (scrollContainer) { + const maxHeight = scrollContainer.clientHeight; + const fillProgress = responsibilities.length > 1 ? clampedIndex / (responsibilities.length - 1) : 0; + setScrollPos(fillProgress * maxHeight); + } + }; + + onPageScroll(); + window.addEventListener("scroll", onPageScroll, { passive: true }); + //window.addEventListener("resize", onPageScroll); + + return () => { + window.removeEventListener("scroll", onPageScroll); + //window.removeEventListener("resize", onPageScroll); + }; + }, );//[responsibilities.length]);*/ + + return ( +
+

IDEATE

+

{title}

+
+ {`${title} + +
+
+
+
+
+ {responsibilities.map((responsibility, index) => ( +
+
+ {`${responsibility.title} + {index == responsibilityIndex ? ( +

+ {responsibility.title} +

+ ) : ( +

+ {responsibility.title} +

+ )} +
+ {index == responsibilityIndex && ( +

+ {responsibility.description} +

+ )} +
+ ))} +
+
+
+
+ ); +} + +interface Tip { + icon?: StaticImageData; + title?: string; + tip: string; +} + +function Tips({ + image, + subtitle, + title, + description, + tips, + reverse, +}: { + image: StaticImageData; + subtitle: string; + title: string; + description: string; + tips: Tip[]; + reverse: boolean; +}) { + return ( +
+ {`${title} +
+

{subtitle}

+

{title}

+

{description}

+
+ {tips.map((tip, index) => ( +
+ {tip.icon ? ( + {`${tip.title} + ) : ( +

{`0${index + 1}.`}

+ )} +
+

+ {tip.title && ( + + {tip.title}: + + )}{' '} + {tip.tip} +

+
+
+ ))} +
+
+ ); +} + export default function DesignResources() { - return
Design Resources
; + // Data + const designer_responsibilities = [ + { + icon: writing_sign, + title: 'Research problem statement', + description: + 'A problem statement should include: background, people affected, and the impact of the problem.', + }, + { + icon: figma, + title: 'Craft UI/UX visuals', + description: + 'Create wireframes, mockups, and prototypes that bring the product vision to life.', + }, + { + icon: sparkles, + title: 'Iterate on feedback & refine', + description: + 'Collaborate with your team, gather insights, and polish the design through multiple iterations.', + }, + { + icon: presentation_analytics, + title: 'Create presentation & pitch', + description: + 'Be prepared to present design decisions, rationale, and final deliverables to the judges!', + }, + ]; + + const developer_responsibilities = [ + { + icon: writing_sign, + title: 'Plan out system design', + description: + 'Figure out what tech stack and technologies you want to use for your product.', + }, + { + icon: github, + title: 'Set up codebase scaffolding', + description: + 'Create a GitHub repo and initialize the project so your team can collaborate.', + }, + { + icon: message_chatbot, + title: 'Divide and conquer', + description: + 'Split the product into features and assign tasks so teammates can build in parallel.', + }, + { + icon: desktop_code, + title: 'Build a functioning demo', + description: + 'Implement core features and ensure you have a working product ready for presentations.', + }, + ]; + + const design_tips1 = [ + { tip: 'Go in the left panel and navigate to Assets' }, + { tip: 'Press Add more libraries' }, + { tip: 'Click UI Kits on the left panel in the Libraries Module' }, + { tip: 'Add your preferred library to your design file!' }, + ]; + + const design_tips2 = [ + { icon: shape, title: 'Iconify', tip: 'A library of 100,000+ icons.' }, + { + icon: image_in_picture, + title: 'Remove BG', + tip: 'Removes the background of any photo instantly.', + }, + { + icon: text_size, + title: 'Stark', + tip: 'Checks if your text is readable for accessibility.', + }, + ]; + + const designer_link1 = { + type: 'FIGMA COURSE', + title: 'Figma for Beginners', + description: + 'New to Figma? This hands-on course offers a quick tour of key features, while guiding you through designing a portfolio website from scratch.', + image: figma_beginners_image, + buttonName: 'Start Course', + link: 'https://help.figma.com/hc/en-us/sections/30880632542743-Figma-Design-for-beginners', + alt: 'Figma Design For Beginners course preview image', + }; + + const designer_link2 = { + type: 'FIGMA BLOG', + title: 'What is Product Design?', + description: + 'How can you create the best product or service for your users? This article by Figma explains how Product Design is the process of developing experiences to meet user needs and align with business goals + strategies.', + image: figma_shapes, + buttonName: 'Read', + link: 'https://www.figma.com/resource-library/what-is-product-design/', + alt: 'What is product design blog post preview image', + }; + + const developer_link1 = { + type: 'MLH STARTER KIT', + title: 'Get Started with MongoDB', + description: + 'Whether you are new to MongoDB or looking for a little inspiration to get your hackathon project started, the MongoDB Developer Center has all the latest MongoDB tutorials, videos and code examples featuring over a dozen programming languages, and even more technology integrations!', + image: mongodb, + buttonName: 'Read', + link: 'https://news.mlh.io/read-and-write-to-a-mongodb-atlas-database-in-minutes-04-19-2023?utm_source=mlh&utm_medium=referral&utm_content=MongoDB+Starter+Kit', + alt: 'MongoDB logo', + }; + + const developer_link2 = { + type: 'MLH STARTER KIT', + title: 'Get Started with Authentication', + description: + 'Auth0 is an easy to use authentication and authorization platform! If your hackathon project requires a log in and sign up workflow, Auth0 supports this functionality straight out of the box. Best of all, it’s simple and free to get started.', + image: auth0, + buttonName: 'Read', + link: 'https://news.mlh.io/enable-user-authentication-for-your-hackathon-project-in-as-little-as-ten-minutes-05-12-2023?utm_source=mlh&utm_medium=referral&utm_content=Auth0+Starter+Kit', + alt: 'Auth0 logo', + }; + + return ( +
+ {/** Section 1 */} +
+ +
+ + {/** Section 2 */} +
+

+ Design Tips +

+ +
+ + {/** Section 3 */} +
+ +
+ + {/** Section 4 */} +
+ +
+ + {/** Section 5 */} +
+ +
+ + {/** Section 6 */} +
+ +
+ + {/** Section 7 */} +
+

+ OUR RECOMMENDED BREAKDOWN TO +

+

+ Keep track of time +

+ timeline +
+
+ ); } diff --git a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx index 6004315f7..8c6b49011 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Ideate.tsx @@ -1,481 +1,3 @@ -'use client'; - -import Image from 'next/image'; -import type { StaticImageData } from 'next/image'; // why statuc image data? -import { useState, useRef } from 'react'; - -// Icons -import writing_sign from '@public/hackers/starter-kit/ideate/tabler_writing-sign.svg'; -import presentation_analytics from '@public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg'; -import sparkles from '@public/hackers/starter-kit/ideate/tabler_sparkles-2.svg'; -import figma from '@public/hackers/starter-kit/ideate/tabler_brand-figma.svg'; - -import github from '@public/hackers/starter-kit/ideate/tabler_brand-github.svg'; -import desktop_code from '@public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg'; -import message_chatbot from '@public/hackers/starter-kit/ideate/tabler_message-chatbot.svg'; - -import text_size from '@public/hackers/starter-kit/ideate/tabler_text-size.svg'; -import image_in_picture from '@public/hackers/starter-kit/ideate/tabler_image-in-picture.svg'; -import shape from '@public/hackers/starter-kit/ideate/tabler_shape.svg'; - -import arrow from '@public/hackers/starter-kit/ideate/arrow_icon.svg'; - -// Big Images -import designer_responsibilities_image from '@public/hackers/starter-kit/ideate/designer_responsibilities.svg'; -import developer_responsibilities_image from '@public/hackers/starter-kit/ideate/developer_responsibilities.svg'; -import designer_tips1_image from '@public/hackers/starter-kit/ideate/designer_tips1.svg'; -import designer_tips2_image from '@public/hackers/starter-kit/ideate/designer_tips2.svg'; - -import figma_beginners_image from '@public/hackers/starter-kit/ideate/figma_beginners.svg'; -import figma_shapes from '@public/hackers/starter-kit/ideate/figma_shapes.svg'; -import mongodb from '@public/hackers/starter-kit/ideate/mongodb.svg'; -import auth0 from '@public/hackers/starter-kit/ideate/auth0.svg'; - -import timeline from '@public/hackers/starter-kit/ideate/timeline.svg'; - -// Extra -//import scroll_bar1 from '@public/hackers/starter-kit/ideate/scroll_bar1.svg'; -//import divider from '@public/hackers/starter-kit/ideate/divider.svg'; - -interface Link { - type: string; - title: string; - description: string; - image: StaticImageData; - buttonName: string; - link: string; - alt: string; -} - -function Link({ link }: { link: Link }) { - return ( -
- {link.alt} -
-

{link.type}

-

{link.title}

-

{link.description}

- -
-
- ); -} - -function Resources({ - title, - link1, - link2, -}: { - title: string; - link1: Link; - link2: Link; -}) { - return ( -
-

- {title} -

- - -
- ); -} - -interface Responsibility { - icon: StaticImageData; - title: string; - description: string; -} - -// shi figure out that bar!!!!!! -function Responsibilities({ - image, - title, - responsibilities, - reverse, -}: { - image: StaticImageData; - title: string; - responsibilities: Responsibility[]; - reverse: boolean; -}) { - const sectionRef = useRef(null); - const scrollRef = useRef(null); - - const [responsibilityIndex] = useState(0); - const [scrollPos] = useState(50); - - /*useEffect(() => { - const onPageScroll = () => { - const section = sectionRef.current.scrollTo(); - const scrollContainer = scrollRef.current; - if (!section) return; - - const rect = section.getBoundingClientRect(); - const anchorY = window.innerHeight * 0.35; - const traveled = anchorY - rect.top; - const rawProgress = traveled / Math.max(rect.height, 1); - const progress = Math.min(Math.max(rawProgress, 0), 0.999); - const nextIndex = Math.floor(progress * responsibilities.length); - const clampedIndex = Math.max(0, Math.min(responsibilities.length - 1, nextIndex)); - - setResponsibilityIndex(clampedIndex); - - if (scrollContainer) { - const maxHeight = scrollContainer.clientHeight; - const fillProgress = responsibilities.length > 1 ? clampedIndex / (responsibilities.length - 1) : 0; - setScrollPos(fillProgress * maxHeight); - } - }; - - onPageScroll(); - window.addEventListener("scroll", onPageScroll, { passive: true }); - //window.addEventListener("resize", onPageScroll); - - return () => { - window.removeEventListener("scroll", onPageScroll); - //window.removeEventListener("resize", onPageScroll); - }; - }, );//[responsibilities.length]);*/ - - return ( -
-

IDEATE

-

{title}

-
- {`${title} - -
-
-
-
-
- {responsibilities.map((responsibility, index) => ( -
-
- {`${responsibility.title} - {index == responsibilityIndex ? ( -

- {responsibility.title} -

- ) : ( -

- {responsibility.title} -

- )} -
- {index == responsibilityIndex && ( -

- {responsibility.description} -

- )} -
- ))} -
-
-
-
- ); -} - -interface Tip { - icon?: StaticImageData; - title?: string; - tip: string; -} - -function Tips({ - image, - subtitle, - title, - description, - tips, - reverse, -}: { - image: StaticImageData; - subtitle: string; - title: string; - description: string; - tips: Tip[]; - reverse: boolean; -}) { - return ( -
- {`${title} -
-

{subtitle}

-

{title}

-

{description}

-
- {tips.map((tip, index) => ( -
- {tip.icon ? ( - {`${tip.title} - ) : ( -

{`0${index + 1}.`}

- )} -
-

- {tip.title && ( - - {tip.title}: - - )}{' '} - {tip.tip} -

-
-
- ))} -
-
- ); -} - export default function Ideate() { - // Data - const designer_responsibilities = [ - { - icon: writing_sign, - title: 'Research problem statement', - description: - 'A problem statement should include: background, people affected, and the impact of the problem.', - }, - { - icon: figma, - title: 'Craft UI/UX visuals', - description: - 'Create wireframes, mockups, and prototypes that bring the product vision to life.', - }, - { - icon: sparkles, - title: 'Iterate on feedback & refine', - description: - 'Collaborate with your team, gather insights, and polish the design through multiple iterations.', - }, - { - icon: presentation_analytics, - title: 'Create presentation & pitch', - description: - 'Be prepared to present design decisions, rationale, and final deliverables to the judges!', - }, - ]; - - const developer_responsibilities = [ - { - icon: writing_sign, - title: 'Plan out system design', - description: - 'Figure out what tech stack and technologies you want to use for your product.', - }, - { - icon: github, - title: 'Set up codebase scaffolding', - description: - 'Create a GitHub repo and initialize the project so your team can collaborate.', - }, - { - icon: message_chatbot, - title: 'Divide and conquer', - description: - 'Split the product into features and assign tasks so teammates can build in parallel.', - }, - { - icon: desktop_code, - title: 'Build a functioning demo', - description: - 'Implement core features and ensure you have a working product ready for presentations.', - }, - ]; - - const design_tips1 = [ - { tip: 'Go in the left panel and navigate to Assets' }, - { tip: 'Press Add more libraries' }, - { tip: 'Click UI Kits on the left panel in the Libraries Module' }, - { tip: 'Add your preferred library to your design file!' }, - ]; - - const design_tips2 = [ - { icon: shape, title: 'Iconify', tip: 'A library of 100,000+ icons.' }, - { - icon: image_in_picture, - title: 'Remove BG', - tip: 'Removes the background of any photo instantly.', - }, - { - icon: text_size, - title: 'Stark', - tip: 'Checks if your text is readable for accessibility.', - }, - ]; - - const designer_link1 = { - type: 'FIGMA COURSE', - title: 'Figma for Beginners', - description: - 'New to Figma? This hands-on course offers a quick tour of key features, while guiding you through designing a portfolio website from scratch.', - image: figma_beginners_image, - buttonName: 'Start Course', - link: 'https://help.figma.com/hc/en-us/sections/30880632542743-Figma-Design-for-beginners', - alt: 'Figma Design For Beginners course preview image', - }; - - const designer_link2 = { - type: 'FIGMA BLOG', - title: 'What is Product Design?', - description: - 'How can you create the best product or service for your users? This article by Figma explains how Product Design is the process of developing experiences to meet user needs and align with business goals + strategies.', - image: figma_shapes, - buttonName: 'Read', - link: 'https://www.figma.com/resource-library/what-is-product-design/', - alt: 'What is product design blog post preview image', - }; - - const developer_link1 = { - type: 'MLH STARTER KIT', - title: 'Get Started with MongoDB', - description: - 'Whether you are new to MongoDB or looking for a little inspiration to get your hackathon project started, the MongoDB Developer Center has all the latest MongoDB tutorials, videos and code examples featuring over a dozen programming languages, and even more technology integrations!', - image: mongodb, - buttonName: 'Read', - link: 'https://news.mlh.io/read-and-write-to-a-mongodb-atlas-database-in-minutes-04-19-2023?utm_source=mlh&utm_medium=referral&utm_content=MongoDB+Starter+Kit', - alt: 'MongoDB logo', - }; - - const developer_link2 = { - type: 'MLH STARTER KIT', - title: 'Get Started with Authentication', - description: - 'Auth0 is an easy to use authentication and authorization platform! If your hackathon project requires a log in and sign up workflow, Auth0 supports this functionality straight out of the box. Best of all, it’s simple and free to get started.', - image: auth0, - buttonName: 'Read', - link: 'https://news.mlh.io/enable-user-authentication-for-your-hackathon-project-in-as-little-as-ten-minutes-05-12-2023?utm_source=mlh&utm_medium=referral&utm_content=Auth0+Starter+Kit', - alt: 'Auth0 logo', - }; - - return ( -
- {/** Section 1 */} -
- -
- - {/** Section 2 */} -
-

- Design Tips -

- -
- - {/** Section 3 */} -
- -
- - {/** Section 4 */} -
- -
- - {/** Section 5 */} -
- -
- - {/** Section 6 */} -
- -
- - {/** Section 7 */} -
-

- OUR RECOMMENDED BREAKDOWN TO -

-

- Keep track of time -

- timeline -
-
- ); + return
Ideate
; } From b735a9b5e8484dfd5b81cdedf86dd31f9c4ea6aa Mon Sep 17 00:00:00 2001 From: phlangiee <174984579+phlangiee@users.noreply.github.com> Date: Tue, 7 Apr 2026 18:36:03 -0700 Subject: [PATCH 12/19] deleted my comment --- .../(hackers)/_components/StarterKit/DesignResources.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx b/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx index 5824c473e..b95f18b01 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx @@ -1,7 +1,7 @@ 'use client'; import Image from 'next/image'; -import type { StaticImageData } from 'next/image'; // why statuc image data? +import type { StaticImageData } from 'next/image'; import { useState, useRef } from 'react'; // Icons From 269baab8dcd8b3ad71d1178a385120aec1f420db Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 7 Apr 2026 21:20:06 -0700 Subject: [PATCH 13/19] moved images to new folder --- .../StarterKit/DesignResources.tsx | 46 +++++++++---------- .../arrow_icon.svg | 0 .../{ideate => designResources}/auth0.svg | 0 .../designer_responsibilities.svg | 0 .../designer_tips1.svg | 0 .../designer_tips2.svg | 0 .../developer_responsibilities.svg | 0 .../{ideate => designResources}/divider.svg | 0 .../figma_beginners.svg | 0 .../figma_shapes.svg | 0 .../{ideate => designResources}/mongodb.svg | 0 .../scroll_bar1.svg | 0 .../tabler_brand-figma.svg | 0 .../tabler_brand-github.svg | 0 .../tabler_device-desktop-code.svg | 0 .../tabler_image-in-picture.svg | 0 .../tabler_message-chatbot.svg | 0 .../tabler_presentation-analytics.svg | 0 .../tabler_shape.svg | 0 .../tabler_sparkles-2.svg | 0 .../tabler_text-size.svg | 0 .../tabler_writing-sign.svg | 0 .../{ideate => designResources}/timeline.svg | 0 23 files changed, 23 insertions(+), 23 deletions(-) rename public/hackers/starter-kit/{ideate => designResources}/arrow_icon.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/auth0.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/designer_responsibilities.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/designer_tips1.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/designer_tips2.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/developer_responsibilities.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/divider.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/figma_beginners.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/figma_shapes.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/mongodb.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/scroll_bar1.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_brand-figma.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_brand-github.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_device-desktop-code.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_image-in-picture.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_message-chatbot.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_presentation-analytics.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_shape.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_sparkles-2.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_text-size.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/tabler_writing-sign.svg (100%) rename public/hackers/starter-kit/{ideate => designResources}/timeline.svg (100%) diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx b/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx index b95f18b01..136525a2c 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx @@ -1,41 +1,41 @@ 'use client'; import Image from 'next/image'; -import type { StaticImageData } from 'next/image'; +import type { StaticImageData } from 'next/image'; import { useState, useRef } from 'react'; // Icons -import writing_sign from '@public/hackers/starter-kit/ideate/tabler_writing-sign.svg'; -import presentation_analytics from '@public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg'; -import sparkles from '@public/hackers/starter-kit/ideate/tabler_sparkles-2.svg'; -import figma from '@public/hackers/starter-kit/ideate/tabler_brand-figma.svg'; +import writing_sign from '@public/hackers/starter-kit/designResources/tabler_writing-sign.svg'; +import presentation_analytics from '@public/hackers/starter-kit/designResources/tabler_presentation-analytics.svg'; +import sparkles from '@public/hackers/starter-kit/designResources/tabler_sparkles-2.svg'; +import figma from '@public/hackers/starter-kit/designResources/tabler_brand-figma.svg'; -import github from '@public/hackers/starter-kit/ideate/tabler_brand-github.svg'; -import desktop_code from '@public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg'; -import message_chatbot from '@public/hackers/starter-kit/ideate/tabler_message-chatbot.svg'; +import github from '@public/hackers/starter-kit/designResources/tabler_brand-github.svg'; +import desktop_code from '@public/hackers/starter-kit/designResources/tabler_device-desktop-code.svg'; +import message_chatbot from '@public/hackers/starter-kit/designResources/tabler_message-chatbot.svg'; -import text_size from '@public/hackers/starter-kit/ideate/tabler_text-size.svg'; -import image_in_picture from '@public/hackers/starter-kit/ideate/tabler_image-in-picture.svg'; -import shape from '@public/hackers/starter-kit/ideate/tabler_shape.svg'; +import text_size from '@public/hackers/starter-kit/designResources/tabler_text-size.svg'; +import image_in_picture from '@public/hackers/starter-kit/designResources/tabler_image-in-picture.svg'; +import shape from '@public/hackers/starter-kit/designResources/tabler_shape.svg'; -import arrow from '@public/hackers/starter-kit/ideate/arrow_icon.svg'; +import arrow from '@public/hackers/starter-kit/designResources/arrow_icon.svg'; // Big Images -import designer_responsibilities_image from '@public/hackers/starter-kit/ideate/designer_responsibilities.svg'; -import developer_responsibilities_image from '@public/hackers/starter-kit/ideate/developer_responsibilities.svg'; -import designer_tips1_image from '@public/hackers/starter-kit/ideate/designer_tips1.svg'; -import designer_tips2_image from '@public/hackers/starter-kit/ideate/designer_tips2.svg'; +import designer_responsibilities_image from '@public/hackers/starter-kit/designResources/designer_responsibilities.svg'; +import developer_responsibilities_image from '@public/hackers/starter-kit/designResources/developer_responsibilities.svg'; +import designer_tips1_image from '@public/hackers/starter-kit/designResources/designer_tips1.svg'; +import designer_tips2_image from '@public/hackers/starter-kit/designResources/designer_tips2.svg'; -import figma_beginners_image from '@public/hackers/starter-kit/ideate/figma_beginners.svg'; -import figma_shapes from '@public/hackers/starter-kit/ideate/figma_shapes.svg'; -import mongodb from '@public/hackers/starter-kit/ideate/mongodb.svg'; -import auth0 from '@public/hackers/starter-kit/ideate/auth0.svg'; +import figma_beginners_image from '@public/hackers/starter-kit/designResources/figma_beginners.svg'; +import figma_shapes from '@public/hackers/starter-kit/designResources/figma_shapes.svg'; +import mongodb from '@public/hackers/starter-kit/designResources/mongodb.svg'; +import auth0 from '@public/hackers/starter-kit/designResources/auth0.svg'; -import timeline from '@public/hackers/starter-kit/ideate/timeline.svg'; +import timeline from '@public/hackers/starter-kit/designResources/timeline.svg'; // Extra -//import scroll_bar1 from '@public/hackers/starter-kit/ideate/scroll_bar1.svg'; -//import divider from '@public/hackers/starter-kit/ideate/divider.svg'; +//import scroll_bar1 from '@public/hackers/starter-kit/designResources/scroll_bar1.svg'; +//import divider from '@public/hackers/starter-kit/designResources/divider.svg'; interface Link { type: string; diff --git a/public/hackers/starter-kit/ideate/arrow_icon.svg b/public/hackers/starter-kit/designResources/arrow_icon.svg similarity index 100% rename from public/hackers/starter-kit/ideate/arrow_icon.svg rename to public/hackers/starter-kit/designResources/arrow_icon.svg diff --git a/public/hackers/starter-kit/ideate/auth0.svg b/public/hackers/starter-kit/designResources/auth0.svg similarity index 100% rename from public/hackers/starter-kit/ideate/auth0.svg rename to public/hackers/starter-kit/designResources/auth0.svg diff --git a/public/hackers/starter-kit/ideate/designer_responsibilities.svg b/public/hackers/starter-kit/designResources/designer_responsibilities.svg similarity index 100% rename from public/hackers/starter-kit/ideate/designer_responsibilities.svg rename to public/hackers/starter-kit/designResources/designer_responsibilities.svg diff --git a/public/hackers/starter-kit/ideate/designer_tips1.svg b/public/hackers/starter-kit/designResources/designer_tips1.svg similarity index 100% rename from public/hackers/starter-kit/ideate/designer_tips1.svg rename to public/hackers/starter-kit/designResources/designer_tips1.svg diff --git a/public/hackers/starter-kit/ideate/designer_tips2.svg b/public/hackers/starter-kit/designResources/designer_tips2.svg similarity index 100% rename from public/hackers/starter-kit/ideate/designer_tips2.svg rename to public/hackers/starter-kit/designResources/designer_tips2.svg diff --git a/public/hackers/starter-kit/ideate/developer_responsibilities.svg b/public/hackers/starter-kit/designResources/developer_responsibilities.svg similarity index 100% rename from public/hackers/starter-kit/ideate/developer_responsibilities.svg rename to public/hackers/starter-kit/designResources/developer_responsibilities.svg diff --git a/public/hackers/starter-kit/ideate/divider.svg b/public/hackers/starter-kit/designResources/divider.svg similarity index 100% rename from public/hackers/starter-kit/ideate/divider.svg rename to public/hackers/starter-kit/designResources/divider.svg diff --git a/public/hackers/starter-kit/ideate/figma_beginners.svg b/public/hackers/starter-kit/designResources/figma_beginners.svg similarity index 100% rename from public/hackers/starter-kit/ideate/figma_beginners.svg rename to public/hackers/starter-kit/designResources/figma_beginners.svg diff --git a/public/hackers/starter-kit/ideate/figma_shapes.svg b/public/hackers/starter-kit/designResources/figma_shapes.svg similarity index 100% rename from public/hackers/starter-kit/ideate/figma_shapes.svg rename to public/hackers/starter-kit/designResources/figma_shapes.svg diff --git a/public/hackers/starter-kit/ideate/mongodb.svg b/public/hackers/starter-kit/designResources/mongodb.svg similarity index 100% rename from public/hackers/starter-kit/ideate/mongodb.svg rename to public/hackers/starter-kit/designResources/mongodb.svg diff --git a/public/hackers/starter-kit/ideate/scroll_bar1.svg b/public/hackers/starter-kit/designResources/scroll_bar1.svg similarity index 100% rename from public/hackers/starter-kit/ideate/scroll_bar1.svg rename to public/hackers/starter-kit/designResources/scroll_bar1.svg diff --git a/public/hackers/starter-kit/ideate/tabler_brand-figma.svg b/public/hackers/starter-kit/designResources/tabler_brand-figma.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_brand-figma.svg rename to public/hackers/starter-kit/designResources/tabler_brand-figma.svg diff --git a/public/hackers/starter-kit/ideate/tabler_brand-github.svg b/public/hackers/starter-kit/designResources/tabler_brand-github.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_brand-github.svg rename to public/hackers/starter-kit/designResources/tabler_brand-github.svg diff --git a/public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg b/public/hackers/starter-kit/designResources/tabler_device-desktop-code.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_device-desktop-code.svg rename to public/hackers/starter-kit/designResources/tabler_device-desktop-code.svg diff --git a/public/hackers/starter-kit/ideate/tabler_image-in-picture.svg b/public/hackers/starter-kit/designResources/tabler_image-in-picture.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_image-in-picture.svg rename to public/hackers/starter-kit/designResources/tabler_image-in-picture.svg diff --git a/public/hackers/starter-kit/ideate/tabler_message-chatbot.svg b/public/hackers/starter-kit/designResources/tabler_message-chatbot.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_message-chatbot.svg rename to public/hackers/starter-kit/designResources/tabler_message-chatbot.svg diff --git a/public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg b/public/hackers/starter-kit/designResources/tabler_presentation-analytics.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_presentation-analytics.svg rename to public/hackers/starter-kit/designResources/tabler_presentation-analytics.svg diff --git a/public/hackers/starter-kit/ideate/tabler_shape.svg b/public/hackers/starter-kit/designResources/tabler_shape.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_shape.svg rename to public/hackers/starter-kit/designResources/tabler_shape.svg diff --git a/public/hackers/starter-kit/ideate/tabler_sparkles-2.svg b/public/hackers/starter-kit/designResources/tabler_sparkles-2.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_sparkles-2.svg rename to public/hackers/starter-kit/designResources/tabler_sparkles-2.svg diff --git a/public/hackers/starter-kit/ideate/tabler_text-size.svg b/public/hackers/starter-kit/designResources/tabler_text-size.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_text-size.svg rename to public/hackers/starter-kit/designResources/tabler_text-size.svg diff --git a/public/hackers/starter-kit/ideate/tabler_writing-sign.svg b/public/hackers/starter-kit/designResources/tabler_writing-sign.svg similarity index 100% rename from public/hackers/starter-kit/ideate/tabler_writing-sign.svg rename to public/hackers/starter-kit/designResources/tabler_writing-sign.svg diff --git a/public/hackers/starter-kit/ideate/timeline.svg b/public/hackers/starter-kit/designResources/timeline.svg similarity index 100% rename from public/hackers/starter-kit/ideate/timeline.svg rename to public/hackers/starter-kit/designResources/timeline.svg From 3f89765925404d4b5a0fbfafe816dc38e2e75ed7 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 7 Apr 2026 21:23:41 -0700 Subject: [PATCH 14/19] revert asset changes --- .../table-number-checkin/diag-arrow.svg | 5 - .../mascots-hanging-out.svg | 95 -------------- .../table-number-checkin/sleeping-frog.svg | 22 ---- public/hackers/table-number-checkin/stars.svg | 6 - public/judges/projects/project-cow.svg | 119 +++++++++++++----- 5 files changed, 89 insertions(+), 158 deletions(-) delete mode 100644 public/hackers/table-number-checkin/diag-arrow.svg delete mode 100644 public/hackers/table-number-checkin/mascots-hanging-out.svg delete mode 100644 public/hackers/table-number-checkin/sleeping-frog.svg delete mode 100644 public/hackers/table-number-checkin/stars.svg diff --git a/public/hackers/table-number-checkin/diag-arrow.svg b/public/hackers/table-number-checkin/diag-arrow.svg deleted file mode 100644 index ebcc8fe0c..000000000 --- a/public/hackers/table-number-checkin/diag-arrow.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/hackers/table-number-checkin/mascots-hanging-out.svg b/public/hackers/table-number-checkin/mascots-hanging-out.svg deleted file mode 100644 index bc3909e47..000000000 --- a/public/hackers/table-number-checkin/mascots-hanging-out.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/hackers/table-number-checkin/sleeping-frog.svg b/public/hackers/table-number-checkin/sleeping-frog.svg deleted file mode 100644 index 4deb77999..000000000 --- a/public/hackers/table-number-checkin/sleeping-frog.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/hackers/table-number-checkin/stars.svg b/public/hackers/table-number-checkin/stars.svg deleted file mode 100644 index d51c422e3..000000000 --- a/public/hackers/table-number-checkin/stars.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/judges/projects/project-cow.svg b/public/judges/projects/project-cow.svg index 3328476d6..088aa2e45 100644 --- a/public/judges/projects/project-cow.svg +++ b/public/judges/projects/project-cow.svg @@ -1,34 +1,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file From 3ff8bc7d197537dc0273be43ca39587dc48c10de Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 7 Apr 2026 21:24:39 -0700 Subject: [PATCH 15/19] added svg og --- public/judges/projects/project-cow.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/judges/projects/project-cow.svg b/public/judges/projects/project-cow.svg index 088aa2e45..f0ae65eb8 100644 --- a/public/judges/projects/project-cow.svg +++ b/public/judges/projects/project-cow.svg @@ -90,4 +90,4 @@ - \ No newline at end of file + From b04df6507bb89b530716c4f45114e64a734dc6cc Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 7 Apr 2026 21:31:41 -0700 Subject: [PATCH 16/19] match padding and gap to green section --- .../(hackers)/_components/StarterKit/DesignResources.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx b/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx index 136525a2c..12617677a 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx @@ -396,7 +396,7 @@ export default function DesignResources() { }; return ( -
+
{/** Section 1 */}
{/** Section 7 */} -
+

OUR RECOMMENDED BREAKDOWN TO

From eb39c70a6eac6ca2ce861aec6b153a0f454bebe4 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 7 Apr 2026 21:38:55 -0700 Subject: [PATCH 17/19] split into files --- .../{ => DesignResources}/DesignResources.tsx | 246 +----------------- .../StarterKit/DesignResources/Resources.tsx | 58 +++++ .../DesignResources/Responsibilities.tsx | 121 +++++++++ .../StarterKit/DesignResources/Tips.tsx | 67 +++++ .../_components/StarterKit/StarterKit.tsx | 2 +- 5 files changed, 252 insertions(+), 242 deletions(-) rename app/(pages)/(hackers)/_components/StarterKit/{ => DesignResources}/DesignResources.tsx (55%) create mode 100644 app/(pages)/(hackers)/_components/StarterKit/DesignResources/Resources.tsx create mode 100644 app/(pages)/(hackers)/_components/StarterKit/DesignResources/Responsibilities.tsx create mode 100644 app/(pages)/(hackers)/_components/StarterKit/DesignResources/Tips.tsx diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx b/app/(pages)/(hackers)/_components/StarterKit/DesignResources/DesignResources.tsx similarity index 55% rename from app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx rename to app/(pages)/(hackers)/_components/StarterKit/DesignResources/DesignResources.tsx index 12617677a..d903e10e5 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/DesignResources.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/DesignResources/DesignResources.tsx @@ -1,8 +1,11 @@ 'use client'; import Image from 'next/image'; -import type { StaticImageData } from 'next/image'; -import { useState, useRef } from 'react'; + +// Components +import { Resources } from './Resources'; +import { Responsibilities } from './Responsibilities'; +import { Tips } from './Tips'; // Icons import writing_sign from '@public/hackers/starter-kit/designResources/tabler_writing-sign.svg'; @@ -18,8 +21,6 @@ import text_size from '@public/hackers/starter-kit/designResources/tabler_text-s import image_in_picture from '@public/hackers/starter-kit/designResources/tabler_image-in-picture.svg'; import shape from '@public/hackers/starter-kit/designResources/tabler_shape.svg'; -import arrow from '@public/hackers/starter-kit/designResources/arrow_icon.svg'; - // Big Images import designer_responsibilities_image from '@public/hackers/starter-kit/designResources/designer_responsibilities.svg'; import developer_responsibilities_image from '@public/hackers/starter-kit/designResources/developer_responsibilities.svg'; @@ -37,243 +38,6 @@ import timeline from '@public/hackers/starter-kit/designResources/timeline.svg'; //import scroll_bar1 from '@public/hackers/starter-kit/designResources/scroll_bar1.svg'; //import divider from '@public/hackers/starter-kit/designResources/divider.svg'; -interface Link { - type: string; - title: string; - description: string; - image: StaticImageData; - buttonName: string; - link: string; - alt: string; -} - -function Link({ link }: { link: Link }) { - return ( -
- {link.alt} -
-

{link.type}

-

{link.title}

-

{link.description}

- -
-
- ); -} - -function Resources({ - title, - link1, - link2, -}: { - title: string; - link1: Link; - link2: Link; -}) { - return ( -
-

- {title} -

- - -
- ); -} - -interface Responsibility { - icon: StaticImageData; - title: string; - description: string; -} - -// shi figure out that bar!!!!!! -function Responsibilities({ - image, - title, - responsibilities, - reverse, -}: { - image: StaticImageData; - title: string; - responsibilities: Responsibility[]; - reverse: boolean; -}) { - const sectionRef = useRef(null); - const scrollRef = useRef(null); - - const [responsibilityIndex] = useState(0); - const [scrollPos] = useState(50); - - /*useEffect(() => { - const onPageScroll = () => { - const section = sectionRef.current.scrollTo(); - const scrollContainer = scrollRef.current; - if (!section) return; - - const rect = section.getBoundingClientRect(); - const anchorY = window.innerHeight * 0.35; - const traveled = anchorY - rect.top; - const rawProgress = traveled / Math.max(rect.height, 1); - const progress = Math.min(Math.max(rawProgress, 0), 0.999); - const nextIndex = Math.floor(progress * responsibilities.length); - const clampedIndex = Math.max(0, Math.min(responsibilities.length - 1, nextIndex)); - - setResponsibilityIndex(clampedIndex); - - if (scrollContainer) { - const maxHeight = scrollContainer.clientHeight; - const fillProgress = responsibilities.length > 1 ? clampedIndex / (responsibilities.length - 1) : 0; - setScrollPos(fillProgress * maxHeight); - } - }; - - onPageScroll(); - window.addEventListener("scroll", onPageScroll, { passive: true }); - //window.addEventListener("resize", onPageScroll); - - return () => { - window.removeEventListener("scroll", onPageScroll); - //window.removeEventListener("resize", onPageScroll); - }; - }, );//[responsibilities.length]);*/ - - return ( -
-

IDEATE

-

{title}

-
- {`${title} - -
-
-
-
-
- {responsibilities.map((responsibility, index) => ( -
-
- {`${responsibility.title} - {index == responsibilityIndex ? ( -

- {responsibility.title} -

- ) : ( -

- {responsibility.title} -

- )} -
- {index == responsibilityIndex && ( -

- {responsibility.description} -

- )} -
- ))} -
-
-
-
- ); -} - -interface Tip { - icon?: StaticImageData; - title?: string; - tip: string; -} - -function Tips({ - image, - subtitle, - title, - description, - tips, - reverse, -}: { - image: StaticImageData; - subtitle: string; - title: string; - description: string; - tips: Tip[]; - reverse: boolean; -}) { - return ( -
- {`${title} -
-

{subtitle}

-

{title}

-

{description}

-
- {tips.map((tip, index) => ( -
- {tip.icon ? ( - {`${tip.title} - ) : ( -

{`0${index + 1}.`}

- )} -
-

- {tip.title && ( - - {tip.title}: - - )}{' '} - {tip.tip} -

-
-
- ))} -
-
- ); -} - export default function DesignResources() { // Data const designer_responsibilities = [ diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Resources.tsx b/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Resources.tsx new file mode 100644 index 000000000..e7f0124a0 --- /dev/null +++ b/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Resources.tsx @@ -0,0 +1,58 @@ +import Image from 'next/image'; +import type { StaticImageData } from 'next/image'; + +import arrow from '@public/hackers/starter-kit/designResources/arrow_icon.svg'; + +interface Link { + type: string; + title: string; + description: string; + image: StaticImageData; + buttonName: string; + link: string; + alt: string; +} + +function Link({ link }: { link: Link }) { + return ( +
+ {link.alt} +
+

{link.type}

+

{link.title}

+

{link.description}

+ +
+
+ ); +} + +export function Resources({ + title, + link1, + link2, +}: { + title: string; + link1: Link; + link2: Link; +}) { + return ( +
+

+ {title} +

+ + +
+ ); +} diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Responsibilities.tsx b/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Responsibilities.tsx new file mode 100644 index 000000000..6d6bef114 --- /dev/null +++ b/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Responsibilities.tsx @@ -0,0 +1,121 @@ +import Image from 'next/image'; +import type { StaticImageData } from 'next/image'; +import { useRef, useState } from 'react'; + +interface Responsibility { + icon: StaticImageData; + title: string; + description: string; +} + +// shi figure out that bar!!!!!! +export function Responsibilities({ + image, + title, + responsibilities, + reverse, +}: { + image: StaticImageData; + title: string; + responsibilities: Responsibility[]; + reverse: boolean; +}) { + const sectionRef = useRef(null); + const scrollRef = useRef(null); + + const [responsibilityIndex] = useState(0); + const [scrollPos] = useState(50); + + /*useEffect(() => { + const onPageScroll = () => { + const section = sectionRef.current.scrollTo(); + const scrollContainer = scrollRef.current; + if (!section) return; + + const rect = section.getBoundingClientRect(); + const anchorY = window.innerHeight * 0.35; + const traveled = anchorY - rect.top; + const rawProgress = traveled / Math.max(rect.height, 1); + const progress = Math.min(Math.max(rawProgress, 0), 0.999); + const nextIndex = Math.floor(progress * responsibilities.length); + const clampedIndex = Math.max(0, Math.min(responsibilities.length - 1, nextIndex)); + + setResponsibilityIndex(clampedIndex); + + if (scrollContainer) { + const maxHeight = scrollContainer.clientHeight; + const fillProgress = responsibilities.length > 1 ? clampedIndex / (responsibilities.length - 1) : 0; + setScrollPos(fillProgress * maxHeight); + } + }; + + onPageScroll(); + window.addEventListener("scroll", onPageScroll, { passive: true }); + //window.addEventListener("resize", onPageScroll); + + return () => { + window.removeEventListener("scroll", onPageScroll); + //window.removeEventListener("resize", onPageScroll); + }; + }, );//[responsibilities.length]);*/ + + return ( +
+

IDEATE

+

{title}

+
+ {`${title} + +
+
+
+
+
+ {responsibilities.map((responsibility, index) => ( +
+
+ {`${responsibility.title} + {index == responsibilityIndex ? ( +

+ {responsibility.title} +

+ ) : ( +

+ {responsibility.title} +

+ )} +
+ {index == responsibilityIndex && ( +

+ {responsibility.description} +

+ )} +
+ ))} +
+
+
+
+ ); +} diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Tips.tsx b/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Tips.tsx new file mode 100644 index 000000000..69c771a3d --- /dev/null +++ b/app/(pages)/(hackers)/_components/StarterKit/DesignResources/Tips.tsx @@ -0,0 +1,67 @@ +import Image from 'next/image'; +import type { StaticImageData } from 'next/image'; + +interface Tip { + icon?: StaticImageData; + title?: string; + tip: string; +} + +export function Tips({ + image, + subtitle, + title, + description, + tips, + reverse, +}: { + image: StaticImageData; + subtitle: string; + title: string; + description: string; + tips: Tip[]; + reverse: boolean; +}) { + return ( +
+ {`${title} +
+

{subtitle}

+

{title}

+

{description}

+
+ {tips.map((tip, index) => ( +
+ {tip.icon ? ( + {`${tip.title} + ) : ( +

{`0${index + 1}.`}

+ )} +
+

+ {tip.title && ( + + {tip.title}: + + )}{' '} + {tip.tip} +

+
+
+ ))} +
+
+ ); +} diff --git a/app/(pages)/(hackers)/_components/StarterKit/StarterKit.tsx b/app/(pages)/(hackers)/_components/StarterKit/StarterKit.tsx index 96332955d..1531a4f32 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/StarterKit.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/StarterKit.tsx @@ -1,6 +1,6 @@ 'use client'; -import DesignResources from './DesignResources'; +import DesignResources from './DesignResources/DesignResources'; import DevResources from './DevResources'; import Ideate from './Ideate/Ideate'; import Introduction from './Introduction'; From 8d60839d680205f56bff55297314e61f81ae696d Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Tue, 7 Apr 2026 21:46:15 -0700 Subject: [PATCH 18/19] updated sticky side panel --- .../_components/StarterKit/DevResources.tsx | 3 --- .../DesignDevResources.tsx} | 6 +++--- .../Resources.tsx | 0 .../Responsibilities.tsx | 0 .../{DesignResources => Resources}/Tips.tsx | 0 .../_components/StarterKit/StarterKit.tsx | 21 +++++++++---------- 6 files changed, 13 insertions(+), 17 deletions(-) delete mode 100644 app/(pages)/(hackers)/_components/StarterKit/DevResources.tsx rename app/(pages)/(hackers)/_components/StarterKit/{DesignResources/DesignResources.tsx => Resources/DesignDevResources.tsx} (98%) rename app/(pages)/(hackers)/_components/StarterKit/{DesignResources => Resources}/Resources.tsx (100%) rename app/(pages)/(hackers)/_components/StarterKit/{DesignResources => Resources}/Responsibilities.tsx (100%) rename app/(pages)/(hackers)/_components/StarterKit/{DesignResources => Resources}/Tips.tsx (100%) diff --git a/app/(pages)/(hackers)/_components/StarterKit/DevResources.tsx b/app/(pages)/(hackers)/_components/StarterKit/DevResources.tsx deleted file mode 100644 index 6e3a3d40b..000000000 --- a/app/(pages)/(hackers)/_components/StarterKit/DevResources.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function DevResources() { - return
Dev Resources
; -} diff --git a/app/(pages)/(hackers)/_components/StarterKit/DesignResources/DesignResources.tsx b/app/(pages)/(hackers)/_components/StarterKit/Resources/DesignDevResources.tsx similarity index 98% rename from app/(pages)/(hackers)/_components/StarterKit/DesignResources/DesignResources.tsx rename to app/(pages)/(hackers)/_components/StarterKit/Resources/DesignDevResources.tsx index d903e10e5..751271f5d 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/DesignResources/DesignResources.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/Resources/DesignDevResources.tsx @@ -38,7 +38,7 @@ import timeline from '@public/hackers/starter-kit/designResources/timeline.svg'; //import scroll_bar1 from '@public/hackers/starter-kit/designResources/scroll_bar1.svg'; //import divider from '@public/hackers/starter-kit/designResources/divider.svg'; -export default function DesignResources() { +export default function DesignDevResources() { // Data const designer_responsibilities = [ { @@ -162,7 +162,7 @@ export default function DesignResources() { return (
{/** Section 1 */} -
+
{/** Section 5 */} -
+
-
+
{sections.map((section) => (
diff --git a/app/(pages)/(hackers)/_components/StarterKit/StarterKit.tsx b/app/(pages)/(hackers)/_components/StarterKit/StarterKit.tsx index 4cce25b37..66b394503 100644 --- a/app/(pages)/(hackers)/_components/StarterKit/StarterKit.tsx +++ b/app/(pages)/(hackers)/_components/StarterKit/StarterKit.tsx @@ -22,16 +22,12 @@ const sections = [ id: 'ideate', Component: Ideate, }, + // Resources section has two subsections (Design and Dev), so it's handled differently in the sidebar and component rendering { title: 'Design Resources', id: 'design-resources', Component: DesignDevResources, }, - { - title: 'Dev Resources', - id: 'dev-resources', - Component: DesignDevResources, - }, { title: 'More Tips', id: 'more-tips', @@ -39,6 +35,18 @@ const sections = [ }, ]; +// Separate links for the Design Resources section in the sidebar +const designResourceLinks = [ + { + title: 'Design Resources', + id: 'design-resources', + }, + { + title: 'Dev Resources', + id: 'dev-resources', + }, +]; + function scrollToSection(id: string) { const element = document.getElementById(id); if (!element) return; @@ -49,16 +57,30 @@ export default function StarterKit() { return (
- {sections.map((section) => ( - - ))} + {sections.map((section) => + // Render separate link for Design and Dev Resources in sidebar + section.id === 'design-resources' ? ( + designResourceLinks.map((link) => ( + + )) + ) : ( + + ) + )}
{sections.map(({ id, Component }) => (