oskarnr1 commited on
Commit
e2e845c
·
verified ·
1 Parent(s): 9d4805c
Files changed (1) hide show
  1. index.html +67 -93
index.html CHANGED
@@ -252,15 +252,16 @@ Download CV
252
  <h2 class="text-3xl font-bold text-center mb-6">Featured Projects</h2>
253
  <div class="flex justify-center space-x-4 mb-16">
254
  <button id="all-btn" class="px-6 py-2 bg-red-600 text-white rounded-full font-medium" onclick="filterProjects('all')">All</button>
255
- <button id="games-btn" class="px-6 py-2 rounded-full font-medium hover:bg-red-50 hovered-element bg-red-600 text-white" onclick="filterProjects('games')">Games</button>
256
- <button id="art-btn" class="px-6 py-2 border border-red-600 text-red-600 rounded-full font-medium hover:bg-red-50" onclick="filterProjects('art')">Art</button>
257
  </div>
258
- <div id="projects-grid" class="w-full max-w-5xl mx-auto grid grid-cols-1 gap-8">
259
- <!-- Game Column -->
260
- <div id="games-col-all" class="grid grid-cols-1 md:grid-cols-2 gap-8" style="display: none;">
261
- <h3 class="text-2xl font-bold mb-6 text-center">Games</h3>
262
- <div class="project-card bg-gray-50 rounded-xl overflow-hidden shadow-sm max-w-2xl mx-auto w-full">
263
- <img src="https://static.wixstatic.com/media/6588f2_d9fdecb14bfc48ac99bd5efed3e1b054~mv2.png" alt="Project 1" class="w-full h-48 object-cover">
 
264
  <div class="p-6">
265
  <h2 class="text-2xl font-bold mb-2">Bap Cat</h2>
266
  <h3 class="text-xl font-semibold mb-2">A game about a cat spreading chaos in their owners cafe</h3>
@@ -271,10 +272,8 @@ Download CV
271
  </a>
272
  </div>
273
  </div>
274
- </div>
275
- </div>
276
- <div class="project-card bg-gray-50 rounded-xl overflow-hidden shadow-sm max-w-2xl mx-auto">
277
- <img src="http://static.photos/gaming/640x360/101" alt="Game Project 1" class="w-full h-48 object-cover">
278
  <div class="p-6">
279
  <h2 class="text-2xl font-bold mb-2">Mech Warrior</h2>
280
  <h3 class="text-xl font-semibold mb-2">Epic mech battles in futuristic cities</h3>
@@ -285,12 +284,29 @@ Download CV
285
  </a>
286
  </div>
287
  </div>
288
- <div class="project-card bg-gray-50 rounded-xl overflow-hidden shadow-sm max-w-2xl mx-auto">
289
- <img src="http://static.photos/gaming/640x360/102" alt="Game Project 2" class="w-full h-48 object-cover">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  <div class="p-6">
291
- <h2 class="text-2xl font-bold mb-2">Pixel Adventure</h2>
292
- <h3 class="text-xl font-semibold mb-2">Retro-style platformer with modern mechanics</h3>
293
- <p class="text-gray-600 mb-4">Explore a vibrant pixel world full of secrets and challenges</p>
294
  <a href="#" class="text-red-600 hover:text-red-800 font-medium inline-flex items-center">
295
  View Project
296
  <i data-feather="arrow-right" class="ml-2"></i>
@@ -298,6 +314,7 @@ Download CV
298
  </div>
299
  </div>
300
  </div>
 
301
  <!-- Games Column (Filtered State) -->
302
  <div id="games-col-filtered" class="grid grid-cols-1 gap-8" style="display: none;">
303
  <h3 class="text-2xl font-bold mb-6 text-center">Games</h3>
@@ -444,86 +461,43 @@ View All Projects
444
  });
445
  // Initialize feather icons
446
  feather.replace();
447
- // Project filtering functionality
448
- function filterProjects(filter) {
449
- const gamesColAll = document.getElementById('games-col-all');
450
- const gamesColFiltered = document.getElementById('games-col-filtered');
451
- const artCol = document.getElementById('art-col');
452
- const gamesBtn = document.getElementById('games-btn');
453
- const artBtn = document.getElementById('art-btn');
454
- const allBtn = document.getElementById('all-btn');
455
- const projectsGrid = document.getElementById('projects-grid');
456
- const artColAll = document.getElementById('art-col-all');
457
- const artColFiltered = document.getElementById('art-col-filtered');
458
-
459
- // Reset all buttons
460
- gamesBtn.classList.remove('bg-red-600', 'text-white');
461
- gamesBtn.classList.add('border', 'border-red-600', 'text-red-600');
462
- artBtn.classList.remove('bg-red-600', 'text-white');
463
- artBtn.classList.add('border', 'border-red-600', 'text-red-600');
464
- allBtn.classList.remove('bg-red-600', 'text-white');
465
- allBtn.classList.add('border', 'border-red-600', 'text-red-600');
466
- if (filter === 'games') {
467
- // Show only filtered games column centered
468
- gamesColAll.style.display = 'none';
469
- gamesColFiltered.style.display = 'grid';
470
- artColAll.style.display = 'none';
471
- artColFiltered.style.display = 'none';
472
- projectsGrid.style.gridTemplateColumns = '1fr 1fr';
473
- projectsGrid.style.maxWidth = '1024px';
474
- projectsGrid.style.gap = '2rem';
475
- projectsGrid.style.gap = '2rem';
476
- // Update button styles
477
- gamesBtn.classList.add('bg-red-600', 'text-white');
478
- gamesBtn.classList.remove('border', 'border-red-600', 'text-red-600');
479
-
480
- } else if (filter === 'art') {
481
- // Show only filtered art column centered
482
- gamesColAll.style.display = 'none';
483
- gamesColFiltered.style.display = 'none';
484
- artColAll.style.display = 'none';
485
- artColFiltered.style.display = 'grid';
486
- projectsGrid.style.gridTemplateColumns = '1fr 1fr';
487
- projectsGrid.style.maxWidth = '1024px';
488
- projectsGrid.style.gap = '2rem';
489
- // Update button styles
490
- artBtn.classList.add('bg-red-600', 'text-white');
491
- artBtn.classList.remove('border', 'border-red-600', 'text-red-600');
492
-
493
- } else { // all
494
- // Show both columns side by side
495
- gamesColAll.style.display = 'grid';
496
- gamesColFiltered.style.display = 'none';
497
- artColAll.style.display = 'grid';
498
- artColFiltered.style.display = 'none';
499
- projectsGrid.style.gridTemplateColumns = '1fr 1fr';
500
- projectsGrid.style.maxWidth = '1024px';
501
-
502
- // Update button styles
503
- allBtn.classList.add('bg-red-600', 'text-white');
504
- allBtn.classList.remove('border', 'border-red-600', 'text-red-600');
505
- }
506
- }
507
- // Initialize with all shown by default
508
- document.addEventListener('DOMContentLoaded', function() {
509
- const projectsGrid = document.getElementById('projects-grid');
510
- projectsGrid.style.gridTemplateColumns = '1fr 1fr';
511
- projectsGrid.style.maxWidth = '1024px';
512
- projectsGrid.style.gap = '2rem';
513
- document.getElementById('games-col-all').style.display = 'grid';
514
- document.getElementById('art-col-all').style.display = 'grid';
515
- filterProjects('all');
516
  // Initialize with all shown by default
517
  document.addEventListener('DOMContentLoaded', function() {
518
- const projectsGrid = document.getElementById('projects-grid');
519
- projectsGrid.style.gridTemplateColumns = '1fr 1fr';
520
- projectsGrid.style.maxWidth = '1024px';
521
- projectsGrid.style.gap = '2rem';
522
- document.getElementById('games-col-all').style.display = 'grid';
523
- document.getElementById('art-col-all').style.display = 'grid';
524
  filterProjects('all');
525
  });
526
- });
527
  // Scroll to section function
528
  function scrollToSection(sectionId) {
529
  if (sectionId === 'hero') {
 
252
  <h2 class="text-3xl font-bold text-center mb-6">Featured Projects</h2>
253
  <div class="flex justify-center space-x-4 mb-16">
254
  <button id="all-btn" class="px-6 py-2 bg-red-600 text-white rounded-full font-medium" onclick="filterProjects('all')">All</button>
255
+ <button id="games-btn" class="px-6 py-2 border border-red-600 text-red-600 rounded-full font-medium hover:bg-red-50" onclick="filterProjects('games')">Games</button>
256
+ <button id="art-btn" class="px-6 py-2 border border-red-600 text-red-600 rounded-full font-medium hover:bg-red-50" onclick="filterProjects('art')">Art</button>
257
  </div>
258
+
259
+ <div id="projects-grid" class="w-full max-w-5xl mx-auto grid gap-8">
260
+ <!-- Games Column -->
261
+ <div id="games-col" class="grid grid-cols-1 md:grid-cols-2 gap-8">
262
+ <h3 class="text-2xl font-bold mb-6 text-center col-span-2">Games</h3>
263
+ <div class="project-card bg-gray-50 rounded-xl overflow-hidden shadow-sm">
264
+ <img src="https://static.wixstatic.com/media/6588f2_d9fdecb14bfc48ac99bd5efed3e1b054~mv2.png" alt="Bap Cat" class="w-full h-48 object-cover">
265
  <div class="p-6">
266
  <h2 class="text-2xl font-bold mb-2">Bap Cat</h2>
267
  <h3 class="text-xl font-semibold mb-2">A game about a cat spreading chaos in their owners cafe</h3>
 
272
  </a>
273
  </div>
274
  </div>
275
+ <div class="project-card bg-gray-50 rounded-xl overflow-hidden shadow-sm">
276
+ <img src="http://static.photos/gaming/640x360/101" alt="Mech Warrior" class="w-full h-48 object-cover">
 
 
277
  <div class="p-6">
278
  <h2 class="text-2xl font-bold mb-2">Mech Warrior</h2>
279
  <h3 class="text-xl font-semibold mb-2">Epic mech battles in futuristic cities</h3>
 
284
  </a>
285
  </div>
286
  </div>
287
+ </div>
288
+
289
+ <!-- Art Column -->
290
+ <div id="art-col" class="grid grid-cols-1 md:grid-cols-2 gap-8" style="display:none;">
291
+ <h3 class="text-2xl font-bold mb-6 text-center col-span-2">Art</h3>
292
+ <div class="project-card bg-gray-50 rounded-xl overflow-hidden shadow-sm">
293
+ <img src="https://static.wixstatic.com/media/6588f2_24e4126d37144f21863c7c78faba9f93~mv2.jpg" alt="The Fireflies Night" class="w-full h-48 object-cover">
294
+ <div class="p-6">
295
+ <h2 class="text-2xl font-bold mb-2">The Fireflies Night</h2>
296
+ <h3 class="text-xl font-semibold mb-2">In the full moonlight, there is a house, where the fireflies lead weary travelers to its doors.</h3>
297
+ <p class="text-gray-600 mb-4">Take control of a powerful mech and engage in intense combat scenarios</p>
298
+ <a href="#" class="text-red-600 hover:text-red-800 font-medium inline-flex items-center">
299
+ View Project
300
+ <i data-feather="arrow-right" class="ml-2"></i>
301
+ </a>
302
+ </div>
303
+ </div>
304
+ <div class="project-card bg-gray-50 rounded-xl overflow-hidden shadow-sm">
305
+ <img src="http://static.photos/art/640x360/42" alt="Concept Art Collection" class="w-full h-48 object-cover">
306
  <div class="p-6">
307
+ <h2 class="text-2xl font-bold mb-2">Concept Art Collection</h2>
308
+ <h3 class="text-xl font-semibold mb-2">Stylized character designs</h3>
309
+ <p class="text-gray-600 mb-4">A series of character concepts for fantasy RPG game</p>
310
  <a href="#" class="text-red-600 hover:text-red-800 font-medium inline-flex items-center">
311
  View Project
312
  <i data-feather="arrow-right" class="ml-2"></i>
 
314
  </div>
315
  </div>
316
  </div>
317
+ </div>
318
  <!-- Games Column (Filtered State) -->
319
  <div id="games-col-filtered" class="grid grid-cols-1 gap-8" style="display: none;">
320
  <h3 class="text-2xl font-bold mb-6 text-center">Games</h3>
 
461
  });
462
  // Initialize feather icons
463
  feather.replace();
464
+ // Project filtering functionality
465
+ function filterProjects(filter) {
466
+ const gamesCol = document.getElementById('games-col');
467
+ const artCol = document.getElementById('art-col');
468
+ const gamesBtn = document.getElementById('games-btn');
469
+ const artBtn = document.getElementById('art-btn');
470
+ const allBtn = document.getElementById('all-btn');
471
+
472
+ // Reset all buttons
473
+ gamesBtn.classList.remove('bg-red-600', 'text-white');
474
+ gamesBtn.classList.add('border', 'border-red-600', 'text-red-600');
475
+ artBtn.classList.remove('bg-red-600', 'text-white');
476
+ artBtn.classList.add('border', 'border-red-600', 'text-red-600');
477
+ allBtn.classList.remove('bg-red-600', 'text-white');
478
+ allBtn.classList.add('border', 'border-red-600', 'text-red-600');
479
+
480
+ if (filter === 'games') {
481
+ gamesCol.style.display = 'grid';
482
+ artCol.style.display = 'none';
483
+ gamesBtn.classList.add('bg-red-600', 'text-white');
484
+ gamesBtn.classList.remove('border', 'border-red-600', 'text-red-600');
485
+ } else if (filter === 'art') {
486
+ gamesCol.style.display = 'none';
487
+ artCol.style.display = 'grid';
488
+ artBtn.classList.add('bg-red-600', 'text-white');
489
+ artBtn.classList.remove('border', 'border-red-600', 'text-red-600');
490
+ } else { // all
491
+ gamesCol.style.display = 'grid';
492
+ artCol.style.display = 'grid';
493
+ allBtn.classList.add('bg-red-600', 'text-white');
494
+ allBtn.classList.remove('border', 'border-red-600', 'text-red-600');
495
+ }
496
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
497
  // Initialize with all shown by default
498
  document.addEventListener('DOMContentLoaded', function() {
 
 
 
 
 
 
499
  filterProjects('all');
500
  });
 
501
  // Scroll to section function
502
  function scrollToSection(sectionId) {
503
  if (sectionId === 'hero') {