Spaces:
Sleeping
Sleeping
Add family markers before model names.
Browse filesShow a color-coded circle/diamond marker per retriever in the table so family identity matches the plot color scheme.
Made-with: Cursor
main.js
CHANGED
|
@@ -111,6 +111,14 @@ const FAMILY_COLORS = {
|
|
| 111 |
'BM25': '#969696', 'Fusion': '#e6550d', 'Other': '#9e9e9e'
|
| 112 |
};
|
| 113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 114 |
function mapRow(item) {
|
| 115 |
return {
|
| 116 |
name: item.info.name,
|
|
@@ -193,6 +201,7 @@ function renderBody() {
|
|
| 193 |
<tr>
|
| 194 |
<td>${idx + 1}</td>
|
| 195 |
<td class="model-cell">
|
|
|
|
| 196 |
${r.link ? `<a href="${r.link}" target="_blank">${r.name}</a>` : r.name}
|
| 197 |
${isNewModel(r.date) ? '<span class="new-badge">π</span>' : ''}
|
| 198 |
</td>
|
|
|
|
| 111 |
'BM25': '#969696', 'Fusion': '#e6550d', 'Other': '#9e9e9e'
|
| 112 |
};
|
| 113 |
|
| 114 |
+
function familyMarkerHtml(name, type) {
|
| 115 |
+
const family = inferFamily(name);
|
| 116 |
+
const color = FAMILY_COLORS[family] || '#9e9e9e';
|
| 117 |
+
// Shape by model type; color by model family
|
| 118 |
+
const symbol = type === 'proprietary' ? 'β' : 'β';
|
| 119 |
+
return `<span class="family-marker" title="${family}" aria-label="${family}" style="color:${color}">${symbol}</span>`;
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
function mapRow(item) {
|
| 123 |
return {
|
| 124 |
name: item.info.name,
|
|
|
|
| 201 |
<tr>
|
| 202 |
<td>${idx + 1}</td>
|
| 203 |
<td class="model-cell">
|
| 204 |
+
${familyMarkerHtml(r.name, r.type)}
|
| 205 |
${r.link ? `<a href="${r.link}" target="_blank">${r.name}</a>` : r.name}
|
| 206 |
${isNewModel(r.date) ? '<span class="new-badge">π</span>' : ''}
|
| 207 |
</td>
|
style.css
CHANGED
|
@@ -104,6 +104,13 @@ tbody tr:hover { background: #f8fbff; }
|
|
| 104 |
.model-cell { font-weight: 600; max-width: 360px; overflow: hidden; text-overflow: ellipsis; }
|
| 105 |
.model-cell a { color: #1d4ed8; text-decoration: none; }
|
| 106 |
.model-cell a:hover { text-decoration: underline; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
.new-badge { margin-left: 6px; font-size: 0.9em; vertical-align: middle; }
|
| 108 |
.avg-score { color: #1d4ed8; font-weight: 700; }
|
| 109 |
.type-pill {
|
|
|
|
| 104 |
.model-cell { font-weight: 600; max-width: 360px; overflow: hidden; text-overflow: ellipsis; }
|
| 105 |
.model-cell a { color: #1d4ed8; text-decoration: none; }
|
| 106 |
.model-cell a:hover { text-decoration: underline; }
|
| 107 |
+
.family-marker {
|
| 108 |
+
display: inline-block;
|
| 109 |
+
margin-right: 8px;
|
| 110 |
+
font-size: 0.95rem;
|
| 111 |
+
line-height: 1;
|
| 112 |
+
vertical-align: middle;
|
| 113 |
+
}
|
| 114 |
.new-badge { margin-left: 6px; font-size: 0.9em; vertical-align: middle; }
|
| 115 |
.avg-score { color: #1d4ed8; font-weight: 700; }
|
| 116 |
.type-pill {
|