Changes to visionbot.scroll.pub

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

Automate Any Device with Computer Vision

+

Control phones, laptops, and tablets using intelligent automation. No coding required.

+
+
+
+
+
+
+
+
+
+

Why Choose VisionBot

+
+
+
👁️
+

Visual Recognition

+

Accurately identify and interact with any UI element across devices

+
+
+
🤖
+

Smart Automation

+

Create complex workflows with our intuitive drag-and-drop builder

+
+
+
📱
+

Cross-Device

+

Works seamlessly across iOS, Android, Windows and macOS

+
+
+
🔒
+

Secure & Private

+

Enterprise-grade security with end-to-end encryption

+
+
+
+
+
+

How It Works

+
+
+
1
+

Connect Your Device

+

Install our secure agent on any device you want to automate

+
+
+
2
+

Create Workflows

+

Design your automation flows with our visual builder

+
+
+
3
+

Run & Monitor

+

Execute workflows and track performance in real-time

+
+
+
+
+
+
+

Ready to Get Started?

+

Join thousands of companies automating their workflows with VisionBot

+
+
+
+
+
+
+
+
+
+
+
+

VisionBot

+

The future of device automation

+
+
+

Links

+
+
+
index.scroll
Changed around line 1
+ buildHtml
+ baseUrl https://visionbot.scroll.pub
+ metaTags
+ editButton /edit.html
+ title VisionBot - Automate Your Devices with Computer Vision
+ style.css
+ body.html
+ script.js
prompt.json
Changed around line 1
+ {
+ "id": "msg_01YCZDA1eSooK7REESrH1JdC",
+ "type": "message",
+ "role": "assistant",
+ "model": "claude-3-5-sonnet-20241022",
+ "content": [
+ {
+ "type": "text",
+ "text": "I'll help create a landing page for this computer vision automation platform. For the domain, I suggest:\n\n---domain---\nvisionbot.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://visionbot.scroll.pub\nmetaTags\neditButton /edit.html\ntitle VisionBot - Automate Your Devices with Computer Vision\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n
\n \n
\n\n
\n
\n
\n

Automate Any Device with Computer Vision

\n

Control phones, laptops, and tablets using intelligent automation. No coding required.

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

Why Choose VisionBot

\n
\n
\n
👁️
\n

Visual Recognition

\n

Accurately identify and interact with any UI element across devices

\n
\n
\n
🤖
\n

Smart Automation

\n

Create complex workflows with our intuitive drag-and-drop builder

\n
\n
\n
📱
\n

Cross-Device

\n

Works seamlessly across iOS, Android, Windows and macOS

\n
\n
\n
🔒
\n

Secure & Private

\n

Enterprise-grade security with end-to-end encryption

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

How It Works

\n
\n
\n
1
\n

Connect Your Device

\n

Install our secure agent on any device you want to automate

\n
\n
\n
2
\n

Create Workflows

\n

Design your automation flows with our visual builder

\n
\n
\n
3
\n

Run & Monitor

\n

Execute workflows and track performance in real-time

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

Ready to Get Started?

\n

Join thousands of companies automating their workflows with VisionBot

\n
\n \n \n
\n
\n
\n
\n\n\n\n---style.css---\n:root {\n --primary-color: #6366f1;\n --secondary-color: #818cf8;\n --text-color: #1f2937;\n --background-color: #ffffff;\n --accent-color: #c7d2fe;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n color: var(--text-color);\n line-height: 1.6;\n}\n\n.header {\n position: fixed;\n width: 100%;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(10px);\n z-index: 100;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n}\n\nnav {\n max-width: 1200px;\n margin: 0 auto;\n padding: 1rem 2rem;\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(135deg, var(--primary-color), var(--secondary-color));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n\n.nav-links a {\n margin-left: 2rem;\n text-decoration: none;\n color: var(--text-color);\n transition: color 0.3s ease;\n}\n\n.nav-links a:hover {\n color: var(--primary-color);\n}\n\n.cta-button {\n background: var(--primary-color);\n color: white !important;\n padding: 0.5rem 1rem;\n border-radius: 0.5rem;\n}\n\n.hero {\n min-height: 100vh;\n display: flex;\n align-items: center;\n padding: 6rem 2rem 2rem;\n background: linear-gradient(135deg, #f8fafc, #f1f5f9);\n position: relative;\n overflow: hidden;\n}\n\n.hero-content {\n max-width: 600px;\n z-index: 1;\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-image {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 50%;\n height: 100%;\n}\n\n.floating-device {\n position: absolute;\n width: 300px;\n height: 600px;\n background: var(--background-color);\n border-radius: 2rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n animation: float 6s ease-in-out infinite;\n}\n\n.floating-circles {\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n}\n\n.floating-circles::before,\n.floating-circles::after {\n content: '';\n position: absolute;\n width: 200px;\n height: 200px;\n border-radius: 50%;\n background: var(--accent-color);\n animation: pulse 4s ease-in-out infinite;\n}\n\n.floating-circles::after {\n right: 0;\n animation-delay: -2s;\n}\n\n.primary-button {\n background: var(--primary-color);\n color: white;\n border: none;\n padding: 1rem 2rem;\n border-radius: 0.5rem;\n font-size: 1.1rem;\n cursor: pointer;\n transition: transform 0.3s ease;\n}\n\n.primary-button:hover {\n transform: translateY(-2px);\n}\n\n.features {\n padding: 6rem 2rem;\n background: var(--background-color);\n}\n\n.feature-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n max-width: 1200px;\n margin: 3rem auto 0;\n}\n\n.feature-card {\n padding: 2rem;\n border-radius: 1rem;\n background: white;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n transition: transform 0.3s ease;\n}\n\n.feature-card:hover {\n transform: translateY(-5px);\n}\n\n.feature-icon {\n font-size: 2rem;\n margin-bottom: 1rem;\n}\n\n.how-it-works {\n padding: 6rem 2rem;\n background: linear-gradient(135deg, #f8fafc, #f1f5f9);\n}\n\n.steps {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n max-width: 1200px;\n margin: 3rem auto 0;\n}\n\n.step {\n text-align: center;\n padding: 2rem;\n}\n\n.step-number {\n width: 3rem;\n height: 3rem;\n background: var(--primary-color);\n color: white;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 auto 1rem;\n font-size: 1.5rem;\n font-weight: bold;\n}\n\n.contact {\n padding: 6rem 2rem;\n background: var(--background-color);\n}\n\n.contact-card {\n max-width: 600px;\n margin: 0 auto;\n text-align: center;\n padding: 3rem;\n background: white;\n border-radius: 1rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n}\n\nform {\n display: flex;\n gap: 1rem;\n margin-top: 2rem;\n}\n\ninput[type=\"email\"] {\n flex: 1;\n padding: 1rem;\n border: 2px solid #e5e7eb;\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n\nfooter {\n background: var(--text-color);\n color: white;\n padding: 4rem 2rem;\n}\n\n.footer-content {\n max-width: 1200px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 2rem;\n}\n\n.footer-section a {\n display: block;\n color: white;\n text-decoration: none;\n margin-top: 0.5rem;\n}\n\n@keyframes float {\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-20px); }\n}\n\n@keyframes pulse {\n 0%, 100% { transform: scale(1); opacity: 0.5; }\n 50% { transform: scale(1.1); opacity: 0.3; }\n}\n\n@media (max-width: 768px) {\n .hero {\n text-align: center;\n padding-top: 8rem;\n }\n \n .hero h1 {\n font-size: 2.5rem;\n }\n \n .hero-image {\n display: none;\n }\n \n .nav-links {\n display: none;\n }\n \n form {\n flex-direction: column;\n }\n \n .feature-grid {\n grid-template-columns: 1fr;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n // Smooth scrolling 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 }\n });\n });\n\n // Form submission handling\n const contactForm = document.getElementById('contact-form');\n if (contactForm) {\n contactForm.addEventListener('submit', (e) => {\n e.preventDefault();\n const email = e.target.querySelector('input[type=\"email\"]').value;\n \n // Simulate form submission\n const button = e.target.querySelector('button');\n const originalText = button.textContent;\n button.textContent = 'Sending...';\n button.disabled = true;\n\n setTimeout(() => {\n button.textContent = 'Thanks for joining!';\n setTimeout(() => {\n button.textContent = originalText;\n button.disabled = false;\n e.target.reset();\n }, 2000);\n }, 1500);\n });\n }\n\n // Add scroll-based animations\n const observerOptions = {\n threshold: 0.1,\n rootMargin: '0px 0px -50px 0px'\n };\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n entry.target.style.opacity = '1';\n entry.target.style.transform = 'translateY(0)';\n }\n });\n }, observerOptions);\n\n document.querySelectorAll('.feature-card, .step, .contact-card').forEach(el => {\n el.style.opacity = '0';\n el.style.transform = 'translateY(20px)';\n el.style.transition = 'all 0.6s ease-out';\n observer.observe(el);\n });\n});\n\n---end---\n\nThis implementation creates a modern, professional landing page for VisionBot with smooth animations, responsive design, and interactive elements. Key features include:\n\n1. Gradient text and button effects\n2. Floating device animation in the hero section\n3. Intersection Observer for scroll-based animations\n4. Smooth scrolling navigation\n5. Responsive grid layouts\n6. Interactive form with feedback\n7. Modern glass-morphism header\n8. Accessible semantic HTML\n9. Mobile-first approach\n10. Optimized performance with minimal JavaScript\n\nThe design uses a cool purple/indigo color scheme that conveys trust and innovation, with smooth transitions and subtle animations throughout. The layout is clean and focuses on the key benefits and features of the platform."
+ }
+ ],
+ "stop_reason": "end_turn",
+ "stop_sequence": null,
+ "usage": {
+ "input_tokens": 302,
+ "cache_creation_input_tokens": 0,
+ "cache_read_input_tokens": 0,
+ "output_tokens": 3962
+ }
+ }
readme.scroll
Changed around line 1
+ # visionbot.scroll.pub
+
+ website generated by Claude from prompt: make a landing page, of computer use agents that can navigate mobile phones, laptops using computer vision. Think of it as Zapier but with computer vision
script.js
Changed around line 1
+ document.addEventListener('DOMContentLoaded', () => {
+ // Smooth scrolling 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'
+ });
+ }
+ });
+ });
+
+ // Form submission handling
+ const contactForm = document.getElementById('contact-form');
+ if (contactForm) {
+ contactForm.addEventListener('submit', (e) => {
+ e.preventDefault();
+ const email = e.target.querySelector('input[type="email"]').value;
+
+ // Simulate form submission
+ const button = e.target.querySelector('button');
+ const originalText = button.textContent;
+ button.textContent = 'Sending...';
+ button.disabled = true;
+
+ setTimeout(() => {
+ button.textContent = 'Thanks for joining!';
+ setTimeout(() => {
+ button.textContent = originalText;
+ button.disabled = false;
+ e.target.reset();
+ }, 2000);
+ }, 1500);
+ });
+ }
+
+ // Add scroll-based animations
+ const observerOptions = {
+ threshold: 0.1,
+ rootMargin: '0px 0px -50px 0px'
+ };
+
+ const observer = new IntersectionObserver((entries) => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ entry.target.style.opacity = '1';
+ entry.target.style.transform = 'translateY(0)';
+ }
+ });
+ }, observerOptions);
+
+ document.querySelectorAll('.feature-card, .step, .contact-card').forEach(el => {
+ el.style.opacity = '0';
+ el.style.transform = 'translateY(20px)';
+ el.style.transition = 'all 0.6s ease-out';
+ observer.observe(el);
+ });
+ });
style.css
Changed around line 1
+ :root {
+ --primary-color: #6366f1;
+ --secondary-color: #818cf8;
+ --text-color: #1f2937;
+ --background-color: #ffffff;
+ --accent-color: #c7d2fe;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ }
+
+ body {
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ color: var(--text-color);
+ line-height: 1.6;
+ }
+
+ .header {
+ position: fixed;
+ width: 100%;
+ background: rgba(255, 255, 255, 0.95);
+ backdrop-filter: blur(10px);
+ z-index: 100;
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+ }
+
+ nav {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 1rem 2rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+
+ .logo {
+ font-size: 1.5rem;
+ font-weight: bold;
+ background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+
+ .nav-links a {
+ margin-left: 2rem;
+ text-decoration: none;
+ color: var(--text-color);
+ transition: color 0.3s ease;
+ }
+
+ .nav-links a:hover {
+ color: var(--primary-color);
+ }
+
+ .cta-button {
+ background: var(--primary-color);
+ color: white !important;
+ padding: 0.5rem 1rem;
+ border-radius: 0.5rem;
+ }
+
+ .hero {
+ min-height: 100vh;
+ display: flex;
+ align-items: center;
+ padding: 6rem 2rem 2rem;
+ background: linear-gradient(135deg, #f8fafc, #f1f5f9);
+ position: relative;
+ overflow: hidden;
+ }
+
+ .hero-content {
+ max-width: 600px;
+ z-index: 1;
+ }
+
+ .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-image {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 50%;
+ height: 100%;
+ }
+
+ .floating-device {
+ position: absolute;
+ width: 300px;
+ height: 600px;
+ background: var(--background-color);
+ border-radius: 2rem;
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
+ animation: float 6s ease-in-out infinite;
+ }
+
+ .floating-circles {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0.5;
+ }
+
+ .floating-circles::before,
+ .floating-circles::after {
+ content: '';
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ border-radius: 50%;
+ background: var(--accent-color);
+ animation: pulse 4s ease-in-out infinite;
+ }
+
+ .floating-circles::after {
+ right: 0;
+ animation-delay: -2s;
+ }
+
+ .primary-button {
+ background: var(--primary-color);
+ color: white;
+ border: none;
+ padding: 1rem 2rem;
+ border-radius: 0.5rem;
+ font-size: 1.1rem;
+ cursor: pointer;
+ transition: transform 0.3s ease;
+ }
+
+ .primary-button:hover {
+ transform: translateY(-2px);
+ }
+
+ .features {
+ padding: 6rem 2rem;
+ background: var(--background-color);
+ }
+
+ .feature-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ max-width: 1200px;
+ margin: 3rem auto 0;
+ }
+
+ .feature-card {
+ padding: 2rem;
+ border-radius: 1rem;
+ background: white;
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
+ transition: transform 0.3s ease;
+ }
+
+ .feature-card:hover {
+ transform: translateY(-5px);
+ }
+
+ .feature-icon {
+ font-size: 2rem;
+ margin-bottom: 1rem;
+ }
+
+ .how-it-works {
+ padding: 6rem 2rem;
+ background: linear-gradient(135deg, #f8fafc, #f1f5f9);
+ }
+
+ .steps {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ max-width: 1200px;
+ margin: 3rem auto 0;
+ }
+
+ .step {
+ text-align: center;
+ padding: 2rem;
+ }
+
+ .step-number {
+ width: 3rem;
+ height: 3rem;
+ background: var(--primary-color);
+ color: white;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 0 auto 1rem;
+ font-size: 1.5rem;
+ font-weight: bold;
+ }
+
+ .contact {
+ padding: 6rem 2rem;
+ background: var(--background-color);
+ }
+
+ .contact-card {
+ max-width: 600px;
+ margin: 0 auto;
+ text-align: center;
+ padding: 3rem;
+ background: white;
+ border-radius: 1rem;
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
+ }
+
+ form {
+ display: flex;
+ gap: 1rem;
+ margin-top: 2rem;
+ }
+
+ input[type="email"] {
+ flex: 1;
+ padding: 1rem;
+ border: 2px solid #e5e7eb;
+ border-radius: 0.5rem;
+ font-size: 1rem;
+ }
+
+ footer {
+ background: var(--text-color);
+ color: white;
+ padding: 4rem 2rem;
+ }
+
+ .footer-content {
+ max-width: 1200px;
+ margin: 0 auto;
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+ gap: 2rem;
+ }
+
+ .footer-section a {
+ display: block;
+ color: white;
+ text-decoration: none;
+ margin-top: 0.5rem;
+ }
+
+ @keyframes float {
+ 0%, 100% { transform: translateY(0); }
+ 50% { transform: translateY(-20px); }
+ }
+
+ @keyframes pulse {
+ 0%, 100% { transform: scale(1); opacity: 0.5; }
+ 50% { transform: scale(1.1); opacity: 0.3; }
+ }
+
+ @media (max-width: 768px) {
+ .hero {
+ text-align: center;
+ padding-top: 8rem;
+ }
+
+ .hero h1 {
+ font-size: 2.5rem;
+ }
+
+ .hero-image {
+ display: none;
+ }
+
+ .nav-links {
+ display: none;
+ }
+
+ form {
+ flex-direction: column;
+ }
+
+ .feature-grid {
+ grid-template-columns: 1fr;
+ }
+ }