Swarnabha123 commited on
Commit
30dbc1e
·
verified ·
1 Parent(s): f44a3af

create diif pages of the things in the nav bar - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +720 -18
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Toolz
3
- emoji:
4
- colorFrom: green
5
- colorTo: indigo
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: toolz
3
+ emoji: 🐳
4
+ colorFrom: purple
5
+ colorTo: gray
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,721 @@
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
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>PixelPDF Features | Premium PDF-Image Converter</title>
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
+ <style>
11
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
12
+
13
+ body {
14
+ font-family: 'Inter', sans-serif;
15
+ background: linear-gradient(135deg, #f0f9ff 0%, #e0e7ff 100%);
16
+ min-height: 100vh;
17
+ }
18
+
19
+ .card {
20
+ background: rgba(255, 255, 255, 0.85);
21
+ backdrop-filter: blur(10px);
22
+ border-radius: 20px;
23
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
24
+ }
25
+
26
+ .feature-card {
27
+ transition: all 0.3s;
28
+ }
29
+
30
+ .feature-card:hover {
31
+ transform: translateY(-5px);
32
+ box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
33
+ }
34
+ </style>
35
+ </head>
36
+ <body class="min-h-screen py-8 px-4 sm:px-6 lg:px-8">
37
+ <!-- Header -->
38
+ <header class="max-w-7xl mx-auto mb-12">
39
+ <div class="flex flex-col md:flex-row justify-between items-center">
40
+ <div class="flex items-center mb-6 md:mb-0">
41
+ <div class="bg-indigo-600 w-10 h-10 rounded-lg flex items-center justify-center mr-3">
42
+ <i class="fas fa-file-image text-white text-xl"></i>
43
+ </div>
44
+ <h1 class="text-3xl font-bold text-gray-900">Pixel<span class="text-indigo-600">PDF</span></h1>
45
+ </div>
46
+
47
+ <nav class="flex space-x-1 sm:space-x-4">
48
+ <a href="index.html" class="px-4 py-2 rounded-lg hover:bg-indigo-50 text-gray-900 font-medium">Home</a>
49
+ <a href="features.html" class="px-4 py-2 rounded-lg bg-indigo-50 text-indigo-600 font-medium">Features</a>
50
+ <a href="pricing.html" class="px-4 py-2 rounded-lg hover:bg-indigo-50 text-gray-900 font-medium">Pricing</a>
51
+ <a href="contact.html" class="px-4 py-2 rounded-lg hover:bg-indigo-50 text-gray-900 font-medium">Contact</a>
52
+ </nav>
53
+ </div>
54
+ </header>
55
+
56
+ <!-- Features Section -->
57
+ <section class="max-w-7xl mx-auto mb-20">
58
+ <div class="text-center mb-12">
59
+ <h2 class="text-3xl font-bold text-gray-900 mb-4">Premium Conversion Features</h2>
60
+ <p class="text-xl text-gray-600 max-w-3xl mx-auto">Everything you need for professional document conversion</p>
61
+ </div>
62
+
63
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
64
+ <!-- Feature cards from original index.html -->
65
+ <div class="feature-card card p-8">
66
+ <div class="bg-indigo-100 w-14 h-14 rounded-xl flex items-center justify-center mb-6">
67
+ <i class="fas fa-lock text-indigo-600 text-2xl"></i>
68
+ </div>
69
+ <h3 class="text-xl font-bold text-gray-900 mb-3">Military-Grade Security</h3>
70
+ <p class="text-gray-600">All processing happens locally in your browser. Your files never touch our servers.</p>
71
+ </div>
72
+
73
+ <!-- Include all other feature cards here -->
74
+ <!-- ... -->
75
+
76
+ </div>
77
+ </section>
78
+
79
+ <!-- Footer -->
80
+ <footer class="max-w-7xl mx-auto pt-8 border-t border-gray-200">
81
+ <!-- Footer content from original index.html -->
82
+ </footer>
83
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Swarnabha123/toolz" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
84
  </html>
85
+
86
+ <!DOCTYPE html>
87
+ <html lang="en">
88
+ <head>
89
+ <meta charset="UTF-8">
90
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
91
+ <title>PixelPDF | Premium PDF-Image Converter</title>
92
+ <script src="https://cdn.tailwindcss.com"></script>
93
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.4.120/pdf.min.js"></script>
94
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
95
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js"></script>
96
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
97
+ <script>
98
+ tailwind.config = {
99
+ theme: {
100
+ extend: {
101
+ colors: {
102
+ primary: '#6366f1',
103
+ secondary: '#8b5cf6',
104
+ dark: '#1e293b',
105
+ light: '#f8fafc'
106
+ }
107
+ }
108
+ }
109
+ }
110
+ </script>
111
+ <style>
112
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
113
+
114
+ body {
115
+ font-family: 'Inter', sans-serif;
116
+ background: linear-gradient(135deg, #f0f9ff 0%, #e0e7ff 100%);
117
+ min-height: 100vh;
118
+ }
119
+
120
+ .card {
121
+ background: rgba(255, 255, 255, 0.85);
122
+ backdrop-filter: blur(10px);
123
+ border-radius: 20px;
124
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
125
+ transition: all 0.3s ease;
126
+ }
127
+
128
+ .card:hover {
129
+ transform: translateY(-5px);
130
+ box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
131
+ }
132
+
133
+ .drop-zone {
134
+ border: 2px dashed #c7d2fe;
135
+ border-radius: 16px;
136
+ transition: all 0.3s;
137
+ }
138
+
139
+ .drop-zone.active {
140
+ border-color: #6366f1;
141
+ background-color: #eef2ff;
142
+ }
143
+
144
+ .tab-btn {
145
+ transition: all 0.3s;
146
+ position: relative;
147
+ }
148
+
149
+ .tab-btn.active {
150
+ color: #6366f1;
151
+ }
152
+
153
+ .tab-btn.active::after {
154
+ content: '';
155
+ position: absolute;
156
+ bottom: -1px;
157
+ left: 0;
158
+ width: 100%;
159
+ height: 3px;
160
+ background: #6366f1;
161
+ border-radius: 3px;
162
+ }
163
+
164
+ .preview-container {
165
+ transition: all 0.3s;
166
+ }
167
+
168
+ .preview-item {
169
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
170
+ transition: transform 0.2s;
171
+ }
172
+
173
+ .preview-item:hover {
174
+ transform: scale(1.02);
175
+ }
176
+
177
+ .btn-primary {
178
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
179
+ transition: all 0.3s;
180
+ }
181
+
182
+ .btn-primary:hover {
183
+ transform: translateY(-2px);
184
+ box-shadow: 0 7px 15px rgba(99, 102, 241, 0.3);
185
+ }
186
+
187
+ .btn-primary:active {
188
+ transform: translateY(0);
189
+ }
190
+
191
+ .progress-bar {
192
+ transition: width 0.5s ease-in-out;
193
+ }
194
+
195
+ .floating-btn {
196
+ animation: float 3s ease-in-out infinite;
197
+ }
198
+
199
+ @keyframes float {
200
+ 0% { transform: translateY(0px); }
201
+ 50% { transform: translateY(-10px); }
202
+ 100% { transform: translateY(0px); }
203
+ }
204
+
205
+ .feature-card {
206
+ transition: all 0.3s;
207
+ }
208
+
209
+ .feature-card:hover {
210
+ transform: translateY(-5px);
211
+ box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
212
+ }
213
+
214
+ .glow {
215
+ box-shadow: 0 0 20px rgba(99, 102, 241, 0.3);
216
+ }
217
+ </style>
218
+ </head>
219
+ <body class="min-h-screen py-8 px-4 sm:px-6 lg:px-8">
220
+ <!-- Header -->
221
+ <header class="max-w-7xl mx-auto mb-12">
222
+ <div class="flex flex-col md:flex-row justify-between items-center">
223
+ <div class="flex items-center mb-6 md:mb-0">
224
+ <div class="bg-primary w-10 h-10 rounded-lg flex items-center justify-center mr-3">
225
+ <i class="fas fa-file-image text-white text-xl"></i>
226
+ </div>
227
+ <h1 class="text-3xl font-bold text-dark">Pixel<span class="text-primary">PDF</span></h1>
228
+ </div>
229
+
230
+ <nav class="flex space-x-1 sm:space-x-4">
231
+ <a href="index.html" class="px-4 py-2 rounded-lg hover:bg-indigo-50 text-dark font-medium">Home</a>
232
+ <a href="features.html" class="px-4 py-2 rounded-lg hover:bg-indigo-50 text-dark font-medium">Features</a>
233
+ <a href="pricing.html" class="px-4 py-2 rounded-lg hover:bg-indigo-50 text-dark font-medium">Pricing</a>
234
+ <a href="contact.html" class="px-4 py-2 rounded-lg hover:bg-indigo-50 text-dark font-medium">Contact</a>
235
+ </nav>
236
+
237
+ <div class="mt-6 md:mt-0">
238
+ <button class="bg-white text-primary font-semibold py-2 px-6 rounded-lg border border-primary hover:bg-indigo-50 transition">Login</button>
239
+ <button class="bg-primary text-white font-semibold py-2 px-6 rounded-lg ml-3 hover:bg-indigo-700 transition">Sign Up</button>
240
+ </div>
241
+ </div>
242
+ </header>
243
+
244
+ <!-- Hero Section -->
245
+ <section class="max-w-7xl mx-auto mb-20">
246
+ <div class="text-center">
247
+ <h1 class="text-4xl md:text-6xl font-bold text-dark mb-6">Convert PDFs to Images & Images to PDFs</h1>
248
+ <p class="text-xl text-gray-600 max-w-3xl mx-auto mb-10">Premium quality conversions with our state-of-the-art processing technology. Fast, secure, and completely free!</p>
249
+
250
+ <div class="flex flex-wrap justify-center gap-4">
251
+ <div class="bg-white card py-3 px-6 rounded-xl flex items-center">
252
+ <div class="bg-indigo-100 p-2 rounded-lg mr-4">
253
+ <i class="fas fa-bolt text-primary text-xl"></i>
254
+ </div>
255
+ <div>
256
+ <p class="font-semibold">Lightning Fast</p>
257
+ <p class="text-sm text-gray-500">Convert in seconds</p>
258
+ </div>
259
+ </div>
260
+
261
+ <div class="bg-white card py-3 px-6 rounded-xl flex items-center">
262
+ <div class="bg-indigo-100 p-2 rounded-lg mr-4">
263
+ <i class="fas fa-shield-alt text-primary text-xl"></i>
264
+ </div>
265
+ <div>
266
+ <p class="font-semibold">Secure Processing</p>
267
+ <p class="text-sm text-gray-500">Files never leave your device</p>
268
+ </div>
269
+ </div>
270
+
271
+ <div class="bg-white card py-3 px-6 rounded-xl flex items-center">
272
+ <div class="bg-indigo-100 p-2 rounded-lg mr-4">
273
+ <i class="fas fa-infinity text-primary text-xl"></i>
274
+ </div>
275
+ <div>
276
+ <p class="font-semibold">Unlimited Conversions</p>
277
+ <p class="text-sm text-gray-500">No restrictions</p>
278
+ </div>
279
+ </div>
280
+ </div>
281
+ </div>
282
+ </section>
283
+
284
+ <!-- Converter Section -->
285
+ <section class="max-w-4xl mx-auto mb-20">
286
+ <div class="card p-1 bg-indigo-50 rounded-xl mb-8">
287
+ <div class="flex">
288
+ <button id="pdfToImageTab" class="tab-btn flex-1 py-4 px-6 text-center font-semibold text-gray-500 rounded-xl active">PDF to Image</button>
289
+ <button id="imageToPdfTab" class="tab-btn flex-1 py-4 px-6 text-center font-semibold text-gray-500 rounded-xl">Image to PDF</button>
290
+ </div>
291
+ </div>
292
+
293
+ <!-- PDF to Image Converter -->
294
+ <div id="pdfToImageConverter" class="card p-8">
295
+ <div class="text-center mb-8">
296
+ <h2 class="text-2xl font-bold text-dark mb-2">Convert PDF to Images</h2>
297
+ <p class="text-gray-600">Upload your PDF file and convert each page to high-quality images</p>
298
+ </div>
299
+
300
+ <div class="drop-zone p-10 text-center mb-8 cursor-pointer" id="pdfDropZone">
301
+ <div class="flex flex-col items-center justify-center">
302
+ <div class="bg-indigo-100 w-16 h-16 rounded-full flex items-center justify-center mb-4">
303
+ <i class="fas fa-cloud-upload-alt text-primary text-2xl"></i>
304
+ </div>
305
+ <h3 class="text-xl font-semibold text-dark mb-2">Drag & Drop your PDF here</h3>
306
+ <p class="text-gray-500 mb-4">or</p>
307
+ <button class="btn-primary text-white font-semibold py-3 px-8 rounded-lg">Browse Files</button>
308
+ <p class="text-gray-500 mt-4">Supports PDF files up to 50MB</p>
309
+ </div>
310
+ <input type="file" id="pdfInput" accept=".pdf" class="hidden">
311
+ </div>
312
+
313
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
314
+ <div class="bg-indigo-50 p-4 rounded-lg">
315
+ <label class="block text-sm font-medium text-gray-700 mb-2">Image Format</label>
316
+ <select class="w-full p-3 rounded-lg border border-gray-300 focus:ring-primary focus:border-primary">
317
+ <option>JPG (High Quality)</option>
318
+ <option>PNG (Lossless)</option>
319
+ <option>WebP (Efficient)</option>
320
+ </select>
321
+ </div>
322
+
323
+ <div class="bg-indigo-50 p-4 rounded-lg">
324
+ <label class="block text-sm font-medium text-gray-700 mb-2">Image Quality</label>
325
+ <select class="w-full p-3 rounded-lg border border-gray-300 focus:ring-primary focus:border-primary">
326
+ <option>High (300 DPI)</option>
327
+ <option>Medium (200 DPI)</option>
328
+ <option>Low (150 DPI)</option>
329
+ </select>
330
+ </div>
331
+
332
+ <div class="bg-indigo-50 p-4 rounded-lg">
333
+ <label class="block text-sm font-medium text-gray-700 mb-2">Page Range</label>
334
+ <select class="w-full p-3 rounded-lg border border-gray-300 focus:ring-primary focus:border-primary">
335
+ <option>All Pages</option>
336
+ <option>Custom Range</option>
337
+ <option>Current Page Only</option>
338
+ </select>
339
+ </div>
340
+ </div>
341
+
342
+ <div class="text-center">
343
+ <button class="btn-primary text-white font-semibold py-3 px-12 rounded-lg mb-4">Convert to Images</button>
344
+ <p class="text-gray-500">Your files are processed locally - no uploads to our servers</p>
345
+ </div>
346
+ </div>
347
+
348
+ <!-- Image to PDF Converter (Hidden by default) -->
349
+ <div id="imageToPdfConverter" class="card p-8 hidden">
350
+ <div class="text-center mb-8">
351
+ <h2 class="text-2xl font-bold text-dark mb-2">Convert Images to PDF</h2>
352
+ <p class="text-gray-600">Upload multiple images and combine them into a single PDF document</p>
353
+ </div>
354
+
355
+ <div class="drop-zone p-10 text-center mb-8 cursor-pointer" id="imageDropZone">
356
+ <div class="flex flex-col items-center justify-center">
357
+ <div class="bg-indigo-100 w-16 h-16 rounded-full flex items-center justify-center mb-4">
358
+ <i class="fas fa-cloud-upload-alt text-primary text-2xl"></i>
359
+ </div>
360
+ <h3 class="text-xl font-semibold text-dark mb-2">Drag & Drop your Images here</h3>
361
+ <p class="text-gray-500 mb-4">or</p>
362
+ <button class="btn-primary text-white font-semibold py-3 px-8 rounded-lg">Browse Files</button>
363
+ <p class="text-gray-500 mt-4">Supports JPG, PNG, WebP up to 50MB total</p>
364
+ </div>
365
+ <input type="file" id="imageInput" accept="image/*" multiple class="hidden">
366
+ </div>
367
+
368
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8">
369
+ <div class="bg-indigo-50 p-4 rounded-lg">
370
+ <label class="block text-sm font-medium text-gray-700 mb-2">Page Size</label>
371
+ <select class="w-full p-3 rounded-lg border border-gray-300 focus:ring-primary focus:border-primary">
372
+ <option>A4 (210 × 297mm)</option>
373
+ <option>Letter (8.5 × 11in)</option>
374
+ <option>Legal (8.5 × 14in)</option>
375
+ <option>Custom Size</option>
376
+ </select>
377
+ </div>
378
+
379
+ <div class="bg-indigo-50 p-4 rounded-lg">
380
+ <label class="block text-sm font-medium text-gray-700 mb-2">Page Orientation</label>
381
+ <select class="w-full p-3 rounded-lg border border-gray-300 focus:ring-primary focus:border-primary">
382
+ <option>Portrait</option>
383
+ <option>Landscape</option>
384
+ <option>Auto Detect</option>
385
+ </select>
386
+ </div>
387
+ </div>
388
+
389
+ <div class="text-center">
390
+ <button class="btn-primary text-white font-semibold py-3 px-12 rounded-lg mb-4">Create PDF</button>
391
+ <p class="text-gray-500">Your files are processed locally - no uploads to our servers</p>
392
+ </div>
393
+ </div>
394
+
395
+ <!-- Preview Section -->
396
+ <div id="previewSection" class="card p-8 mt-8 hidden">
397
+ <div class="flex justify-between items-center mb-6">
398
+ <h3 class="text-xl font-bold text-dark">Conversion Preview</h3>
399
+ <button class="text-primary font-semibold flex items-center">
400
+ <i class="fas fa-download mr-2"></i> Download All
401
+ </button>
402
+ </div>
403
+
404
+ <div class="preview-container grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-4">
405
+ <!-- Preview items will be added here dynamically -->
406
+ </div>
407
+
408
+ <div class="mt-6 flex justify-center">
409
+ <button class="bg-white text-primary font-semibold py-2 px-6 rounded-lg border border-primary hover:bg-indigo-50 transition">
410
+ <i class="fas fa-redo mr-2"></i> Convert Another File
411
+ </button>
412
+ </div>
413
+ </div>
414
+ </section>
415
+
416
+
417
+ <!-- CTA Section -->
418
+ <section class="max-w-4xl mx-auto mb-20">
419
+ <div class="card p-12 bg-gradient-to-r from-primary to-secondary text-center text-white rounded-2xl relative overflow-hidden">
420
+ <div class="absolute top-0 left-0 w-full h-full bg-opacity-5 bg-white"></div>
421
+ <div class="relative z-10">
422
+ <h2 class="text-3xl font-bold mb-4">Ready to Transform Your Documents?</h2>
423
+ <p class="text-indigo-100 mb-8 text-lg max-w-2xl mx-auto">Join thousands of professionals who use PixelPDF for their document conversion needs</p>
424
+ <button class="bg-white text-primary font-bold py-3 px-8 rounded-lg hover:bg-indigo-50 transition">Get Started for Free</button>
425
+ </div>
426
+
427
+ <div class="absolute -bottom-8 -right-8 w-32 h-32 bg-white bg-opacity-20 rounded-full"></div>
428
+ <div class="absolute -top-8 -left-8 w-40 h-40 bg-white bg-opacity-10 rounded-full"></div>
429
+ </div>
430
+ </section>
431
+
432
+ <!-- Footer -->
433
+ <footer class="max-w-7xl mx-auto pt-8 border-t border-gray-200">
434
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8">
435
+ <div>
436
+ <div class="flex items-center mb-4">
437
+ <div class="bg-primary w-8 h-8 rounded-lg flex items-center justify-center mr-2">
438
+ <i class="fas fa-file-image text-white"></i>
439
+ </div>
440
+ <h3 class="text-xl font-bold text-dark">PixelPDF</h3>
441
+ </div>
442
+ <p class="text-gray-600 mb-4">Premium document conversion tools for professionals.</p>
443
+ <div class="flex space-x-4">
444
+ <a href="#" class="text-gray-500 hover:text-primary"><i class="fab fa-twitter"></i></a>
445
+ <a href="#" class="text-gray-500 hover:text-primary"><i class="fab fa-facebook"></i></a>
446
+ <a href="#" class="text-gray-500 hover:text-primary"><i class="fab fa-instagram"></i></a>
447
+ <a href="#" class="text-gray-500 hover:text-primary"><i class="fab fa-linkedin"></i></a>
448
+ </div>
449
+ </div>
450
+
451
+ <div>
452
+ <h4 class="text-lg font-semibold text-dark mb-4">Product</h4>
453
+ <ul class="space-y-2">
454
+ <li><a href="#" class="text-gray-600 hover:text-primary">Features</a></li>
455
+ <li><a href="#" class="text-gray-600 hover:text-primary">Pricing</a></li>
456
+ <li><a href="#" class="text-gray-600 hover:text-primary">Use Cases</a></li>
457
+ <li><a href="#" class="text-gray-600 hover:text-primary">API</a></li>
458
+ </ul>
459
+ </div>
460
+
461
+ <div>
462
+ <h4 class="text-lg font-semibold text-dark mb-4">Resources</h4>
463
+ <ul class="space-y-2">
464
+ <li><a href="#" class="text-gray-600 hover:text-primary">Documentation</a></li>
465
+ <li><a href="#" class="text-gray-600 hover:text-primary">Tutorials</a></li>
466
+ <li><a href="#" class="text-gray-600 hover:text-primary">Blog</a></li>
467
+ <li><a href="#" class="text-gray-600 hover:text-primary">Support</a></li>
468
+ </ul>
469
+ </div>
470
+
471
+ <div>
472
+ <h4 class="text-lg font-semibold text-dark mb-4">Legal</h4>
473
+ <ul class="space-y-2">
474
+ <li><a href="#" class="text-gray-600 hover:text-primary">Privacy Policy</a></li>
475
+ <li><a href="#" class="text-gray-600 hover:text-primary">Terms of Service</a></li>
476
+ <li><a href="#" class="text-gray-600 hover:text-primary">Cookie Policy</a></li>
477
+ <li><a href="#" class="text-gray-600 hover:text-primary">GDPR</a></li>
478
+ </ul>
479
+ </div>
480
+ </div>
481
+
482
+ <div class="text-center py-6 text-gray-500 border-t border-gray-200">
483
+ <p>&copy; 2023 PixelPDF. All rights reserved.</p>
484
+ </div>
485
+ </footer>
486
+
487
+ <!-- Floating Action Button -->
488
+ <div class="fixed bottom-8 right-8">
489
+ <button class="floating-btn bg-primary text-white w-14 h-14 rounded-full flex items-center justify-center shadow-lg glow">
490
+ <i class="fas fa-comment-alt text-xl"></i>
491
+ </button>
492
+ </div>
493
+
494
+ <script>
495
+ // Tab switching functionality
496
+ const pdfToImageTab = document.getElementById('pdfToImageTab');
497
+ const imageToPdfTab = document.getElementById('imageToPdfTab');
498
+ const pdfToImageConverter = document.getElementById('pdfToImageConverter');
499
+ const imageToPdfConverter = document.getElementById('imageToPdfConverter');
500
+
501
+ pdfToImageTab.addEventListener('click', () => {
502
+ pdfToImageTab.classList.add('active');
503
+ imageToPdfTab.classList.remove('active');
504
+ pdfToImageConverter.classList.remove('hidden');
505
+ imageToPdfConverter.classList.add('hidden');
506
+ });
507
+
508
+ imageToPdfTab.addEventListener('click', () => {
509
+ imageToPdfTab.classList.add('active');
510
+ pdfToImageTab.classList.remove('active');
511
+ imageToPdfConverter.classList.remove('hidden');
512
+ pdfToImageConverter.classList.add('hidden');
513
+ });
514
+
515
+ // Drop zone functionality
516
+ const pdfDropZone = document.getElementById('pdfDropZone');
517
+ const imageDropZone = document.getElementById('imageDropZone');
518
+ const pdfInput = document.getElementById('pdfInput');
519
+ const imageInput = document.getElementById('imageInput');
520
+ const previewSection = document.getElementById('previewSection');
521
+ const previewContainer = document.querySelector('.preview-container');
522
+
523
+ // PDF Drop Zone
524
+ pdfDropZone.addEventListener('click', () => {
525
+ pdfInput.click();
526
+ });
527
+
528
+ pdfDropZone.addEventListener('dragover', (e) => {
529
+ e.preventDefault();
530
+ pdfDropZone.classList.add('active');
531
+ });
532
+
533
+ pdfDropZone.addEventListener('dragleave', () => {
534
+ pdfDropZone.classList.remove('active');
535
+ });
536
+
537
+ pdfDropZone.addEventListener('drop', (e) => {
538
+ e.preventDefault();
539
+ pdfDropZone.classList.remove('active');
540
+ const file = e.dataTransfer.files[0];
541
+ if (file && file.type === 'application/pdf') {
542
+ handleFile(file);
543
+ } else {
544
+ alert('Please drop a valid PDF file');
545
+ }
546
+ });
547
+
548
+ pdfInput.addEventListener('change', (e) => {
549
+ if (e.target.files.length) {
550
+ handleFile(e.target.files[0]);
551
+ }
552
+ });
553
+
554
+ // Image Drop Zone
555
+ imageDropZone.addEventListener('click', () => {
556
+ imageInput.click();
557
+ });
558
+
559
+ imageDropZone.addEventListener('dragover', (e) => {
560
+ e.preventDefault();
561
+ imageDropZone.classList.add('active');
562
+ });
563
+
564
+ imageDropZone.addEventListener('dragleave', () => {
565
+ imageDropZone.classList.remove('active');
566
+ });
567
+
568
+ imageDropZone.addEventListener('drop', (e) => {
569
+ e.preventDefault();
570
+ imageDropZone.classList.remove('active');
571
+ const files = e.dataTransfer.files;
572
+ if (files.length) {
573
+ handleImageFiles(files);
574
+ }
575
+ });
576
+
577
+ imageInput.addEventListener('change', (e) => {
578
+ if (e.target.files.length) {
579
+ handleImageFiles(e.target.files);
580
+ }
581
+ });
582
+
583
+ // Handle file function
584
+ function handleFile(file) {
585
+ // In a real app, you would process the PDF here
586
+ // For this demo, we'll simulate processing
587
+
588
+ // Show preview section
589
+ previewSection.classList.remove('hidden');
590
+
591
+ // Clear previous previews
592
+ previewContainer.innerHTML = '';
593
+
594
+ // Simulate processing 3 pages
595
+ for (let i = 1; i <= 3; i++) {
596
+ const previewItem = document.createElement('div');
597
+ previewItem.className = 'preview-item bg-white rounded-xl overflow-hidden';
598
+ previewItem.innerHTML = `
599
+ <div class="relative">
600
+ <div class="bg-gray-200 border-2 border-dashed rounded-xl w-full h-48"></div>
601
+ <div class="absolute top-2 right-2 bg-primary text-white text-xs font-bold py-1 px-2 rounded">Page ${i}</div>
602
+ </div>
603
+ <div class="p-4">
604
+ <p class="font-semibold text-dark mb-1">${file.name.replace('.pdf', '')}_page${i}.jpg</p>
605
+ <div class="flex justify-between items-center">
606
+ <span class="text-sm text-gray-500">1.2 MB</span>
607
+ <button class="text-primary hover:text-indigo-700">
608
+ <i class="fas fa-download"></i>
609
+ </button>
610
+ </div>
611
+ </div>
612
+ `;
613
+ previewContainer.appendChild(previewItem);
614
+ }
615
+
616
+ // Scroll to preview section
617
+ previewSection.scrollIntoView({ behavior: 'smooth' });
618
+ }
619
+
620
+ // Handle image files function
621
+ function handleImageFiles(files) {
622
+ // Show preview section
623
+ previewSection.classList.remove('hidden');
624
+
625
+ // Clear previous previews
626
+ previewContainer.innerHTML = '';
627
+
628
+ // Show up to 4 images
629
+ const fileCount = Math.min(files.length, 4);
630
+ for (let i = 0; i < fileCount; i++) {
631
+ const file = files[i];
632
+ const reader = new FileReader();
633
+
634
+ reader.onload = function(e) {
635
+ const previewItem = document.createElement('div');
636
+ previewItem.className = 'preview-item bg-white rounded-xl overflow-hidden';
637
+ previewItem.innerHTML = `
638
+ <div class="relative">
639
+ <img src="${e.target.result}" alt="Preview" class="w-full h-48 object-cover">
640
+ <div class="absolute top-2 right-2 bg-primary text-white text-xs font-bold py-1 px-2 rounded">${i+1}</div>
641
+ </div>
642
+ <div class="p-4">
643
+ <p class="font-semibold text-dark mb-1 truncate">${file.name}</p>
644
+ <div class="flex justify-between items-center">
645
+ <span class="text-sm text-gray-500">${formatFileSize(file.size)}</span>
646
+ <button class="text-primary hover:text-indigo-700">
647
+ <i class="fas fa-download"></i>
648
+ </button>
649
+ </div>
650
+ </div>
651
+ `;
652
+ previewContainer.appendChild(previewItem);
653
+ }
654
+
655
+ reader.readAsDataURL(file);
656
+ }
657
+
658
+ // If more than 4 files, show a count
659
+ if (files.length > 4) {
660
+ const extraCount = files.length - 4;
661
+ const previewItem = document.createElement('div');
662
+ previewItem.className = 'preview-item bg-indigo-50 rounded-xl flex items-center justify-center h-full';
663
+ previewItem.innerHTML = `
664
+ <div class="text-center p-4">
665
+ <div class="bg-primary bg-opacity-10 w-12 h-12 rounded-full flex items-center justify-center mx-auto mb-3">
666
+ <i class="fas fa-plus text-primary"></i>
667
+ </div>
668
+ <p class="font-semibold text-dark">+${extraCount} more</p>
669
+ </div>
670
+ `;
671
+ previewContainer.appendChild(previewItem);
672
+ }
673
+
674
+ // Scroll to preview section
675
+ previewSection.scrollIntoView({ behavior: 'smooth' });
676
+ }
677
+
678
+ // Format file size
679
+ function formatFileSize(bytes) {
680
+ if (bytes === 0) return '0 Bytes';
681
+ const k = 1024;
682
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
683
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
684
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
685
+ }
686
+
687
+ // Convert buttons functionality
688
+ document.querySelectorAll('#pdfToImageConverter button, #imageToPdfConverter button').forEach(button => {
689
+ button.addEventListener('click', () => {
690
+ // Simulate conversion process
691
+ const progressBar = document.createElement('div');
692
+ progressBar.className = 'w-full bg-gray-200 rounded-full h-2.5 mb-4';
693
+ progressBar.innerHTML = '<div class="progress-bar bg-primary h-2.5 rounded-full" style="width: 0%"></div>';
694
+
695
+ button.parentNode.insertBefore(progressBar, button);
696
+
697
+ button.disabled = true;
698
+ button.textContent = 'Processing...';
699
+
700
+ let width = 0;
701
+ const interval = setInterval(() => {
702
+ width += 5;
703
+ progressBar.querySelector('.progress-bar').style.width = width + '%';
704
+
705
+ if (width >= 100) {
706
+ clearInterval(interval);
707
+ setTimeout(() => {
708
+ button.textContent = 'Download Results';
709
+ button.classList.add('glow');
710
+ button.disabled = false;
711
+
712
+ // Show preview section if not already shown
713
+ previewSection.classList.remove('hidden');
714
+ }, 500);
715
+ }
716
+ }, 50);
717
+ });
718
+ });
719
+ </script>
720
+ </body>
721
+ </html>