commit d485c61ec0b9fdbe57096cb06c704150f79dedfc
Author: root <root@hub.scroll.pub> Date: 2024-12-28 06:45:07 +0000 Subject: Initial commit diff --git a/body.html b/body.html new file mode 100644 index 0000000..964da69 --- /dev/null +++ b/body.html @@ -0,0 +1,34 @@ +<header> + <h1>Hydrate</h1> + <p>Stay hydrated, stay healthy!</p> +</header> + +<main> + <section id="progress"> + <h2>Today's Progress</h2> + <div class="progress-bar"> + <div class="progress-fill" style="width: 0%;"></div> + </div> + <p><span id="current-intake">0</span> ml / <span id="daily-goal">2000</span> ml</p> + </section> + + <section id="add-water"> + <h2>Add Water Intake</h2> + <div class="input-group"> + <input type="number" id="water-input" placeholder="Enter ml" min="0" max="5000"> + <button id="add-button">Add</button> + </div> + </section> + + <section id="milestones"> + <h2>Milestones</h2> + <div class="milestone" id="milestone-500">500 ml 🎉</div> + <div class="milestone" id="milestone-1000">1000 ml 🎉🎉</div> + <div class="milestone" id="milestone-1500">1500 ml 🎉🎉🎉</div> + <div class="milestone" id="milestone-2000">2000 ml 🎉🎉🎉🎉</div> + </section> +</main> + +<footer> + <p>Made with 💧 by Hydrate</p> +</footer> \ No newline at end of file diff --git a/index.scroll b/index.scroll new file mode 100644 index 0000000..ef1a28a --- /dev/null +++ b/index.scroll @@ -0,0 +1,8 @@ +buildHtml +baseUrl https://hydrate.scroll.pub +metaTags +editButton /edit.html +title Hydrate - Daily Water Tracker +style.css +body.html +script.js \ No newline at end of file diff --git a/prompt.json b/prompt.json new file mode 100644 index 0000000..f5e9137 --- /dev/null +++ b/prompt.json @@ -0,0 +1,25 @@ +{ + "id": "fa39c912-e252-42a9-ad1f-7b0dd60908d4", + "object": "chat.completion", + "created": 1735368288, + "model": "deepseek-chat", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "---domain---\nhydrate.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://hydrate.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Hydrate - Daily Water Tracker\nstyle.css\nbody.html\nscript.js\n---body.html---\n<header>\n <h1>Hydrate</h1>\n <p>Stay hydrated, stay healthy!</p>\n</header>\n\n<main>\n <section id=\"progress\">\n <h2>Today's Progress</h2>\n <div class=\"progress-bar\">\n <div class=\"progress-fill\" style=\"width: 0%;\"></div>\n </div>\n <p><span id=\"current-intake\">0</span> ml / <span id=\"daily-goal\">2000</span> ml</p>\n </section>\n\n <section id=\"add-water\">\n <h2>Add Water Intake</h2>\n <div class=\"input-group\">\n <input type=\"number\" id=\"water-input\" placeholder=\"Enter ml\" min=\"0\" max=\"5000\">\n <button id=\"add-button\">Add</button>\n </div>\n </section>\n\n <section id=\"milestones\">\n <h2>Milestones</h2>\n <div class=\"milestone\" id=\"milestone-500\">500 ml 🎉</div>\n <div class=\"milestone\" id=\"milestone-1000\">1000 ml 🎉🎉</div>\n <div class=\"milestone\" id=\"milestone-1500\">1500 ml 🎉🎉🎉</div>\n <div class=\"milestone\" id=\"milestone-2000\">2000 ml 🎉🎉🎉🎉</div>\n </section>\n</main>\n\n<footer>\n <p>Made with 💧 by Hydrate</p>\n</footer>\n---style.css---\n:root {\n --primary-color: #1e90ff;\n --secondary-color: #87cefa;\n --background-color: #f0f8ff;\n --text-color: #333;\n --progress-fill-color: #00bfff;\n}\n\nbody {\n font-family: 'Arial', sans-serif;\n background-color: var(--background-color);\n color: var(--text-color);\n margin: 0;\n padding: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n min-height: 100vh;\n}\n\nheader {\n text-align: center;\n margin-bottom: 20px;\n}\n\nheader h1 {\n font-size: 2.5rem;\n color: var(--primary-color);\n}\n\nheader p {\n font-size: 1.2rem;\n color: var(--secondary-color);\n}\n\nmain {\n width: 100%;\n max-width: 400px;\n}\n\nsection {\n background-color: white;\n border-radius: 10px;\n padding: 20px;\n margin-bottom: 20px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\nh2 {\n font-size: 1.5rem;\n margin-bottom: 10px;\n color: var(--primary-color);\n}\n\n.progress-bar {\n width: 100%;\n height: 20px;\n background-color: #e0e0e0;\n border-radius: 10px;\n overflow: hidden;\n}\n\n.progress-fill {\n height: 100%;\n background-color: var(--progress-fill-color);\n transition: width 0.3s ease;\n}\n\n.input-group {\n display: flex;\n gap: 10px;\n}\n\ninput[type=\"number\"] {\n flex: 1;\n padding: 10px;\n border: 1px solid #ccc;\n border-radius: 5px;\n font-size: 1rem;\n}\n\nbutton {\n padding: 10px 20px;\n background-color: var(--primary-color);\n color: white;\n border: none;\n border-radius: 5px;\n cursor: pointer;\n font-size: 1rem;\n}\n\nbutton:hover {\n background-color: var(--secondary-color);\n}\n\n.milestone {\n padding: 10px;\n margin-bottom: 10px;\n background-color: #f0f8ff;\n border-radius: 5px;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.3s ease;\n}\n\n.milestone.achieved {\n opacity: 1;\n background-color: var(--secondary-color);\n color: white;\n}\n\nfooter {\n text-align: center;\n margin-top: auto;\n padding: 20px;\n color: var(--secondary-color);\n}\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n const waterInput = document.getElementById('water-input');\n const addButton = document.getElementById('add-button');\n const currentIntake = document.getElementById('current-intake');\n const progressFill = document.querySelector('.progress-fill');\n const dailyGoal = 2000;\n let totalIntake = 0;\n\n addButton.addEventListener('click', () => {\n const amount = parseInt(waterInput.value, 10);\n if (!isNaN(amount) && amount > 0) {\n totalIntake += amount;\n updateProgress();\n checkMilestones();\n waterInput.value = '';\n }\n });\n\n function updateProgress() {\n currentIntake.textContent = totalIntake;\n const progressPercentage = (totalIntake / dailyGoal) * 100;\n progressFill.style.width = `${progressPercentage}%`;\n }\n\n function checkMilestones() {\n const milestones = [\n { amount: 500, element: document.getElementById('milestone-500') },\n { amount: 1000, element: document.getElementById('milestone-1000') },\n { amount: 1500, element: document.getElementById('milestone-1500') },\n { amount: 2000, element: document.getElementById('milestone-2000') }\n ];\n\n milestones.forEach(milestone => {\n if (totalIntake >= milestone.amount) {\n milestone.element.classList.add('achieved');\n }\n });\n }\n});\n---end---" + }, + "logprobs": null, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 316, + "completion_tokens": 1359, + "total_tokens": 1675, + "prompt_cache_hit_tokens": 0, + "prompt_cache_miss_tokens": 316 + }, + "system_fingerprint": "fp_f1afce2943" +} \ No newline at end of file diff --git a/readme.scroll b/readme.scroll new file mode 100644 index 0000000..0de9caa --- /dev/null +++ b/readme.scroll @@ -0,0 +1,2 @@ +# hydrate.scroll.pub +Website generated by DeepSeek from prompt: Design a user-friendly water tracker application that encourages daily hydration. Include the following features: a home screen displaying today's water intake in milliliters and cups, an input method for adding water consumption, a progress tracker with a daily goal, and creative visual or auditory feedback for achieving hydration milestones. Provide wireframes or a simple prototype to illustrate your concept. Assume the target audience is general users interested in maintaining good hydration habits. \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..3b4387d --- /dev/null +++ b/script.js @@ -0,0 +1,39 @@ +document.addEventListener('DOMContentLoaded', () => { + const waterInput = document.getElementById('water-input'); + const addButton = document.getElementById('add-button'); + const currentIntake = document.getElementById('current-intake'); + const progressFill = document.querySelector('.progress-fill'); + const dailyGoal = 2000; + let totalIntake = 0; + + addButton.addEventListener('click', () => { + const amount = parseInt(waterInput.value, 10); + if (!isNaN(amount) && amount > 0) { + totalIntake += amount; + updateProgress(); + checkMilestones(); + waterInput.value = ''; + } + }); + + function updateProgress() { + currentIntake.textContent = totalIntake; + const progressPercentage = (totalIntake / dailyGoal) * 100; + progressFill.style.width = `${progressPercentage}%`; + } + + function checkMilestones() { + const milestones = [ + { amount: 500, element: document.getElementById('milestone-500') }, + { amount: 1000, element: document.getElementById('milestone-1000') }, + { amount: 1500, element: document.getElementById('milestone-1500') }, + { amount: 2000, element: document.getElementById('milestone-2000') } + ]; + + milestones.forEach(milestone => { + if (totalIntake >= milestone.amount) { + milestone.element.classList.add('achieved'); + } + }); + } +}); \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..5093b51 --- /dev/null +++ b/style.css @@ -0,0 +1,117 @@ +:root { + --primary-color: #1e90ff; + --secondary-color: #87cefa; + --background-color: #f0f8ff; + --text-color: #333; + --progress-fill-color: #00bfff; +} + +body { + font-family: 'Arial', sans-serif; + background-color: var(--background-color); + color: var(--text-color); + margin: 0; + padding: 20px; + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; +} + +header { + text-align: center; + margin-bottom: 20px; +} + +header h1 { + font-size: 2.5rem; + color: var(--primary-color); +} + +header p { + font-size: 1.2rem; + color: var(--secondary-color); +} + +main { + width: 100%; + max-width: 400px; +} + +section { + background-color: white; + border-radius: 10px; + padding: 20px; + margin-bottom: 20px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +h2 { + font-size: 1.5rem; + margin-bottom: 10px; + color: var(--primary-color); +} + +.progress-bar { + width: 100%; + height: 20px; + background-color: #e0e0e0; + border-radius: 10px; + overflow: hidden; +} + +.progress-fill { + height: 100%; + background-color: var(--progress-fill-color); + transition: width 0.3s ease; +} + +.input-group { + display: flex; + gap: 10px; +} + +input[type="number"] { + flex: 1; + padding: 10px; + border: 1px solid #ccc; + border-radius: 5px; + font-size: 1rem; +} + +button { + padding: 10px 20px; + background-color: var(--primary-color); + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 1rem; +} + +button:hover { + background-color: var(--secondary-color); +} + +.milestone { + padding: 10px; + margin-bottom: 10px; + background-color: #f0f8ff; + border-radius: 5px; + text-align: center; + opacity: 0.5; + transition: opacity 0.3s ease; +} + +.milestone.achieved { + opacity: 1; + background-color: var(--secondary-color); + color: white; +} + +footer { + text-align: center; + margin-top: auto; + padding: 20px; + color: var(--secondary-color); +} \ No newline at end of file