deepak191z commited on
Commit
66fabcf
·
verified ·
1 Parent(s): 4a50a97

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +106 -223
index.html CHANGED
@@ -6,47 +6,35 @@
6
  <title>Google Apps Script Generator</title>
7
  <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">
8
  <style>
9
- /* Base body padding for fixed header */
10
  body {
11
- padding-top: 5rem; /* Start with a base padding */
 
12
  }
13
 
14
- /* Hero section base style */
15
  #heroSection {
16
- display: flex; /* Use flex by default */
17
- transition: opacity 0.3s ease-out, max-height 0.3s ease-out; /* Add transition */
 
18
  opacity: 1;
19
- max-height: 500px; /* Estimate max height */
20
  overflow: hidden;
21
  }
22
- /* Style to hide hero section smoothly */
23
- #heroSection.hidden-section {
24
- opacity: 0;
25
- max-height: 0;
26
- padding-top: 0;
27
- padding-bottom: 0;
28
- margin-bottom: 0;
29
- /* display: none; /* Re-add if transition is not desired or causes layout shifts */
30
- }
31
 
 
 
 
 
 
 
32
 
33
- /* Progress steps base style */
34
  #progressSteps {
35
- display: flex; /* Use flex by default */
36
- transition: opacity 0.3s ease-out, max-height 0.3s ease-out; /* Add transition */
37
- opacity: 1;
38
- max-height: 100px; /* Estimate max height */
39
- overflow: hidden;
40
- }
41
- /* Style to hide steps smoothly */
42
- #progressSteps.hidden-section {
43
- opacity: 0;
44
- max-height: 0;
45
- margin-bottom: 0;
46
- /* display: none; */
47
  }
48
 
49
-
50
  .code-block {
51
  font-family: 'Courier New', Courier, monospace;
52
  white-space: pre-wrap;
@@ -54,12 +42,13 @@
54
  color: #e2e8f0;
55
  padding: 1rem;
56
  border-radius: 0.5rem;
57
- height: calc(80vh - 22rem); /* Adjusted height slightly */
58
- min-height: 150px; /* Adjusted min-height */
59
  overflow-y: auto;
60
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
61
  border: 1px solid rgba(255, 255, 255, 0.2);
62
  }
 
63
  .section { display: none; }
64
  .section.active { display: block; }
65
 
@@ -69,209 +58,110 @@
69
  color: #1e293b;
70
  border: 1px solid rgba(255, 255, 255, 0.4);
71
  width: 100%;
72
- padding: 0.65rem 0.75rem; /* Adjusted padding slightly */
73
- border-radius: 0.375rem; /* Standard Tailwind rounded-md */
74
- }
75
- .input-field::placeholder { color: #4b5563; opacity: 1; }
76
- .input-field:focus {
77
- border-color: #3b82f6;
78
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.4);
79
- background: rgba(255, 255, 255, 0.35);
80
  }
 
81
  .btn {
82
- transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.1s ease;
83
- backdrop-filter: blur(8px);
84
- border: 1px solid rgba(255, 255, 255, 0.2);
85
- padding: 0.75rem 1.25rem; /* Default padding */
86
- border-radius: 0.375rem; /* Standard Tailwind rounded-md */
87
- font-weight: 500; /* Medium weight */
88
  text-align: center;
89
- box-shadow: 0 1px 2px rgba(0,0,0,0.05);
90
  }
