commit d0138f820eadd23b96470c6592a41a99a43e9411
Author: root <root@hub.scroll.pub> Date: 2024-12-30 23:14:44 +0000 Subject: Initial commit diff --git a/body.html b/body.html new file mode 100644 index 0000000..617f284 --- /dev/null +++ b/body.html @@ -0,0 +1,67 @@ +<header> + <nav> + <div class="logo">ForexLog</div> + <div class="nav-links"> + <a href="#dashboard">Dashboard</a> + <a href="#new-trade">New Trade</a> + <a href="#analytics">Analytics</a> + </div> + </nav> +</header> + +<main> + <section id="dashboard" class="dashboard"> + <h1>Trading Journal</h1> + <div class="stats-grid"> + <div class="stat-card"> + <h3>Win Rate</h3> + <p class="stat-value">68%</p> + <div class="progress-bar"><div class="progress" style="width: 68%"></div></div> + </div> + <div class="stat-card"> + <h3>Total Trades</h3> + <p class="stat-value">124</p> + </div> + <div class="stat-card"> + <h3>Profit Factor</h3> + <p class="stat-value">1.85</p> + </div> + </div> + </section> + + <section id="new-trade" class="trade-form"> + <h2>Log New Trade</h2> + <form id="tradeForm"> + <div class="form-grid"> + <div class="input-group"> + <label for="pair">Currency Pair</label> + <input type="text" id="pair" required> + </div> + <div class="input-group"> + <label for="direction">Direction</label> + <select id="direction" required> + <option value="buy">Buy</option> + <option value="sell">Sell</option> + </select> + </div> + <div class="input-group"> + <label for="entry">Entry Price</label> + <input type="number" id="entry" step="0.00001" required> + </div> + <div class="input-group"> + <label for="exit">Exit Price</label> + <input type="number" id="exit" step="0.00001" required> + </div> + <div class="input-group"> + <label for="notes">Trade Notes</label> + <textarea id="notes"></textarea> + </div> + </div> + <button type="submit" class="submit-btn">Save Trade</button> + </form> + </section> +</main> + +<footer> + <p>ForexLog - Professional Trading Journal</p> +</footer> diff --git a/index.scroll b/index.scroll new file mode 100644 index 0000000..cb27301 --- /dev/null +++ b/index.scroll @@ -0,0 +1,8 @@ +buildHtml +baseUrl https://forexlog.scroll.pub +metaTags +editButton /edit.html +title ForexLog - Your Professional Trading Journal +style.css +body.html +script.js diff --git a/prompt.json b/prompt.json new file mode 100644 index 0000000..9495b74 --- /dev/null +++ b/prompt.json @@ -0,0 +1,20 @@ +{ + "id": "msg_01RRosk4KCwvDfKeMTon4q1z", + "type": "message", + "role": "assistant", + "model": "claude-3-5-sonnet-20241022", + "content": [ + { + "type": "text", + "text": "Let me create a forex trading journal website with a dark theme and nice visuals.\n\n---domain---\nforexlog.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://forexlog.scroll.pub\nmetaTags\neditButton /edit.html\ntitle ForexLog - Your Professional Trading Journal\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n<header>\n <nav>\n <div class=\"logo\">ForexLog</div>\n <div class=\"nav-links\">\n <a href=\"#dashboard\">Dashboard</a>\n <a href=\"#new-trade\">New Trade</a>\n <a href=\"#analytics\">Analytics</a>\n </div>\n </nav>\n</header>\n\n<main>\n <section id=\"dashboard\" class=\"dashboard\">\n <h1>Trading Journal</h1>\n <div class=\"stats-grid\">\n <div class=\"stat-card\">\n <h3>Win Rate</h3>\n <p class=\"stat-value\">68%</p>\n <div class=\"progress-bar\"><div class=\"progress\" style=\"width: 68%\"></div></div>\n </div>\n <div class=\"stat-card\">\n <h3>Total Trades</h3>\n <p class=\"stat-value\">124</p>\n </div>\n <div class=\"stat-card\">\n <h3>Profit Factor</h3>\n <p class=\"stat-value\">1.85</p>\n </div>\n </div>\n </section>\n\n <section id=\"new-trade\" class=\"trade-form\">\n <h2>Log New Trade</h2>\n <form id=\"tradeForm\">\n <div class=\"form-grid\">\n <div class=\"input-group\">\n <label for=\"pair\">Currency Pair</label>\n <input type=\"text\" id=\"pair\" required>\n </div>\n <div class=\"input-group\">\n <label for=\"direction\">Direction</label>\n <select id=\"direction\" required>\n <option value=\"buy\">Buy</option>\n <option value=\"sell\">Sell</option>\n </select>\n </div>\n <div class=\"input-group\">\n <label for=\"entry\">Entry Price</label>\n <input type=\"number\" id=\"entry\" step=\"0.00001\" required>\n </div>\n <div class=\"input-group\">\n <label for=\"exit\">Exit Price</label>\n <input type=\"number\" id=\"exit\" step=\"0.00001\" required>\n </div>\n <div class=\"input-group\">\n <label for=\"notes\">Trade Notes</label>\n <textarea id=\"notes\"></textarea>\n </div>\n </div>\n <button type=\"submit\" class=\"submit-btn\">Save Trade</button>\n </form>\n </section>\n</main>\n\n<footer>\n <p>ForexLog - Professional Trading Journal</p>\n</footer>\n\n---style.css---\n:root {\n --bg-primary: #1a1a2e;\n --bg-secondary: #16213e;\n --accent: #4d7cff;\n --text: #e6e6e6;\n --border: #2a2a4a;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n background: var(--bg-primary);\n color: var(--text);\n font-family: 'Segoe UI', system-ui, sans-serif;\n line-height: 1.6;\n min-height: 100vh;\n}\n\nheader {\n background: var(--bg-secondary);\n padding: 1rem;\n box-shadow: 0 2px 10px rgba(0,0,0,0.3);\n}\n\nnav {\n max-width: 1200px;\n margin: 0 auto;\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 background: linear-gradient(45deg, var(--accent), #6b8eff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n\n.nav-links a {\n color: var(--text);\n text-decoration: none;\n margin-left: 2rem;\n transition: color 0.3s ease;\n}\n\n.nav-links a:hover {\n color: var(--accent);\n}\n\nmain {\n max-width: 1200px;\n margin: 2rem auto;\n padding: 0 1rem;\n}\n\n.stats-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 1.5rem;\n margin: 2rem 0;\n}\n\n.stat-card {\n background: var(--bg-secondary);\n padding: 1.5rem;\n border-radius: 10px;\n border: 1px solid var(--border);\n transition: transform 0.3s ease;\n}\n\n.stat-card:hover {\n transform: translateY(-5px);\n}\n\n.stat-value {\n font-size: 2rem;\n font-weight: bold;\n color: var(--accent);\n margin: 0.5rem 0;\n}\n\n.progress-bar {\n background: var(--border);\n height: 6px;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.progress {\n background: linear-gradient(90deg, var(--accent), #6b8eff);\n height: 100%;\n transition: width 0.3s ease;\n}\n\n.trade-form {\n background: var(--bg-secondary);\n padding: 2rem;\n border-radius: 10px;\n border: 1px solid var(--border);\n margin-top: 3rem;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1.5rem;\n margin: 1.5rem 0;\n}\n\n.input-group {\n display: flex;\n flex-direction: column;\n}\n\n.input-group label {\n margin-bottom: 0.5rem;\n}\n\ninput, select, textarea {\n background: var(--bg-primary);\n border: 1px solid var(--border);\n color: var(--text);\n padding: 0.8rem;\n border-radius: 5px;\n font-size: 1rem;\n}\n\ntextarea {\n resize: vertical;\n min-height: 100px;\n}\n\n.submit-btn {\n background: var(--accent);\n color: white;\n border: none;\n padding: 1rem 2rem;\n border-radius: 5px;\n cursor: pointer;\n font-size: 1rem;\n transition: background 0.3s ease;\n}\n\n.submit-btn:hover {\n background: #6b8eff;\n}\n\nfooter {\n background: var(--bg-secondary);\n text-align: center;\n padding: 1rem;\n margin-top: 3rem;\n}\n\n@media (max-width: 768px) {\n .nav-links {\n display: none;\n }\n \n .form-grid {\n grid-template-columns: 1fr;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n const tradeForm = document.getElementById('tradeForm');\n\n tradeForm.addEventListener('submit', (e) => {\n e.preventDefault();\n \n const formData = {\n pair: document.getElementById('pair').value,\n direction: document.getElementById('direction').value,\n entry: document.getElementById('entry').value,\n exit: document.getElementById('exit').value,\n notes: document.getElementById('notes').value\n };\n\n // Here you would typically send this data to a server\n console.log('Trade logged:', formData);\n \n // Show success message\n const button = tradeForm.querySelector('button');\n const originalText = button.textContent;\n button.textContent = 'Trade Saved!';\n button.style.background = '#4CAF50';\n \n setTimeout(() => {\n button.textContent = originalText;\n button.style.background = '';\n tradeForm.reset();\n }, 2000);\n });\n\n // Add smooth scrolling 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 creates a beautiful, responsive forex trading journal with a dark theme. Key features include:\n\n1. Clean, modern design with smooth animations\n2. Statistics dashboard with animated cards\n3. Trade logging form with proper validation\n4. Responsive layout that works on all devices\n5. Smooth scrolling navigation\n6. Beautiful gradient accents and hover effects\n7. Accessible form controls and semantic HTML\n8. Proper color contrast for readability\n9. Success feedback animations\n10. Professional typography and spacing\n\nThe domain name \"forexlog\" is short, memorable, and clearly indicates the purpose of the website." + } + ], + "stop_reason": "end_turn", + "stop_sequence": null, + "usage": { + "input_tokens": 281, + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "output_tokens": 2395 + } +} \ No newline at end of file diff --git a/readme.scroll b/readme.scroll new file mode 100644 index 0000000..0300b10 --- /dev/null +++ b/readme.scroll @@ -0,0 +1,2 @@ +# forexlog.scroll.pub +Website generated by Claude from prompt: create a forex journal in dark theme with nice visuals \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..c81acf7 --- /dev/null +++ b/script.js @@ -0,0 +1,40 @@ +document.addEventListener('DOMContentLoaded', () => { + const tradeForm = document.getElementById('tradeForm'); + + tradeForm.addEventListener('submit', (e) => { + e.preventDefault(); + + const formData = { + pair: document.getElementById('pair').value, + direction: document.getElementById('direction').value, + entry: document.getElementById('entry').value, + exit: document.getElementById('exit').value, + notes: document.getElementById('notes').value + }; + + // Here you would typically send this data to a server + console.log('Trade logged:', formData); + + // Show success message + const button = tradeForm.querySelector('button'); + const originalText = button.textContent; + button.textContent = 'Trade Saved!'; + button.style.background = '#4CAF50'; + + setTimeout(() => { + button.textContent = originalText; + button.style.background = ''; + tradeForm.reset(); + }, 2000); + }); + + // Add smooth scrolling 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..3fbae12 --- /dev/null +++ b/style.css @@ -0,0 +1,169 @@ +:root { + --bg-primary: #1a1a2e; + --bg-secondary: #16213e; + --accent: #4d7cff; + --text: #e6e6e6; + --border: #2a2a4a; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + background: var(--bg-primary); + color: var(--text); + font-family: 'Segoe UI', system-ui, sans-serif; + line-height: 1.6; + min-height: 100vh; +} + +header { + background: var(--bg-secondary); + padding: 1rem; + box-shadow: 0 2px 10px rgba(0,0,0,0.3); +} + +nav { + max-width: 1200px; + margin: 0 auto; + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + background: linear-gradient(45deg, var(--accent), #6b8eff); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.nav-links a { + color: var(--text); + text-decoration: none; + margin-left: 2rem; + transition: color 0.3s ease; +} + +.nav-links a:hover { + color: var(--accent); +} + +main { + max-width: 1200px; + margin: 2rem auto; + padding: 0 1rem; +} + +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; + margin: 2rem 0; +} + +.stat-card { + background: var(--bg-secondary); + padding: 1.5rem; + border-radius: 10px; + border: 1px solid var(--border); + transition: transform 0.3s ease; +} + +.stat-card:hover { + transform: translateY(-5px); +} + +.stat-value { + font-size: 2rem; + font-weight: bold; + color: var(--accent); + margin: 0.5rem 0; +} + +.progress-bar { + background: var(--border); + height: 6px; + border-radius: 3px; + overflow: hidden; +} + +.progress { + background: linear-gradient(90deg, var(--accent), #6b8eff); + height: 100%; + transition: width 0.3s ease; +} + +.trade-form { + background: var(--bg-secondary); + padding: 2rem; + border-radius: 10px; + border: 1px solid var(--border); + margin-top: 3rem; +} + +.form-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1.5rem; + margin: 1.5rem 0; +} + +.input-group { + display: flex; + flex-direction: column; +} + +.input-group label { + margin-bottom: 0.5rem; +} + +input, select, textarea { + background: var(--bg-primary); + border: 1px solid var(--border); + color: var(--text); + padding: 0.8rem; + border-radius: 5px; + font-size: 1rem; +} + +textarea { + resize: vertical; + min-height: 100px; +} + +.submit-btn { + background: var(--accent); + color: white; + border: none; + padding: 1rem 2rem; + border-radius: 5px; + cursor: pointer; + font-size: 1rem; + transition: background 0.3s ease; +} + +.submit-btn:hover { + background: #6b8eff; +} + +footer { + background: var(--bg-secondary); + text-align: center; + padding: 1rem; + margin-top: 3rem; +} + +@media (max-width: 768px) { + .nav-links { + display: none; + } + + .form-grid { + grid-template-columns: 1fr; + } +}