commit f00f7f14d70af8516d65f4a33118021f44eed0dc
Author: root <root@hub.scroll.pub> Date: 2024-12-28 03:11:29 +0000 Subject: Initial commit diff --git a/body.html b/body.html new file mode 100644 index 0000000..dbd72c3 --- /dev/null +++ b/body.html @@ -0,0 +1,76 @@ +<header> + <nav class="main-nav"> + <div class="logo">🦄 Ponyland</div> + <button class="mobile-menu-btn" aria-label="Toggle menu">≡</button> + <ul class="nav-links"> + <li><a href="/">Home</a></li> + <li><a href="/gallery">Gallery</a></li> + <li><a href="/blog">Blog</a></li> + <li><a href="/about">About</a></li> + <li><a href="/contact">Contact</a></li> + </ul> + </nav> +</header> + +<div class="layout"> + <aside class="sidebar"> + <div class="sidebar-content"> + <h3>Popular Posts</h3> + <ul> + <li><a href="/blog/pony-care">Pony Care Basics</a></li> + <li><a href="/blog/magic">Magic Spells</a></li> + <li><a href="/blog/friendship">Friendship Stories</a></li> + </ul> + + <h3>Categories</h3> + <div class="tag-cloud"> + <button class="tag">Adventure</button> + <button class="tag">Magic</button> + <button class="tag">Friends</button> + <button class="tag">Stories</button> + </div> + </div> + </aside> + + <main> + <section class="hero"> + <h1>Welcome to Ponyland</h1> + <p>Where magic and friendship come alive!</p> + <div class="pony-container"> + <div class="pony"></div> + </div> + </section> + + <section class="blog-posts"> + <h2>Latest Adventures</h2> + <div class="post-grid"> + <article class="post"> + <h3>Magical Rainbow Bridge</h3> + <p>Discover the secret path to enchanted valleys...</p> + <button class="read-more">Read More</button> + </article> + <article class="post"> + <h3>Crystal Cave Mystery</h3> + <p>Join our adventure into the sparkling depths...</p> + <button class="read-more">Read More</button> + </article> + <article class="post"> + <h3>Flying School</h3> + <p>Learn about our prestigious pegasus academy...</p> + <button class="read-more">Read More</button> + </article> + </div> + </section> + </main> +</div> + +<footer> + <div class="footer-content"> + <p>Made with magic in Ponyland</p> + <nav class="social-links"> + <a href="/social/star">⭐</a> + <a href="/social/heart">💖</a> + <a href="/social/rainbow">🌈</a> + </nav> + </div> +</footer> diff --git a/index.scroll b/index.scroll new file mode 100644 index 0000000..7c8844f --- /dev/null +++ b/index.scroll @@ -0,0 +1,8 @@ +buildHtml +baseUrl https://ponyland.scroll.pub +metaTags +editButton /edit.html +title Ponyland - Magical World of Cartoon Ponies +style.css +body.html +script.js diff --git a/prompt.json b/prompt.json new file mode 100644 index 0000000..66b3223 --- /dev/null +++ b/prompt.json @@ -0,0 +1,20 @@ +{ + "id": "msg_01NQqfgpFefpimbS4XetanKq", + "type": "message", + "role": "assistant", + "model": "claude-3-5-sonnet-20241022", + "content": [ + { + "type": "text", + "text": "I'll create a whimsical pony-themed website. For the domain, I suggest:\n\n---domain---\nponyland.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://ponyland.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Ponyland - Magical World of Cartoon Ponies\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n<header>\n <nav class=\"main-nav\">\n <div class=\"logo\">🦄 Ponyland</div>\n <button class=\"mobile-menu-btn\" aria-label=\"Toggle menu\">≡</button>\n <ul class=\"nav-links\">\n <li><a href=\"/\">Home</a></li>\n <li><a href=\"/gallery\">Gallery</a></li>\n <li><a href=\"/blog\">Blog</a></li>\n <li><a href=\"/about\">About</a></li>\n <li><a href=\"/contact\">Contact</a></li>\n </ul>\n </nav>\n</header>\n\n<div class=\"layout\">\n <aside class=\"sidebar\">\n <div class=\"sidebar-content\">\n <h3>Popular Posts</h3>\n <ul>\n <li><a href=\"/blog/pony-care\">Pony Care Basics</a></li>\n <li><a href=\"/blog/magic\">Magic Spells</a></li>\n <li><a href=\"/blog/friendship\">Friendship Stories</a></li>\n </ul>\n \n <h3>Categories</h3>\n <div class=\"tag-cloud\">\n <button class=\"tag\">Adventure</button>\n <button class=\"tag\">Magic</button>\n <button class=\"tag\">Friends</button>\n <button class=\"tag\">Stories</button>\n </div>\n </div>\n </aside>\n\n <main>\n <section class=\"hero\">\n <h1>Welcome to Ponyland</h1>\n <p>Where magic and friendship come alive!</p>\n <div class=\"pony-container\">\n <div class=\"pony\"></div>\n </div>\n </section>\n\n <section class=\"blog-posts\">\n <h2>Latest Adventures</h2>\n <div class=\"post-grid\">\n <article class=\"post\">\n <h3>Magical Rainbow Bridge</h3>\n <p>Discover the secret path to enchanted valleys...</p>\n <button class=\"read-more\">Read More</button>\n </article>\n <article class=\"post\">\n <h3>Crystal Cave Mystery</h3>\n <p>Join our adventure into the sparkling depths...</p>\n <button class=\"read-more\">Read More</button>\n </article>\n <article class=\"post\">\n <h3>Flying School</h3>\n <p>Learn about our prestigious pegasus academy...</p>\n <button class=\"read-more\">Read More</button>\n </article>\n </div>\n </section>\n </main>\n</div>\n\n<footer>\n <div class=\"footer-content\">\n <p>Made with magic in Ponyland</p>\n <nav class=\"social-links\">\n <a href=\"/social/star\">⭐</a>\n <a href=\"/social/heart\">💖</a>\n <a href=\"/social/rainbow\">🌈</a>\n </nav>\n </div>\n</footer>\n\n---style.css---\n:root {\n --primary: #ff69b4;\n --secondary: #9b4dca;\n --background: #fff8fc;\n --text: #333;\n --shadow: 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: 'Arial', sans-serif;\n background: var(--background);\n color: var(--text);\n line-height: 1.6;\n}\n\n/* Navigation */\n.main-nav {\n background: white;\n padding: 1rem;\n box-shadow: 0 2px 10px var(--shadow);\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: sticky;\n top: 0;\n z-index: 100;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n list-style: none;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n transition: color 0.3s;\n}\n\n.nav-links a:hover {\n color: var(--primary);\n}\n\n/* Layout */\n.layout {\n display: grid;\n grid-template-columns: 250px 1fr;\n gap: 2rem;\n max-width: 1200px;\n margin: 2rem auto;\n padding: 0 1rem;\n}\n\n/* Sidebar */\n.sidebar {\n background: white;\n padding: 1.5rem;\n border-radius: 10px;\n box-shadow: 0 2px 10px var(--shadow);\n}\n\n.tag-cloud {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.tag {\n background: var(--primary);\n color: white;\n border: none;\n padding: 0.5rem 1rem;\n border-radius: 20px;\n cursor: pointer;\n transition: transform 0.3s;\n}\n\n.tag:hover {\n transform: scale(1.05);\n}\n\n/* Hero Section */\n.hero {\n text-align: center;\n padding: 3rem 0;\n}\n\n.pony-container {\n height: 200px;\n position: relative;\n}\n\n.pony {\n width: 100px;\n height: 100px;\n background: var(--primary);\n border-radius: 50%;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n animation: float 3s ease-in-out infinite;\n}\n\n/* Blog Posts */\n.post-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 2rem;\n margin-top: 2rem;\n}\n\n.post {\n background: white;\n padding: 1.5rem;\n border-radius: 10px;\n box-shadow: 0 2px 10px var(--shadow);\n transition: transform 0.3s;\n}\n\n.post:hover {\n transform: translateY(-5px);\n}\n\n.read-more {\n background: var(--secondary);\n color: white;\n border: none;\n padding: 0.5rem 1rem;\n border-radius: 5px;\n margin-top: 1rem;\n cursor: pointer;\n transition: opacity 0.3s;\n}\n\n.read-more:hover {\n opacity: 0.9;\n}\n\n/* Footer */\nfooter {\n background: white;\n padding: 2rem;\n text-align: center;\n margin-top: 4rem;\n}\n\n.social-links {\n display: flex;\n justify-content: center;\n gap: 1rem;\n margin-top: 1rem;\n}\n\n/* Animations */\n@keyframes float {\n 0%, 100% { transform: translateY(0) translateX(-50%); }\n 50% { transform: translateY(-20px) translateX(-50%); }\n}\n\n/* Mobile Responsiveness */\n.mobile-menu-btn {\n display: none;\n font-size: 1.5rem;\n background: none;\n border: none;\n cursor: pointer;\n}\n\n@media (max-width: 768px) {\n .layout {\n grid-template-columns: 1fr;\n }\n \n .mobile-menu-btn {\n display: block;\n }\n \n .nav-links {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: white;\n flex-direction: column;\n padding: 1rem;\n text-align: center;\n }\n \n .nav-links.active {\n display: flex;\n }\n}\n\n---script.js---\n// Mobile menu toggle\nconst menuBtn = document.querySelector('.mobile-menu-btn');\nconst navLinks = document.querySelector('.nav-links');\n\nmenuBtn.addEventListener('click', () => {\n navLinks.classList.toggle('active');\n});\n\n// Animated pony movement\nconst pony = document.querySelector('.pony');\nlet direction = 1;\nlet position = 0;\n\nfunction movePony() {\n position += direction;\n \n if (position > 50 || position < -50) {\n direction *= -1;\n }\n \n pony.style.left = `calc(50% + ${position}px)`;\n requestAnimationFrame(movePony);\n}\n\nmovePony();\n\n// Interactive tags\nconst tags = document.querySelectorAll('.tag');\ntags.forEach(tag => {\n tag.addEventListener('click', () => {\n tag.style.background = `hsl(${Math.random() * 360}, 70%, 60%)`;\n });\n});\n\n// Smooth scroll for navigation links\ndocument.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// Add loading animation for posts\nconst posts = document.querySelectorAll('.post');\nposts.forEach(post => {\n post.addEventListener('click', () => {\n post.style.transform = 'scale(0.98)';\n setTimeout(() => {\n post.style.transform = 'translateY(-5px)';\n }, 200);\n });\n});\n\n---end---\n\nThis creates a delightful, animated pony-themed website with:\n- Responsive navigation with mobile menu\n- Animated floating pony\n- Interactive sidebar with color-changing tags\n- Blog post grid with hover effects\n- Smooth animations and transitions\n- Full mobile responsiveness\n- Clean, semantic HTML structure\n- Modern CSS with variables and animations\n- Interactive JavaScript features\n\nThe design uses a playful color scheme while maintaining professionalism, and includes accessibility features like proper ARIA labels and semantic HTML structure." + } + ], + "stop_reason": "end_turn", + "stop_sequence": null, + "usage": { + "input_tokens": 288, + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "output_tokens": 2698 + } +} \ No newline at end of file diff --git a/readme.scroll b/readme.scroll new file mode 100644 index 0000000..9f0f74f --- /dev/null +++ b/readme.scroll @@ -0,0 +1,2 @@ +# ponyland.scroll.pub +Website generated by Claude from prompt: Beautiful website with cartoon ponies animated js a lot of buttons, navigation, sidebar and blog \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..d85e004 --- /dev/null +++ b/script.js @@ -0,0 +1,54 @@ +// Mobile menu toggle +const menuBtn = document.querySelector('.mobile-menu-btn'); +const navLinks = document.querySelector('.nav-links'); + +menuBtn.addEventListener('click', () => { + navLinks.classList.toggle('active'); +}); + +// Animated pony movement +const pony = document.querySelector('.pony'); +let direction = 1; +let position = 0; + +function movePony() { + position += direction; + + if (position > 50 || position < -50) { + direction *= -1; + } + + pony.style.left = `calc(50% + ${position}px)`; + requestAnimationFrame(movePony); +} + +movePony(); + +// Interactive tags +const tags = document.querySelectorAll('.tag'); +tags.forEach(tag => { + tag.addEventListener('click', () => { + tag.style.background = `hsl(${Math.random() * 360}, 70%, 60%)`; + }); +}); + +// Smooth scroll for navigation links +document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + document.querySelector(this.getAttribute('href')).scrollIntoView({ + behavior: 'smooth' + }); + }); +}); + +// Add loading animation for posts +const posts = document.querySelectorAll('.post'); +posts.forEach(post => { + post.addEventListener('click', () => { + post.style.transform = 'scale(0.98)'; + setTimeout(() => { + post.style.transform = 'translateY(-5px)'; + }, 200); + }); +}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..8e4b805 --- /dev/null +++ b/style.css @@ -0,0 +1,206 @@ +:root { + --primary: #ff69b4; + --secondary: #9b4dca; + --background: #fff8fc; + --text: #333; + --shadow: rgba(0,0,0,0.1); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Arial', sans-serif; + background: var(--background); + color: var(--text); + line-height: 1.6; +} + +/* Navigation */ +.main-nav { + background: white; + padding: 1rem; + box-shadow: 0 2px 10px var(--shadow); + display: flex; + justify-content: space-between; + align-items: center; + position: sticky; + top: 0; + z-index: 100; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; + list-style: none; + gap: 2rem; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + transition: color 0.3s; +} + +.nav-links a:hover { + color: var(--primary); +} + +/* Layout */ +.layout { + display: grid; + grid-template-columns: 250px 1fr; + gap: 2rem; + max-width: 1200px; + margin: 2rem auto; + padding: 0 1rem; +} + +/* Sidebar */ +.sidebar { + background: white; + padding: 1.5rem; + border-radius: 10px; + box-shadow: 0 2px 10px var(--shadow); +} + +.tag-cloud { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; +} + +.tag { + background: var(--primary); + color: white; + border: none; + padding: 0.5rem 1rem; + border-radius: 20px; + cursor: pointer; + transition: transform 0.3s; +} + +.tag:hover { + transform: scale(1.05); +} + +/* Hero Section */ +.hero { + text-align: center; + padding: 3rem 0; +} + +.pony-container { + height: 200px; + position: relative; +} + +.pony { + width: 100px; + height: 100px; + background: var(--primary); + border-radius: 50%; + position: absolute; + left: 50%; + transform: translateX(-50%); + animation: float 3s ease-in-out infinite; +} + +/* Blog Posts */ +.post-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + margin-top: 2rem; +} + +.post { + background: white; + padding: 1.5rem; + border-radius: 10px; + box-shadow: 0 2px 10px var(--shadow); + transition: transform 0.3s; +} + +.post:hover { + transform: translateY(-5px); +} + +.read-more { + background: var(--secondary); + color: white; + border: none; + padding: 0.5rem 1rem; + border-radius: 5px; + margin-top: 1rem; + cursor: pointer; + transition: opacity 0.3s; +} + +.read-more:hover { + opacity: 0.9; +} + +/* Footer */ +footer { + background: white; + padding: 2rem; + text-align: center; + margin-top: 4rem; +} + +.social-links { + display: flex; + justify-content: center; + gap: 1rem; + margin-top: 1rem; +} + +/* Animations */ +@keyframes float { + 0%, 100% { transform: translateY(0) translateX(-50%); } + 50% { transform: translateY(-20px) translateX(-50%); } +} + +/* Mobile Responsiveness */ +.mobile-menu-btn { + display: none; + font-size: 1.5rem; + background: none; + border: none; + cursor: pointer; +} + +@media (max-width: 768px) { + .layout { + grid-template-columns: 1fr; + } + + .mobile-menu-btn { + display: block; + } + + .nav-links { + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + background: white; + flex-direction: column; + padding: 1rem; + text-align: center; + } + + .nav-links.active { + display: flex; + } +}