91
- .btn:hover {
92
- transform: translateY(-1px);
93
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
94
- }
95
- .btn:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
96
-
97
- /* Specific Button Colors */
98
- .btn-blue { background: #2563eb; color: white; } .btn-blue:hover { background: #1d4ed8; }
99
- .btn-green { background: #16a34a; color: white; } .btn-green:hover { background: #15803d; }
100
- .btn-gray-dark { background: #374151; color: white; } .btn-gray-dark:hover { background: #1f2937; }
101
- .btn-gray { background: #4b5563; color: white; } .btn-gray:hover { background: #374151; }
102
- .btn-red { background: #dc2626; color: white; } .btn-red:hover { background: #b91c1c; }
103
- .btn-light { background: #e5e7eb; color: #1f2937; } .btn-light:hover { background: #d1d5db; }
104
- .btn-light-active { background: #dbeafe; color: #1e40af; } /* For active cURL button */
105
 
106
-
107
- /* Small icon button style (e.g., delete, copy) */
108
  .btn-icon {
109
- padding: 0.5rem; /* Smaller padding for icons */
110
- flex-shrink: 0; /* Prevent shrinking */
111
- line-height: 1; /* Ensure icon aligns well */
 
 
 
 
112
  }
113
- .btn-icon svg {
114
- width: 1.25rem; /* w-5 */
115
- height: 1.25rem; /* h-5 */
116
- }
117
 
118
- .step-indicator {
119
- background: rgba(255, 255, 255, 0.1);
120
- backdrop-filter: blur(5px);
121
- border: 1px solid rgba(255, 255, 255, 0.2);
122
- width: 2.5rem; /* w-10 */
123
- height: 2.5rem; /* h-10 */
124
- border-radius: 9999px; /* rounded-full */
125
- display: flex;
126
- align-items: center;
127
- justify-content: center;
128
- font-weight: 600; /* semibold */
129
- color: #4b5563; /* gray-600 text */
130
- transition: all 0.3s ease-in-out;
131
  }
132
- .step-indicator.active {
133
- background: rgba(59, 130, 246, 0.9);
134
- color: white;
135
- box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);
136
- }
137
- .step-indicator.completed { /* Style for completed steps */
138
- background: rgba(22, 163, 74, 0.8); /* Green */
139
- color: white;
 
 
140
  }
141
 
142
  .glass-container {
143
  background: rgba(255, 255, 255, 0.15);
144
  backdrop-filter: blur(12px);
145
  border: 1px solid rgba(255, 255, 255, 0.25);
146
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
147
- border-radius: 0.75rem; /* rounded-xl */
148
- padding: 1.5rem; /* Default padding */
149
  }
150
 
151
- /* --- Mobile-specific styles --- */
152
  @media (max-width: 640px) {
153
  body {
154
- padding-top: 4.5rem; /* Adjust for potentially smaller header */
155
- padding-left: 0.5rem;
156
- padding-right: 0.5rem;
157
  }
 
158
  .glass-container {
159
- padding: 1rem; /* Reduce padding slightly */
160
  }
 
161
  .code-block {
162
- height: calc(70vh - 15rem); /* Adjust height calc for mobile */
163
- padding: 0.75rem;
164
- min-height: 120px;
165
  }
166
 
167
- /* Input row layout */
168
- .column-input-row {
169
- flex-direction: row; /* Keep input and button in a row */
170
- align-items: center;
171
- gap: 0.75rem; /* space-x-3 equivalent */
172
- }
173
- .column-input-row input {
174
- flex-grow: 1; /* Allow input to take space */
175
- }
176
- .column-input-row .btn-icon {
177
- /* Delete button already has flex-shrink-0 */
178
- }
179
-
180
- /* Button container for main actions */
181
- .button-container-mobile-stack {
182
  display: flex;
183
  flex-direction: column;
 
184
  width: 100%;
185
- gap: 0.75rem; /* space-y-3 */
186
  }
187
- .button-container-mobile-stack .btn {
188
- width: 100%; /* Make buttons full width */
189
- }
190
-
191
- /* Make specific containers stack buttons */
192
- #columns .button-container,
193
- #code .button-container,
194
- #howto .button-container {
195
- flex-direction: column;
196
- gap: 0.75rem;
197
- }
198
- #columns .button-container .btn,
199
- #code .button-container .btn,
200
- #howto .button-container .btn {
201
- width: 100%; /* Ensure buttons inside stack full width */
202
- margin-left: 0 !important; /* Override potential sm: space-x */
203
- }
204
-
205
 
206
- .step-indicator {
207
- width: 2.25rem; height: 2.25rem; /* Slightly smaller */
208
- font-size: 0.875rem; /* text-sm */
209
  }
210
 
211
- /* Adjust heading sizes for mobile */
212
- .text-4xl { font-size: 1.875rem; line-height: 2.25rem; } /* text-3xl */
213
- .text-2xl { font-size: 1.25rem; line-height: 1.75rem; } /* text-xl */
214
- .text-xl { font-size: 1.125rem; line-height: 1.75rem; } /* text-lg */
215
- .text-lg { font-size: 1rem; line-height: 1.5rem; } /* text-base */
216
-
217
- /* Adjust margins */
218
- .mb-12 { margin-bottom: 2rem; } /* mb-8 */
219
- .mb-8 { margin-bottom: 1.5rem; } /* mb-6 */
220
- .mb-6 { margin-bottom: 1rem; } /* mb-4 */
221
- .mt-6 { margin-top: 1rem; } /* mt-4 */
222
- .py-16 { padding-top: 2.5rem; padding-bottom: 2.5rem; } /* py-10 */
223
 
224
- /* cURL buttons adjustments */
225
- #howto .flex-wrap {
226
- gap: 0.5rem; /* gap-2 */
227
- }
228
- #howto .flex-wrap .btn {
229
- padding: 0.5rem 0.75rem; /* Smaller padding */
230
- font-size: 0.875rem; /* text-sm */
231
- }
232
 
233
- /* Copy button on mobile */
234
- #code .flex > .btn-icon {
235
- /* padding: 0.6rem; /* Slightly larger tap area if needed */
236
- }
 
237
  }
238
 
239
- /* Larger screen adjustments */
240
  @media (min-width: 641px) {
241
- body {
242
- padding-top: 6rem; /* Restore larger padding */
243
- padding-left: 1rem;
244
- padding-right: 1rem;
245
- }
246
- .glass-container {
247
- padding: 2rem; /* Restore larger padding */
248
  }
249
- /* Restore row layout for buttons on desktop */
250
- #columns .button-container,
251
- #code .button-container {
252
- flex-direction: row;
253
- justify-content: space-between;
254
- gap: 1rem; /* space-x-4 */
255
- }
256
- #columns .button-container .btn,
257
- #code .button-container .btn {
258
- width: auto; /* Allow buttons to size naturally */
259
- }
260
- /* How-to back button on desktop */
261
- #howto .button-container {
262
- justify-content: flex-start;
263
- flex-direction: row; /* Ensure it's row */
264
- }
265
- #howto .button-container .btn {
266
- width: auto;
267
- }
268
 
 
 
 
269
  }
