commit d0d73778b8c8af8978e2c36afe2a70c7d91bb62f
Author: root <root@hub.scroll.pub>
Date: 2024-12-27 14:44:09 +0000
Subject: Initial commit
diff --git a/body.html b/body.html
new file mode 100644
index 0000000..a8b42f3
--- /dev/null
+++ b/body.html
@@ -0,0 +1,88 @@
+<header class="main-header">
+ <nav class="nav-container">
+ <div class="logo">CampBuddy</div>
+ <button class="mobile-menu-btn" aria-label="Toggle menu">
+ <span></span><span></span><span></span>
+ </button>
+ <ul class="nav-links">
+ <li><a href="#home">Home</a></li>
+ <li><a href="#programs">Programs</a></li>
+ <li><a href="#dates">Dates</a></li>
+ <li><a href="#parent-portal" class="portal-btn">Parent Portal</a></li>
+ </ul>
+ </nav>
+</header>
+
+<main>
+ <section id="hero" class="hero-section">
+ <div class="hero-content">
+ <h1>Adventure Awaits at CampBuddy</h1>
+ <p>Give your child an unforgettable summer experience</p>
+ <button class="cta-button">Register Now</button>
+ </div>
+ </section>
+
+ <section id="login-modal" class="modal" aria-label="Parent login form">
+ <div class="modal-content">
+ <button class="close-btn" aria-label="Close login form">×</button>
+ <h2>Parent Login</h2>
+ <form id="login-form">
+ <div class="form-group">
+ <label for="email">Email:</label>
+ <input type="email" id="email" required>
+ </div>
+ <div class="form-group">
+ <label for="password">Password:</label>
+ <input type="password" id="password" required>
+ </div>
+ <button type="submit" class="submit-btn">Login</button>
+ </form>
+ <p class="form-footer">
+ <a href="#reset-password">Forgot Password?</a>
+ <a href="#register">New Parent? Register Here</a>
+ </p>
+ </div>
+ </section>
+
+ <section id="programs" class="programs-section">
+ <h2>Our Programs</h2>
+ <div class="program-cards">
+ <article class="program-card">
+ <h3>Adventure Camp</h3>
+ <p>Ages 8-12</p>
+ <p>Outdoor exploration and team building</p>
+ <button class="program-btn">Learn More</button>
+ </article>
+ <article class="program-card">
+ <h3>Arts & Crafts</h3>
+ <p>Ages 6-14</p>
+ <p>Creative expression and skill development</p>
+ <button class="program-btn">Learn More</button>
+ </article>
+ <article class="program-card">
+ <h3>Sports Camp</h3>
+ <p>Ages 7-15</p>
+ <p>Athletic training and team sports</p>
+ <button class="program-btn">Learn More</button>
+ </article>
+ </div>
+ </section>
+</main>
+
+<footer class="main-footer">
+ <div class="footer-content">
+ <div class="footer-section">
+ <h4>Contact Us</h4>
+ <p>Phone: (555) 123-4567</p>
+ <p>Email: info@campbuddy.scroll.pub</p>
+ </div>
+ <div class="footer-section">
+ <h4>Quick Links</h4>
+ <ul>
+ <li><a href="#about">About Us</a></li>
+ <li><a href="#faq">FAQ</a></li>
+ <li><a href="#policies">Policies</a></li>
+ </ul>
+ </div>
+ </div>
+</footer>
\ No newline at end of file
diff --git a/index.scroll b/index.scroll
new file mode 100644
index 0000000..eaf6de0
--- /dev/null
+++ b/index.scroll
@@ -0,0 +1,11 @@
+buildHtml
+baseUrl https://campbuddy.scroll.pub
+metaTags
+ title "CampBuddy - Summer Camp Registration"
+ description "Register your child for an unforgettable summer camp experience. Secure parent portal and easy session management."
+ keywords "summer camp, camp registration, kids camp, parent portal"
+editButton /edit.html
+title CampBuddy - Summer Camp Registration
+style.css
+body.html
+script.js
\ No newline at end of file
diff --git a/readme.scroll b/readme.scroll
new file mode 100644
index 0000000..8086cd7
--- /dev/null
+++ b/readme.scroll
@@ -0,0 +1,2 @@
+# campbuddy.scroll.pub
+Website generated by Claude from prompt: A summer camp registration website that has parent login and session management
\ No newline at end of file
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..15d7f55
--- /dev/null
+++ b/script.js
@@ -0,0 +1,58 @@
+document.addEventListener('DOMContentLoaded', function() {
+ // Mobile menu functionality
+ const menuBtn = document.querySelector('.mobile-menu-btn');
+ const navLinks = document.querySelector('.nav-links');
+
+ menuBtn?.addEventListener('click', () => {
+ navLinks.classList.toggle('active');
+ });
+
+ // Modal functionality
+ const modal = document.getElementById('login-modal');
+ const portalBtn = document.querySelector('.portal-btn');
+ const closeBtn = document.querySelector('.close-btn');
+
+ portalBtn?.addEventListener('click', (e) => {
+ e.preventDefault();
+ modal.style.display = 'block';
+ });
+
+ closeBtn?.addEventListener('click', () => {
+ modal.style.display = 'none';
+ });
+
+ window.addEventListener('click', (e) => {
+ if (e.target === modal) {
+ modal.style.display = 'none';
+ }
+ });
+
+ // Login form submission
+ const loginForm = document.getElementById('login-form');
+
+ loginForm?.addEventListener('submit', (e) => {
+ e.preventDefault();
+ const email = document.getElementById('email').value;
+ const password = document.getElementById('password').value;
+
+ // Here you would typically make an API call to verify credentials
+ console.log('Login attempted:', { email, password });
+
+ // For demo purposes, show success message
+ alert('Login successful!');
+ modal.style.display = 'none';
+ });
+
+ // Smooth scrolling for anchor links
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ e.preventDefault();
+ const target = document.querySelector(this.getAttribute('href'));
+ if (target) {
+ target.scrollIntoView({
+ behavior: 'smooth'
+ });
+ }
+ });
+ });
+});
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..58feb16
--- /dev/null
+++ b/style.css
@@ -0,0 +1,177 @@
+:root {
+ --primary-color: #2ecc71;
+ --secondary-color: #3498db;
+ --text-color: #2c3e50;
+ --background-light: #f9f9f9;
+ --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Segoe UI', system-ui, sans-serif;
+ line-height: 1.6;
+ color: var(--text-color);
+}
+
+.main-header {
+ background: white;
+ box-shadow: var(--shadow);
+ position: fixed;
+ width: 100%;
+ top: 0;
+ z-index: 1000;
+}
+
+.nav-container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 1rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.logo {
+ font-size: 1.8rem;
+ font-weight: bold;
+ background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));
+ -webkit-background-clip: text;
+ background-clip: text;
+ color: transparent;
+}
+
+.nav-links {
+ display: flex;
+ gap: 2rem;
+ list-style: none;
+}
+
+.nav-links a {
+ text-decoration: none;
+ color: var(--text-color);
+ font-weight: 500;
+ transition: color 0.3s ease;
+}
+
+.nav-links a:hover {
+ color: var(--primary-color);
+}
+
+.portal-btn {
+ background: var(--primary-color);
+ color: white !important;
+ padding: 0.5rem 1rem;
+ border-radius: 25px;
+}
+
+.hero-section {
+ height: 100vh;
+ background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)),
+ url('images/camp-hero.jpg');
+ background-size: cover;
+ background-position: center;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ color: white;
+}
+
+.hero-content {
+ padding: 2rem;
+}
+
+.hero-content h1 {
+ font-size: 3.5rem;
+ margin-bottom: 1rem;
+ animation: fadeInUp 1s ease;
+}
+
+.cta-button {
+ background: var(--primary-color);
+ color: white;
+ border: none;
+ padding: 1rem 2rem;
+ font-size: 1.2rem;
+ border-radius: 25px;
+ cursor: pointer;
+ transition: transform 0.3s ease;
+}
+
+.cta-button:hover {
+ transform: translateY(-2px);
+}
+
+.modal {
+ display: none;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0,0,0,0.5);
+ z-index: 2000;
+}
+
+.modal-content {
+ background: white;
+ max-width: 400px;
+ margin: 2rem auto;
+ padding: 2rem;
+ border-radius: 10px;
+ position: relative;
+}
+
+.programs-section {
+ padding: 4rem 2rem;
+ background: var(--background-light);
+}
+
+.program-cards {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ margin-top: 2rem;
+}
+
+.program-card {
+ background: white;
+ padding: 2rem;
+ border-radius: 10px;
+ box-shadow: var(--shadow);
+ transition: transform 0.3s ease;
+}
+
+.program-card:hover {
+ transform: translateY(-5px);
+}
+
+@media (max-width: 768px) {
+ .nav-links {
+ display: none;
+ }
+
+ .mobile-menu-btn {
+ display: block;
+ }
+
+ .hero-content h1 {
+ font-size: 2.5rem;
+ }
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
\ No newline at end of file