commit b928039e4ad1bf1407148772a9b803376c99da26
Author: root <root@hub.scroll.pub> Date: 2024-12-27 23:11:03 +0000 Subject: Initial commit diff --git a/body.html b/body.html new file mode 100644 index 0000000..499560f --- /dev/null +++ b/body.html @@ -0,0 +1,102 @@ +<header> + <nav> + <div class="logo">QuitPal</div> + <button class="mobile-menu" aria-label="Toggle menu">☰</button> + <ul class="nav-links"> + <li><a href="#features">Features</a></li> + <li><a href="#how-it-works">How It Works</a></li> + <li><a href="#pricing">Pricing</a></li> + <li><button class="login-btn">Login</button></li> + </ul> + </nav> +</header> + +<main> + <section class="hero"> + <div class="hero-content"> + <h1>Your AI Partner in Quitting Smoking</h1> + <p>Personalized support, custom plans, and 24/7 guidance to help you break free from smoking.</p> + <button class="cta-button">Start Your Journey</button> + </div> + </section> + + <section id="features" class="features"> + <h2>Why Choose QuitPal?</h2> + <div class="feature-grid"> + <div class="feature-card"> + <div class="feature-icon">🤖</div> + <h3>AI-Powered Support</h3> + <p>24/7 conversation partner understanding your unique challenges</p> + </div> + <div class="feature-card"> + <div class="feature-icon">📋</div> + <h3>Custom Plans</h3> + <p>Tailored strategies based on your habits and lifestyle</p> + </div> + <div class="feature-card"> + <div class="feature-icon">📊</div> + <h3>Progress Tracking</h3> + <p>Visual insights into your journey and achievements</p> + </div> + <div class="feature-card"> + <div class="feature-icon">🎯</div> + <h3>Goal Setting</h3> + <p>Realistic milestones to keep you motivated</p> + </div> + </div> + </section> + + <section id="chat-demo" class="chat-demo"> + <h2>Experience QuitPal</h2> + <div class="chat-container"> + <div class="chat-messages" id="chat-messages"> + <div class="message ai"> + <p>Hi! I'm QuitPal. Ready to start your smoke-free journey?</p> + </div> + </div> + <div class="chat-input"> + <input type="text" id="user-input" placeholder="Type your message..."> + <button id="send-message">Send</button> + </div> + </div> + </section> + + <section id="pricing" class="pricing"> + <h2>Simple Pricing</h2> + <div class="price-card"> + <h3>Monthly Subscription</h3> + <div class="price">$9.99</div> + <ul> + <li>24/7 AI Support</li> + <li>Custom Quit Plan</li> + <li>Progress Tracking</li> + <li>Community Access</li> + </ul> + <button class="subscribe-btn">Get Started</button> + </div> + </section> +</main> + +<footer> + <div class="footer-content"> + <div class="footer-links"> + <a href="#about">About</a> + <a href="#privacy">Privacy</a> + <a href="#terms">Terms</a> + <a href="#contact">Contact</a> + </div> + <p>QuitPal - Your journey to a smoke-free life starts here</p> + </div> +</footer> + +<div class="login-modal" id="login-modal"> + <div class="modal-content"> + <span class="close-modal">&times;</span> + <h2>Welcome Back</h2> + <form id="login-form"> + <input type="email" placeholder="Email" required> + <input type="password" placeholder="Password" required> + <button type="submit">Login</button> + </form> + </div> +</div> diff --git a/index.scroll b/index.scroll new file mode 100644 index 0000000..5dc4354 --- /dev/null +++ b/index.scroll @@ -0,0 +1,11 @@ +buildHtml +baseUrl https://quitpal.scroll.pub +metaTags + title QuitPal - Your AI Companion for Quitting Smoking + description Personal AI assistant helping you quit smoking with custom plans, 24/7 support, and interactive guidance + keywords quit smoking, stop smoking, AI assistant, smoking cessation, quit tobacco +editButton /edit.html +title QuitPal - Your AI Companion for Quitting Smoking +style.css +body.html +script.js diff --git a/prompt.json b/prompt.json new file mode 100644 index 0000000..d3e6f9c --- /dev/null +++ b/prompt.json @@ -0,0 +1,20 @@ +{ + "id": "msg_01Lsjcwjg5wxW85hZ4q9Kf2y", + "type": "message", + "role": "assistant", + "model": "claude-3-5-sonnet-20241022", + "content": [ + { + "type": "text", + "text": "Here's a complete AI smoking cessation companion website:\n\n---domain---\nquitpal.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://quitpal.scroll.pub\nmetaTags\n title QuitPal - Your AI Companion for Quitting Smoking\n description Personal AI assistant helping you quit smoking with custom plans, 24/7 support, and interactive guidance\n keywords quit smoking, stop smoking, AI assistant, smoking cessation, quit tobacco\neditButton /edit.html\ntitle QuitPal - Your AI Companion for Quitting Smoking\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n<header>\n <nav>\n <div class=\"logo\">QuitPal</div>\n <button class=\"mobile-menu\" aria-label=\"Toggle menu\">☰</button>\n <ul class=\"nav-links\">\n <li><a href=\"#features\">Features</a></li>\n <li><a href=\"#how-it-works\">How It Works</a></li>\n <li><a href=\"#pricing\">Pricing</a></li>\n <li><button class=\"login-btn\">Login</button></li>\n </ul>\n </nav>\n</header>\n\n<main>\n <section class=\"hero\">\n <div class=\"hero-content\">\n <h1>Your AI Partner in Quitting Smoking</h1>\n <p>Personalized support, custom plans, and 24/7 guidance to help you break free from smoking.</p>\n <button class=\"cta-button\">Start Your Journey</button>\n </div>\n </section>\n\n <section id=\"features\" class=\"features\">\n <h2>Why Choose QuitPal?</h2>\n <div class=\"feature-grid\">\n <div class=\"feature-card\">\n <div class=\"feature-icon\">🤖</div>\n <h3>AI-Powered Support</h3>\n <p>24/7 conversation partner understanding your unique challenges</p>\n </div>\n <div class=\"feature-card\">\n <div class=\"feature-icon\">📋</div>\n <h3>Custom Plans</h3>\n <p>Tailored strategies based on your habits and lifestyle</p>\n </div>\n <div class=\"feature-card\">\n <div class=\"feature-icon\">📊</div>\n <h3>Progress Tracking</h3>\n <p>Visual insights into your journey and achievements</p>\n </div>\n <div class=\"feature-card\">\n <div class=\"feature-icon\">🎯</div>\n <h3>Goal Setting</h3>\n <p>Realistic milestones to keep you motivated</p>\n </div>\n </div>\n </section>\n\n <section id=\"chat-demo\" class=\"chat-demo\">\n <h2>Experience QuitPal</h2>\n <div class=\"chat-container\">\n <div class=\"chat-messages\" id=\"chat-messages\">\n <div class=\"message ai\">\n <p>Hi! I'm QuitPal. Ready to start your smoke-free journey?</p>\n </div>\n </div>\n <div class=\"chat-input\">\n <input type=\"text\" id=\"user-input\" placeholder=\"Type your message...\">\n <button id=\"send-message\">Send</button>\n </div>\n </div>\n </section>\n\n <section id=\"pricing\" class=\"pricing\">\n <h2>Simple Pricing</h2>\n <div class=\"price-card\">\n <h3>Monthly Subscription</h3>\n <div class=\"price\">$9.99</div>\n <ul>\n <li>24/7 AI Support</li>\n <li>Custom Quit Plan</li>\n <li>Progress Tracking</li>\n <li>Community Access</li>\n </ul>\n <button class=\"subscribe-btn\">Get Started</button>\n </div>\n </section>\n</main>\n\n<footer>\n <div class=\"footer-content\">\n <div class=\"footer-links\">\n <a href=\"#about\">About</a>\n <a href=\"#privacy\">Privacy</a>\n <a href=\"#terms\">Terms</a>\n <a href=\"#contact\">Contact</a>\n </div>\n <p>QuitPal - Your journey to a smoke-free life starts here</p>\n </div>\n</footer>\n\n<div class=\"login-modal\" id=\"login-modal\">\n <div class=\"modal-content\">\n <span class=\"close-modal\">&times;</span>\n <h2>Welcome Back</h2>\n <form id=\"login-form\">\n <input type=\"email\" placeholder=\"Email\" required>\n <input type=\"password\" placeholder=\"Password\" required>\n <button type=\"submit\">Login</button>\n </form>\n </div>\n</div>\n\n---style.css---\n:root {\n --primary-color: #4CAF50;\n --secondary-color: #45a049;\n --text-color: #333;\n --bg-color: #f9f9f9;\n --card-bg: #ffffff;\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 background: var(--bg-color);\n}\n\n/* Header & Navigation */\nheader {\n background: var(--card-bg);\n box-shadow: var(--shadow);\n position: fixed;\n width: 100%;\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.8rem;\n font-weight: bold;\n color: var(--primary-color);\n}\n\n.nav-links {\n display: flex;\n list-style: none;\n gap: 2rem;\n align-items: center;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text-color);\n font-weight: 500;\n transition: color 0.3s;\n}\n\n.nav-links a:hover {\n color: var(--primary-color);\n}\n\n.mobile-menu {\n display: none;\n}\n\n/* Hero Section */\n.hero {\n padding: 8rem 2rem 4rem;\n text-align: center;\n background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);\n color: white;\n}\n\n.hero-content {\n max-width: 800px;\n margin: 0 auto;\n}\n\n.hero h1 {\n font-size: 3rem;\n margin-bottom: 1.5rem;\n animation: fadeInUp 0.8s ease;\n}\n\n.hero p {\n font-size: 1.2rem;\n margin-bottom: 2rem;\n animation: fadeInUp 1s ease;\n}\n\n/* Features Section */\n.features {\n padding: 4rem 2rem;\n background: var(--bg-color);\n}\n\n.feature-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-card {\n background: var(--card-bg);\n padding: 2rem;\n border-radius: 10px;\n box-shadow: var(--shadow);\n transition: transform 0.3s;\n text-align: center;\n}\n\n.feature-card:hover {\n transform: translateY(-5px);\n}\n\n.feature-icon {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n}\n\n/* Chat Demo */\n.chat-demo {\n padding: 4rem 2rem;\n background: var(--bg-color);\n}\n\n.chat-container {\n max-width: 600px;\n margin: 2rem auto;\n background: var(--card-bg);\n border-radius: 10px;\n box-shadow: var(--shadow);\n overflow: hidden;\n}\n\n.chat-messages {\n height: 300px;\n overflow-y: auto;\n padding: 1rem;\n}\n\n.message {\n margin-bottom: 1rem;\n padding: 0.8rem;\n border-radius: 10px;\n max-width: 80%;\n}\n\n.message.ai {\n background: #e9ecef;\n margin-right: auto;\n}\n\n.message.user {\n background: var(--primary-color);\n color: white;\n margin-left: auto;\n}\n\n.chat-input {\n display: flex;\n padding: 1rem;\n background: #f8f9fa;\n}\n\n.chat-input input {\n flex: 1;\n padding: 0.5rem;\n border: 1px solid #ddd;\n border-radius: 5px;\n margin-right: 0.5rem;\n}\n\n/* Pricing Section */\n.pricing {\n padding: 4rem 2rem;\n text-align: center;\n}\n\n.price-card {\n max-width: 400px;\n margin: 2rem auto;\n background: var(--card-bg);\n padding: 2rem;\n border-radius: 10px;\n box-shadow: var(--shadow);\n}\n\n.price {\n font-size: 2.5rem;\n color: var(--primary-color);\n margin: 1rem 0;\n}\n\n/* Buttons */\n.cta-button, .subscribe-btn {\n background: var(--primary-color);\n color: white;\n border: none;\n padding: 1rem 2rem;\n border-radius: 5px;\n font-size: 1.1rem;\n cursor: pointer;\n transition: background-color 0.3s;\n}\n\n.cta-button:hover, .subscribe-btn:hover {\n background: var(--secondary-color);\n}\n\n/* Footer */\nfooter {\n background: var(--card-bg);\n padding: 2rem;\n text-align: center;\n}\n\n.footer-links {\n display: flex;\n justify-content: center;\n gap: 2rem;\n margin-bottom: 1rem;\n}\n\n.footer-links a {\n color: var(--text-color);\n text-decoration: none;\n}\n\n/* Modal */\n.login-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: var(--card-bg);\n padding: 2rem;\n border-radius: 10px;\n max-width: 400px;\n margin: 4rem auto;\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/* Animations */\n@keyframes fadeInUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .mobile-menu {\n display: block;\n background: none;\n border: none;\n font-size: 1.5rem;\n cursor: pointer;\n }\n\n .nav-links {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: var(--card-bg);\n flex-direction: column;\n padding: 1rem;\n }\n\n .nav-links.active {\n display: flex;\n }\n\n .hero h1 {\n font-size: 2rem;\n }\n\n .feature-grid {\n grid-template-columns: 1fr;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n // Mobile menu toggle\n const mobileMenu = document.querySelector('.mobile-menu');\n const navLinks = document.querySelector('.nav-links');\n \n mobileMenu.addEventListener('click', () => {\n navLinks.classList.toggle('active');\n });\n\n // Login modal\n const loginBtn = document.querySelector('.login-btn');\n const loginModal = document.getElementById('login-modal');\n const closeModal = document.querySelector('.close-modal');\n \n loginBtn.addEventListener('click', () => {\n loginModal.style.display = 'block';\n });\n \n closeModal.addEventListener('click', () => {\n loginModal.style.display = 'none';\n });\n \n window.addEventListener('click', (e) => {\n if (e.target === loginModal) {\n loginModal.style.display = 'none';\n }\n });\n\n // Chat functionality\n const chatMessages = document.getElementById('chat-messages');\n const userInput = document.getElementById('user-input');\n const sendButton = document.getElementById('send-message');\n\n const addMessage = (message, isUser = false) => {\n const messageDiv = document.createElement('div');\n messageDiv.className = `message ${isUser ? 'user' : 'ai'}`;\n messageDiv.innerHTML = `<p>${message}</p>`;\n chatMessages.appendChild(messageDiv);\n chatMessages.scrollTop = chatMessages.scrollHeight;\n };\n\n const aiResponses = {\n 'hello': 'Hi there! How can I help you quit smoking today?',\n 'help': 'I can help you create a personalized quit plan. Would you like to start by telling me about your smoking habits?',\n 'why': 'Quitting smoking has numerous benefits: better health, more energy, savings, and improved quality of life. What motivates you to quit?',\n 'craving': 'Try taking deep breaths, drinking water, or going for a short walk. Remember, cravings typically last only 3-5 minutes.',\n };\n\n const getAIResponse = (input) => {\n const lowercaseInput = input.toLowerCase();\n for (const [key, response] of Object.entries(aiResponses)) {\n if (lowercaseInput.includes(key)) {\n return response;\n }\n }\n return \"I'm here to support your journey to quit smoking. Could you be more specific about what you'd like to know?\";\n };\n\n const handleSendMessage = () => {\n const message = userInput.value.trim();\n if (message) {\n addMessage(message, true);\n userInput.value = '';\n \n // Simulate AI response delay\n setTimeout(() => {\n const aiResponse = getAIResponse(message);\n addMessage(aiResponse);\n }, 1000);\n }\n };\n\n sendButton.addEventListener('click', handleSendMessage);\n userInput.addEventListener('keypress', (e) => {\n if (e.key === 'Enter') {\n handleSendMessage();\n }\n });\n\n // Smooth scrolling for navigation links" + } + ], + "stop_reason": "max_tokens", + "stop_sequence": null, + "usage": { + "input_tokens": 306, + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "output_tokens": 4000 + } +} \ No newline at end of file diff --git a/readme.scroll b/readme.scroll new file mode 100644 index 0000000..b395049 --- /dev/null +++ b/readme.scroll @@ -0,0 +1,2 @@ +# quitpal.scroll.pub +Website generated by Claude from prompt: I want a AI companion to help a subscribed user to stop smoking. It should be interactive through chat, and it should make a custom plan to achieve the goal. Be creative \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..81d4a35 --- /dev/null +++ b/style.css @@ -0,0 +1,308 @@ +:root { + --primary-color: #4CAF50; + --secondary-color: #45a049; + --text-color: #333; + --bg-color: #f9f9f9; + --card-bg: #ffffff; + --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); + background: var(--bg-color); +} + +/* Header & Navigation */ +header { + background: var(--card-bg); + box-shadow: var(--shadow); + position: fixed; + width: 100%; + 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.8rem; + font-weight: bold; + color: var(--primary-color); +} + +.nav-links { + display: flex; + list-style: none; + gap: 2rem; + align-items: center; +} + +.nav-links a { + text-decoration: none; + color: var(--text-color); + font-weight: 500; + transition: color 0.3s; +} + +.nav-links a:hover { + color: var(--primary-color); +} + +.mobile-menu { + display: none; +} + +/* Hero Section */ +.hero { + padding: 8rem 2rem 4rem; + text-align: center; + background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%); + color: white; +} + +.hero-content { + max-width: 800px; + margin: 0 auto; +} + +.hero h1 { + font-size: 3rem; + margin-bottom: 1.5rem; + animation: fadeInUp 0.8s ease; +} + +.hero p { + font-size: 1.2rem; + margin-bottom: 2rem; + animation: fadeInUp 1s ease; +} + +/* Features Section */ +.features { + padding: 4rem 2rem; + background: var(--bg-color); +} + +.feature-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + max-width: 1200px; + margin: 2rem auto; +} + +.feature-card { + background: var(--card-bg); + padding: 2rem; + border-radius: 10px; + box-shadow: var(--shadow); + transition: transform 0.3s; + text-align: center; +} + +.feature-card:hover { + transform: translateY(-5px); +} + +.feature-icon { + font-size: 2.5rem; + margin-bottom: 1rem; +} + +/* Chat Demo */ +.chat-demo { + padding: 4rem 2rem; + background: var(--bg-color); +} + +.chat-container { + max-width: 600px; + margin: 2rem auto; + background: var(--card-bg); + border-radius: 10px; + box-shadow: var(--shadow); + overflow: hidden; +} + +.chat-messages { + height: 300px; + overflow-y: auto; + padding: 1rem; +} + +.message { + margin-bottom: 1rem; + padding: 0.8rem; + border-radius: 10px; + max-width: 80%; +} + +.message.ai { + background: #e9ecef; + margin-right: auto; +} + +.message.user { + background: var(--primary-color); + color: white; + margin-left: auto; +} + +.chat-input { + display: flex; + padding: 1rem; + background: #f8f9fa; +} + +.chat-input input { + flex: 1; + padding: 0.5rem; + border: 1px solid #ddd; + border-radius: 5px; + margin-right: 0.5rem; +} + +/* Pricing Section */ +.pricing { + padding: 4rem 2rem; + text-align: center; +} + +.price-card { + max-width: 400px; + margin: 2rem auto; + background: var(--card-bg); + padding: 2rem; + border-radius: 10px; + box-shadow: var(--shadow); +} + +.price { + font-size: 2.5rem; + color: var(--primary-color); + margin: 1rem 0; +} + +/* Buttons */ +.cta-button, .subscribe-btn { + background: var(--primary-color); + color: white; + border: none; + padding: 1rem 2rem; + border-radius: 5px; + font-size: 1.1rem; + cursor: pointer; + transition: background-color 0.3s; +} + +.cta-button:hover, .subscribe-btn:hover { + background: var(--secondary-color); +} + +/* Footer */ +footer { + background: var(--card-bg); + padding: 2rem; + text-align: center; +} + +.footer-links { + display: flex; + justify-content: center; + gap: 2rem; + margin-bottom: 1rem; +} + +.footer-links a { + color: var(--text-color); + text-decoration: none; +} + +/* Modal */ +.login-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: var(--card-bg); + padding: 2rem; + border-radius: 10px; + max-width: 400px; + margin: 4rem auto; + position: relative; +} + +.close-modal { + position: absolute; + right: 1rem; + top: 1rem; + font-size: 1.5rem; + cursor: pointer; +} + +/* Animations */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Responsive Design */ +@media (max-width: 768px) { + .mobile-menu { + display: block; + background: none; + border: none; + font-size: 1.5rem; + cursor: pointer; + } + + .nav-links { + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + background: var(--card-bg); + flex-direction: column; + padding: 1rem; + } + + .nav-links.active { + display: flex; + } + + .hero h1 { + font-size: 2rem; + } + + .feature-grid { + grid-template-columns: 1fr; + } +}