Changes to wonder.scroll.pub

root
root
24 days ago
Initial commit
body.html
Changed around line 1
+
+
+
+
+
+
+
+
+
+
+
+

Welcome to Wonder

+

Every visit brings a new surprise

+
+
+
+
+
+

Dynamic

+

Watch as elements come to life

+
+
+

Interactive

+

Play with the particles

+
+
+

Responsive

+

Beautiful on all devices

+
+
+
+
+
+

Made with imagination by Wonder

+
index.scroll
Changed around line 1
+ buildHtml
+ baseUrl https://wonder.scroll.pub
+ metaTags
+ editButton /edit.html
+ title Wonder - A Delightful Surprise
+ style.css
+ body.html
+ script.js
prompt.json
Changed around line 1
+ {
+ "id": "msg_01RxbmLgShJ4DXfrzC4gVpBL",
+ "type": "message",
+ "role": "assistant",
+ "model": "claude-3-5-sonnet-20241022",
+ "content": [
+ {
+ "type": "text",
+ "text": "I'll create a mesmerizing website with smooth animations and an interactive particle effect background. For a surprise-themed domain, I suggest:\n\n---domain---\nwonder.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://wonder.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Wonder - A Delightful Surprise\nstyle.css\nbody.html\nscript.js\n---body.html---\n
\n \n
\n\n
\n
\n \n
\n

Welcome to Wonder

\n

Every visit brings a new surprise

\n \n
\n\n
\n
\n

Dynamic

\n

Watch as elements come to life

\n
\n
\n

Interactive

\n

Play with the particles

\n
\n
\n

Responsive

\n

Beautiful on all devices

\n
\n
\n
\n\n
\n

Made with imagination by Wonder

\n
\n---style.css---\n:root {\n --primary: #ff6b6b;\n --secondary: #4ecdc4;\n --bg: #ffffff;\n --text: #2d3436;\n --transition: all 0.3s ease;\n}\n\n[data-theme=\"dark\"] {\n --bg: #2d3436;\n --text: #ffffff;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: system-ui, sans-serif;\n background: var(--bg);\n color: var(--text);\n transition: var(--transition);\n min-height: 100vh;\n overflow-x: hidden;\n}\n\n#particles {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n}\n\nnav {\n display: flex;\n justify-content: space-between;\n padding: 1rem 2rem;\n align-items: center;\n}\n\n.logo {\n font-size: 2rem;\n animation: spin 4s linear infinite;\n}\n\n.theme-toggle {\n background: none;\n border: none;\n font-size: 1.5rem;\n cursor: pointer;\n transition: var(--transition);\n}\n\n.theme-toggle:hover {\n transform: rotate(360deg);\n}\n\n.hero {\n text-align: center;\n padding: 4rem 1rem;\n min-height: 60vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 2rem;\n}\n\nh1 {\n font-size: clamp(2rem, 8vw, 4rem);\n line-height: 1.1;\n}\n\n.gradient-text {\n background: linear-gradient(45deg, var(--primary), var(--secondary));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n}\n\n.subtitle {\n font-size: clamp(1rem, 4vw, 1.5rem);\n opacity: 0.8;\n}\n\n.surprise-btn {\n padding: 1rem 2rem;\n font-size: 1.1rem;\n border: none;\n border-radius: 50px;\n background: linear-gradient(45deg, var(--primary), var(--secondary));\n color: white;\n cursor: pointer;\n transition: var(--transition);\n}\n\n.surprise-btn:hover {\n transform: scale(1.05);\n box-shadow: 0 10px 20px rgba(0,0,0,0.1);\n}\n\n.features {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n padding: 2rem;\n max-width: 1200px;\n margin: 0 auto;\n}\n\n.feature-card {\n padding: 2rem;\n border-radius: 20px;\n background: rgba(255,255,255,0.1);\n backdrop-filter: blur(10px);\n border: 1px solid rgba(255,255,255,0.2);\n transition: var(--transition);\n}\n\n.feature-card:hover {\n transform: translateY(-10px);\n}\n\nfooter {\n text-align: center;\n padding: 2rem;\n margin-top: 4rem;\n}\n\n@keyframes spin {\n to { transform: rotate(360deg); }\n}\n\n@media (max-width: 768px) {\n .features {\n grid-template-columns: 1fr;\n }\n}\n---script.js---\n// Particle system\nclass Particle {\n constructor() {\n this.x = Math.random() * window.innerWidth;\n this.y = Math.random() * window.innerHeight;\n this.size = Math.random() * 5 + 1;\n this.speedX = Math.random() * 3 - 1.5;\n this.speedY = Math.random() * 3 - 1.5;\n }\n\n update() {\n this.x += this.speedX;\n this.y += this.speedY;\n\n if (this.x > window.innerWidth || this.x < 0) this.speedX *= -1;\n if (this.y > window.innerHeight || this.y < 0) this.speedY *= -1;\n }\n\n draw(ctx) {\n ctx.fillStyle = 'rgba(255,107,107,0.1)';\n ctx.beginPath();\n ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);\n ctx.fill();\n }\n}\n\n// Initialize canvas\nconst canvas = document.getElementById('particles');\nconst ctx = canvas.getContext('2d');\ncanvas.width = window.innerWidth;\ncanvas.height = window.innerHeight;\n\nlet particles = [];\nfor (let i = 0; i < 50; i++) {\n particles.push(new Particle());\n}\n\nfunction animate() {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n particles.forEach(particle => {\n particle.update();\n particle.draw(ctx);\n });\n requestAnimationFrame(animate);\n}\n\nanimate();\n\n// Theme toggler\nconst themeToggle = document.querySelector('.theme-toggle');\nthemeToggle.addEventListener('click', () => {\n document.body.dataset.theme = \n document.body.dataset.theme === 'dark' ? 'light' : 'dark';\n});\n\n// Surprise button\nconst surpriseBtn = document.querySelector('.surprise-btn');\nsurpriseBtn.addEventListener('click', () => {\n const surprises = [\n '🎉', '🌈', '✨', '🎨', '🎭', '🎪', '🎯', '🎲'\n ];\n const randomSurprise = surprises[Math.floor(Math.random() * surprises.length)];\n surpriseBtn.textContent = randomSurprise;\n setTimeout(() => {\n surpriseBtn.textContent = 'Click for Magic';\n }, 1000);\n});\n\n// Resize handler\nwindow.addEventListener('resize', () => {\n canvas.width = window.innerWidth;\n canvas.height = window.innerHeight;\n});\n---end---\n\nThis creates a delightful, interactive website with:\n- Floating particle background effect\n- Dark/light theme toggle\n- Smooth animations and transitions\n- Interactive surprise button\n- Gradient text and glass-morphism cards\n- Fully responsive design\n- Accessible controls\n- Clean, semantic HTML\n- Modern CSS features including CSS variables, clamp(), and backdrop-filter\n- Vanilla JavaScript with canvas animations\n\nThe particles respond to window resizing, the theme toggle has a smooth transition, and the surprise button reveals random emojis. The design is clean yet engaging, with subtle animations throughout."
+ }
+ ],
+ "stop_reason": "end_turn",
+ "stop_sequence": null,
+ "usage": {
+ "input_tokens": 273,
+ "cache_creation_input_tokens": 0,
+ "cache_read_input_tokens": 0,
+ "output_tokens": 2185
+ }
+ }
readme.scroll
Changed around line 1
+ # wonder.scroll.pub
+ Website generated by Claude from prompt: Surprise me
script.js
Changed around line 1
+ // Particle system
+ class Particle {
+ constructor() {
+ this.x = Math.random() * window.innerWidth;
+ this.y = Math.random() * window.innerHeight;
+ this.size = Math.random() * 5 + 1;
+ this.speedX = Math.random() * 3 - 1.5;
+ this.speedY = Math.random() * 3 - 1.5;
+ }
+
+ update() {
+ this.x += this.speedX;
+ this.y += this.speedY;
+
+ if (this.x > window.innerWidth || this.x < 0) this.speedX *= -1;
+ if (this.y > window.innerHeight || this.y < 0) this.speedY *= -1;
+ }
+
+ draw(ctx) {
+ ctx.fillStyle = 'rgba(255,107,107,0.1)';
+ ctx.beginPath();
+ ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
+ ctx.fill();
+ }
+ }
+
+ // Initialize canvas
+ const canvas = document.getElementById('particles');
+ const ctx = canvas.getContext('2d');
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+
+ let particles = [];
+ for (let i = 0; i < 50; i++) {
+ particles.push(new Particle());
+ }
+
+ function animate() {
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
+ particles.forEach(particle => {
+ particle.update();
+ particle.draw(ctx);
+ });
+ requestAnimationFrame(animate);
+ }
+
+ animate();
+
+ // Theme toggler
+ const themeToggle = document.querySelector('.theme-toggle');
+ themeToggle.addEventListener('click', () => {
+ document.body.dataset.theme =
+ document.body.dataset.theme === 'dark' ? 'light' : 'dark';
+ });
+
+ // Surprise button
+ const surpriseBtn = document.querySelector('.surprise-btn');
+ surpriseBtn.addEventListener('click', () => {
+ const surprises = [
+ '🎉', '🌈', '✨', '🎨', '🎭', '🎪', '🎯', '🎲'
+ ];
+ const randomSurprise = surprises[Math.floor(Math.random() * surprises.length)];
+ surpriseBtn.textContent = randomSurprise;
+ setTimeout(() => {
+ surpriseBtn.textContent = 'Click for Magic';
+ }, 1000);
+ });
+
+ // Resize handler
+ window.addEventListener('resize', () => {
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+ });
style.css
Changed around line 1
+ :root {
+ --primary: #ff6b6b;
+ --secondary: #4ecdc4;
+ --bg: #ffffff;
+ --text: #2d3436;
+ --transition: all 0.3s ease;
+ }
+
+ [data-theme="dark"] {
+ --bg: #2d3436;
+ --text: #ffffff;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ }
+
+ body {
+ font-family: system-ui, sans-serif;
+ background: var(--bg);
+ color: var(--text);
+ transition: var(--transition);
+ min-height: 100vh;
+ overflow-x: hidden;
+ }
+
+ #particles {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ }
+
+ nav {
+ display: flex;
+ justify-content: space-between;
+ padding: 1rem 2rem;
+ align-items: center;
+ }
+
+ .logo {
+ font-size: 2rem;
+ animation: spin 4s linear infinite;
+ }
+
+ .theme-toggle {
+ background: none;
+ border: none;
+ font-size: 1.5rem;
+ cursor: pointer;
+ transition: var(--transition);
+ }
+
+ .theme-toggle:hover {
+ transform: rotate(360deg);
+ }
+
+ .hero {
+ text-align: center;
+ padding: 4rem 1rem;
+ min-height: 60vh;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ gap: 2rem;
+ }
+
+ h1 {
+ font-size: clamp(2rem, 8vw, 4rem);
+ line-height: 1.1;
+ }
+
+ .gradient-text {
+ background: linear-gradient(45deg, var(--primary), var(--secondary));
+ -webkit-background-clip: text;
+ background-clip: text;
+ color: transparent;
+ }
+
+ .subtitle {
+ font-size: clamp(1rem, 4vw, 1.5rem);
+ opacity: 0.8;
+ }
+
+ .surprise-btn {
+ padding: 1rem 2rem;
+ font-size: 1.1rem;
+ border: none;
+ border-radius: 50px;
+ background: linear-gradient(45deg, var(--primary), var(--secondary));
+ color: white;
+ cursor: pointer;
+ transition: var(--transition);
+ }
+
+ .surprise-btn:hover {
+ transform: scale(1.05);
+ box-shadow: 0 10px 20px rgba(0,0,0,0.1);
+ }
+
+ .features {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ padding: 2rem;
+ max-width: 1200px;
+ margin: 0 auto;
+ }
+
+ .feature-card {
+ padding: 2rem;
+ border-radius: 20px;
+ background: rgba(255,255,255,0.1);
+ backdrop-filter: blur(10px);
+ border: 1px solid rgba(255,255,255,0.2);
+ transition: var(--transition);
+ }
+
+ .feature-card:hover {
+ transform: translateY(-10px);
+ }
+
+ footer {
+ text-align: center;
+ padding: 2rem;
+ margin-top: 4rem;
+ }
+
+ @keyframes spin {
+ to { transform: rotate(360deg); }
+ }
+
+ @media (max-width: 768px) {
+ .features {
+ grid-template-columns: 1fr;
+ }
+ }