Skip to content

Conversation

@nhuvann
Copy link
Collaborator

@nhuvann nhuvann commented Dec 26, 2025

Branch Deployment to deploy

Created FAQ
Added new assets
Linked Registration

@netlify
Copy link

netlify bot commented Dec 26, 2025

Deploy Preview for hacklahoma2026 ready!

Name Link
🔨 Latest commit 0761b00
🔍 Latest deploy log https://app.netlify.com/projects/hacklahoma2026/deploys/6970ed519fcc310008c3b9bb
😎 Deploy Preview https://deploy-preview-14--hacklahoma2026.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This is a deployment PR that removes backend server functionality and adds a new FAQ page with interactive features to the frontend, updates sponsor information, and converts login links to external registration links.

Key Changes:

  • Complete removal of backend server code (package.json, models, configuration)
  • New interactive FAQ page with passport-style design and selfie capture capability
  • Integration of American Fidelity as a new sponsor
  • Conversion of login navigation to external registration links with proper security attributes
  • Addition of CSS animations for UI enhancements

Reviewed changes

Copilot reviewed 10 out of 25 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
server/package.json Deleted backend server dependencies configuration
server/models/User.js Removed user data model definition
server/.gitignore Removed backend ignore patterns
server/.DS_Store macOS system file (should be gitignored)
frontend/src/ui/pages/landing/sections/Sponsors.tsx Added American Fidelity sponsor logo and link
frontend/src/ui/pages/landing/sections/LandingView.tsx Updated login links to external registration URL with security attributes and mobile menu styling fix
frontend/src/ui/pages/landing/index.tsx Integrated new FAQ page component into landing page
frontend/src/ui/pages/faq/section/SelfieCapture.tsx New component for capturing user selfies with camera access and IndexedDB storage
frontend/src/ui/pages/faq/index.tsx New interactive FAQ page with passport-style UI and dismissible stamp overlays
frontend/src/ui/common/assets/sponsors/AmericanFidelity.png New sponsor logo image asset
frontend/src/ui/common/assets/faq/stamps/stamp_three.png New stamp graphic asset for FAQ page
frontend/src/index.css Added custom animations (float, spin, float-spin variants) for UI elements
frontend/package.json Added GSAP animation library dependency

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 293 to 297
<a href="https://register.hacklahoma.org/" target="_blank" rel="noopener noreferrer">
<button className="px-6 py-3 border-2 border-[#575f49] text-[#575f49] font-medium hover:bg-[#575f49] hover:text-[#F5F5DC] transition-colors duration-300 rounded">
Register Now
</button>
</a>
Copy link

Copilot AI Dec 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The buttons inside anchor tags create invalid HTML. Buttons should not be nested inside anchor tags. Instead, style the anchor tag as a button or use onClick handlers on the button with navigation logic.

Copilot uses AI. Check for mistakes.
hutizaki and others added 25 commits January 10, 2026 18:39
Updated CardShuffleLogic to use consistent fly directions for mobile swipe gestures:
- Forward shuffle now always flies right
- Backward shuffle now always flies left

This ensures predictable animations on small screens where navigation arrows are hidden.
Implements conditional fly direction logic that adapts to screen size:
- Mobile (< 600px, buttons hidden): Consistent fly directions (right for forward, left for backward)
- Desktop (>= 600px, buttons visible): Position-based alternating fly directions

Changes:
- Added window resize listener to track button visibility state
- Updated shuffle functions to accept useConsistentFlyDirection parameter
- Pass button visibility state through component tree to shuffle logic
- Maintains smooth swipe gestures on mobile while preserving desktop animation variety
Key improvements:
- Renamed cardShuffleLogic.ts to CardShuffleLogic.ts for consistency
- Swapped mobile shuffle directions for intuitive card pushing effect
  * Swipe left → backward shuffle → card flies left
  * Swipe right → forward shuffle → card flies right
- Fixed backward shuffle timing to match forward (300ms → 400ms delay)
  * Z-index now updates at 50% completion instead of 25%
  * Creates smoother, more bouncy animation matching forward shuffle
- Implemented responsive fly distance based on screen size
  * Desktop (≥600px): 50vw fly distance
  * Mobile (<600px): 75vw fly distance for more dramatic effect
  * Uses areButtonsVisible state for dynamic config selection

