feat(stats): add model comparison pages

This commit is contained in:
Adam
2026-07-08 11:28:27 -05:00
parent 77429f5982
commit 5a533e366f
10 changed files with 1373 additions and 5 deletions
+253 -2
View File
@@ -5252,6 +5252,243 @@
color: var(--stats-text);
}
[data-page="stats"] [data-section="model-panel"][data-variant="compact"] {
padding-top: 56px;
padding-bottom: 56px;
}
[data-page="stats"] [data-component="comparison-card-grid"] {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
}
[data-page="stats"] [data-component="comparison-card"] {
display: grid;
align-content: space-between;
gap: 18px;
min-height: 168px;
min-width: 0;
padding: 16px;
border: 1px solid var(--stats-line);
background: var(--stats-layer);
color: var(--stats-text);
text-decoration: none;
}
[data-page="stats"] [data-component="comparison-card"]:hover,
[data-page="stats"] [data-component="comparison-card"]:focus-visible {
border-color: var(--stats-text);
outline: none;
background: var(--stats-bg);
text-decoration: none;
}
[data-page="stats"] [data-component="comparison-card"] span,
[data-page="stats"] [data-component="comparison-card"] p,
[data-page="stats"] [data-component="comparison-card"] small {
color: var(--stats-muted);
font-size: 11px;
font-weight: 500;
line-height: 1.35;
}
[data-page="stats"] [data-component="comparison-card"] strong {
min-width: 0;
color: var(--stats-text);
font-size: 20px;
font-weight: 500;
line-height: 1.08;
overflow-wrap: anywhere;
}
[data-page="stats"] [data-component="comparison-card"] em {
color: var(--stats-faint);
font: inherit;
}
[data-page="stats"] [data-component="comparison-card"] p {
display: flex;
align-items: center;
gap: 8px;
margin: 0;
}
[data-page="stats"] [data-component="comparison-card"] b {
min-width: 0;
overflow: hidden;
font: inherit;
text-overflow: ellipsis;
white-space: nowrap;
}
[data-page="stats"] [data-component="comparison-card"] i {
flex: 0 0 auto;
width: 16px;
height: 1px;
background: var(--stats-line-strong);
}
[data-page="stats"] [data-component="comparison-selector"] {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
gap: 8px;
align-items: end;
max-width: 920px;
}
[data-page="stats"] [data-component="comparison-selector"] label {
display: grid;
gap: 8px;
min-width: 0;
}
[data-page="stats"] [data-component="comparison-selector"] label span {
color: var(--stats-muted);
font-size: 11px;
font-weight: 500;
line-height: 1.2;
}
[data-page="stats"] [data-component="comparison-selector"] select,
[data-page="stats"] [data-component="comparison-selector"] button {
box-sizing: border-box;
height: 40px;
min-width: 0;
border: 1px solid var(--stats-line);
border-radius: 0;
appearance: none;
font: inherit;
font-size: 13px;
font-weight: 500;
line-height: 1;
}
[data-page="stats"] [data-component="comparison-selector"] select {
width: 100%;
padding: 0 36px 0 12px;
background:
linear-gradient(45deg, transparent 50%, var(--stats-muted) 50%) calc(100% - 18px) 17px / 5px 5px no-repeat,
linear-gradient(135deg, var(--stats-muted) 50%, transparent 50%) calc(100% - 13px) 17px / 5px 5px no-repeat,
var(--stats-bg);
color: var(--stats-text);
}
[data-page="stats"] [data-component="comparison-selector"] button {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 14px;
background: var(--stats-text);
color: var(--stats-bg);
cursor: pointer;
text-decoration: none;
white-space: nowrap;
}
[data-page="stats"] [data-component="comparison-selector"] button:disabled {
cursor: not-allowed;
opacity: 0.45;
}
[data-page="stats"] [data-component="comparison-selector"] select:focus-visible,
[data-page="stats"] [data-component="comparison-selector"] button:focus-visible {
outline: 2px solid var(--stats-accent);
outline-offset: 2px;
}
[data-page="stats"] [data-component="comparison-table-wrap"] {
overflow-x: auto;
border: 1px solid var(--stats-line);
background: var(--stats-layer);
}
[data-page="stats"] [data-component="comparison-table"] {
width: 100%;
min-width: 720px;
border-collapse: collapse;
color: var(--stats-text);
font-size: 13px;
line-height: 1.35;
}
[data-page="stats"] [data-component="comparison-table"] caption {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
}
[data-page="stats"] [data-component="comparison-table"] th,
[data-page="stats"] [data-component="comparison-table"] td {
min-width: 0;
padding: 14px 16px;
border-bottom: 1px solid var(--stats-line);
border-left: 1px solid var(--stats-line);
text-align: left;
vertical-align: top;
}
[data-page="stats"] [data-component="comparison-table"] th:first-child {
border-left: 0;
}
[data-page="stats"] [data-component="comparison-table"] thead th {
color: var(--stats-muted);
font-size: 11px;
font-weight: 600;
line-height: 1.2;
text-transform: uppercase;
}
[data-page="stats"] [data-component="comparison-table"] tbody tr:last-child th,
[data-page="stats"] [data-component="comparison-table"] tbody tr:last-child td {
border-bottom: 0;
}
[data-page="stats"] [data-component="comparison-table"] tbody th {
width: 34%;
background: var(--stats-bg);
}
[data-page="stats"] [data-component="comparison-table"] tbody th strong,
[data-page="stats"] [data-component="comparison-table"] td strong {
display: block;
color: var(--stats-text);
font-size: 13px;
font-weight: 600;
line-height: 1.25;
overflow-wrap: anywhere;
}
[data-page="stats"] [data-component="comparison-table"] tbody th span,
[data-page="stats"] [data-component="comparison-table"] td span {
display: block;
margin-top: 5px;
color: var(--stats-muted);
font-size: 11px;
font-weight: 500;
line-height: 1.35;
}
[data-page="stats"] [data-component="comparison-table"] td[data-best="true"] {
position: relative;
background: var(--stats-bg);
box-shadow: inset 0 0 0 1px var(--stats-accent);
}
[data-page="stats"] [data-component="comparison-table"] td[data-best="true"]::before {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 3px;
content: "";
background: var(--stats-accent);
}
[data-page="stats"][data-theme="dark"],
:root[data-stats-theme="dark"] [data-page="stats"]:not([data-theme="light"]) {
color-scheme: dark;
@@ -5784,10 +6021,19 @@
[data-page="stats"] [data-component="model-metric-grid"],
[data-page="stats"] [data-component="model-metric-grid"][data-variant="dense"],
[data-page="stats"] [data-component="model-efficiency-grid"],
[data-page="stats"] [data-component="lab-model-grid"] {
[data-page="stats"] [data-component="lab-model-grid"],
[data-page="stats"] [data-component="comparison-card-grid"] {
grid-template-columns: 1fr 1fr;
}
[data-page="stats"] [data-component="comparison-selector"] {
grid-template-columns: 1fr;
}
[data-page="stats"] [data-component="comparison-selector"] button {
width: 100%;
}
[data-page="stats"] [data-component="model-peer-list"] a {
grid-template-columns: 32px 32px minmax(0, 1fr) minmax(64px, auto);
gap: 12px;
@@ -6212,10 +6458,15 @@
[data-page="stats"] [data-component="model-metric-grid"],
[data-page="stats"] [data-component="model-metric-grid"][data-variant="dense"],
[data-page="stats"] [data-component="model-efficiency-grid"],
[data-page="stats"] [data-component="lab-model-grid"] {
[data-page="stats"] [data-component="lab-model-grid"],
[data-page="stats"] [data-component="comparison-card-grid"] {
grid-template-columns: 1fr;
}
[data-page="stats"] [data-component="comparison-table"] {
min-width: 640px;
}
[data-page="stats"] [data-component="model-metric"] {
min-height: 112px;
}