270
-
271
  </style>
272
  </head>
273
  <body class="bg-gradient-to-br from-gray-200 via-gray-300 to-gray-400 min-h-screen font-sans text-gray-800">
274
-
275
  <header class="fixed top-0 left-0 w-full bg-white shadow-md p-4 z-50">
276
  <div class="max-w-6xl mx-auto text-xl font-bold text-gray-900">GSheet2DB</div>
277
  </header>
@@ -293,70 +183,63 @@
293
  <div id="columns" class="section active">
294
  <h2 class="text-2xl font-extrabold text-gray-900 mb-6 text-center">Step 1: Define Your Columns</h2>
295
  <div id="columnInputs" class="space-y-4 mb-6">
296
- <div class="flex items-center space-x-3 column-input-row">
297
- <input type="text" class="column-input input-field flex-1" placeholder="Column name (e.g., Status)" value="word">
298
- <button onclick="removeColumn(this)" class="btn btn-icon btn-red" aria-label="Remove column">
299
- <svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" /></svg>
300
- </button>
301
- </div>
302
- <div class="flex items-center space-x-3 column-input-row">
303
- <input type="text" class="column-input input-field flex-1" placeholder="Column name (e.g., Category)" value="meaning">
304
  <button onclick="removeColumn(this)" class="btn btn-icon btn-red" aria-label="Remove column">
305
  <svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" /></svg>
306
  </button>
307
  </div>
308
  </div>
