.rom-header display: flex; align-items: center; gap: 12px; margin-bottom: 10px;
let html = ''; for (const rom of romArray) const sizeStr = formatBytes(rom.size); const icon = rom.extension === 'gba' ? '🎮' : (rom.extension === 'gb' ? '🕹️' : '🔘'); html += ` <div class="rom-card" data-id="$rom.id"> <div class="rom-header"> <div class="rom-icon">$icon</div> <div class="rom-name">$escapeHtml(rom.name)</div> </div> <div class="rom-meta"> <span class="badge-gba">$rom.extension.toUpperCase()</span> <span class="rom-size">$sizeStr</span> </div> </div> `; gba rom collection zip
.detail-label font-weight: 600; min-width: 90px; color: #FFD966; .rom-header display: flex
// check if file is a valid GBA-related rom ( .gba .gb .gbc ) function isGbaRom(filename) const ext = filename.split('.').pop().toLowerCase(); return ['gba', 'gb', 'gbc'].includes(ext); let html = ''
.rom-name font-weight: 700; font-size: 1.1rem; word-break: break-word; color: #FFE1A0;
// search + sort listeners searchInput.addEventListener('input', () => applyFiltersAndSort()); sortSelect.addEventListener('change', () => applyFiltersAndSort());
function closeModal() modal.style.display = 'none'; currentModalRom = null;