File size: 13,406 Bytes
48182f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<!DOCTYPE html>
<html lang="en" class="scroll-smooth">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ArtVerse - Creative Gallery</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <script src="https://unpkg.com/lucide@latest"></script>
    <script>
        tailwind.config = {
            darkMode: 'class',
            theme: {
                extend: {
                    colors: {
                        dark: '#0f0f0f',
                        card: '#1a1a1a',
                        accent: '#00c8b3',
                        'accent-hover': '#00b09d'
                    },
                    fontFamily: {
                        sans: ['Inter', 'system-ui', 'sans-serif'],
                    }
                }
            }
        }
    </script>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
    <style>
        body { font-family: 'Inter', sans-serif; }
        .artwork-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 1.5rem;
        }
        @media (max-width: 640px) {
            .artwork-grid { grid-template-columns: 1fr; }
        }
        .masonry-item { break-inside: avoid; margin-bottom: 1.5rem; }
        .hover-overlay {
            background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, transparent 100%);
        }
        .like-anim { animation: heartBeat 0.3s ease; }
        @keyframes heartBeat {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.2); }
        }
        .fade-in { animation: fadeIn 0.5s ease-in; }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .loading-skeleton {
            background: linear-gradient(90deg, #1a1a1a 25%, #2a2a2a 50%, #1a1a1a 75%);
            background-size: 200% 100%;
            animation: loading 1.5s infinite;
        }
        @keyframes loading {
            0% { background-position: 200% 0; }
            100% { background-position: -200% 0; }
        }
    </style>
</head>
<body class="bg-dark text-gray-100 min-h-screen">
    <!-- Navigation -->
    <nav class="fixed top-0 w-full bg-dark/95 backdrop-blur-md border-b border-gray-800 z-50">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="flex items-center justify-between h-16">
                <div class="flex items-center gap-8">
                    <a href="#" class="flex items-center gap-2 text-2xl font-bold text-white">
                        <i data-lucide="palette" class="text-accent"></i>
                        <span>ArtVerse</span>
                    </a>
                    <div class="hidden md:flex items-center gap-6 text-sm">
                        <a href="#" class="hover:text-accent transition-colors">Browse</a>
                        <a href="#" class="hover:text-accent transition-colors">Watch</a>
                        <a href="#" class="hover:text-accent transition-colors">Community</a>
                        <a href="#" class="hover:text-accent transition-colors">Shop</a>
                    </div>
                </div>
                
                <div class="flex items-center gap-4">
                    <div class="relative hidden sm:block">
                        <input type="text" 
                               id="searchInput"
                               placeholder="Search artworks..." 
                               class="bg-card border border-gray-700 rounded-full px-4 py-1.5 pl-10 text-sm focus:outline-none focus:border-accent w-64 transition-all">
                        <i data-lucide="search" class="absolute left-3 top-2 w-4 h-4 text-gray-400"></i>
                    </div>
                    <button id="themeToggle" class="p-2 hover:bg-card rounded-full transition-colors">
                        <i data-lucide="moon" class="w-5 h-5"></i>
                    </button>
                    <button class="bg-accent hover:bg-accent-hover text-dark font-semibold px-4 py-1.5 rounded-full text-sm transition-colors">
                        Submit
                    </button>
                    <div class="w-8 h-8 rounded-full bg-gradient-to-br from-accent to-blue-500 cursor-pointer"></div>
                </div>
            </div>
        </div>
    </nav>

    <!-- Main Content -->
    <main class="pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto">
        <!-- Hero Section -->
        <div class="mb-12 text-center fade-in">
            <h1 class="text-4xl md:text-6xl font-bold mb-4 bg-gradient-to-r from-white to-gray-400 bg-clip-text text-transparent">
                Discover Amazing Art
            </h1>
            <p class="text-gray-400 text-lg max-w-2xl mx-auto">
                Join the world's largest art community and share your creativity with millions of artists and art enthusiasts.
            </p>
        </div>

        <!-- Filters -->
        <div class="flex flex-wrap items-center justify-center gap-3 mb-8 fade-in" style="animation-delay: 0.1s">
            <button class="filter-btn active px-4 py-2 rounded-full bg-accent text-dark font-medium text-sm transition-all" data-category="all">
                All
            </button>
            <button class="filter-btn px-4 py-2 rounded-full bg-card border border-gray-700 hover:border-accent text-sm transition-all" data-category="digital">
                Digital Art
            </button>
            <button class="filter-btn px-4 py-2 rounded-full bg-card border border-gray-700 hover:border-accent text-sm transition-all" data-category="traditional">
                Traditional
            </button>
            <button class="filter-btn px-4 py-2 rounded-full bg-card border border-gray-700 hover:border-accent text-sm transition-all" data-category="photography">
                Photography
            </button>
            <button class="filter-btn px-4 py-2 rounded-full bg-card border border-gray-700 hover:border-accent text-sm transition-all" data-category="3d">
                3D & Fractal
            </button>
            <button class="filter-btn px-4 py-2 rounded-full bg-card border border-gray-700 hover:border-accent text-sm transition-all" data-category="anime">
                Anime & Manga
            </button>
        </div>

        <!-- Sort Options -->
        <div class="flex justify-between items-center mb-6 fade-in" style="animation-delay: 0.2s">
            <span class="text-gray-400 text-sm" id="resultCount">Showing 12 artworks</span>
            <select id="sortSelect" class="bg-card border border-gray-700 rounded-lg px-3 py-1.5 text-sm focus:outline-none focus:border-accent cursor-pointer">
                <option value="newest">Newest First</option>
                <option value="popular">Most Popular</option>
                <option value="comments">Most Commented</option>
            </select>
        </div>

        <!-- Gallery Grid -->
        <div id="gallery" class="artwork-grid fade-in" style="animation-delay: 0.3s">
            <!-- Artworks will be injected here by JavaScript -->
        </div>

        <!-- Loading State (hidden by default) -->
        <div id="loadingState" class="hidden py-12">
            <div class="flex justify-center items-center gap-2">
                <div class="w-3 h-3 bg-accent rounded-full animate-bounce"></div>
                <div class="w-3 h-3 bg-accent rounded-full animate-bounce" style="animation-delay: 0.1s"></div>
                <div class="w-3 h-3 bg-accent rounded-full animate-bounce" style="animation-delay: 0.2s"></div>
            </div>
            <p class="text-center text-gray-400 mt-4 text-sm">Loading amazing artworks...</p>
        </div>

        <!-- Load More -->
        <div class="mt-12 text-center">
            <button id="loadMoreBtn" class="px-8 py-3 bg-card border border-gray-700 hover:border-accent rounded-full text-sm font-medium transition-all hover:scale-105">
                Load More Artworks
            </button>
        </div>
    </main>

    <!-- Image Modal -->
    <div id="imageModal" class="fixed inset-0 bg-black/95 z-[60] hidden overflow-y-auto">
        <div class="min-h-screen px-4 text-center">
            <button id="closeModal" class="fixed top-4 right-4 p-2 hover:bg-white/10 rounded-full transition-colors z-50">
                <i data-lucide="x" class="w-8 h-8"></i>
            </button>
            
            <div class="inline-block w-full max-w-6xl my-8 text-left align-middle transition-all transform bg-card rounded-lg shadow-2xl overflow-hidden" id="modalContent">
                <div class="grid md:grid-cols-3 gap-0">
                    <!-- Image Section -->
                    <div class="md:col-span-2 bg-black flex items-center justify-center p-4 md:p-8">
                        <img id="modalImage" src="" alt="" class="max-h-[80vh] w-auto object-contain rounded-lg shadow-2xl">
                    </div>
                    
                    <!-- Info Section -->
                    <div class="p-6 md:p-8 border-l border-gray-800">
                        <div class="flex items-start justify-between mb-4">
                            <div>
                                <h2 id="modalTitle" class="text-2xl font-bold mb-1"></h2>
                                <p id="modalCategory" class="text-accent text-sm"></p>
                            </div>
                            <div class="flex gap-2">
                                <button id="modalLikeBtn" class="p-2 hover:bg-white/10 rounded-full transition-colors group">
                                    <i data-lucide="heart" class="w-6 h-6 group-hover:text-red-500 transition-colors"></i>
                                </button>
                                <button class="p-2 hover:bg-white/10 rounded-full transition-colors">
                                    <i data-lucide="bookmark" class="w-6 h-6"></i>
                                </button>
                                <button class="p-2 hover:bg-white/10 rounded-full transition-colors">
                                    <i data-lucide="share-2" class="w-6 h-6"></i>
                                </button>
                            </div>
                        </div>

                        <div class="flex items-center gap-3 mb-6 pb-6 border-b border-gray-800">
                            <img id="modalAvatar" src="" class="w-12 h-12 rounded-full bg-gray-700">
                            <div class="flex-1">
                                <h3 id="modalArtist" class="font-semibold hover:text-accent cursor-pointer transition-colors"></h3>
                                <p class="text-xs text-gray-400">Professional Digital Artist</p>
                            </div>
                            <button class="px-4 py-1.5 bg-accent text-dark text-sm font-semibold rounded-full hover:bg-accent-hover transition-colors">
                                Watch
                            </button>
                        </div>

                        <div class="space-y-4 mb-6">
                            <div class="flex items-center gap-4 text-sm text-gray-400">
                                <span class="flex items-center gap-1">
                                    <i data-lucide="eye" class="w-4 h-4"></i>
                                    <span id="modalViews"></span>
                                </span>
                                <span class="flex items-center gap-1">
                                    <i data-lucide="message-circle" class="w-4 h-4"></i>
                                    <span id="modalComments"></span>
                                </span>
                                <span class="flex items-center gap-1">
                                    <i data-lucide="heart" class="w-4 h-4"></i>
                                    <span id="modalLikes"></span>
                                </span>
                            </div>
                            <p id="modalDescription" class="text-gray-300 leading-relaxed text-sm"></p>
                        </div>

                        <div class="flex flex-wrap gap-2 mb-6" id="modalTags">
                            <!-- Tags injected here -->
                        </div>

                        <button class="w-full py-3 bg-accent text-dark font-semibold rounded-lg hover:bg-accent-hover transition-colors flex items-center justify-center gap-2">
                            <i data-lucide="download" class="w-5 h-5"></i>
                            Download Full Size
                        </button>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <!-- Toast Notification -->
    <div id="toast" class="fixed bottom-4 right-4 bg-accent text-dark px-6 py-3 rounded-lg shadow-lg transform translate-y-20 opacity-0 transition-all duration-300 z-50 font-medium flex items-center gap-2">
        <i data-lucide="check-circle" class="w-5 h-5"></i>
        <span id="toastMessage">Action successful!</span>
    </div>

    <script src="script.js"></script>
<script src="https://deepsite.hf.co/deepsite-badge.js"></script>
</body>
</html>