309
- <div class="mt-6 button-container"> <button onclick="addColumn()" class="btn btn-blue w-full sm:w-auto">Add Column</button>
310
- <button onclick="nextSection('code')" class="btn btn-green w-full sm:w-auto">Next: Generate Code</button>
 
311
  </div>
312
  </div>
313
 
314
  <div id="code" class="section">
315
  <h2 class="text-2xl font-extrabold text-gray-900 mb-6 text-center">Step 2: Generated Apps Script Code</h2>
316
- <div class="flex flex-col sm:flex-row justify-between items-center mb-4 gap-3 sm:gap-0"> <h3 class="text-xl font-semibold text-gray-800">Code Preview</h3>
317
- <button onclick="copyCode()" class="btn btn-icon btn-gray-dark self-end sm:self-center" title="Copy to clipboard" aria-label="Copy code to clipboard">
 
318
  <svg class="w-6 h-6 text-gray-300" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h12a2 2 0 002-2V7a2 2 0 00-2-2h-2M8 5a2 2 0 002 2h4a2 2 0 002-2M8 5a2 2 0 012-2h4a2 2 0 012 2"></path></svg>
319
- <span class="sr-only">Copy Code</span>
320
  </button>
321
  </div>
322
  <div id="codePreview" class="code-block mb-6"></div>
323
- <div class="mt-6 button-container"> <button onclick="nextSection('columns')" class="btn btn-gray w-full sm:w-auto">Back</button>
324
- <button onclick="nextSection('howto')" class="btn btn-green w-full sm:w-auto">Next: How to Use</button>
 
325
  </div>
326
  </div>
327
 
328
  <div id="howto" class="section">
329
  <h2 class="text-2xl font-extrabold text-gray-900 mb-6 text-center">Step 3: How to Use the API</h2>
330
- <h3 class="text-lg font-semibold text-gray-800 mb-3">Example cURL Commands:</h3>
331
- <div class="flex flex-wrap gap-2 mb-6 pb-2">
332
- <button class="curl-button btn btn-light text-sm px-3 py-1.5" onclick="showCurlExample('appendSingle', this)">Append Single</button>
333
- <button class="curl-button btn btn-light text-sm px-3 py-1.5" onclick="showCurlExample('appendMultiple', this)">Append Multiple</button>
334
- <button class="curl-button btn btn-light text-sm px-3 py-1.5" onclick="showCurlExample('fetchAll', this)">Fetch All</button>
335
- <button class="curl-button btn btn-light text-sm px-3 py-1.5" onclick="showCurlExample('fetchRange', this)">Fetch Range</button>
336
- <button class="curl-button btn btn-light text-sm px-3 py-1.5" onclick="showCurlExample('search', this)">Search</button>
337
- <button class="curl-button btn btn-light text-sm px-3 py-1.5" onclick="showCurlExample('update', this)">Update</button>
338
- <button class="curl-button btn btn-light text-sm px-3 py-1.5" onclick="showCurlExample('delete', this)">Delete</button>
339
- </div>
340
- <div id="curlExamples" class="code-block mb-6"></div>
341
- <div class="mt-6 flex justify-start button-container"> <button onclick="nextSection('code')" class="btn btn-gray w-full sm:w-auto">Back</button>
342
  </div>
343
  </div>
344
  </div>
345
 
346
-
347
  <script>
348
  function nextSection(sectionId) {
349
- document.querySelectorAll('.section').forEach(section => section.classList.remove('active'));
350
- document.getElementById(sectionId).classList.add('active');
351
-
352
  const steps = ['columns', 'code', 'howto'];
353
  const currentStep = steps.indexOf(sectionId);
 
 
 
 
 
 
 
 
354
  document.querySelectorAll('.step-indicator').forEach((indicator, index) => {
355
  indicator.classList.toggle('active', index === currentStep);
356
  });
357
  }
 
358
  document.querySelector('.step-indicator').classList.add('active');
 
 
359
  </script>
360
- <script src="script.js"></script>
361
  </body>
362
  </html>
 
6
  <title>Google Apps Script Generator</title>
7
  <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">
8
  <style>
 
