chess / index.html
openfree's picture
Update index.html
d6dd3b0 verified
raw
history blame
10 kB
<!DOCTYPE html>
<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>