DeepSeek-harness pass: CVE audit (clean), clipboard paste upload, floating upload CTA, master-designer visual overhaul (glow CTA, staggered entrance, highlight-new, focus states) + full sync (README, lockfile, REPORT)

This commit is contained in:
krisf
2026-08-22 16:25:48 -04:00
parent 9cdaa3f176
commit 513ae4827d
5 changed files with 607 additions and 158 deletions
+22 -9
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Imgur Clone - Share Your World</title>
<link rel="stylesheet" href="/css/style.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
</head>
<body>
<!-- Header -->
@@ -17,7 +17,7 @@
</div>
<div class="search-bar">
<input type="text" id="searchInput" placeholder="Search images..." oninput="filterPosts()">
<button onclick="filterPosts()">🔍</button>
<button onclick="filterPosts()" aria-label="Search">🔍</button>
</div>
<button class="btn-new-post" onclick="openUploadModal()">+ New Post</button>
</div>
@@ -45,25 +45,38 @@
</div>
</main>
<!-- Floating Action Button -->
<button class="fab" onclick="openUploadModal()" aria-label="Upload image" title="Upload image (or paste with Ctrl+V)">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
<line x1="12" y1="5" x2="12" y2="19"></line>
<line x1="5" y1="12" x2="19" y2="12"></line>
</svg>
</button>
<!-- Upload Modal -->
<div class="modal-overlay" id="uploadModal">
<div class="modal">
<div class="modal-header">
<h2>Create New Post</h2>
<button class="modal-close" onclick="closeUploadModal()"></button>
<button class="modal-close" onclick="closeUploadModal()" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="upload-zone" id="uploadZone">
<div class="upload-prompt">
<div class="upload-prompt" id="uploadPrompt">
<div class="upload-icon">📁</div>
<p>Drag & drop an image here</p>
<p class="upload-main-text">Drag &amp; drop an image here</p>
<p class="upload-hint">or click to browse</p>
<p class="upload-paste-hint">or paste an image with <kbd>Ctrl</kbd>+<kbd>V</kbd></p>
<p class="upload-formats">JPEG, PNG, GIF, WebP (max 20MB)</p>
</div>
<input type="file" id="fileInput" accept="image/jpeg,image/png,image/gif,image/webp" hidden>
<div class="upload-preview" id="uploadPreview" style="display:none;">
<img id="previewImage" src="" alt="Preview">
<button class="btn-remove" onclick="removePreview()"> Remove</button>
<button class="btn-remove" onclick="removePreview()" aria-label="Remove image"></button>
</div>
<div class="upload-processing" id="uploadProcessing" style="display:none;">
<div class="spinner spinner-sm"></div>
<p>Optimizing for 4K...</p>
</div>
</div>
<div class="form-group">
@@ -89,7 +102,7 @@
<div class="modal modal-large">
<div class="modal-header">
<h2 id="postModalTitle"></h2>
<button class="modal-close" onclick="closePostModal()"></button>
<button class="modal-close" onclick="closePostModal()" aria-label="Close"></button>
</div>
<div class="modal-body post-detail">
<div class="post-detail-grid">
@@ -98,9 +111,9 @@
</div>
<div class="post-sidebar">
<div class="vote-box">
<button class="vote-btn upvote" onclick="votePost('up')"></button>
<button class="vote-btn upvote" onclick="votePost('up')" aria-label="Upvote"></button>
<span class="vote-count" id="postModalVotes">0</span>
<button class="vote-btn downvote" onclick="votePost('down')"></button>
<button class="vote-btn downvote" onclick="votePost('down')" aria-label="Downvote"></button>
</div>
<div class="post-meta">
<span class="meta-item">👁️ <span id="postModalViews">0</span> views</span>