9
  body {
10
+ padding-top: 5rem;
11
+ margin: 0;
12
  }
13
 
 
14
  #heroSection {
15
+ display: flex;
16
+ flex-direction: column;
17
+ transition: all 0.3s ease-out;
18
  opacity: 1;
19
+ max-height: 500px;
20
  overflow: hidden;
21
  }
 
 
 
 
 
 
 
 
 
22
 
23
+ #heroSection.hidden {
24
+ opacity: 0;
25
+ max-height: 0;
26
+ padding: 0;
27
+ margin: 0;
28
+ }
29
 
 
30
  #progressSteps {
31
+ display: flex;
32
+ transition: all 0.3s ease-out;
33
+ opacity: 1;
34
+ max-height: 100px;
35
+ overflow: hidden;
 
 
 
 
 
 
 
36
  }
37
 
 
38
  .code-block {
39
  font-family: 'Courier New', Courier, monospace;
40
  white-space: pre-wrap;
 
42
  color: #e2e8f0;
43
  padding: 1rem;
44
  border-radius: 0.5rem;
45
+ height: calc(80vh - 22rem);
46
+ min-height: 150px;
47
  overflow-y: auto;
48
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
49
  border: 1px solid rgba(255, 255, 255, 0.2);
50
  }
51
+
52
  .section { display: none; }
53
  .section.active { display: block; }
54
 
 
58
  color: #1e293b;
59
  border: 1px solid rgba(255, 255, 255, 0.4);
60
  width: 100%;
61
+ padding: 0.65rem 0.75rem;
62
+ border-radius: 0.375rem;
 
 
 
 
 
 
63
  }
