commit 84f49ea719b10ae005d6504db521fdd5f96c4c40
Author: root <root@hub.scroll.pub> Date: 2024-12-29 15:26:06 +0000 Subject: Initial commit diff --git a/body.html b/body.html new file mode 100644 index 0000000..b133f1c --- /dev/null +++ b/body.html @@ -0,0 +1,50 @@ +<header> + <h1>Should You Break Up?</h1> + <p class="tagline">A rational approach to an emotional decision</p> +</header> + +<main> + <section class="decision-tool"> + <div class="question-container"> + <h2>Let's evaluate your situation</h2> + <div id="questions"> + <div class="question active"> + <h3>How often do dramatic situations occur?</h3> + <div class="slider-container"> + <input type="range" min="1" max="10" value="5" class="slider" id="drama-slider"> + <div class="slider-labels"> + <span>Rarely</span> + <span>Daily</span> + </div> + </div> + </div> + <div class="question"> + <h3>Do you feel emotionally drained?</h3> + <div class="options"> + <button class="option-btn" data-value="yes">Yes</button> + <button class="option-btn" data-value="sometimes">Sometimes</button> + <button class="option-btn" data-value="no">No</button> + </div> + </div> + <div class="question"> + <h3>Is there effective communication?</h3> + <div class="options"> + <button class="option-btn" data-value="yes">Yes</button> + <button class="option-btn" data-value="sometimes">Sometimes</button> + <button class="option-btn" data-value="no">No</button> + </div> + </div> + </div> + <button id="next-btn" class="primary-btn">Next Question</button> + </div> + <div id="result" class="hidden"> + <h2>Your Result</h2> + <p id="result-text"></p> + <button id="restart-btn" class="secondary-btn">Start Over</button> + </div> + </section> +</main> + +<footer> + <p>Remember: This tool is meant for reflection. Important life decisions should be made after careful consideration and possibly professional consultation.</p> +</footer> diff --git a/index.scroll b/index.scroll new file mode 100644 index 0000000..a724d57 --- /dev/null +++ b/index.scroll @@ -0,0 +1,10 @@ +buildHtml +baseUrl https://breakupmate.scroll.pub +metaTags +editButton /edit.html +title Should You Break Up? | Relationship Decision Helper +description A thoughtful tool to help you evaluate your relationship dynamics and make better decisions about your romantic future. +keywords relationships, breakup decision, relationship advice, dating help +style.css +body.html +script.js diff --git a/prompt.json b/prompt.json new file mode 100644 index 0000000..827df9e --- /dev/null +++ b/prompt.json @@ -0,0 +1,20 @@ +{ + "id": "msg_01PzGbMh7woFBoVYYyPAfMZk", + "type": "message", + "role": "assistant", + "model": "claude-3-5-sonnet-20241022", + "content": [ + { + "type": "text", + "text": "Let me help create a thoughtful decision-making tool website with a touch of humor.\n\n---domain---\nbreakupmate.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://breakupmate.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Should You Break Up? | Relationship Decision Helper\ndescription A thoughtful tool to help you evaluate your relationship dynamics and make better decisions about your romantic future.\nkeywords relationships, breakup decision, relationship advice, dating help\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n<header>\n <h1>Should You Break Up?</h1>\n <p class=\"tagline\">A rational approach to an emotional decision</p>\n</header>\n\n<main>\n <section class=\"decision-tool\">\n <div class=\"question-container\">\n <h2>Let's evaluate your situation</h2>\n <div id=\"questions\">\n <div class=\"question active\">\n <h3>How often do dramatic situations occur?</h3>\n <div class=\"slider-container\">\n <input type=\"range\" min=\"1\" max=\"10\" value=\"5\" class=\"slider\" id=\"drama-slider\">\n <div class=\"slider-labels\">\n <span>Rarely</span>\n <span>Daily</span>\n </div>\n </div>\n </div>\n <div class=\"question\">\n <h3>Do you feel emotionally drained?</h3>\n <div class=\"options\">\n <button class=\"option-btn\" data-value=\"yes\">Yes</button>\n <button class=\"option-btn\" data-value=\"sometimes\">Sometimes</button>\n <button class=\"option-btn\" data-value=\"no\">No</button>\n </div>\n </div>\n <div class=\"question\">\n <h3>Is there effective communication?</h3>\n <div class=\"options\">\n <button class=\"option-btn\" data-value=\"yes\">Yes</button>\n <button class=\"option-btn\" data-value=\"sometimes\">Sometimes</button>\n <button class=\"option-btn\" data-value=\"no\">No</button>\n </div>\n </div>\n </div>\n <button id=\"next-btn\" class=\"primary-btn\">Next Question</button>\n </div>\n <div id=\"result\" class=\"hidden\">\n <h2>Your Result</h2>\n <p id=\"result-text\"></p>\n <button id=\"restart-btn\" class=\"secondary-btn\">Start Over</button>\n </div>\n </section>\n</main>\n\n<footer>\n <p>Remember: This tool is meant for reflection. Important life decisions should be made after careful consideration and possibly professional consultation.</p>\n</footer>\n\n---style.css---\n:root {\n --primary-color: #ff6b6b;\n --secondary-color: #4ecdc4;\n --background-color: #f7f7f7;\n --text-color: #2d3436;\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 background-color: var(--background-color);\n color: var(--text-color);\n line-height: 1.6;\n}\n\nheader {\n text-align: center;\n padding: 3rem 1rem;\n background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\n color: white;\n}\n\nh1 {\n font-size: 2.5rem;\n margin-bottom: 0.5rem;\n animation: fadeIn 1s ease-out;\n}\n\n.tagline {\n font-size: 1.2rem;\n opacity: 0.9;\n}\n\nmain {\n max-width: 800px;\n margin: 2rem auto;\n padding: 0 1rem;\n}\n\n.decision-tool {\n background: white;\n padding: 2rem;\n border-radius: 1rem;\n box-shadow: var(--shadow);\n}\n\n.question {\n display: none;\n animation: slideIn 0.5s ease-out;\n}\n\n.question.active {\n display: block;\n}\n\n.slider-container {\n margin: 2rem 0;\n}\n\n.slider {\n width: 100%;\n height: 8px;\n -webkit-appearance: none;\n background: linear-gradient(90deg, var(--secondary-color), var(--primary-color));\n border-radius: 4px;\n outline: none;\n}\n\n.slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n width: 20px;\n height: 20px;\n background: white;\n border: 2px solid var(--primary-color);\n border-radius: 50%;\n cursor: pointer;\n transition: transform 0.2s;\n}\n\n.slider::-webkit-slider-thumb:hover {\n transform: scale(1.2);\n}\n\n.slider-labels {\n display: flex;\n justify-content: space-between;\n margin-top: 0.5rem;\n color: #666;\n}\n\n.options {\n display: flex;\n gap: 1rem;\n margin: 2rem 0;\n}\n\n.option-btn {\n flex: 1;\n padding: 1rem;\n border: 2px solid var(--secondary-color);\n border-radius: 0.5rem;\n background: transparent;\n cursor: pointer;\n transition: all 0.3s;\n}\n\n.option-btn:hover {\n background: var(--secondary-color);\n color: white;\n}\n\n.primary-btn, .secondary-btn {\n display: block;\n width: 100%;\n padding: 1rem;\n border: none;\n border-radius: 0.5rem;\n font-size: 1.1rem;\n cursor: pointer;\n transition: transform 0.2s;\n}\n\n.primary-btn {\n background: var(--primary-color);\n color: white;\n}\n\n.secondary-btn {\n background: var(--secondary-color);\n color: white;\n margin-top: 1rem;\n}\n\n.primary-btn:hover, .secondary-btn:hover {\n transform: translateY(-2px);\n}\n\n.hidden {\n display: none;\n}\n\nfooter {\n text-align: center;\n padding: 2rem;\n background: white;\n margin-top: 3rem;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes slideIn {\n from { transform: translateX(20px); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n}\n\n@media (max-width: 600px) {\n header {\n padding: 2rem 1rem;\n }\n \n h1 {\n font-size: 2rem;\n }\n \n .options {\n flex-direction: column;\n }\n \n .decision-tool {\n padding: 1rem;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n let currentQuestion = 0;\n const questions = document.querySelectorAll('.question');\n const nextBtn = document.getElementById('next-btn');\n const resultDiv = document.getElementById('result');\n const resultText = document.getElementById('result-text');\n const restartBtn = document.getElementById('restart-btn');\n let answers = [];\n\n function showQuestion(index) {\n questions.forEach(q => q.classList.remove('active'));\n questions[index].classList.add('active');\n }\n\n function calculateResult() {\n const dramaLevel = parseInt(document.getElementById('drama-slider').value);\n const emotionalDrain = answers[1];\n const communication = answers[2];\n \n let recommendation = '';\n \n if (dramaLevel >= 8 && emotionalDrain === 'yes' && communication === 'no') {\n recommendation = \"Consider ending the relationship. The high drama level combined with emotional drain and poor communication suggests an unhealthy dynamic.\";\n } else if (dramaLevel >= 6 && emotionalDrain === 'sometimes' && communication === 'sometimes') {\n recommendation = \"Your relationship needs work. Consider couples counseling to improve communication and reduce drama.\";\n } else if (dramaLevel <= 5 && communication === 'yes') {\n recommendation = \"Your relationship has potential. While there are challenges, good communication is a strong foundation for improvement.\";\n } else {\n recommendation = \"Take time to reflect on what you want from this relationship. Consider discussing your concerns with your partner or a counselor.\";\n }\n\n return recommendation;\n }\n\n nextBtn.addEventListener('click', () => {\n if (currentQuestion === 0) {\n answers[0] = document.getElementById('drama-slider').value;\n } else {\n const selectedOption = questions[currentQuestion].querySelector('.option-btn.selected');\n if (!selectedOption) return;\n answers[currentQuestion] = selectedOption.dataset.value;\n }\n\n if (currentQuestion < questions.length - 1) {\n currentQuestion++;\n showQuestion(currentQuestion);\n } else {\n const result = calculateResult();\n resultText.textContent = result;\n document.querySelector('.question-container').style.display = 'none';\n resultDiv.classList.remove('hidden');\n }\n });\n\n document.querySelectorAll('.option-btn').forEach(btn => {\n btn.addEventListener('click', (e) => {\n const parent = e.target.closest('.question');\n parent.querySelectorAll('.option-btn').forEach(b => b.classList.remove('selected'));\n e.target.classList.add('selected');\n });\n });\n\n restartBtn.addEventListener('click', () => {\n currentQuestion = 0;\n answers = [];\n document.getElementById('drama-slider').value = 5;\n document.querySelectorAll('.option-btn').forEach(btn => btn.classList.remove('selected'));\n document.querySelector('.question-container').style.display = 'block';\n resultDiv.classList.add('hidden');\n showQuestion(0);\n });\n});\n\n---end---\n\nThis website provides a thoughtful, interactive tool to help users evaluate their relationship situation. It features:\n\n1. A clean, modern design with smooth animations\n2. A multi-step questionnaire with different input types\n3. Responsive design that works well on all devices\n4. Accessible controls and semantic HTML\n5. Thoughtful color scheme and typography\n6. Interactive elements with hover effects\n7. Smooth transitions between questions\n8. A nuanced results system\n9. Professional look and feel while handling a sensitive topic\n\nThe domain name \"breakupmate\" is memorable, relevant, and neutral in tone." + } + ], + "stop_reason": "end_turn", + "stop_sequence": null, + "usage": { + "input_tokens": 289, + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "output_tokens": 2766 + } +} \ No newline at end of file diff --git a/readme.scroll b/readme.scroll new file mode 100644 index 0000000..ae88428 --- /dev/null +++ b/readme.scroll @@ -0,0 +1,2 @@ +# breakupmate.scroll.pub +Website generated by Claude from prompt: I want a website to decide whether to break up with a pretty but hysterical girlfriend. \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..6e962ed --- /dev/null +++ b/script.js @@ -0,0 +1,72 @@ +document.addEventListener('DOMContentLoaded', () => { + let currentQuestion = 0; + const questions = document.querySelectorAll('.question'); + const nextBtn = document.getElementById('next-btn'); + const resultDiv = document.getElementById('result'); + const resultText = document.getElementById('result-text'); + const restartBtn = document.getElementById('restart-btn'); + let answers = []; + + function showQuestion(index) { + questions.forEach(q => q.classList.remove('active')); + questions[index].classList.add('active'); + } + + function calculateResult() { + const dramaLevel = parseInt(document.getElementById('drama-slider').value); + const emotionalDrain = answers[1]; + const communication = answers[2]; + + let recommendation = ''; + + if (dramaLevel >= 8 && emotionalDrain === 'yes' && communication === 'no') { + recommendation = "Consider ending the relationship. The high drama level combined with emotional drain and poor communication suggests an unhealthy dynamic."; + } else if (dramaLevel >= 6 && emotionalDrain === 'sometimes' && communication === 'sometimes') { + recommendation = "Your relationship needs work. Consider couples counseling to improve communication and reduce drama."; + } else if (dramaLevel <= 5 && communication === 'yes') { + recommendation = "Your relationship has potential. While there are challenges, good communication is a strong foundation for improvement."; + } else { + recommendation = "Take time to reflect on what you want from this relationship. Consider discussing your concerns with your partner or a counselor."; + } + + return recommendation; + } + + nextBtn.addEventListener('click', () => { + if (currentQuestion === 0) { + answers[0] = document.getElementById('drama-slider').value; + } else { + const selectedOption = questions[currentQuestion].querySelector('.option-btn.selected'); + if (!selectedOption) return; + answers[currentQuestion] = selectedOption.dataset.value; + } + + if (currentQuestion < questions.length - 1) { + currentQuestion++; + showQuestion(currentQuestion); + } else { + const result = calculateResult(); + resultText.textContent = result; + document.querySelector('.question-container').style.display = 'none'; + resultDiv.classList.remove('hidden'); + } + }); + + document.querySelectorAll('.option-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + const parent = e.target.closest('.question'); + parent.querySelectorAll('.option-btn').forEach(b => b.classList.remove('selected')); + e.target.classList.add('selected'); + }); + }); + + restartBtn.addEventListener('click', () => { + currentQuestion = 0; + answers = []; + document.getElementById('drama-slider').value = 5; + document.querySelectorAll('.option-btn').forEach(btn => btn.classList.remove('selected')); + document.querySelector('.question-container').style.display = 'block'; + resultDiv.classList.add('hidden'); + showQuestion(0); + }); +}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..1a1ff16 --- /dev/null +++ b/style.css @@ -0,0 +1,181 @@ +:root { + --primary-color: #ff6b6b; + --secondary-color: #4ecdc4; + --background-color: #f7f7f7; + --text-color: #2d3436; + --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; + background-color: var(--background-color); + color: var(--text-color); + line-height: 1.6; +} + +header { + text-align: center; + padding: 3rem 1rem; + background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); + color: white; +} + +h1 { + font-size: 2.5rem; + margin-bottom: 0.5rem; + animation: fadeIn 1s ease-out; +} + +.tagline { + font-size: 1.2rem; + opacity: 0.9; +} + +main { + max-width: 800px; + margin: 2rem auto; + padding: 0 1rem; +} + +.decision-tool { + background: white; + padding: 2rem; + border-radius: 1rem; + box-shadow: var(--shadow); +} + +.question { + display: none; + animation: slideIn 0.5s ease-out; +} + +.question.active { + display: block; +} + +.slider-container { + margin: 2rem 0; +} + +.slider { + width: 100%; + height: 8px; + -webkit-appearance: none; + background: linear-gradient(90deg, var(--secondary-color), var(--primary-color)); + border-radius: 4px; + outline: none; +} + +.slider::-webkit-slider-thumb { + -webkit-appearance: none; + width: 20px; + height: 20px; + background: white; + border: 2px solid var(--primary-color); + border-radius: 50%; + cursor: pointer; + transition: transform 0.2s; +} + +.slider::-webkit-slider-thumb:hover { + transform: scale(1.2); +} + +.slider-labels { + display: flex; + justify-content: space-between; + margin-top: 0.5rem; + color: #666; +} + +.options { + display: flex; + gap: 1rem; + margin: 2rem 0; +} + +.option-btn { + flex: 1; + padding: 1rem; + border: 2px solid var(--secondary-color); + border-radius: 0.5rem; + background: transparent; + cursor: pointer; + transition: all 0.3s; +} + +.option-btn:hover { + background: var(--secondary-color); + color: white; +} + +.primary-btn, .secondary-btn { + display: block; + width: 100%; + padding: 1rem; + border: none; + border-radius: 0.5rem; + font-size: 1.1rem; + cursor: pointer; + transition: transform 0.2s; +} + +.primary-btn { + background: var(--primary-color); + color: white; +} + +.secondary-btn { + background: var(--secondary-color); + color: white; + margin-top: 1rem; +} + +.primary-btn:hover, .secondary-btn:hover { + transform: translateY(-2px); +} + +.hidden { + display: none; +} + +footer { + text-align: center; + padding: 2rem; + background: white; + margin-top: 3rem; +} + +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes slideIn { + from { transform: translateX(20px); opacity: 0; } + to { transform: translateX(0); opacity: 1; } +} + +@media (max-width: 600px) { + header { + padding: 2rem 1rem; + } + + h1 { + font-size: 2rem; + } + + .options { + flex-direction: column; + } + + .decision-tool { + padding: 1rem; + } +}