Spaces:
Running
Running
Upload 11 files
Browse files- .gitattributes +2 -0
- assets/VIBE_Class_Photo_2026-01-27.png +3 -0
- assets/photobg.png +3 -0
- src/views/InstructorView.js +13 -5
.gitattributes
CHANGED
|
@@ -34,3 +34,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
assets/instructor_avatar.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
assets/instructor_avatar.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
assets/photobg.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
assets/VIBE_Class_Photo_2026-01-27.png filter=lfs diff=lfs merge=lfs -text
|
assets/VIBE_Class_Photo_2026-01-27.png
ADDED
|
Git LFS Details
|
assets/photobg.png
ADDED
|
Git LFS Details
|
src/views/InstructorView.js
CHANGED
|
@@ -318,16 +318,24 @@ export function setupInstructorEvents() {
|
|
| 318 |
|
| 319 |
container.innerHTML = '';
|
| 320 |
|
| 321 |
-
// 1. Container for Relative Positioning
|
| 322 |
const relativeContainer = document.createElement('div');
|
| 323 |
-
relativeContainer.className = 'relative w-full h-[600px] md:h-[700px] overflow-hidden rounded-3xl
|
|
|
|
| 324 |
container.appendChild(relativeContainer);
|
| 325 |
|
| 326 |
-
// Watermark
|
| 327 |
const watermark = document.createElement('div');
|
| 328 |
-
watermark.className = 'absolute bottom-
|
|
|
|
| 329 |
const d = new Date();
|
| 330 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 331 |
relativeContainer.appendChild(watermark);
|
| 332 |
|
| 333 |
// 2. Instructor Section (Absolute Center)
|
|
|
|
| 318 |
|
| 319 |
container.innerHTML = '';
|
| 320 |
|
| 321 |
+
// 1. Container for Relative Positioning with Custom Background
|
| 322 |
const relativeContainer = document.createElement('div');
|
| 323 |
+
relativeContainer.className = 'relative w-full h-[600px] md:h-[700px] overflow-hidden rounded-3xl border border-gray-700/30 shadow-2xl flex items-center justify-center bg-cover bg-center';
|
| 324 |
+
relativeContainer.style.backgroundImage = "url('assets/photobg.png')";
|
| 325 |
container.appendChild(relativeContainer);
|
| 326 |
|
| 327 |
+
// Watermark (Bottom Right, High Z-Index, Gradient Text, Dark Backdrop)
|
| 328 |
const watermark = document.createElement('div');
|
| 329 |
+
watermark.className = 'absolute bottom-2 right-2 md:bottom-4 md:right-4 z-[60] bg-black/70 backdrop-blur-sm rounded-lg px-4 py-2 pointer-events-none select-none border border-white/10 shadow-lg';
|
| 330 |
+
|
| 331 |
const d = new Date();
|
| 332 |
+
const dateStr = `${d.getFullYear()}.${String(d.getMonth() + 1).padStart(2, '0')}.${String(d.getDate()).padStart(2, '0')}`;
|
| 333 |
+
|
| 334 |
+
watermark.innerHTML = `
|
| 335 |
+
<span class="text-lg md:text-2xl font-black font-mono bg-clip-text text-transparent bg-gradient-to-r from-cyan-400 to-purple-400 tracking-wider">
|
| 336 |
+
${dateStr} VibeCoding 怪獸成長營
|
| 337 |
+
</span>
|
| 338 |
+
`;
|
| 339 |
relativeContainer.appendChild(watermark);
|
| 340 |
|
| 341 |
// 2. Instructor Section (Absolute Center)
|