Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Timeline Template</title> | |
<style> | |
body { | |
font-family: 'Arial', sans-serif; | |
background-color: #f4f4f9; | |
color: #333; | |
margin: 0; | |
padding: 0; | |
overflow-x: scroll; | |
scrollbar-width: thin; | |
-ms-overflow-style: -ms-autohiding-scrollbar; | |
} | |
.timeline { | |
display: flex; | |
flex-direction: row; | |
padding: 20px; | |
gap: 10px; | |
overflow-x: auto; | |
} | |
.month { | |
display: flex; | |
flex-direction: column; | |
gap: 10px; | |
width: 300px; | |
flex: 0 0 300px; | |
} | |
.month h3 { | |
margin: 0; | |
padding: 10px; | |
background-color: #6200ea; | |
color: white; | |
border-radius: 5px; | |
text-align: center; | |
} | |
.event { | |
background-color: white; | |
padding: 10px; | |
border-radius: 5px; | |
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); | |
position: relative; | |
transition: all 0.3s ease; | |
} | |
.event:has(.tag.best) { | |
background-color: #fff8e1; | |
border-left: 4px solid #ffd700; | |
transform: scale(1.02); | |
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); | |
} | |
.event:has(.tag.new) { | |
background-color: #fce4ec; | |
border-left: 4px solid #ff4081; | |
} | |
.event:has(.tag.best):hover { | |
transform: scale(1.03); | |
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); | |
} | |
.event h4 { | |
margin: 0; | |
font-size: 14px; | |
} | |
.event p { | |
margin: 5px 0 0; | |
font-size: 12px; | |
color: #666; | |
} | |
.tag { | |
display: inline-block; | |
padding: 2px 5px; | |
font-size: 10px; | |
border-radius: 3px; | |
margin-top: 5px; | |
margin-right: 3px; | |
} | |
.tag.best { | |
background-color: #FFD700; | |
color: black; | |
} | |
.tag.new { | |
background-color: #FF4081; | |
color: white; | |
} | |
.event p a { | |
color: #4caf50; | |
text-decoration: none; | |
} | |
.event p a:hover { | |
text-decoration: underline; | |
} | |
.github-link { | |
text-align: center; | |
padding: 8px; | |
background-color: #24292e; | |
color: white; | |
font-size: 14px; | |
} | |
.github-link a { | |
color: white; | |
text-decoration: none; | |
} | |
.github-link a:hover { | |
text-decoration: underline; | |
} | |
body::-webkit-scrollbar { | |
height: 8px; | |
} | |
body::-webkit-scrollbar-track { | |
background: #f1f1f1; | |
} | |
body::-webkit-scrollbar-thumb { | |
background: #888; | |
border-radius: 4px; | |
} | |
body::-webkit-scrollbar-thumb:hover { | |
background: #555; | |
} | |
.tag.text { background-color: #9c27b0; color: white; } | |
.tag.audio { background-color: #ff9800; color: white; } | |
.tag.vision { background-color: #03a9f4; color: white; } | |
.tag.multimodal { background-color: #795548; color: white; } | |
.tag.video { background-color: #E91E63; color: white; } | |
.tag.image { background-color: #00BCD4; color: white; } | |
.tag.utility { background-color: #9E9E9E; color: white; } | |
.tag.predict { background-color: #673AB7; color: white; } | |
.tag.game { background-color: #4CAF50; color: white; } | |
.tag.education { background-color: #3F51B5; color: white; } | |
.tag.announcement { background-color: #607d8b; color: white; } | |
.filter-group { | |
display: flex; | |
flex-direction: column; | |
align-items: center; | |
gap: 15px; | |
padding: 20px 0; | |
background-color: white; | |
border-bottom: 1px solid #eee; | |
} | |
.toggle-container { | |
display: flex; | |
flex-wrap: wrap; | |
gap: 8px; | |
justify-content: center; | |
max-width: 900px; | |
padding: 0 20px; | |
} | |
.toggle-button { | |
padding: 6px 12px; | |
border: 1px solid #ddd; | |
border-radius: 15px; | |
background-color: white; | |
font-size: 13px; | |
cursor: pointer; | |
transition: all 0.2s ease; | |
min-width: 80px; | |
text-align: center; | |
} | |
.toggle-button.active { | |
background-color: #2196f3; | |
border-color: #2196f3; | |
color: white; | |
} | |
.category-group { | |
width: 100%; | |
display: flex; | |
justify-content: center; | |
gap: 8px; | |
margin-top: 10px; | |
flex-wrap: wrap; | |
} | |
.category-group .toggle-button { | |
background-color: #f5f5f5; | |
} | |
.toggle-button[data-filter="best"] { background-color: #FFD700; color: black; } | |
.toggle-button[data-filter="new"] { background-color: #FF4081; color: white; } | |
.toggle-button[data-filter="text"] { background-color: #9c27b0; color: white; } | |
.toggle-button[data-filter="audio"] { background-color: #ff9800; color: white; } | |
.toggle-button[data-filter="vision"] { background-color: #03a9f4; color: white; } | |
.toggle-button[data-filter="multimodal"] { background-color: #795548; color: white; } | |
.toggle-button[data-filter="video"] { background-color: #E91E63; color: white; } | |
.toggle-button[data-filter="image"] { background-color: #00BCD4; color: white; } | |
.toggle-button[data-filter="utility"] { background-color: #9E9E9E; color: white; } | |
.toggle-button[data-filter="predict"] { background-color: #673AB7; color: white; } | |
.toggle-button[data-filter="game"] { background-color: #4CAF50; color: white; } | |
.toggle-button[data-filter="education"] { background-color: #3F51B5; color: white; } | |
.counter-container { | |
text-align: center; | |
padding: 15px; | |
font-size: 14px; | |
color: #666; | |
background-color: #f8f9fa; | |
} | |
.counter-item span { | |
font-weight: bold; | |
color: #2196f3; | |
} | |
.counter-divider { | |
margin: 0 10px; | |
color: #ddd; | |
} | |
</style> | |
</head> | |
<body> | |
<div class="github-link"> | |
<a href="#" target="_blank">View on GitHub</a> | |
</div> | |
<div class="filter-group"> | |
<div class="toggle-container"> | |
<button class="toggle-button active" data-filter="all">All Models</button> | |
<button class="toggle-button" data-filter="best">BEST</button> | |
<button class="toggle-button" data-filter="new">NEW</button> | |
</div> | |
<div class="category-group"> | |
<button class="toggle-button" data-filter="text">Text</button> | |
<button class="toggle-button" data-filter="audio">Audio</button> | |
<button class="toggle-button" data-filter="vision">Vision</button> | |
<button class="toggle-button" data-filter="multimodal">Multimodal</button> | |
<button class="toggle-button" data-filter="video">Video</button> | |
<button class="toggle-button" data-filter="image">Image</button> | |
<button class="toggle-button" data-filter="utility">Utility</button> | |
<button class="toggle-button" data-filter="predict">Predict</button> | |
<button class="toggle-button" data-filter="game">Game</button> | |
<button class="toggle-button" data-filter="education">Education</button> | |
</div> | |
</div> | |
<div class="counter-container"> | |
<span class="counter-item"> | |
<span id="best-count">0</span> BEST | |
</span> | |
<span class="counter-divider">·</span> | |
<span class="counter-item"> | |
<span id="new-count">0</span> NEW | |
</span> | |
</div> | |
<div class="timeline"> | |
<div class="month"> | |
<h3>Latest Models</h3> | |
<div class="event"> | |
<h4>OpenBMB PRIME</h4> | |
<p>o1 like Eurus 2 7B (<a href="https://huggingface.co/PRIME-RL/Eurus-2-7B-PRIME" target="_blank">link</a>).</p> | |
<span class="tag best">BEST</span> | |
<span class="tag text">Text</span> | |
</div> | |
<div class="event"> | |
<h4>Nvidia Cosmos</h4> | |
<p>Diffusion + Autoregressive World Models (<a href="https://huggingface.co/collections/nvidia/cosmos-6751e884dc10e013a0a0d8e6" target="_blank">link</a>).</p> | |
<span class="tag best">BEST</span> | |
<span class="tag multimodal">Multimodal</span> | |
</div> | |
<div class="event"> | |
<h4>Moondream2</h4> | |
<p>Moondream2 w/ Gaze Detection (<a href="https://huggingface.co/vikhyatk/moondream2" target="_blank">link</a>).</p> | |
<span class="tag new">NEW</span> | |
<span class="tag multimodal">Multimodal</span> | |
</div> | |
</div> | |
</div> | |
<script> | |
function updateCounts() { | |
const bestCount = document.querySelectorAll('.tag.best').length; | |
const newCount = document.querySelectorAll('.tag.new').length; | |
document.getElementById('best-count').textContent = bestCount; | |
document.getElementById('new-count').textContent = newCount; | |
} | |
let currentFilters = { | |
category: 'all', | |
modality: 'all', | |
type: 'all' | |
}; | |
function filterByCategory(category) { | |
const buttons = document.querySelectorAll('.toggle-button'); | |
buttons.forEach(button => { | |
button.classList.remove('active'); | |
if (button.getAttribute('data-filter') === category) { | |
button.classList.add('active'); | |
} | |
}); | |
currentFilters.category = category; | |
applyFilters(); | |
} | |
function applyFilters() { | |
const events = document.querySelectorAll('.event'); | |
events.forEach(event => { | |
const matchesCategory = currentFilters.category === 'all' || | |
event.querySelector(`.tag.${currentFilters.category}`); | |
event.style.display = matchesCategory ? 'block' : 'none'; | |
}); | |
const months = document.querySelectorAll('.month'); | |
months.forEach(month => { | |
const visibleEvents = Array.from(month.querySelectorAll('.event')).filter(event => | |
event.style.display !== 'none' | |
); | |
month.style.display = visibleEvents.length > 0 ? 'flex' : 'none'; | |
}); | |
updateCounts(); | |
} | |
document.addEventListener('DOMContentLoaded', function() { | |
const buttons = document.querySelectorAll('.toggle-button'); | |
buttons.forEach(button => { | |
button.addEventListener('click', function() { | |
filterByCategory(this.getAttribute('data-filter')); | |
}); | |
}); | |
updateCounts(); | |
}); | |
</script> | |
</body> | |
</html> |