commit 6e66f0b79e3e959b29b1dbe65e411e476f035afa
Author: root <root@hub.scroll.pub> Date: 2025-01-13 23:05:26 +0000 Subject: Initial commit diff --git a/body.html b/body.html new file mode 100644 index 0000000..e6bb78a --- /dev/null +++ b/body.html @@ -0,0 +1,91 @@ +<header> + <nav class="main-nav"> + <div class="logo">FlowChain</div> + <button class="mobile-menu" aria-label="Toggle Menu"> + <span></span><span></span><span></span> + </button> + <ul class="nav-links"> + <li><a href="#solutions">Solutions</a></li> + <li><a href="#features">Features</a></li> + <li><a href="#about">About</a></li> + <li><a href="#contact" class="cta-button">Contact Us</a></li> + </ul> + </nav> +</header> + +<main> + <section class="hero"> + <div class="hero-content"> + <h1>Transform Your Supply Chain</h1> + <p>Streamline operations, reduce costs, and increase visibility across your entire supply network.</p> + <a href="#contact" class="cta-button">Get Started</a> + </div> + <div class="hero-visual"></div> + </section> + + <section id="solutions" class="solutions"> + <h2>Our Solutions</h2> + <div class="card-grid"> + <article class="card"> + <div class="card-icon" aria-hidden="true">📦</div> + <h3>Inventory Management</h3> + <p>Real-time tracking and optimization of your inventory levels.</p> + </article> + <article class="card"> + <div class="card-icon" aria-hidden="true">🚚</div> + <h3>Logistics</h3> + <p>Smart routing and transportation management systems.</p> + </article> + <article class="card"> + <div class="card-icon" aria-hidden="true">📊</div> + <h3>Analytics</h3> + <p>Data-driven insights for better decision making.</p> + </article> + </div> + </section> + + <section id="features" class="features"> + <h2>Key Features</h2> + <div class="feature-list"> + <div class="feature"> + <h3>Real-time Tracking</h3> + <div class="progress-bar"><div class="progress"></div></div> + </div> + <div class="feature"> + <h3>Predictive Analytics</h3> + <div class="progress-bar"><div class="progress"></div></div> + </div> + <div class="feature"> + <h3>Automated Reporting</h3> + <div class="progress-bar"><div class="progress"></div></div> + </div> + </div> + </section> + + <section id="contact" class="contact"> + <h2>Contact Us</h2> + <form id="contact-form" class="contact-form"> + <input type="text" placeholder="Name" required> + <input type="email" placeholder="Email" required> + <textarea placeholder="Message" required></textarea> + <button type="submit" class="submit-button">Send Message</button> + </form> + </section> +</main> + +<footer> + <div class="footer-content"> + <div class="footer-section"> + <h4>FlowChain</h4> + <p>Transforming supply chains through innovation and efficiency.</p> + </div> + <div class="footer-section"> + <h4>Quick Links</h4> + <ul> + <li><a href="#solutions">Solutions</a></li> + <li><a href="#features">Features</a></li> + <li><a href="#about">About</a></li> + </ul> + </div> + </div> +</footer> \ No newline at end of file diff --git a/index.scroll b/index.scroll new file mode 100644 index 0000000..292f529 --- /dev/null +++ b/index.scroll @@ -0,0 +1,8 @@ +buildHtml +baseUrl https://flow.scroll.pub +metaTags +editButton /edit.html +title Supply Chain Solutions | Optimize Your Logistics +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..b7879dd --- /dev/null +++ b/prompt.json @@ -0,0 +1,20 @@ +{ + "id": "msg_014bkpomFt7NomcV8SRHTReu", + "type": "message", + "role": "assistant", + "model": "claude-3-5-sonnet-20241022", + "content": [ + { + "type": "text", + "text": "I'll create a modern supply chain management website.\n\nSuggested domain name: flow.scroll.pub (representing smooth supply chain flow)\n\n---domain---\nflow.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://flow.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Supply Chain Solutions | Optimize Your Logistics\nstyle.css\nbody.html\nscript.js\n---body.html---\n<header>\n <nav class=\"main-nav\">\n <div class=\"logo\">FlowChain</div>\n <button class=\"mobile-menu\" aria-label=\"Toggle Menu\">\n <span></span><span></span><span></span>\n </button>\n <ul class=\"nav-links\">\n <li><a href=\"#solutions\">Solutions</a></li>\n <li><a href=\"#features\">Features</a></li>\n <li><a href=\"#about\">About</a></li>\n <li><a href=\"#contact\" class=\"cta-button\">Contact Us</a></li>\n </ul>\n </nav>\n</header>\n\n<main>\n <section class=\"hero\">\n <div class=\"hero-content\">\n <h1>Transform Your Supply Chain</h1>\n <p>Streamline operations, reduce costs, and increase visibility across your entire supply network.</p>\n <a href=\"#contact\" class=\"cta-button\">Get Started</a>\n </div>\n <div class=\"hero-visual\"></div>\n </section>\n\n <section id=\"solutions\" class=\"solutions\">\n <h2>Our Solutions</h2>\n <div class=\"card-grid\">\n <article class=\"card\">\n <div class=\"card-icon\" aria-hidden=\"true\">📦</div>\n <h3>Inventory Management</h3>\n <p>Real-time tracking and optimization of your inventory levels.</p>\n </article>\n <article class=\"card\">\n <div class=\"card-icon\" aria-hidden=\"true\">🚚</div>\n <h3>Logistics</h3>\n <p>Smart routing and transportation management systems.</p>\n </article>\n <article class=\"card\">\n <div class=\"card-icon\" aria-hidden=\"true\">📊</div>\n <h3>Analytics</h3>\n <p>Data-driven insights for better decision making.</p>\n </article>\n </div>\n </section>\n\n <section id=\"features\" class=\"features\">\n <h2>Key Features</h2>\n <div class=\"feature-list\">\n <div class=\"feature\">\n <h3>Real-time Tracking</h3>\n <div class=\"progress-bar\"><div class=\"progress\"></div></div>\n </div>\n <div class=\"feature\">\n <h3>Predictive Analytics</h3>\n <div class=\"progress-bar\"><div class=\"progress\"></div></div>\n </div>\n <div class=\"feature\">\n <h3>Automated Reporting</h3>\n <div class=\"progress-bar\"><div class=\"progress\"></div></div>\n </div>\n </div>\n </section>\n\n <section id=\"contact\" class=\"contact\">\n <h2>Contact Us</h2>\n <form id=\"contact-form\" class=\"contact-form\">\n <input type=\"text\" placeholder=\"Name\" required>\n <input type=\"email\" placeholder=\"Email\" required>\n <textarea placeholder=\"Message\" required></textarea>\n <button type=\"submit\" class=\"submit-button\">Send Message</button>\n </form>\n </section>\n</main>\n\n<footer>\n <div class=\"footer-content\">\n <div class=\"footer-section\">\n <h4>FlowChain</h4>\n <p>Transforming supply chains through innovation and efficiency.</p>\n </div>\n <div class=\"footer-section\">\n <h4>Quick Links</h4>\n <ul>\n <li><a href=\"#solutions\">Solutions</a></li>\n <li><a href=\"#features\">Features</a></li>\n <li><a href=\"#about\">About</a></li>\n </ul>\n </div>\n </div>\n</footer>\n---style.css---\n:root {\n --primary-color: #2563eb;\n --secondary-color: #1e40af;\n --background-color: #f8fafc;\n --text-color: #1e293b;\n --accent-color: #3b82f6;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: system-ui, -apple-system, sans-serif;\n line-height: 1.6;\n color: var(--text-color);\n background: var(--background-color);\n}\n\n.main-nav {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 5%;\n background: white;\n box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n position: fixed;\n width: 100%;\n z-index: 1000;\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 list-style: none;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text-color);\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 {\n min-height: 100vh;\n display: flex;\n align-items: center;\n padding: 5rem 5%;\n background: linear-gradient(135deg, #fff 0%, #f1f5f9 100%);\n}\n\n.hero-content {\n flex: 1;\n max-width: 600px;\n}\n\n.hero h1 {\n font-size: 3.5rem;\n line-height: 1.2;\n margin-bottom: 1.5rem;\n background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n\n.hero-visual {\n flex: 1;\n height: 500px;\n background: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\"><path fill=\"%232563eb\" d=\"M43.5,-47.8C56.8,-36.7,68.5,-21.8,71.4,-4.7C74.3,12.4,68.3,31.7,55,43.1C41.7,54.5,21.1,58.1,1.7,56.2C-17.7,54.4,-35.3,47.1,-48.1,34.4C-60.9,21.7,-68.8,3.6,-65.2,-12.2C-61.6,-28,-46.5,-41.5,-31.9,-52.4C-17.3,-63.3,-3.2,-71.6,8.7,-81.1C20.6,-90.6,30.2,-58.9,43.5,-47.8Z\" transform=\"translate(100 100)\" /></svg>') no-repeat center;\n animation: float 6s ease-in-out infinite;\n}\n\n@keyframes float {\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-20px); }\n}\n\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n padding: 5rem 5%;\n}\n\n.card {\n background: white;\n padding: 2rem;\n border-radius: 1rem;\n box-shadow: 0 4px 20px rgba(0,0,0,0.1);\n transition: transform 0.3s;\n}\n\n.card:hover {\n transform: translateY(-5px);\n}\n\n.card-icon {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n}\n\n.features {\n padding: 5rem 5%;\n background: white;\n}\n\n.feature-list {\n max-width: 800px;\n margin: 0 auto;\n}\n\n.progress-bar {\n height: 8px;\n background: #e2e8f0;\n border-radius: 4px;\n margin: 1rem 0 2rem;\n overflow: hidden;\n}\n\n.progress {\n height: 100%;\n background: var(--primary-color);\n width: 0;\n transition: width 1.5s ease-out;\n}\n\n.contact {\n padding: 5rem 5%;\n}\n\n.contact-form {\n max-width: 600px;\n margin: 0 auto;\n display: grid;\n gap: 1rem;\n}\n\n.contact-form input,\n.contact-form textarea {\n padding: 1rem;\n border: 2px solid #e2e8f0;\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n\n.submit-button,\n.cta-button {\n background: var(--primary-color);\n color: white;\n padding: 1rem 2rem;\n border: none;\n border-radius: 0.5rem;\n cursor: pointer;\n transition: background-color 0.3s;\n text-decoration: none;\n display: inline-block;\n}\n\n.submit-button:hover,\n.cta-button:hover {\n background: var(--secondary-color);\n}\n\nfooter {\n background: var(--text-color);\n color: white;\n padding: 3rem 5%;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 2rem;\n}\n\n@media (max-width: 768px) {\n .mobile-menu {\n display: block;\n background: none;\n border: none;\n cursor: pointer;\n }\n\n .mobile-menu span {\n display: block;\n width: 25px;\n height: 3px;\n background: var(--text-color);\n margin: 5px 0;\n transition: 0.3s;\n }\n\n .nav-links {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: white;\n padding: 1rem;\n flex-direction: column;\n text-align: center;\n }\n\n .nav-links.active {\n display: flex;\n }\n\n .hero {\n flex-direction: column;\n text-align: center;\n }\n\n .hero h1 {\n font-size: 2.5rem;\n }\n\n .hero-visual {\n margin-top: 2rem;\n height: 300px;\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 const spans = mobileMenu.querySelectorAll('span');\n spans[0].style.transform = navLinks.classList.contains('active') ? 'rotate(45deg) translate(6px, 6px)' : '';\n spans[1].style.opacity = navLinks.classList.contains('active') ? '0' : '1';\n spans[2].style.transform = navLinks.classList.contains('active') ? 'rotate(-45deg) translate(6px, -6px)' : '';\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 const target = document.querySelector(this.getAttribute('href'));\n if (target) {\n target.scrollIntoView({\n behavior: 'smooth'\n });\n navLinks.classList.remove('active');\n }\n });\n });\n\n // Animate progress bars when in viewport\n const features = document.querySelectorAll('.progress');\n const progressValues = [85, 92, 78]; // Percentage values for each progress bar\n\n const observerCallback = (entries, observer) => {\n entries.forEach((entry, index) => {\n if (entry.isIntersecting) {\n entry.target.style.width = `${progressValues[index]}%`;\n observer.unobserve(entry.target);\n }\n });\n };\n\n const observer = new IntersectionObserver(observerCallback, {\n threshold: 0.5\n });\n\n features.forEach(feature => observer.observe(feature));\n\n // Form submission handling\n const contactForm = document.getElementById('contact-form');\n \n contactForm.addEventListener('submit', (e) => {\n e.preventDefault();\n const formData = new FormData(contactForm);\n // Simulate form submission\n const submitButton = contactForm.querySelector('button[type=\"submit\"]');\n submitButton.textContent = 'Sending...';\n submitButton.disabled = true;\n \n setTimeout(() => {\n submitButton.textContent = 'Message Sent!';\n contactForm.reset();\n setTimeout(() => {\n submitButton.textContent = 'Send Message';\n submitButton.disabled = false;\n }, 2000);\n }, 1500);\n });\n});\n---end---\n\nThis creates a modern, responsive supply chain website with smooth animations, interactive features, and a clean design. Key features include:\n\n1. Animated hero section with gradient text\n2. Floating SVG background\n3. Responsive card grid for solutions\n4. Animated progress bars\n5. Mobile-responsive navigation with hamburger menu\n6. Smooth scrolling navigation\n7. Interactive contact form\n8. CSS animations and transitions\n9. Semantic HTML structure\n10. Accessible navigation and content\n\nThe design uses a modern color scheme with gradients and shadows, while maintaining a professional appearance suitable for a business website." + } + ], + "stop_reason": "end_turn", + "stop_sequence": null, + "usage": { + "input_tokens": 272, + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "output_tokens": 3705 + } +} \ No newline at end of file diff --git a/readme.scroll b/readme.scroll new file mode 100644 index 0000000..40f56f0 --- /dev/null +++ b/readme.scroll @@ -0,0 +1,3 @@ +# flow2.scroll.pub + +website generated by Claude from prompt: supply chain \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..80da942 --- /dev/null +++ b/script.js @@ -0,0 +1,67 @@ +document.addEventListener('DOMContentLoaded', () => { + // Mobile menu toggle + const mobileMenu = document.querySelector('.mobile-menu'); + const navLinks = document.querySelector('.nav-links'); + + mobileMenu.addEventListener('click', () => { + navLinks.classList.toggle('active'); + const spans = mobileMenu.querySelectorAll('span'); + spans[0].style.transform = navLinks.classList.contains('active') ? 'rotate(45deg) translate(6px, 6px)' : ''; + spans[1].style.opacity = navLinks.classList.contains('active') ? '0' : '1'; + spans[2].style.transform = navLinks.classList.contains('active') ? 'rotate(-45deg) translate(6px, -6px)' : ''; + }); + + // Smooth scroll for navigation links + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + const target = document.querySelector(this.getAttribute('href')); + if (target) { + target.scrollIntoView({ + behavior: 'smooth' + }); + navLinks.classList.remove('active'); + } + }); + }); + + // Animate progress bars when in viewport + const features = document.querySelectorAll('.progress'); + const progressValues = [85, 92, 78]; // Percentage values for each progress bar + + const observerCallback = (entries, observer) => { + entries.forEach((entry, index) => { + if (entry.isIntersecting) { + entry.target.style.width = `${progressValues[index]}%`; + observer.unobserve(entry.target); + } + }); + }; + + const observer = new IntersectionObserver(observerCallback, { + threshold: 0.5 + }); + + features.forEach(feature => observer.observe(feature)); + + // Form submission handling + const contactForm = document.getElementById('contact-form'); + + contactForm.addEventListener('submit', (e) => { + e.preventDefault(); + const formData = new FormData(contactForm); + // Simulate form submission + const submitButton = contactForm.querySelector('button[type="submit"]'); + submitButton.textContent = 'Sending...'; + submitButton.disabled = true; + + setTimeout(() => { + submitButton.textContent = 'Message Sent!'; + contactForm.reset(); + setTimeout(() => { + submitButton.textContent = 'Send Message'; + submitButton.disabled = false; + }, 2000); + }, 1500); + }); +}); \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..c77a434 --- /dev/null +++ b/style.css @@ -0,0 +1,238 @@ +:root { + --primary-color: #2563eb; + --secondary-color: #1e40af; + --background-color: #f8fafc; + --text-color: #1e293b; + --accent-color: #3b82f6; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: system-ui, -apple-system, sans-serif; + line-height: 1.6; + color: var(--text-color); + background: var(--background-color); +} + +.main-nav { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 5%; + background: white; + box-shadow: 0 2px 10px rgba(0,0,0,0.1); + position: fixed; + width: 100%; + z-index: 1000; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary-color); +} + +.nav-links { + display: flex; + gap: 2rem; + list-style: none; +} + +.nav-links a { + text-decoration: none; + color: var(--text-color); + transition: color 0.3s; +} + +.nav-links a:hover { + color: var(--primary-color); +} + +.mobile-menu { + display: none; +} + +.hero { + min-height: 100vh; + display: flex; + align-items: center; + padding: 5rem 5%; + background: linear-gradient(135deg, #fff 0%, #f1f5f9 100%); +} + +.hero-content { + flex: 1; + max-width: 600px; +} + +.hero h1 { + font-size: 3.5rem; + line-height: 1.2; + margin-bottom: 1.5rem; + background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.hero-visual { + flex: 1; + height: 500px; + background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><path fill="%232563eb" d="M43.5,-47.8C56.8,-36.7,68.5,-21.8,71.4,-4.7C74.3,12.4,68.3,31.7,55,43.1C41.7,54.5,21.1,58.1,1.7,56.2C-17.7,54.4,-35.3,47.1,-48.1,34.4C-60.9,21.7,-68.8,3.6,-65.2,-12.2C-61.6,-28,-46.5,-41.5,-31.9,-52.4C-17.3,-63.3,-3.2,-71.6,8.7,-81.1C20.6,-90.6,30.2,-58.9,43.5,-47.8Z" transform="translate(100 100)" /></svg>') no-repeat center; + animation: float 6s ease-in-out infinite; +} + +@keyframes float { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-20px); } +} + +.card-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + padding: 5rem 5%; +} + +.card { + background: white; + padding: 2rem; + border-radius: 1rem; + box-shadow: 0 4px 20px rgba(0,0,0,0.1); + transition: transform 0.3s; +} + +.card:hover { + transform: translateY(-5px); +} + +.card-icon { + font-size: 2.5rem; + margin-bottom: 1rem; +} + +.features { + padding: 5rem 5%; + background: white; +} + +.feature-list { + max-width: 800px; + margin: 0 auto; +} + +.progress-bar { + height: 8px; + background: #e2e8f0; + border-radius: 4px; + margin: 1rem 0 2rem; + overflow: hidden; +} + +.progress { + height: 100%; + background: var(--primary-color); + width: 0; + transition: width 1.5s ease-out; +} + +.contact { + padding: 5rem 5%; +} + +.contact-form { + max-width: 600px; + margin: 0 auto; + display: grid; + gap: 1rem; +} + +.contact-form input, +.contact-form textarea { + padding: 1rem; + border: 2px solid #e2e8f0; + border-radius: 0.5rem; + font-size: 1rem; +} + +.submit-button, +.cta-button { + background: var(--primary-color); + color: white; + padding: 1rem 2rem; + border: none; + border-radius: 0.5rem; + cursor: pointer; + transition: background-color 0.3s; + text-decoration: none; + display: inline-block; +} + +.submit-button:hover, +.cta-button:hover { + background: var(--secondary-color); +} + +footer { + background: var(--text-color); + color: white; + padding: 3rem 5%; +} + +.footer-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 2rem; +} + +@media (max-width: 768px) { + .mobile-menu { + display: block; + background: none; + border: none; + cursor: pointer; + } + + .mobile-menu span { + display: block; + width: 25px; + height: 3px; + background: var(--text-color); + margin: 5px 0; + transition: 0.3s; + } + + .nav-links { + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + background: white; + padding: 1rem; + flex-direction: column; + text-align: center; + } + + .nav-links.active { + display: flex; + } + + .hero { + flex-direction: column; + text-align: center; + } + + .hero h1 { + font-size: 2.5rem; + } + + .hero-visual { + margin-top: 2rem; + height: 300px; + } +} \ No newline at end of file