All changes maintain desktop behavior while significantly improving mobile UX.
Implemented granular responsive breakpoints for optimal animation distances
and tighter postcard styling on smaller screens.

Responsive fly distance system:
- Added 5 breakpoint tiers with smooth scaling
  * < 600px: 75vw (mobile, no nav buttons)
  * 600-767px: 65vw (small tablet, with nav buttons)
  * 768-1023px: 55vw (tablet, with nav buttons)
  * 1024-1649px: 45vw (desktop, with nav buttons)
  * >= 1650px: 40vw (large desktop, with nav buttons)
- Implemented screenSizeTier state tracking with resize listener
- All config values preloaded, dynamically selected based on viewport

Responsive postcard styling:
- Mobile border: px-4 (16px horizontal padding)
- Desktop border: px-6 (24px horizontal padding)
- Mobile top padding: pt-1 (4px)
- Desktop top padding: pt-2 (8px)
- Mobile bottom padding: pb-[0.15rem] (2.4px)
- Desktop bottom padding: pb-[0.25rem] (4px)
- Creates more compact frame on mobile while preserving design on desktop

All changes maintain smooth animations and provide better UX across all device sizes.
…cator

DESKTOP ONLY - Mobile implementation pending

Added sophisticated header navigation system with real-time animated triangle
indicator that tracks active/hovered sections with smooth spring physics.

Header Navigation Features:
- Animated triangle indicator with conditional spring behavior
  * Instant follow during layout changes (no double-spring)
  * Smooth spring animation (stiffness: 300, damping: 20, mass: 0.4) for navigation
- Real-time position tracking via requestAnimationFrame for all nav links
- Debounced hover (100ms) to prevent triangle jumping when crossing diamond separators
- Layout animations using Framer Motion's LayoutGroup for smooth transitions
- Nav links jump up 10% and scale on hover/active state

Header Design & Layout:
- Textured background (Patch.png) with rope border - scoped to nav section only
- Full-width header container for logo positioning
- Centered responsive background (50% width, 650px-720px range)
- Rounded corners with overflow hidden for polished appearance
- Text selection disabled, custom cursors for UX polish

REGISTER Link Behavior:
- Hidden by default at page top (< 100px scroll)
- Fades in with slide-from-right animation after scrolling
- Auto-hides when "Register Now" CTA button is visible in viewport
- Links to register.hacklahoma.org (opens in new tab)
- Supports hover tracking and triangle indicator

Register Now Buttons:
- Converted to semantic <a> tags linking to register.hacklahoma.org
- Mobile button (< 600px): Below title
- Desktop button (>= 600px): Bottom right corner
- Both open registration in new tab

Technical Implementation:
- useMotionValue + useSpring for triangle physics
- Conditional spring config based on movement reason (layout vs navigation)
- Visibility-based scroll detection with 40% threshold for sections
- AnimatePresence with mode="popLayout" for simultaneous animations
- Section tracking with dynamic getBoundingClientRect calculations

Assets Added:
- Header texture (Patch.png)
- Rope border pattern (HeaderRope.png)

Files Modified:
- Header.tsx: Complete redesign with animation system
- LandingView.tsx: Added IDs to Register buttons, converted to links

Next Steps:
- Mobile header implementation
- Mobile menu styling and animations
…onsiveness

MOBILE NAVBAR ENHANCEMENTS:
- Repositioned header to top-0 on mobile devices for better screen utilization
- Removed modal backdrop to prevent accidental dismissals
- Moved BACK button to right side with increased padding for better tap target
- Added new MobileHeader.png and RegisterButton.png assets

