Spaces:
Running
<!DOCTYPE html>
Browse files<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
/* --- GENEL TASARIM (CSS) --- */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: #121212; /* Koyu Tema */
color: #e0e0e0;
margin: 0;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
}
h2 {
color: #ffffff;
margin-bottom: 5px;
font-size: 28px;
}
.subtitle {
color: #aaaaaa;
font-size: 14px;
margin-bottom: 20px;
}
/* Butonlar Alanı */
.controls {
display: flex;
gap: 10px;
margin-bottom: 20px;
}
.btn {
padding: 8px 16px;
border: none;
border-radius: 4px;
cursor: pointer;
font-weight: bold;
font-size: 14px;
}
.btn-blue { background-color: #3b82f6; color: white; }
.btn-dark { background-color: #333; color: white; border: 1px solid #555; }
/* Tier Listesi Ana Kutusu */
.tier-list-container {
width: 100%;
max-width: 900px;
border: 1px solid #333;
background-color: #000;
}
/* Tier Satırları */
.tier-row {
display: flex;
min-height: 85px;
border-bottom: 1px solid #222;
}
/* Sol Taraftaki Harf Etiketleri */
.tier-label {
width: 100px;
display: flex;
align-items: center;
justify-content: center;
font-size: 28px;
font-weight: bold;
color: #000;
flex-shrink: 0;
}
/* Tier Renkleri (Görseldeki gibi) */
.s-tier { background-color: #ff7f7f; } /* Kırmızı */
.a-tier { background-color: #ffbf7f; } /* Turuncu */
.b-tier { background-color: #ffdf7f; } /* Sarı */
.c-tier { background-color: #ffff7f; } /* Açık Sarı */
.d-tier { background-color: #bfff7f; } /* Açık Yeşil */
.f-tier { background-color: #7fffbf; } /* Turkuaz/Yeşil */
/* Sürükle-Bırak Alanı (Drop Zone) */
.tier-drop-zone {
flex-grow: 1;
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 5px;
background-color: #1a1a1a;
min-height: 85px;
gap: 5px;
}
/* Sağdaki Ayarlar Kutusu (Görseldeki Çark Simgeleri) */
.tier-settings {
width: 40px;
background-color: #000;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
border-left: 1px solid #222;
}
.settings-icon {
color: white;
font-size: 18px;
cursor: pointer;
padding: 5px;
}
/* Karakter Havuzu (Alt Kısım) */
.pool-title {
text-align: left;
width: 100%;
max-width: 900px;
margin-top: 20px;
margin-bottom: 5px;
color: #ff5555; /* Pin Images rengi */
font-weight: bold;
display: flex;
align-items: center;
gap: 5px;
}
.character-pool {
width: 100%;
max-width: 900px;
min-height: 200px;
background-color: #111;
padding: 10px;
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: flex-start;
border: 1px solid #333;
}
/* Sürüklenebilir Karakter Kartları */
.char-card {
width: 70px;
height: 70px;
position: relative;
cursor: grab;
background-color: #222;
border-radius: 6px;
overflow: hidden;
transition: transform 0.1s;
}
.char-card:active {
cursor: grabbing;
transform: scale(1.05);
}
.char-card img {
width: 100%;
height: 100%;
object-fit: cover;
pointer-events: none; /* Sürükleme sorununu önler */
}
/* İsim Etiketi (Opsiyonel) */
.char-name {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
background: rgba(0,0,0,0.7);
color: white;
font-size: 9px;
text-align: center;
padding: 1px 0;
pointer-events: none;
}
</style>
</head>
<body>
<h2>Dandys World Toons Tier List Maker</h2>
<div class="subtitle">Create a dandys world toons tier list. Check out our other templates.</div>
<div class="controls">
<button class="btn btn-blue">Share on Twitter</button>
<button class="btn btn-blue">Share on FB</button>
<button class="btn btn-dark">📷 Download Image</button>
<button class="btn btn-dark">Reset</button>
</div>
<div class="tier-list-container" id="tier-list">
<div class="tier-row">
<div class="tier-label s-tier">S</div>
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div class="tier-settings">
<span class="settings-icon">⚙️</span>
<div style="display:flex; flex-direction:column;">
<span class="settings-icon">▲</span>
<span class="settings-icon">▼</span>
</div>
</div>
</div>
<div class="tier-row">
<div class="tier-label a-tier">A</div>
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div class="tier-settings"><span class="settings-icon">⚙️</span></div>
</div>
<div class="tier-row">
<div class="tier-label b-tier">B</div>
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div class="tier-settings"><span class="settings-icon">⚙️</span></div>
</div>
<div class="tier-row">
<div class="tier-label c-tier">C</div>
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div class="tier-settings"><span class="settings-icon">⚙️</span></div>
</div>
<div class="tier-row">
<div class="tier-label d-tier">D</div>
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div class="tier-settings"><span class="settings-icon">⚙️</span></div>
</div>
<div class="tier-row">
<div class="tier-label f-tier">F</div>
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div class="tier-settings"><span class="settings-icon">⚙️</span></div>
</div>
</div>
<div class="pool-title">📌 Pin Images</div>
<div class="character-pool" id="char-pool" ondrop="drop(event)" ondragover="allowDrop(event)">
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c1"><img src="LINK_FOR_CONNIE.png"><div class="char-name">Connie</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c2"><img src="LINK_FOR_BOBETTE.png"><div class="char-name">Bobette</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c3"><img src="LINK_FOR_BOXTEN.png"><div class="char-name">Boxten</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c4"><img src="LINK_FOR_BRIGHTNEY.png"><div class="char-name">Brightney</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c5"><img src="LINK_FOR_COAL.png"><div class="char-name">Coal</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c6"><img src="LINK_FOR_ASTRO.png"><div class="char-name">Astro</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c7"><img src="LINK_FOR_COSMO.png"><div class="char-name">Cosmo</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c8"><img src="LINK_FOR_DANDY.png"><div class="char-name">Dandy</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c9"><img src="LINK_FOR_FINN.png"><div class="char-name">Finn</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c10"><img src="LINK_FOR_FLUTTER.png"><div class="char-name">Flutter</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c11"><img src="LINK_FOR_GIGI.png"><div class="char-name">Gigi</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c12"><img src="LINK_FOR_GINGER.png"><div class="char-name">Ginger</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c13"><img src="LINK_FOR_GLISTEN.png"><div class="char-name">Glisten</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c14"><img src="LINK_FOR_GOOB.png"><div class="char-name">Goob</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c15"><img src="LINK_FOR_LOOEY.png"><div class="char-name">Looey</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c16"><img src="LINK_FOR_PEBBLE.png"><div class="char-name">Pebble</div></div>
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c17"><img src="LINK_FOR_POPPY.png"><div class="char-name">Poppy</div></div>
</div>
<script>
/* --- SÜRÜKLE BIRAK MANTIĞI (JS) --- */
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function allowDrop(ev) {
ev.preventDefault();
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
var draggedElement = document.getElementById(data);
// Hedef öğe "tier-drop-zone" veya "character-pool" ise ekle
if (ev.target.classList.contains('tier-drop-zone') || ev.target.classList.contains('character-pool')) {
ev.target.appendChild(draggedElement);
}
// Hedef bir "char-card" ise veya içindeki resimse, kartın olduğu ebeveyne ekle
else {
var targetZone = ev.target.closest('.tier-drop-zone') || ev.target.closest('.character-pool');
if (targetZone) {
targetZone.appendChild(draggedElement);
}
}
}
// Basit Reset Fonksiyonu (Opsiyonel)
document.querySelector('.btn-dark:last-child').addEventListener('click', function() {
var pool = document.getElementById('char-pool');
var cards = document.querySelectorAll('.char-card');
cards.forEach(card => pool.appendChild(card));
});
</script>
</body>
</html>
- components/footer.js +2 -1
- components/navbar.js +4 -2
- script.js +42 -0
- tier-list-maker.html +272 -0
|
@@ -44,8 +44,9 @@ class CustomFooter extends HTMLElement {
|
|
| 44 |
<h4 class="text-lg font-semibold mb-4">Resources</h4>
|
| 45 |
<ul class="space-y-2">
|
| 46 |
<li><a href="/tier-list.html" class="footer-link">Tier List</a></li>
|
|
|
|
| 47 |
<li><a href="/build-calculator.html" class="footer-link">Build Calculator</a></li>
|
| 48 |
-
|
| 49 |
<li><a href="/guides.html" class="footer-link">Guides</a></li>
|
| 50 |
</ul>
|
| 51 |
</div>
|
|
|
|
| 44 |
<h4 class="text-lg font-semibold mb-4">Resources</h4>
|
| 45 |
<ul class="space-y-2">
|
| 46 |
<li><a href="/tier-list.html" class="footer-link">Tier List</a></li>
|
| 47 |
+
<li><a href="/tier-list-maker.html" class="footer-link">Tier Maker</a></li>
|
| 48 |
<li><a href="/build-calculator.html" class="footer-link">Build Calculator</a></li>
|
| 49 |
+
<li><a href="/main-characters.html" class="footer-link">Main Characters</a></li>
|
| 50 |
<li><a href="/guides.html" class="footer-link">Guides</a></li>
|
| 51 |
</ul>
|
| 52 |
</div>
|
|
@@ -38,8 +38,9 @@ class CustomNavbar extends HTMLElement {
|
|
| 38 |
<!-- Desktop Navigation -->
|
| 39 |
<div class="hidden md:flex items-center space-x-8">
|
| 40 |
<a href="/tier-list.html" class="nav-link">Tier List</a>
|
|
|
|
| 41 |
<a href="/build-calculator.html" class="nav-link">Build Calculator</a>
|
| 42 |
-
|
| 43 |
<a href="/community.html" class="nav-link">Community</a>
|
| 44 |
<a href="/about.html" class="nav-link">About</a>
|
| 45 |
<button class="bg-primary text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition">
|
|
@@ -57,8 +58,9 @@ class CustomNavbar extends HTMLElement {
|
|
| 57 |
<div id="mobile-menu" class="mobile-menu md:hidden">
|
| 58 |
<div class="pt-4 pb-2 space-y-2">
|
| 59 |
<a href="/tier-list.html" class="block nav-link px-3 py-2">Tier List</a>
|
|
|
|
| 60 |
<a href="/build-calculator.html" class="block nav-link px-3 py-2">Build Calculator</a>
|
| 61 |
-
|
| 62 |
<a href="/community.html" class="block nav-link px-3 py-2">Community</a>
|
| 63 |
<a href="/about.html" class="block nav-link px-3 py-2">About</a>
|
| 64 |
<button class="w-full text-left bg-primary text-white px-3 py-2 rounded-lg hover:bg-blue-700 transition">
|
|
|
|
| 38 |
<!-- Desktop Navigation -->
|
| 39 |
<div class="hidden md:flex items-center space-x-8">
|
| 40 |
<a href="/tier-list.html" class="nav-link">Tier List</a>
|
| 41 |
+
<a href="/tier-list-maker.html" class="nav-link">Tier Maker</a>
|
| 42 |
<a href="/build-calculator.html" class="nav-link">Build Calculator</a>
|
| 43 |
+
<a href="/guides.html" class="nav-link">Guides</a>
|
| 44 |
<a href="/community.html" class="nav-link">Community</a>
|
| 45 |
<a href="/about.html" class="nav-link">About</a>
|
| 46 |
<button class="bg-primary text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition">
|
|
|
|
| 58 |
<div id="mobile-menu" class="mobile-menu md:hidden">
|
| 59 |
<div class="pt-4 pb-2 space-y-2">
|
| 60 |
<a href="/tier-list.html" class="block nav-link px-3 py-2">Tier List</a>
|
| 61 |
+
<a href="/tier-list-maker.html" class="block nav-link px-3 py-2">Tier Maker</a>
|
| 62 |
<a href="/build-calculator.html" class="block nav-link px-3 py-2">Build Calculator</a>
|
| 63 |
+
<a href="/guides.html" class="block nav-link px-3 py-2">Guides</a>
|
| 64 |
<a href="/community.html" class="block nav-link px-3 py-2">Community</a>
|
| 65 |
<a href="/about.html" class="block nav-link px-3 py-2">About</a>
|
| 66 |
<button class="w-full text-left bg-primary text-white px-3 py-2 rounded-lg hover:bg-blue-700 transition">
|
|
@@ -1,6 +1,48 @@
|
|
| 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
// Build Calculator and Utility Handling
|
| 3 |
document.addEventListener('DOMContentLoaded', function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
// Star Rating Functionality
|
| 5 |
document.addEventListener('click', function(e) {
|
| 6 |
if (e.target.classList.contains('star')) {
|
|
|
|
| 1 |
|
| 2 |
+
// Tier List Maker Drag & Drop
|
| 3 |
+
function initializeDragDrop() {
|
| 4 |
+
document.addEventListener('dragstart', function(ev) {
|
| 5 |
+
if (ev.target.classList.contains('char-card')) {
|
| 6 |
+
ev.dataTransfer.setData("text", ev.target.id);
|
| 7 |
+
}
|
| 8 |
+
});
|
| 9 |
+
|
| 10 |
+
document.addEventListener('dragover', function(ev) {
|
| 11 |
+
if (ev.target.classList.contains('tier-drop-zone') ||
|
| 12 |
+
ev.target.classList.contains('character-pool') ||
|
| 13 |
+
ev.target.closest('.tier-drop-zone') ||
|
| 14 |
+
ev.target.closest('.character-pool')) {
|
| 15 |
+
ev.preventDefault();
|
| 16 |
+
}
|
| 17 |
+
});
|
| 18 |
+
|
| 19 |
+
document.addEventListener('drop', function(ev) {
|
| 20 |
+
if (ev.target.classList.contains('tier-drop-zone') ||
|
| 21 |
+
ev.target.classList.contains('character-pool')) {
|
| 22 |
+
ev.preventDefault();
|
| 23 |
+
var data = ev.dataTransfer.getData("text");
|
| 24 |
+
var draggedElement = document.getElementById(data);
|
| 25 |
+
ev.target.appendChild(draggedElement);
|
| 26 |
+
} else {
|
| 27 |
+
var targetZone = ev.target.closest('.tier-drop-zone') ||
|
| 28 |
+
ev.target.closest('.character-pool');
|
| 29 |
+
if (targetZone) {
|
| 30 |
+
ev.preventDefault();
|
| 31 |
+
var data = ev.dataTransfer.getData("text");
|
| 32 |
+
var draggedElement = document.getElementById(data);
|
| 33 |
+
targetZone.appendChild(draggedElement);
|
| 34 |
+
}
|
| 35 |
+
}
|
| 36 |
+
});
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
// Build Calculator and Utility Handling
|
| 40 |
document.addEventListener('DOMContentLoaded', function() {
|
| 41 |
+
// Initialize drag and drop if on tier list maker page
|
| 42 |
+
if (document.getElementById('tier-list')) {
|
| 43 |
+
initializeDragDrop();
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
// Star Rating Functionality
|
| 47 |
document.addEventListener('click', function(e) {
|
| 48 |
if (e.target.classList.contains('star')) {
|
|
@@ -0,0 +1,272 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>Tier List Maker | Dandifo</title>
|
| 7 |
+
<link rel="stylesheet" href="style.css">
|
| 8 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 9 |
+
<script src="https://unpkg.com/feather-icons"></script>
|
| 10 |
+
<style>
|
| 11 |
+
/* Tier List Maker Specific Styles */
|
| 12 |
+
.tier-list-container {
|
| 13 |
+
width: 100%;
|
| 14 |
+
max-width: 900px;
|
| 15 |
+
border: 1px solid #333;
|
| 16 |
+
background-color: #1a1a1a;
|
| 17 |
+
margin: 0 auto;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
.tier-row {
|
| 21 |
+
display: flex;
|
| 22 |
+
min-height: 85px;
|
| 23 |
+
border-bottom: 1px solid #222;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
.tier-label {
|
| 27 |
+
width: 100px;
|
| 28 |
+
display: flex;
|
| 29 |
+
align-items: center;
|
| 30 |
+
justify-content: center;
|
| 31 |
+
font-size: 28px;
|
| 32 |
+
font-weight: bold;
|
| 33 |
+
color: #000;
|
| 34 |
+
flex-shrink: 0;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
.s-tier { background-color: #ff7f7f; }
|
| 38 |
+
.a-tier { background-color: #ffbf7f; }
|
| 39 |
+
.b-tier { background-color: #ffdf7f; }
|
| 40 |
+
.c-tier { background-color: #ffff7f; }
|
| 41 |
+
.d-tier { background-color: #bfff7f; }
|
| 42 |
+
.f-tier { background-color: #7fffbf; }
|
| 43 |
+
|
| 44 |
+
.tier-drop-zone {
|
| 45 |
+
flex-grow: 1;
|
| 46 |
+
display: flex;
|
| 47 |
+
flex-wrap: wrap;
|
| 48 |
+
align-items: center;
|
| 49 |
+
padding: 5px;
|
| 50 |
+
background-color: #1a1a1a;
|
| 51 |
+
min-height: 85px;
|
| 52 |
+
gap: 5px;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
.character-pool {
|
| 56 |
+
width: 100%;
|
| 57 |
+
max-width: 900px;
|
| 58 |
+
min-height: 200px;
|
| 59 |
+
background-color: #111;
|
| 60 |
+
padding: 10px;
|
| 61 |
+
display: flex;
|
| 62 |
+
flex-wrap: wrap;
|
| 63 |
+
gap: 8px;
|
| 64 |
+
justify-content: flex-start;
|
| 65 |
+
border: 1px solid #333;
|
| 66 |
+
margin: 20px auto;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
.char-card {
|
| 70 |
+
width: 70px;
|
| 71 |
+
height: 70px;
|
| 72 |
+
position: relative;
|
| 73 |
+
cursor: grab;
|
| 74 |
+
background-color: #222;
|
| 75 |
+
border-radius: 6px;
|
| 76 |
+
overflow: hidden;
|
| 77 |
+
transition: transform 0.1s;
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
.char-card:active {
|
| 81 |
+
cursor: grabbing;
|
| 82 |
+
transform: scale(1.05);
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
.char-card img {
|
| 86 |
+
width: 100%;
|
| 87 |
+
height: 100%;
|
| 88 |
+
object-fit: cover;
|
| 89 |
+
pointer-events: none;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
.char-name {
|
| 93 |
+
position: absolute;
|
| 94 |
+
bottom: 0;
|
| 95 |
+
left: 0;
|
| 96 |
+
width: 100%;
|
| 97 |
+
background: rgba(0,0,0,0.7);
|
| 98 |
+
color: white;
|
| 99 |
+
font-size: 9px;
|
| 100 |
+
text-align: center;
|
| 101 |
+
padding: 1px 0;
|
| 102 |
+
pointer-events: none;
|
| 103 |
+
}
|
| 104 |
+
</style>
|
| 105 |
+
</head>
|
| 106 |
+
<body class="bg-dark text-light">
|
| 107 |
+
<custom-navbar></custom-navbar>
|
| 108 |
+
|
| 109 |
+
<main class="container mx-auto px-4 py-8">
|
| 110 |
+
<h1 class="text-4xl font-bold mb-2 text-primary">Dandys World Tier List Maker</h1>
|
| 111 |
+
<p class="text-lg mb-6 text-gray-400">Drag and drop toons to create your custom tier list</p>
|
| 112 |
+
|
| 113 |
+
<div class="flex justify-center gap-4 mb-6">
|
| 114 |
+
<button id="share-twitter" class="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded">
|
| 115 |
+
<i data-feather="twitter" class="mr-2"></i>Share
|
| 116 |
+
</button>
|
| 117 |
+
<button id="reset-list" class="bg-gray-700 hover:bg-gray-600 text-white px-4 py-2 rounded">
|
| 118 |
+
<i data-feather="refresh-cw" class="mr-2"></i>Reset
|
| 119 |
+
</button>
|
| 120 |
+
</div>
|
| 121 |
+
|
| 122 |
+
<div class="tier-list-container" id="tier-list">
|
| 123 |
+
<div class="tier-row">
|
| 124 |
+
<div class="tier-label s-tier">S</div>
|
| 125 |
+
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
|
| 126 |
+
</div>
|
| 127 |
+
|
| 128 |
+
<div class="tier-row">
|
| 129 |
+
<div class="tier-label a-tier">A</div>
|
| 130 |
+
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
|
| 131 |
+
</div>
|
| 132 |
+
|
| 133 |
+
<div class="tier-row">
|
| 134 |
+
<div class="tier-label b-tier">B</div>
|
| 135 |
+
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
|
| 136 |
+
</div>
|
| 137 |
+
|
| 138 |
+
<div class="tier-row">
|
| 139 |
+
<div class="tier-label c-tier">C</div>
|
| 140 |
+
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
|
| 141 |
+
</div>
|
| 142 |
+
|
| 143 |
+
<div class="tier-row">
|
| 144 |
+
<div class="tier-label d-tier">D</div>
|
| 145 |
+
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
|
| 146 |
+
</div>
|
| 147 |
+
|
| 148 |
+
<div class="tier-row">
|
| 149 |
+
<div class="tier-label f-tier">F</div>
|
| 150 |
+
<div class="tier-drop-zone" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
|
| 151 |
+
</div>
|
| 152 |
+
</div>
|
| 153 |
+
|
| 154 |
+
<h3 class="text-xl font-bold mt-8 mb-2 text-primary">Character Pool</h3>
|
| 155 |
+
<div class="character-pool" id="char-pool" ondrop="drop(event)" ondragover="allowDrop(event)">
|
| 156 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c1">
|
| 157 |
+
<img src="http://static.photos/gaming/70x70/1">
|
| 158 |
+
<div class="char-name">Connie</div>
|
| 159 |
+
</div>
|
| 160 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c2">
|
| 161 |
+
<img src="http://static.photos/gaming/70x70/2">
|
| 162 |
+
<div class="char-name">Bobette</div>
|
| 163 |
+
</div>
|
| 164 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c3">
|
| 165 |
+
<img src="http://static.photos/gaming/70x70/3">
|
| 166 |
+
<div class="char-name">Boxten</div>
|
| 167 |
+
</div>
|
| 168 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c4">
|
| 169 |
+
<img src="http://static.photos/gaming/70x70/4">
|
| 170 |
+
<div class="char-name">Brightney</div>
|
| 171 |
+
</div>
|
| 172 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c5">
|
| 173 |
+
<img src="http://static.photos/gaming/70x70/5">
|
| 174 |
+
<div class="char-name">Coal</div>
|
| 175 |
+
</div>
|
| 176 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c6">
|
| 177 |
+
<img src="http://static.photos/gaming/70x70/6">
|
| 178 |
+
<div class="char-name">Astro</div>
|
| 179 |
+
</div>
|
| 180 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c7">
|
| 181 |
+
<img src="http://static.photos/gaming/70x70/7">
|
| 182 |
+
<div class="char-name">Cosmo</div>
|
| 183 |
+
</div>
|
| 184 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c8">
|
| 185 |
+
<img src="http://static.photos/gaming/70x70/8">
|
| 186 |
+
<div class="char-name">Dandy</div>
|
| 187 |
+
</div>
|
| 188 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c9">
|
| 189 |
+
<img src="http://static.photos/gaming/70x70/9">
|
| 190 |
+
<div class="char-name">Finn</div>
|
| 191 |
+
</div>
|
| 192 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c10">
|
| 193 |
+
<img src="http://static.photos/gaming/70x70/10">
|
| 194 |
+
<div class="char-name">Flutter</div>
|
| 195 |
+
</div>
|
| 196 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c11">
|
| 197 |
+
<img src="http://static.photos/gaming/70x70/11">
|
| 198 |
+
<div class="char-name">Gigi</div>
|
| 199 |
+
</div>
|
| 200 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c12">
|
| 201 |
+
<img src="http://static.photos/gaming/70x70/12">
|
| 202 |
+
<div class="char-name">Ginger</div>
|
| 203 |
+
</div>
|
| 204 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c13">
|
| 205 |
+
<img src="http://static.photos/gaming/70x70/13">
|
| 206 |
+
<div class="char-name">Glisten</div>
|
| 207 |
+
</div>
|
| 208 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c14">
|
| 209 |
+
<img src="http://static.photos/gaming/70x70/14">
|
| 210 |
+
<div class="char-name">Goob</div>
|
| 211 |
+
</div>
|
| 212 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c15">
|
| 213 |
+
<img src="http://static.photos/gaming/70x70/15">
|
| 214 |
+
<div class="char-name">Looey</div>
|
| 215 |
+
</div>
|
| 216 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c16">
|
| 217 |
+
<img src="http://static.photos/gaming/70x70/16">
|
| 218 |
+
<div class="char-name">Pebble</div>
|
| 219 |
+
</div>
|
| 220 |
+
<div class="char-card" draggable="true" ondragstart="drag(event)" id="c17">
|
| 221 |
+
<img src="http://static.photos/gaming/70x70/17">
|
| 222 |
+
<div class="char-name">Poppy</div>
|
| 223 |
+
</div>
|
| 224 |
+
</div>
|
| 225 |
+
</main>
|
| 226 |
+
|
| 227 |
+
<custom-footer></custom-footer>
|
| 228 |
+
|
| 229 |
+
<script src="components/navbar.js"></script>
|
| 230 |
+
<script src="components/footer.js"></script>
|
| 231 |
+
<script src="script.js"></script>
|
| 232 |
+
<script>
|
| 233 |
+
// Drag and Drop functionality
|
| 234 |
+
function drag(ev) {
|
| 235 |
+
ev.dataTransfer.setData("text", ev.target.id);
|
| 236 |
+
}
|
| 237 |
+
|
| 238 |
+
function allowDrop(ev) {
|
| 239 |
+
ev.preventDefault();
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
function drop(ev) {
|
| 243 |
+
ev.preventDefault();
|
| 244 |
+
var data = ev.dataTransfer.getData("text");
|
| 245 |
+
var draggedElement = document.getElementById(data);
|
| 246 |
+
|
| 247 |
+
if (ev.target.classList.contains('tier-drop-zone') || ev.target.classList.contains('character-pool')) {
|
| 248 |
+
ev.target.appendChild(draggedElement);
|
| 249 |
+
} else {
|
| 250 |
+
var targetZone = ev.target.closest('.tier-drop-zone') || ev.target.closest('.character-pool');
|
| 251 |
+
if (targetZone) {
|
| 252 |
+
targetZone.appendChild(draggedElement);
|
| 253 |
+
}
|
| 254 |
+
}
|
| 255 |
+
}
|
| 256 |
+
|
| 257 |
+
// Reset functionality
|
| 258 |
+
document.getElementById('reset-list').addEventListener('click', function() {
|
| 259 |
+
var pool = document.getElementById('char-pool');
|
| 260 |
+
var cards = document.querySelectorAll('.char-card');
|
| 261 |
+
cards.forEach(card => pool.appendChild(card));
|
| 262 |
+
});
|
| 263 |
+
|
| 264 |
+
// Share functionality
|
| 265 |
+
document.getElementById('share-twitter').addEventListener('click', function() {
|
| 266 |
+
alert('Share your tier list on Twitter!');
|
| 267 |
+
});
|
| 268 |
+
|
| 269 |
+
feather.replace();
|
| 270 |
+
</script>
|
| 271 |
+
</body>
|
| 272 |
+
</html>
|