64
+
65
  .btn {
66
+ transition: all 0.2s ease;
67
+ padding: 0.75rem 1.25rem;
68
+ border-radius: 0.375rem;
69
+ font-weight: 500;
 
 
70
  text-align: center;
71
+ min-width: 100px; /* Ensure readable button width */
72
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
 
 
 
74
  .btn-icon {
75
+ padding: 0.5rem;
76
+ min-width: 0; /* Override for icons */
77
+ width: 2.5rem;
78
+ height: 2.5rem;
79
+ display: flex;
80
+ align-items: center;
81
+ justify-content: center;
82
  }
 
 
 
 
83
 
84
+ .btn-icon svg {
85
+ width: 1.25rem;
86
+ height: 1.25rem;
 
 
 
 
 
 
 
 
 
 
87
  }
88
+
89
+ .step-indicator {
90
+ width: 2.5rem;
91
+ height: 2.5rem;
92
+ border-radius: 9999px;
93
+ display: flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ font-weight: 600;
97
+ transition: all 0.3s ease;
98
  }
99
 
100
  .glass-container {
101
  background: rgba(255, 255, 255, 0.15);
102
  backdrop-filter: blur(12px);
103
  border: 1px solid rgba(255, 255, 255, 0.25);
104
+ border-radius: 0.75rem;
105
+ padding: 1.5rem;
 
106
  }
107
 
 
108
  @media (max-width: 640px) {
109
  body {
110
+ padding: 4rem 0.5rem 0;
 
 
111
  }
112
+
113
  .glass-container {
114
+ padding: 1rem;
115
  }
116
+
117
  .code-block {
118
+ height: calc(70vh - 15rem);
119
+ min-height: 120px;
 
120
  }
121
 
122
+ .button-container {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  display: flex;
124
  flex-direction: column;
125
+ gap: 0.75rem;
126
  width: 100%;
 
127
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
 
129
+ .button-container .btn {
130
+ width: 100%;
131
+ padding: 0.75rem;
132
  }
133
 
134
+ .column-input-row {
135
+ display: flex;
136
+ gap: 0.5rem;
137
+ align-items: center;
138
+ }
 
 
 
 
 
 
 
139
 
140
+ .column-input-row .input-field {
141
+ flex: 1;
142
+ }
 
 
 
 
 
143
 
144
+ .step-indicator {
145
+ width: 2rem;
146
+ height: 2rem;
147
+ font-size: 0.875rem;
148
+ }
149
  }
150
 
 
151
  @media (min-width: 641px) {
152
+ .button-container {
153
+ display: flex;
154
+ justify-content: space-between;
155
+ gap: 1rem;
 
 
 
156
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
+ .button-container .btn {
159
+ width: auto;
160
+ }
161
  }
 
162
  </style>
163
  </head>
164
  <body class="bg-gradient-to-br from-gray-200 via-gray-300 to-gray-400 min-h-screen font-sans text-gray-800">
 
165
  <header class="fixed top-0 left-0 w-full bg-white shadow-md p-4 z-50">
166
  <div class="max-w-6xl mx-auto text-xl font-bold text-gray-900">GSheet2DB</div>
167
  </header>
 
183
  <div id="columns" class="section active">
184
  <h2 class="text-2xl font-extrabold text-gray-900 mb-6 text-center">Step 1: Define Your Columns</h2>
185
  <div id="columnInputs" class="space-y-4 mb-6">
186
+ <div class="column-input-row">
187
+ <input type="text" class="column-input input-field" placeholder="Column name (e.g., Status)" value="word">
 
 
 
 
 
 
188
  <button onclick="removeColumn(this)" class="btn btn-icon btn-red" aria-label="Remove column">
189
  <svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" /></svg>
190
  </button>
191
  </div>
192
  </div>
193
+ <div class="button-container">
194
+ <button onclick="addColumn()" class="btn btn-blue">Add Column</button>
195
+ <button onclick="nextSection('code')" class="btn btn-green">Next: Generate Code</button>
196
  </div>
197
  </div>
198
 
199
  <div id="code" class="section">
200
  <h2 class="text-2xl font-extrabold text-gray-900 mb-6 text-center">Step 2: Generated Apps Script Code</h2>
201
+ <div class="flex justify-between items-center mb-4">
202
+ <h3 class="text-xl font-semibold text-gray-800">Code Preview</h3>
203
+ <button onclick="copyCode()" class="btn btn-icon btn-gray-dark" title="Copy to clipboard">
204
  <svg class="w-6 h-6 text-gray-300" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h12a2 2 0 002-2V7a2 2 0 00-2-2h-2M8 5a2 2 0 002 2h4a2 2 0 002-2M8 5a2 2 0 012-2h4a2 2 0 012 2"></path></svg>
 
205
  </button>
206
  </div>
207
  <div id="codePreview" class="code-block mb-6"></div>
208
+ <div class="button-container">
209
+ <button onclick="nextSection('columns')" class="btn btn-gray">Back</button>
210
+ <button onclick="nextSection('howto')" class="btn btn-green">Next: How to Use</button>
211
  </div>
212
  </div>
213
 
214
  <div id="howto" class="section">
215
  <h2 class="text-2xl font-extrabold text-gray-900 mb-6 text-center">Step 3: How to Use the API</h2>
216
+ <div class="button-container">
217
+ <button onclick="nextSection('code')" class="btn btn-gray">Back</button>
 
 
 
 
 
 
 
 
 
 
218
  </div>
219
  </div>
220
  </div>
221
 
 
222
  <script>
223
  function nextSection(sectionId) {
224
+ const sections = document.querySelectorAll('.section');
 
 
225
  const steps = ['columns', 'code', 'howto'];
226
  const currentStep = steps.indexOf(sectionId);
227
+
228
+ sections.forEach(section => section.classList.remove('active'));
229
+ document.getElementById(sectionId).classList.add('active');
230
+
231
+ // Show hero section only on first step
232
+ const heroSection = document.getElementById('heroSection');
233
+ heroSection.classList.toggle('hidden', currentStep !== 0);
234
+
235
  document.querySelectorAll('.step-indicator').forEach((indicator, index) => {
236
  indicator.classList.toggle('active', index === currentStep);
237
  });
238
  }
239
+
240
  document.querySelector('.step-indicator').classList.add('active');
241
+
242
+
243
  </script>
 
244
  </body>
245
  </html>