# Core Structure
- Each web page must contain only one HTML file
- HTML must have a single container element
- No separate CSS files allowed
- No inline or internal CSS in HTML
# JavaScript Requirements
- All content must be dynamically injected via JavaScript
- All styles must be defined and applied through JavaScript
- Use JavaScript to create and manage DOM elements
- Use JavaScript to handle all styling properties
# Container Guidelines
- One main container per HTML page
- Container should be empty in the HTML file
- All child elements must be created and appended via JavaScript
# Style Management
- All styles must be applied using JavaScript's style property or setAttribute
- No CSS classes or IDs for styling purposes
- No CSS stylesheets (external, internal, or inline)
- All responsive design must be handled through JavaScript
# Code Organization
- Keep HTML files minimal and clean
- Maintain all logic and styling in JavaScript files
- Use modular JavaScript functions for content creation
- Implement event listeners for dynamic content updates
# Project Structure
- Root directory contains:
- index.html (main landing page)
- script.js (main JavaScript file)
- assets/ (directory for media files)
- images/ (for image files)
- videos/ (for video files)
# Page Folders
- Create a new folder for each additional page
- Each page folder must contain exactly two files:
- index.html (minimal HTML with container)
- script.js (all logic and styling)
- No CSS files in any folder
# Main Features
- Use relative paths for all assets
- Format: "../assets/images/filename.ext" for subpages
- Format: "./assets/images/filename.ext" for main page
- Ensure compatibility with GitHub Pages hosting
## 1. Memories Gallery
- Google Photos Integration:
- Fetch photos from specified Google Photos album
- Use Google Photos API for reliable access
- Support for high-resolution images
- Maintain original image quality and metadata
- Handle image caching for performance
- Support for both photos and videos
- Respect album sharing permissions
- Memories Display:
- Interactive Memory Slider:
- Fullscreen immersive display
- Smooth transitions between memories
- Touch and swipe support for mobile
- Arrow navigation and keyboard controls
- Gratitude Notes Feature:
- Personalized note overlay for each memory
- Elegant typography for emotional impact
- Fade-in animation for notes
- Optional audio narration support
- Visual Design:
- Dynamic color theming based on image palette
- Parallax effects for depth
- Subtle ambient background animations
- Custom transitions between slides
- Interactive Elements:
- Heart/reaction animations
- Optional background music toggle
- Timeline navigation bar
- Memory categories/tags
- Responsive Features:
- Adaptive layout for all screen sizes
- Portrait/landscape orientation handling
- Touch-optimized for mobile devices
- Gesture controls for navigation
## 2. Birthday Countdown
- Countdown Timer:
- Target: December 21st, 11:00 PM AEDT (Melbourne)
- Live updating countdown display
- Hidden message reveal at target time
- Timezone handling (UTC+11)
# Key Functions
## Google Drive Integration
emotion
golang
html
java
javascript
react
First Time Repository
JavaScript
Languages:
HTML: 0.3KB
JavaScript: 33.9KB
Created: 12/21/2024
Updated: 12/21/2024