commit 68b69927d8169f40be72f524aae6369c16a7c15e
Author: root <root@hub.scroll.pub> Date: 2024-12-30 01:49:54 +0000 Subject: Initial commit diff --git a/body.html b/body.html new file mode 100644 index 0000000..0cafaa4 --- /dev/null +++ b/body.html @@ -0,0 +1,110 @@ +<header> + <nav> + <div class="logo">StoreSpaces</div> + <div class="nav-links"> + <a href="#units">Units</a> + <a href="#features">Features</a> + <a href="#contact">Contact</a> + <button class="book-now">Book Now</button> + </div> + </nav> +</header> + +<main> + <section class="hero"> + <h1>Secure Storage Space<br>When You Need It</h1> + <p>Find and book your perfect storage unit in minutes</p> + <a href="#units" class="cta-button">View Storage Units</a> + </section> + + <section id="units" class="storage-units"> + <h2>Choose Your Space</h2> + <div class="unit-grid"> + <div class="unit-card" data-size="small"> + <h3>Small Unit</h3> + <div class="unit-image"></div> + <p class="dimensions">5' x 5' (25 sq ft)</p> + <p class="price">$49/month</p> + <button class="select-unit">Select Unit</button> + </div> + <div class="unit-card" data-size="medium"> + <h3>Medium Unit</h3> + <div class="unit-image"></div> + <p class="dimensions">10' x 10' (100 sq ft)</p> + <p class="price">$99/month</p> + <button class="select-unit">Select Unit</button> + </div> + <div class="unit-card" data-size="large"> + <h3>Large Unit</h3> + <div class="unit-image"></div> + <p class="dimensions">10' x 20' (200 sq ft)</p> + <p class="price">$179/month</p> + <button class="select-unit">Select Unit</button> + </div> + </div> + </section> + + <section id="features" class="features"> + <h2>Why Choose Us</h2> + <div class="features-grid"> + <div class="feature"> + <div class="feature-icon">🔒</div> + <h3>24/7 Security</h3> + <p>Advanced security systems and surveillance</p> + </div> + <div class="feature"> + <div class="feature-icon">🌡️</div> + <h3>Climate Control</h3> + <p>Temperature-controlled units available</p> + </div> + <div class="feature"> + <div class="feature-icon">📱</div> + <h3>Easy Access</h3> + <p>Digital access control system</p> + </div> + </div> + </section> +</main> + +<footer> + <div class="footer-content"> + <div class="footer-section"> + <h4>Contact Us</h4> + <p>1234 Storage Lane</p> + <p>contact@storespaces.scroll.pub</p> + <p>(555) 123-4567</p> + </div> + <div class="footer-section"> + <h4>Quick Links</h4> + <a href="#units">Storage Units</a> + <a href="#features">Features</a> + <a href="#contact">Contact</a> + </div> + </div> +</footer> + +<div id="booking-modal" class="modal"> + <div class="modal-content"> + <span class="close-modal">&times;</span> + <h2>Book Your Storage Unit</h2> + <form id="booking-form"> + <div class="form-group"> + <label for="name">Full Name</label> + <input type="text" id="name" required> + </div> + <div class="form-group"> + <label for="email">Email</label> + <input type="email" id="email" required> + </div> + <div class="form-group"> + <label for="phone">Phone</label> + <input type="tel" id="phone" required> + </div> + <div class="form-group"> + <label for="move-in">Move-in Date</label> + <input type="date" id="move-in" required> + </div> + <button type="submit" class="submit-booking">Confirm Booking</button> + </form> + </div> +</div> diff --git a/index.scroll b/index.scroll new file mode 100644 index 0000000..9c29a9d --- /dev/null +++ b/index.scroll @@ -0,0 +1,13 @@ +buildHtml +baseUrl https://storespaces.scroll.pub +metaTags +title StoreSpaces - Simple Self Storage Solutions +description Book your perfect storage space instantly. Clean, secure, and convenient self-storage units available in various sizes. +keywords self storage, storage units, storage booking, secure storage, storage space +author StoreSpaces +ogTitle StoreSpaces - Book Your Storage Space +ogDescription Find and book your ideal storage unit instantly. Various sizes available. +editButton /edit.html +style.css +body.html +script.js diff --git a/prompt.json b/prompt.json new file mode 100644 index 0000000..b7492cf --- /dev/null +++ b/prompt.json @@ -0,0 +1,20 @@ +{ + "id": "msg_01B9zpYHcRUmsG3CXGhiPwrb", + "type": "message", + "role": "assistant", + "model": "claude-3-5-sonnet-20241022", + "content": [ + { + "type": "text", + "text": "Let me create a clean and professional self-storage booking website.\n\n---domain---\nstorespaces.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://storespaces.scroll.pub\nmetaTags\ntitle StoreSpaces - Simple Self Storage Solutions\ndescription Book your perfect storage space instantly. Clean, secure, and convenient self-storage units available in various sizes.\nkeywords self storage, storage units, storage booking, secure storage, storage space\nauthor StoreSpaces\nogTitle StoreSpaces - Book Your Storage Space\nogDescription Find and book your ideal storage unit instantly. Various sizes available.\neditButton /edit.html\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n<header>\n <nav>\n <div class=\"logo\">StoreSpaces</div>\n <div class=\"nav-links\">\n <a href=\"#units\">Units</a>\n <a href=\"#features\">Features</a>\n <a href=\"#contact\">Contact</a>\n <button class=\"book-now\">Book Now</button>\n </div>\n </nav>\n</header>\n\n<main>\n <section class=\"hero\">\n <h1>Secure Storage Space<br>When You Need It</h1>\n <p>Find and book your perfect storage unit in minutes</p>\n <a href=\"#units\" class=\"cta-button\">View Storage Units</a>\n </section>\n\n <section id=\"units\" class=\"storage-units\">\n <h2>Choose Your Space</h2>\n <div class=\"unit-grid\">\n <div class=\"unit-card\" data-size=\"small\">\n <h3>Small Unit</h3>\n <div class=\"unit-image\"></div>\n <p class=\"dimensions\">5' x 5' (25 sq ft)</p>\n <p class=\"price\">$49/month</p>\n <button class=\"select-unit\">Select Unit</button>\n </div>\n <div class=\"unit-card\" data-size=\"medium\">\n <h3>Medium Unit</h3>\n <div class=\"unit-image\"></div>\n <p class=\"dimensions\">10' x 10' (100 sq ft)</p>\n <p class=\"price\">$99/month</p>\n <button class=\"select-unit\">Select Unit</button>\n </div>\n <div class=\"unit-card\" data-size=\"large\">\n <h3>Large Unit</h3>\n <div class=\"unit-image\"></div>\n <p class=\"dimensions\">10' x 20' (200 sq ft)</p>\n <p class=\"price\">$179/month</p>\n <button class=\"select-unit\">Select Unit</button>\n </div>\n </div>\n </section>\n\n <section id=\"features\" class=\"features\">\n <h2>Why Choose Us</h2>\n <div class=\"features-grid\">\n <div class=\"feature\">\n <div class=\"feature-icon\">🔒</div>\n <h3>24/7 Security</h3>\n <p>Advanced security systems and surveillance</p>\n </div>\n <div class=\"feature\">\n <div class=\"feature-icon\">🌡️</div>\n <h3>Climate Control</h3>\n <p>Temperature-controlled units available</p>\n </div>\n <div class=\"feature\">\n <div class=\"feature-icon\">📱</div>\n <h3>Easy Access</h3>\n <p>Digital access control system</p>\n </div>\n </div>\n </section>\n</main>\n\n<footer>\n <div class=\"footer-content\">\n <div class=\"footer-section\">\n <h4>Contact Us</h4>\n <p>1234 Storage Lane</p>\n <p>contact@storespaces.scroll.pub</p>\n <p>(555) 123-4567</p>\n </div>\n <div class=\"footer-section\">\n <h4>Quick Links</h4>\n <a href=\"#units\">Storage Units</a>\n <a href=\"#features\">Features</a>\n <a href=\"#contact\">Contact</a>\n </div>\n </div>\n</footer>\n\n<div id=\"booking-modal\" class=\"modal\">\n <div class=\"modal-content\">\n <span class=\"close-modal\">&times;</span>\n <h2>Book Your Storage Unit</h2>\n <form id=\"booking-form\">\n <div class=\"form-group\">\n <label for=\"name\">Full Name</label>\n <input type=\"text\" id=\"name\" required>\n </div>\n <div class=\"form-group\">\n <label for=\"email\">Email</label>\n <input type=\"email\" id=\"email\" required>\n </div>\n <div class=\"form-group\">\n <label for=\"phone\">Phone</label>\n <input type=\"tel\" id=\"phone\" required>\n </div>\n <div class=\"form-group\">\n <label for=\"move-in\">Move-in Date</label>\n <input type=\"date\" id=\"move-in\" required>\n </div>\n <button type=\"submit\" class=\"submit-booking\">Confirm Booking</button>\n </form>\n </div>\n</div>\n\n---style.css---\n:root {\n --primary-color: #2c3e50;\n --accent-color: #3498db;\n --background-color: #f8f9fa;\n --text-color: #2c3e50;\n --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: 'Segoe UI', system-ui, sans-serif;\n line-height: 1.6;\n color: var(--text-color);\n}\n\n/* Header & Navigation */\nheader {\n background: white;\n box-shadow: var(--shadow);\n position: fixed;\n width: 100%;\n top: 0;\n z-index: 1000;\n}\n\nnav {\n max-width: 1200px;\n margin: 0 auto;\n padding: 1rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary-color);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n align-items: center;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text-color);\n transition: color 0.3s ease;\n}\n\n.nav-links a:hover {\n color: var(--accent-color);\n}\n\n/* Hero Section */\n.hero {\n height: 80vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n background: linear-gradient(135deg, #2c3e50, #3498db);\n color: white;\n padding: 2rem;\n margin-top: 60px;\n}\n\n.hero h1 {\n font-size: 3rem;\n margin-bottom: 1rem;\n line-height: 1.2;\n}\n\n/* Storage Units */\n.storage-units {\n padding: 4rem 2rem;\n background: var(--background-color);\n}\n\n.unit-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 2rem;\n max-width: 1200px;\n margin: 2rem auto;\n}\n\n.unit-card {\n background: white;\n border-radius: 10px;\n padding: 2rem;\n text-align: center;\n transition: transform 0.3s ease;\n box-shadow: var(--shadow);\n}\n\n.unit-card:hover {\n transform: translateY(-5px);\n}\n\n.unit-image {\n height: 200px;\n background: #eee;\n margin: 1rem 0;\n border-radius: 5px;\n}\n\n/* Features Section */\n.features {\n padding: 4rem 2rem;\n background: white;\n}\n\n.features-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n max-width: 1200px;\n margin: 2rem auto;\n}\n\n.feature {\n text-align: center;\n padding: 2rem;\n}\n\n.feature-icon {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n}\n\n/* Buttons */\n.cta-button, .select-unit, .book-now, .submit-booking {\n background: var(--accent-color);\n color: white;\n border: none;\n padding: 0.8rem 1.5rem;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.cta-button:hover, .select-unit:hover, .book-now:hover, .submit-booking:hover {\n background: #2980b9;\n}\n\n/* Modal */\n.modal {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1001;\n}\n\n.modal-content {\n background: white;\n max-width: 500px;\n margin: 2rem auto;\n padding: 2rem;\n border-radius: 10px;\n position: relative;\n}\n\n.close-modal {\n position: absolute;\n right: 1rem;\n top: 1rem;\n font-size: 1.5rem;\n cursor: pointer;\n}\n\n/* Form Styles */\n.form-group {\n margin-bottom: 1rem;\n}\n\nlabel {\n display: block;\n margin-bottom: 0.5rem;\n}\n\ninput {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n}\n\n/* Footer */\nfooter {\n background: var(--primary-color);\n color: white;\n padding: 2rem;\n}\n\n.footer-content {\n max-width: 1200px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 2rem;\n}\n\n.footer-section a {\n display: block;\n color: white;\n text-decoration: none;\n margin-bottom: 0.5rem;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .nav-links {\n display: none;\n }\n \n .hero h1 {\n font-size: 2rem;\n }\n \n .unit-grid, .features-grid {\n grid-template-columns: 1fr;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n const modal = document.getElementById('booking-modal');\n const selectButtons = document.querySelectorAll('.select-unit');\n const closeModal = document.querySelector('.close-modal');\n const bookingForm = document.getElementById('booking-form');\n const bookNowButton = document.querySelector('.book-now');\n\n function openModal() {\n modal.style.display = 'block';\n document.body.style.overflow = 'hidden';\n }\n\n function closeModalFunction() {\n modal.style.display = 'none';\n document.body.style.overflow = 'auto';\n }\n\n selectButtons.forEach(button => {\n button.addEventListener('click', openModal);\n });\n\n bookNowButton.addEventListener('click', openModal);\n\n closeModal.addEventListener('click', closeModalFunction);\n\n window.addEventListener('click', (e) => {\n if (e.target === modal) {\n closeModalFunction();\n }\n });\n\n bookingForm.addEventListener('submit', (e) => {\n e.preventDefault();\n \n // Collect form data\n const formData = {\n name: document.getElementById('name').value,\n email: document.getElementById('email').value,\n phone: document.getElementById('phone').value,\n moveIn: document.getElementById('move-in').value\n };\n\n // Here you would typically send this data to a server\n console.log('Booking submitted:', formData);\n \n // Show success message\n alert('Thank you for your booking! We will contact you shortly.');\n \n // Reset form and close modal\n bookingForm.reset();\n closeModalFunction();\n });\n\n // Smooth scroll for navigation links\n document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\n anchor.addEventListener('click', function (e) {\n e.preventDefault();\n document.querySelector(this.getAttribute('href')).scrollIntoView({\n behavior: 'smooth'\n });\n });\n });\n});\n\n---end---\n\nThis implementation provides a modern, responsive self-storage booking website with the following features:\n\n1. Clean, semantic HTML5 structure\n2. Mobile-responsive design\n3. Smooth animations and transitions\n4. Modal booking form\n5. Interactive unit selection\n6. Modern color scheme and typography\n7. Accessible navigation\n8. SEO-optimized meta tags\n9. Smooth scroll behavior\n10. Beautiful gradient hero section\n11. Card-based layout for storage units\n12. Feature highlights section\n13. Professional footer\n\nThe design uses CSS Grid and Flexbox for layouts, custom properties for consistent theming, and follows modern web development best practices. The JavaScript provides smooth interactions and form handling." + } + ], + "stop_reason": "end_turn", + "stop_sequence": null, + "usage": { + "input_tokens": 285, + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "output_tokens": 3558 + } +} \ No newline at end of file diff --git a/readme.scroll b/readme.scroll new file mode 100644 index 0000000..9c00f78 --- /dev/null +++ b/readme.scroll @@ -0,0 +1,2 @@ +# storespaces.scroll.pub +Website generated by Claude from prompt: a self storage company where you can select the space you want and book storage \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..dc03880 --- /dev/null +++ b/script.js @@ -0,0 +1,63 @@ +document.addEventListener('DOMContentLoaded', () => { + const modal = document.getElementById('booking-modal'); + const selectButtons = document.querySelectorAll('.select-unit'); + const closeModal = document.querySelector('.close-modal'); + const bookingForm = document.getElementById('booking-form'); + const bookNowButton = document.querySelector('.book-now'); + + function openModal() { + modal.style.display = 'block'; + document.body.style.overflow = 'hidden'; + } + + function closeModalFunction() { + modal.style.display = 'none'; + document.body.style.overflow = 'auto'; + } + + selectButtons.forEach(button => { + button.addEventListener('click', openModal); + }); + + bookNowButton.addEventListener('click', openModal); + + closeModal.addEventListener('click', closeModalFunction); + + window.addEventListener('click', (e) => { + if (e.target === modal) { + closeModalFunction(); + } + }); + + bookingForm.addEventListener('submit', (e) => { + e.preventDefault(); + + // Collect form data + const formData = { + name: document.getElementById('name').value, + email: document.getElementById('email').value, + phone: document.getElementById('phone').value, + moveIn: document.getElementById('move-in').value + }; + + // Here you would typically send this data to a server + console.log('Booking submitted:', formData); + + // Show success message + alert('Thank you for your booking! We will contact you shortly.'); + + // Reset form and close modal + bookingForm.reset(); + closeModalFunction(); + }); + + // Smooth scroll for navigation links + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + document.querySelector(this.getAttribute('href')).scrollIntoView({ + behavior: 'smooth' + }); + }); + }); +}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..4a3cfcc --- /dev/null +++ b/style.css @@ -0,0 +1,236 @@ +:root { + --primary-color: #2c3e50; + --accent-color: #3498db; + --background-color: #f8f9fa; + --text-color: #2c3e50; + --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); +} + +/* Header & Navigation */ +header { + background: white; + box-shadow: var(--shadow); + position: fixed; + width: 100%; + top: 0; + z-index: 1000; +} + +nav { + max-width: 1200px; + margin: 0 auto; + padding: 1rem; + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary-color); +} + +.nav-links { + display: flex; + gap: 2rem; + align-items: center; +} + +.nav-links a { + text-decoration: none; + color: var(--text-color); + transition: color 0.3s ease; +} + +.nav-links a:hover { + color: var(--accent-color); +} + +/* Hero Section */ +.hero { + height: 80vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + background: linear-gradient(135deg, #2c3e50, #3498db); + color: white; + padding: 2rem; + margin-top: 60px; +} + +.hero h1 { + font-size: 3rem; + margin-bottom: 1rem; + line-height: 1.2; +} + +/* Storage Units */ +.storage-units { + padding: 4rem 2rem; + background: var(--background-color); +} + +.unit-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; + max-width: 1200px; + margin: 2rem auto; +} + +.unit-card { + background: white; + border-radius: 10px; + padding: 2rem; + text-align: center; + transition: transform 0.3s ease; + box-shadow: var(--shadow); +} + +.unit-card:hover { + transform: translateY(-5px); +} + +.unit-image { + height: 200px; + background: #eee; + margin: 1rem 0; + border-radius: 5px; +} + +/* Features Section */ +.features { + padding: 4rem 2rem; + background: white; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + max-width: 1200px; + margin: 2rem auto; +} + +.feature { + text-align: center; + padding: 2rem; +} + +.feature-icon { + font-size: 2.5rem; + margin-bottom: 1rem; +} + +/* Buttons */ +.cta-button, .select-unit, .book-now, .submit-booking { + background: var(--accent-color); + color: white; + border: none; + padding: 0.8rem 1.5rem; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +.cta-button:hover, .select-unit:hover, .book-now:hover, .submit-booking:hover { + background: #2980b9; +} + +/* Modal */ +.modal { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + z-index: 1001; +} + +.modal-content { + background: white; + max-width: 500px; + margin: 2rem auto; + padding: 2rem; + border-radius: 10px; + position: relative; +} + +.close-modal { + position: absolute; + right: 1rem; + top: 1rem; + font-size: 1.5rem; + cursor: pointer; +} + +/* Form Styles */ +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.5rem; +} + +input { + width: 100%; + padding: 0.5rem; + border: 1px solid #ddd; + border-radius: 4px; +} + +/* Footer */ +footer { + background: var(--primary-color); + color: white; + padding: 2rem; +} + +.footer-content { + max-width: 1200px; + margin: 0 auto; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 2rem; +} + +.footer-section a { + display: block; + color: white; + text-decoration: none; + margin-bottom: 0.5rem; +} + +/* Responsive Design */ +@media (max-width: 768px) { + .nav-links { + display: none; + } + + .hero h1 { + font-size: 2rem; + } + + .unit-grid, .features-grid { + grid-template-columns: 1fr; + } +}