Mobile Menu Styling:
- Applied 80% saturation filter to background for softer appearance
- Added subtle blur overlays on left (10px) and bottom (8px) edges
- Implemented custom dashed dividers between menu items with 0.4px blur
- Added circular bullet points (#947b53) to navigation items
- Made dividers 95% width, right-aligned with #9e8f7b color
- Set menu items to 90% width container for improved visual balance

Mobile Menu Layout:
- Restructured navigation with full-width, non-rounded menu items
- Moved REGISTER button to bottom-center position
- Replaced text-based register link with image button
- Container positioned at top-4 right-4 with custom sizing (260px)

Mobile Menu Animations:
- Converted to Framer Motion with AnimatePresence for smooth transitions
- Added slide-in animation from right (300px) with scale effect (0.9 to 1)
- Implemented 0.6s duration with custom easing curve [0.22, 1, 0.36, 1]
- Added dramatic tap animations to all interactive elements:
  * BACK button: 85% scale with 70% opacity
  * Nav links: 92% scale with 5px right shift, transform origin from left
  * REGISTER button: 88% scale with -2deg rotation
- Spring transitions with 400 stiffness and 17 damping for responsive feedback

DESKTOP HEADER IMPROVEMENTS:
- Implemented responsive breakpoint system using CSS media queries:
  * md (768px+): 70% width, 550px min, 600px max
  * lg (1024px+): 750px min/max
  * xl (1280px+): 800px max
- Added smooth 300ms transitions for size changes
- Responsive text sizing: md:text-lg → lg:text-xl
- Responsive padding: px-3 → md:px-4 → lg:px-6
- Increased triangle hover delay from 100ms to 300ms for smoother UX
- All responsive behavior handled via CSS for optimal performance

TECHNICAL IMPROVEMENTS:
- Zero JavaScript overhead for responsive sizing (pure CSS approach)
- Maintained existing triangle tracking logic without performance impact
- Preserved all accessibility features and ARIA labels
- Ensured smooth animations across all devices

This commit completes the mobile navbar redesign with modern animations,
improved touch targets, and a polished visual design while enhancing
desktop responsiveness across all screen sizes.
…ed styling

MOBILE NAVBAR IMPROVEMENTS:
- Removed hamburger menu X animation - menu now fades out when opened
- Hamburger menu returns when BACK button is clicked
- Updated mobile menu positioning and spacing adjustments
- Centered all navigation text and removed bullet points
- Added grayscale filter to register button image (50% saturation)
- Adjusted nav container padding for better layout

Mobile Menu Dividers:
- Added decorative line SVG dividers between menu items
- Implemented pencil-mark effect with gradient fade on both ends
- Rotated middle line 180 degrees for visual variation
- Lines stretch full width with 2px height using preserveAspectRatio="none"

DESKTOP HEADER ENHANCEMENTS:
- Replaced diamond (◆) symbols with custom tree SVG icons
- Added basicTree.svg with proper viewBox for complete tree display
- Tree icons sized at h-5 with auto width to preserve aspect ratio
- Trees use same color (#3D472C) as navigation text
- Enhanced responsive sizing at desktop breakpoints

NEW ASSETS:
- basicTree.svg: Custom tree icon for navigation separators
- line.svg: Hand-drawn style line for mobile menu dividers
- Updated MobileHeader.png with brightness filter (1.01)
- Updated RegisterButton.png styling

TECHNICAL UPDATES:
- Enhanced SVG type definitions to support React component imports
- Added support for ReactComponent named exports in SVG modules
- Applied CSS mask gradients for fade effects on dividers
- Optimized mobile menu layout with centered content

This commit refines the mobile navigation experience with decorative elements
and improves visual consistency across desktop and mobile interfaces.
On mobile, the register button on landing view was positioned on the left side,
making it hard for right-hand thumb to reach over. Moved to the center for easy
viewing and reaching from both sides.

Changes:
- Centered register button container with flex justify-center
- Made button span full viewport width for proper centering
- Increased button width from px-6 to px-20 for larger tap target
- Changed initial state to solid background (bg-[#575f49]) for prominence
- Added Framer Motion animations for interactive feedback:
  * whileHover: scales to 105%
  * whileTap: scales to 95%
  * Spring transition for smooth, responsive feel

This improves mobile UX by placing the most important CTA in an ergonomic
position accessible from both left and right hand thumb zones.
Added MLH Code of Conduct hyperlink at the bottom of the landing page
linking to the official MLH policies repository. This ensures compliance
with MLH requirements for member events.

Link: https://github.com/MLH/mlh-policies/blob/main/code-of-conduct.md
Hotfix for memory leaks when camera is on state.
Hotfix for type safety.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants