jensvde commited on
Commit
ea61761
·
verified ·
1 Parent(s): 46cb180

rubberdaken

Browse files
Files changed (2) hide show
  1. README.md +8 -5
  2. index.html +275 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Rubberduck Debugging Assistant
3
- emoji: 📊
4
- colorFrom: indigo
5
- colorTo: blue
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: RubberDuck Debugging Assistant 🦆
3
+ colorFrom: pink
4
+ colorTo: green
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://deepsite.hf.co).
index.html CHANGED
@@ -1,19 +1,276 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>RubberDuck - Debugging Assistant</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.net.min.js"></script>
11
+ <script>
12
+ tailwind.config = {
13
+ theme: {
14
+ extend: {
15
+ colors: {
16
+ primary: {
17
+ 50: '#f0f9ff',
18
+ 100: '#e0f2fe',
19
+ 200: '#bae6fd',
20
+ 300: '#7dd3fc',
21
+ 400: '#38bdf8',
22
+ 500: '#0ea5e9',
23
+ 600: '#0284c7',
24
+ 700: '#0369a1',
25
+ 800: '#075985',
26
+ 900: '#0c4a6e',
27
+ },
28
+ secondary: {
29
+ 50: '#fefce8',
30
+ 100: '#fef9c3',
31
+ 200: '#fef08a',
32
+ 300: '#fde047',
33
+ 400: '#facc15',
34
+ 500: '#eab308',
35
+ 600: '#ca8a04',
36
+ 700: '#a16207',
37
+ 800: '#854d0e',
38
+ 900: '#713f12',
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ </script>
45
+ <style>
46
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
47
+ body {
48
+ font-family: 'Inter', sans-serif;
49
+ }
50
+ .typing-cursor {
51
+ animation: blink 1s infinite;
52
+ }
53
+ @keyframes blink {
54
+ 0%, 100% { opacity: 1; }
55
+ 50% { opacity: 0; }
56
+ }
57
+ .duck-animation {
58
+ transition: all 0.3s ease;
59
+ }
60
+ .duck-animation:hover {
61
+ transform: rotate(-5deg) scale(1.05);
62
+ }
63
+ .message-bubble {
64
+ animation: fadeInUp 0.5s ease-out;
65
+ }
66
+ @keyframes fadeInUp {
67
+ from {
68
+ opacity: 0;
69
+ transform: translateY(20px);
70
+ }
71
+ to {
72
+ opacity: 1;
73
+ transform: translateY(0);
74
+ }
75
+ }
76
+ </style>
77
+ </head>
78
+ <body class="bg-gradient-to-br from-primary-50 to-secondary-50 min-h-screen">
79
+ <div id="vanta-bg" class="fixed inset-0 z-0"></div>
80
+
81
+ <!-- Header -->
82
+ <header class="relative z-10 bg-white/80 backdrop-blur-sm border-b border-primary-200">
83
+ <div class="container mx-auto px-4 py-4">
84
+ <div class="flex items-center justify-between">
85
+ <div class="flex items-center space-x-3">
86
+ <div class="bg-primary-500 p-2 rounded-full duck-animation">
87
+ <i data-feather="help-circle" class="text-white w-6 h-6"></i>
88
+ </div>
89
+ <h1 class="text-2xl font-bold text-primary-800">RubberDuck 🦆</h1>
90
+ </div>
91
+ <nav class="hidden md:flex space-x-6">
92
+ <a href="#features" class="text-primary-700 hover:text-primary-500 font-medium transition-colors">Features</a>
93
+ <a href="#how-it-works" class="text-primary-700 hover:text-primary-500 font-medium transition-colors">How It Works</a>
94
+ <a href="#try-it" class="text-primary-700 hover:text-primary-500 font-medium transition-colors">Try It</a>
95
+ </nav>
96
+ <button class="bg-primary-500 text-white px-4 py-2 rounded-lg hover:bg-primary-600 transition-colors font-medium">
97
+ Get Started
98
+ </button>
99
+ </div>
100
+ </div>
101
+ </header>
102
+
103
+ <!-- Hero Section -->
104
+ <section class="relative z-10 py-20 px-4">
105
+ <div class="container mx-auto max-w-4xl text-center">
106
+ <div class="bg-white/60 backdrop-blur-sm rounded-2xl p-8 shadow-lg border border-primary-100">
107
+ <div class="flex justify-center mb-6">
108
+ <div class="bg-gradient-to-r from-primary-400 to-secondary-400 p-4 rounded-full duck-animation">
109
+ <i data-feather="message-circle" class="text-white w-12 h-12"></i>
110
+ </div>
111
+ </div>
112
+ <h1 class="text-5xl md:text-6xl font-bold text-primary-900 mb-4">
113
+ Talk to Your Rubber Duck
114
+ </h1>
115
+ <p class="text-xl text-primary-700 mb-8 max-w-2xl mx-auto">
116
+ The ultimate debugging companion that helps you solve problems by explaining them out loud.
117
+ Because sometimes, the solution is in the explanation.
118
+ </p>
119
+ <div class="flex flex-col sm:flex-row gap-4 justify-center">
120
+ <button class="bg-primary-500 text-white px-8 py-3 rounded-lg hover:bg-primary-600 transition-colors font-medium text-lg">
121
+ Start Debugging
122
+ </button>
123
+ <button class="border-2 border-primary-500 text-primary-600 px-8 py-3 rounded-lg hover:bg-primary-50 transition-colors font-medium text-lg">
124
+ Learn More
125
+ </button>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </section>
130
+
131
+ <!-- Features Section -->
132
+ <section id="features" class="relative z-10 py-16 px-4 bg-white/60 backdrop-blur-sm">
133
+ <div class="container mx-auto max-w-6xl">
134
+ <h2 class="text-4xl font-bold text-center text-primary-900 mb-12">Why RubberDuck Works</h2>
135
+ <div class="grid md:grid-cols-3 gap-8">
136
+ <div class="bg-white p-6 rounded-xl shadow-lg border border-primary-100 message-bubble">
137
+ <div class="bg-primary-100 w-12 h-12 rounded-lg flex items-center justify-center mb-4">
138
+ <i data-feather="lightbulb" class="text-primary-600 w-6 h-6"></i>
139
+ </div>
140
+ <h3 class="text-xl font-semibold text-primary-800 mb-2">Clarity Through Explanation</h3>
141
+ <p class="text-primary-600">Explaining your problem forces you to organize your thoughts and often reveals the solution.</p>
142
+ </div>
143
+ <div class="bg-white p-6 rounded-xl shadow-lg border border-primary-100 message-bubble">
144
+ <div class="bg-secondary-100 w-12 h-12 rounded-lg flex items-center justify-center mb-4">
145
+ <i data-feather="clock" class="text-secondary-600 w-6 h-6"></i>
146
+ </div>
147
+ <h3 class="text-xl font-semibold text-primary-800 mb-2">Save Time</h3>
148
+ <p class="text-primary-600">Avoid hours of frustration by catching logical errors early in the explanation process.</p>
149
+ </div>
150
+ <div class="bg-white p-6 rounded-xl shadow-lg border border-primary-100 message-bubble">
151
+ <div class="bg-primary-100 w-12 h-12 rounded-lg flex items-center justify-center mb-4">
152
+ <i data-feather="users" class="text-primary-600 w-6 h-6"></i>
153
+ </div>
154
+ <h3 class="text-xl font-semibold text-primary-800 mb-2">Always Available</h3>
155
+ <p class="text-primary-600">Your rubber duck never sleeps, never judges, and is always ready to listen.</p>
156
+ </div>
157
+ </div>
158
+ </div>
159
+ </section>
160
+
161
+ <!-- Interactive Debugging Section -->
162
+ <section id="try-it" class="relative z-10 py-16 px-4">
163
+ <div class="container mx-auto max-w-4xl">
164
+ <div class="bg-white rounded-2xl shadow-xl border border-primary-200 overflow-hidden">
165
+ <div class="bg-primary-500 text-white p-6">
166
+ <h2 class="text-2xl font-bold">Debugging Session</h2>
167
+ <p class="opacity-90">Explain your problem to the rubber duck below</p>
168
+ </div>
169
+ <div class="p-6">
170
+ <div class="flex items-start space-x-4 mb-6">
171
+ <div class="bg-secondary-100 p-3 rounded-full">
172
+ <i data-feather="user" class="text-secondary-600 w-5 h-5"></i>
173
+ </div>
174
+ <div class="bg-primary-100 rounded-lg p-4 flex-1">
175
+ <p class="text-primary-800" id="user-message">I'm having trouble with my function that should filter an array, but it's returning unexpected results...</p>
176
+ </div>
177
+ </div>
178
+ <div class="flex items-start space-x-4">
179
+ <div class="bg-primary-500 p-3 rounded-full duck-animation">
180
+ <i data-feather="help-circle" class="text-white w-5 h-5"></i>
181
+ </div>
182
+ <div class="bg-secondary-100 rounded-lg p-4 flex-1">
183
+ <p class="text-primary-800" id="duck-response">
184
+ <span id="typing-text"></span><span class="typing-cursor">|</span>
185
+ </p>
186
+ </div>
187
+ </div>
188
+ <div class="mt-6">
189
+ <textarea
190
+ class="w-full border border-primary-200 rounded-lg p-4 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"
191
+ rows="4"
192
+ placeholder="Type your problem here..."></textarea>
193
+ <button class="bg-primary-500 text-white px-6 py-2 rounded-lg hover:bg-primary-600 transition-colors font-medium mt-3">
194
+ Explain to Duck
195
+ </button>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ </div>
200
+ </section>
201
+
202
+ <!-- Footer -->
203
+ <footer class="relative z-10 bg-primary-900 text-white py-8 px-4">
204
+ <div class="container mx-auto text-center">
205
+ <p class="text-primary-200">Made with ❤️ for developers everywhere</p>
206
+ <p class="text-primary-300 text-sm mt-2">RubberDuck 🦆 - Your debugging companion since 2024</p>
207
+ </div>
208
+ </footer>
209
+
210
+ <script>
211
+ // Initialize Vanta.js background
212
+ VANTA.NET({
213
+ el: "#vanta-bg",
214
+ mouseControls: true,
215
+ touchControls: true,
216
+ gyroControls: false,
217
+ minHeight: 200.00,
218
+ minWidth: 200.00,
219
+ scale: 1.00,
220
+ scaleMobile: 1.00,
221
+ color: 0x0ea5e9,
222
+ backgroundColor: 0xfefce8,
223
+ points: 10.00,
224
+ maxDistance: 25.00
225
+ });
226
+
227
+ // Typing animation for duck response
228
+ const messages = [
229
+ "Interesting! Can you walk me through what you expect the function to do?",
230
+ "Have you checked if your filter condition is working as intended?",
231
+ "Sometimes stepping through the logic line by line helps. Want to try that?",
232
+ "I notice you mentioned unexpected results. What exactly are you seeing vs expecting?",
233
+ "Let's break this down. What's the simplest case that should work but doesn't?"
234
+ ];
235
+
236
+ let currentMessage = 0;
237
+ let charIndex = 0;
238
+ const typingText = document.getElementById('typing-text');
239
+ const typingCursor = document.querySelector('.typing-cursor');
240
+
241
+ function typeWriter() {
242
+ if (charIndex < messages[currentMessage].length) {
243
+ typingText.textContent += messages[currentMessage].charAt(charIndex);
244
+ charIndex++;
245
+ setTimeout(typeWriter, 50);
246
+ } else {
247
+ setTimeout(() => {
248
+ typingText.textContent = '';
249
+ charIndex = 0;
250
+ currentMessage = (currentMessage + 1) % messages.length;
251
+ setTimeout(typeWriter, 1000);
252
+ }, 3000);
253
+ }
254
+ }
255
+
256
+ // Start typing animation after page load
257
+ document.addEventListener('DOMContentLoaded', function() {
258
+ setTimeout(typeWriter, 1000);
259
+
260
+ // Initialize feather icons
261
+ feather.replace();
262
+
263
+ // Add hover effects to interactive elements
264
+ document.querySelectorAll('button').forEach(button => {
265
+ button.addEventListener('mouseenter', function() {
266
+ this.style.transform = 'translateY(-2px)';
267
+ this.style.transition = 'transform 0.2s ease';
268
+ });
269
+ button.addEventListener('mouseleave', function() {
270
+ this.style.transform = 'translateY(0)';
271
+ });
272
+ });
273
+ });
274
+ </script>
275
+ </body>
276
  </html>