Spaces:
Running
Running
Download css/bench.css from hongcoding/perch-design: direct link, hf CLI and curl.
- Browser
- Download file 18.8 kB
-
https://huggingface.co/spaces/hongcoding/perch-design/resolve/main/css/bench.css
- Command line
-
hf download hf://spaces/hongcoding/perch-design/css/bench.css
-
curl -L -o bench.css https://huggingface.co/spaces/hongcoding/perch-design/resolve/main/css/bench.css
18.8 kB
| /* 批量推理台(契约 20A · 工作台第三 tab「对比」)——Warm Paper 令牌, | |
| 零硬编码色:所有颜色走 theme.css 变量(深浅色自动跟随)。 | |
| 布局沿用 .kb / .skills 的整页滚动容器(flex:1 + 独立滚动 + 48px 留白)。 */ | |
| .bench { | |
| flex: 1; | |
| min-width: 0; | |
| overflow-y: auto; | |
| padding: 36px 48px 48px; | |
| } | |
| /* ── 页头 ───────────────────────────────────────────────────────── */ | |
| .bench-head { | |
| display: flex; | |
| align-items: flex-end; | |
| justify-content: space-between; | |
| gap: 16px; | |
| margin-bottom: 20px; | |
| } | |
| .bench-title { | |
| font-family: var(--font-serif); | |
| font-size: 26px; | |
| font-weight: 600; | |
| letter-spacing: -0.01em; | |
| color: var(--text); | |
| } | |
| .bench-head-sub { | |
| margin: 6px 0 0; | |
| font-size: 13.5px; | |
| line-height: 1.6; | |
| color: var(--text-secondary); | |
| } | |
| .bench-head-actions { | |
| display: flex; | |
| gap: 8px; | |
| flex-shrink: 0; | |
| } | |
| .bench-muted { | |
| font-size: 13px; | |
| line-height: 1.6; | |
| color: var(--text-secondary); | |
| } | |
| .bench-notice { | |
| margin: 0 0 16px; | |
| padding: 10px 14px; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-control); | |
| background: var(--bg-elevated); | |
| font-size: 13.5px; | |
| line-height: 1.6; | |
| color: var(--text); | |
| } | |
| /* ── 卡片与表单 ─────────────────────────────────────────────────── */ | |
| .bench-card { | |
| background: var(--bg-elevated); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-card); | |
| padding: 22px 24px; | |
| margin-bottom: 24px; | |
| } | |
| .bench-card-title { | |
| font-family: var(--font-serif); | |
| font-size: 18px; | |
| font-weight: 600; | |
| color: var(--text); | |
| margin: 0 0 18px; | |
| } | |
| .bench-field { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| margin-bottom: 18px; | |
| } | |
| .bench-field-label { | |
| font-size: 13px; | |
| color: var(--text-secondary); | |
| } | |
| .bench-field-row { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 24px; | |
| align-items: flex-start; | |
| } | |
| .bench-field-row .bench-field { | |
| min-width: 240px; | |
| flex: 1; | |
| } | |
| .bench-field textarea, | |
| .bench-field select { | |
| width: 100%; | |
| font-family: var(--font-sans); | |
| font-size: 14px; | |
| line-height: 1.65; | |
| color: var(--text); | |
| background: var(--bg-sunken); | |
| border: 1px solid transparent; | |
| border-radius: var(--radius-control); | |
| padding: 10px 12px; | |
| transition: border-color var(--dur) var(--ease); | |
| } | |
| .bench-field textarea { | |
| resize: vertical; | |
| min-height: 120px; | |
| } | |
| .bench-field textarea::placeholder { | |
| color: var(--text-tertiary); | |
| } | |
| .bench-field textarea:focus-visible, | |
| .bench-field select:focus-visible { | |
| outline: none; | |
| border-color: var(--accent); | |
| } | |
| /* ── 模型分组多选(本机 / 云 · 接口名) ───────────────────────────── */ | |
| .bench-groups { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 14px; | |
| } | |
| .bench-group { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .bench-group-label { | |
| font-family: var(--font-serif); | |
| font-size: 14px; | |
| font-weight: 600; | |
| color: var(--text); | |
| } | |
| .bench-chips { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| } | |
| .bench-chip { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 7px; | |
| height: 30px; | |
| padding: 0 11px; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-chip); | |
| background: var(--bg); | |
| color: var(--text-secondary); | |
| font-family: inherit; | |
| font-size: 13px; | |
| cursor: pointer; | |
| transition: | |
| background-color var(--dur) var(--ease), | |
| border-color var(--dur) var(--ease), | |
| color var(--dur) var(--ease); | |
| } | |
| .bench-chip:hover { | |
| background: var(--accent-soft); | |
| color: var(--text); | |
| } | |
| .bench-chip.is-on { | |
| background: var(--accent-soft); | |
| border-color: var(--accent); | |
| color: var(--text); | |
| font-weight: 600; | |
| } | |
| .bench-chip:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: 2px; | |
| } | |
| .bench-chip-name { | |
| max-width: 200px; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .bench-chip-badge { | |
| font-size: 11px; | |
| line-height: 1; | |
| padding: 3px 6px; | |
| border-radius: var(--radius-chip); | |
| background: var(--bg-sunken); | |
| color: var(--text-secondary); | |
| } | |
| .bench-chip-badge.is-cloud { | |
| background: var(--accent-soft); | |
| color: var(--text); | |
| } | |
| /* ── 评委开关 ───────────────────────────────────────────────────── */ | |
| .bench-field-switch { | |
| min-width: 280px; | |
| } | |
| .bench-switch-line { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .bench-switch { | |
| position: relative; | |
| width: 42px; | |
| height: 24px; | |
| flex-shrink: 0; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-chip); | |
| background: var(--bg-sunken); | |
| cursor: pointer; | |
| transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease); | |
| } | |
| .bench-switch.is-on { | |
| background: var(--accent); | |
| border-color: var(--accent); | |
| } | |
| .bench-switch-knob { | |
| position: absolute; | |
| top: 2px; | |
| left: 2px; | |
| width: 18px; | |
| height: 18px; | |
| border-radius: 50%; | |
| background: var(--bg); | |
| transition: transform var(--dur) var(--ease); | |
| } | |
| .bench-switch.is-on .bench-switch-knob { | |
| transform: translateX(18px); | |
| } | |
| .bench-switch:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: 2px; | |
| } | |
| /* ── think 五档(整场统一一档) ──────────────────────────────────── */ | |
| .bench-think { | |
| display: inline-flex; | |
| gap: 4px; | |
| padding: 4px; | |
| background: var(--bg-sunken); | |
| border-radius: var(--radius-control); | |
| } | |
| .bench-think-btn { | |
| min-width: 44px; | |
| height: 28px; | |
| padding: 0 10px; | |
| border: none; | |
| border-radius: var(--radius-control); | |
| background: transparent; | |
| color: var(--text-secondary); | |
| font-family: inherit; | |
| font-size: 12.5px; | |
| cursor: pointer; | |
| transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease); | |
| } | |
| .bench-think-btn:hover { | |
| color: var(--text); | |
| } | |
| .bench-think-btn.is-on { | |
| background: var(--bg-elevated); | |
| color: var(--text); | |
| font-weight: 600; | |
| box-shadow: inset 0 0 0 1px var(--border); | |
| } | |
| .bench-think-btn.is-ultra.is-on { | |
| background: var(--accent-soft); | |
| box-shadow: inset 0 0 0 1px var(--accent); | |
| } | |
| .bench-think-btn:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: 2px; | |
| } | |
| /* ── 成本提示(契约:开跑前必须可见) ────────────────────────────── */ | |
| .bench-cost { | |
| padding: 12px 14px; | |
| margin-bottom: 18px; | |
| background: var(--bg-sunken); | |
| border-radius: var(--radius-control); | |
| } | |
| .bench-cost-summary { | |
| margin: 0; | |
| font-size: 13.5px; | |
| line-height: 1.6; | |
| color: var(--text); | |
| } | |
| .bench-cost-discipline { | |
| display: inline-block; | |
| margin-left: 10px; | |
| padding: 2px 8px; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-chip); | |
| font-size: 12px; | |
| color: var(--text-secondary); | |
| } | |
| .bench-cost-lines { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 6px 16px; | |
| margin: 8px 0 0; | |
| padding: 0; | |
| list-style: none; | |
| } | |
| .bench-cost-lines li { | |
| display: inline-flex; | |
| align-items: baseline; | |
| gap: 6px; | |
| font-size: 12.5px; | |
| color: var(--text-secondary); | |
| } | |
| .bench-cost-model { | |
| font-family: var(--font-mono); | |
| font-size: 12px; | |
| color: var(--text); | |
| } | |
| .bench-cost-lines li.is-free .bench-cost-label { | |
| color: var(--success); | |
| } | |
| .bench-cost-lines li.is-paid .bench-cost-label { | |
| color: var(--warning); | |
| } | |
| .bench-cost-lines li.is-local .bench-cost-label { | |
| color: var(--text-secondary); | |
| } | |
| /* ── 按钮 ───────────────────────────────────────────────────────── */ | |
| .bench-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| flex-wrap: wrap; | |
| } | |
| .bench-primary { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 7px; | |
| height: 38px; | |
| padding: 0 18px; | |
| border: none; | |
| border-radius: var(--radius-control); | |
| background: var(--accent); | |
| color: var(--bg); | |
| font-family: inherit; | |
| font-size: 14px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: opacity var(--dur) var(--ease); | |
| } | |
| .bench-primary:hover:not(:disabled) { | |
| opacity: 0.9; | |
| } | |
| .bench-primary:disabled { | |
| opacity: 0.45; | |
| cursor: not-allowed; | |
| } | |
| .bench-primary:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: 2px; | |
| } | |
| .bench-secondary, | |
| .bench-danger, | |
| .bench-icon-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| height: 30px; | |
| padding: 0 11px; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-control); | |
| background: transparent; | |
| color: var(--text-secondary); | |
| font-family: inherit; | |
| font-size: 13px; | |
| cursor: pointer; | |
| transition: | |
| background-color var(--dur) var(--ease), | |
| color var(--dur) var(--ease), | |
| border-color var(--dur) var(--ease); | |
| } | |
| .bench-secondary:hover { | |
| background: var(--accent-soft); | |
| color: var(--text); | |
| } | |
| .bench-danger { | |
| color: var(--danger); | |
| border-color: var(--danger); | |
| } | |
| .bench-danger:hover { | |
| background: var(--danger); | |
| color: var(--bg); | |
| } | |
| .bench-icon-btn { | |
| padding: 0 9px; | |
| font-size: 16px; | |
| line-height: 1; | |
| } | |
| .bench-secondary:focus-visible, | |
| .bench-danger:focus-visible, | |
| .bench-icon-btn:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: 2px; | |
| } | |
| /* ── 运行头 + 进度 ──────────────────────────────────────────────── */ | |
| .bench-run-head { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 16px; | |
| flex-wrap: wrap; | |
| margin-bottom: 14px; | |
| } | |
| .bench-run-title { | |
| display: flex; | |
| align-items: baseline; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| min-width: 0; | |
| } | |
| .bench-run-title .bench-card-title { | |
| margin: 0; | |
| } | |
| .bench-toolbar { | |
| display: flex; | |
| gap: 8px; | |
| flex-shrink: 0; | |
| } | |
| .bench-progress { | |
| height: 6px; | |
| border-radius: var(--radius-chip); | |
| background: var(--bg-sunken); | |
| overflow: hidden; | |
| margin-bottom: 18px; | |
| } | |
| .bench-progress-fill { | |
| height: 100%; | |
| background: var(--accent); | |
| border-radius: var(--radius-chip); | |
| transition: width var(--dur) var(--ease); | |
| } | |
| /* ── 状态点 / 徽章 ──────────────────────────────────────────────── */ | |
| .bench-dot { | |
| width: 9px; | |
| height: 9px; | |
| flex-shrink: 0; | |
| border-radius: 50%; | |
| background: var(--text-tertiary); | |
| } | |
| .bench-dot.is-running { | |
| background: var(--accent); | |
| } | |
| .bench-dot.is-done { | |
| background: var(--success); | |
| } | |
| .bench-dot.is-failed { | |
| background: var(--danger); | |
| } | |
| .bench-dot.is-stopped { | |
| background: var(--warning); | |
| } | |
| .bench-dot.is-pending { | |
| background: var(--text-tertiary); | |
| } | |
| .bench-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| height: 20px; | |
| padding: 0 8px; | |
| border-radius: var(--radius-chip); | |
| background: var(--bg-sunken); | |
| font-size: 11.5px; | |
| color: var(--text-secondary); | |
| white-space: nowrap; | |
| } | |
| .bench-badge.is-running { | |
| background: var(--accent-soft); | |
| color: var(--text); | |
| } | |
| .bench-badge.is-done { | |
| color: var(--success); | |
| } | |
| .bench-badge.is-error, | |
| .bench-badge.is-failed { | |
| color: var(--danger); | |
| } | |
| .bench-badge.is-cancelled, | |
| .bench-badge.is-stopped { | |
| color: var(--warning); | |
| } | |
| /* ── 评委卡(完成后置顶) ───────────────────────────────────────── */ | |
| .bench-judge { | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-card); | |
| background: var(--bg); | |
| padding: 18px 20px; | |
| margin-bottom: 20px; | |
| } | |
| .bench-judge-head { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| margin-bottom: 10px; | |
| } | |
| .bench-judge-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| height: 22px; | |
| padding: 0 9px; | |
| border-radius: var(--radius-chip); | |
| background: var(--accent); | |
| color: var(--bg); | |
| font-size: 11.5px; | |
| font-weight: 600; | |
| } | |
| .bench-judge-model { | |
| margin: 0; | |
| font-family: var(--font-serif); | |
| font-size: 15px; | |
| font-weight: 600; | |
| color: var(--text); | |
| } | |
| .bench-judge-rec { | |
| display: inline-flex; | |
| align-items: center; | |
| height: 22px; | |
| padding: 0 9px; | |
| border: 1px solid var(--accent); | |
| border-radius: var(--radius-chip); | |
| background: var(--accent-soft); | |
| font-size: 12px; | |
| color: var(--text); | |
| max-width: 320px; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| /* ── 矩阵表(行 = prompt、列 = 模型) ────────────────────────────── */ | |
| .bench-table-wrap { | |
| overflow-x: auto; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-card); | |
| } | |
| .bench-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 13px; | |
| } | |
| .bench-table th, | |
| .bench-table td { | |
| border-bottom: 1px solid var(--border); | |
| vertical-align: top; | |
| text-align: left; | |
| } | |
| .bench-table thead th { | |
| background: var(--bg-sunken); | |
| padding: 10px 12px; | |
| font-weight: 600; | |
| color: var(--text); | |
| white-space: nowrap; | |
| } | |
| .bench-col-name { | |
| display: block; | |
| font-family: var(--font-serif); | |
| font-size: 13.5px; | |
| } | |
| .bench-col-cost { | |
| display: block; | |
| margin-top: 2px; | |
| font-size: 11.5px; | |
| font-weight: 400; | |
| color: var(--text-secondary); | |
| } | |
| .bench-table tbody tr:last-child th, | |
| .bench-table tbody tr:last-child td { | |
| border-bottom: none; | |
| } | |
| .bench-row-prompt { | |
| width: 240px; | |
| padding: 12px; | |
| font-weight: 500; | |
| color: var(--text); | |
| } | |
| .bench-idx { | |
| display: inline-block; | |
| min-width: 20px; | |
| margin-right: 6px; | |
| font-family: var(--font-mono); | |
| font-size: 12px; | |
| color: var(--text-tertiary); | |
| } | |
| .bench-row-text { | |
| font-size: 13px; | |
| line-height: 1.6; | |
| } | |
| .bench-td { | |
| position: relative; | |
| min-width: 190px; | |
| padding: 0; | |
| } | |
| .bench-cell { | |
| display: block; | |
| width: 100%; | |
| padding: 12px; | |
| border: none; | |
| background: transparent; | |
| font-family: inherit; | |
| text-align: left; | |
| cursor: pointer; | |
| transition: background-color var(--dur) var(--ease); | |
| } | |
| .bench-cell:hover { | |
| background: var(--accent-soft); | |
| } | |
| .bench-cell:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: -2px; | |
| } | |
| .bench-cell-top { | |
| display: flex; | |
| align-items: center; | |
| gap: 7px; | |
| margin-bottom: 5px; | |
| } | |
| .bench-cell-metric { | |
| font-family: var(--font-mono); | |
| font-size: 11.5px; | |
| color: var(--text-secondary); | |
| } | |
| .bench-excerpt { | |
| font-size: 12.5px; | |
| line-height: 1.55; | |
| color: var(--text-secondary); | |
| overflow: hidden; | |
| display: -webkit-box; | |
| -webkit-line-clamp: 2; | |
| -webkit-box-orient: vertical; | |
| } | |
| .bench-cell-retry, | |
| .bench-cell-stop { | |
| position: absolute; | |
| top: 8px; | |
| right: 8px; | |
| width: 22px; | |
| height: 22px; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-chip); | |
| background: var(--bg-elevated); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: | |
| background-color var(--dur) var(--ease), | |
| color var(--dur) var(--ease); | |
| } | |
| .bench-cell-retry:hover { | |
| background: var(--accent-soft); | |
| color: var(--text); | |
| } | |
| .bench-cell-stop:hover { | |
| background: var(--danger); | |
| color: var(--bg); | |
| } | |
| .bench-cell-retry:focus-visible, | |
| .bench-cell-stop:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: 1px; | |
| } | |
| .bench-legend { | |
| margin: 12px 0 0; | |
| font-size: 12.5px; | |
| line-height: 1.6; | |
| color: var(--text-secondary); | |
| } | |
| /* ── 全文抽屉 ───────────────────────────────────────────────────── */ | |
| .bench-drawer-mask { | |
| position: fixed; | |
| inset: 0; | |
| display: flex; | |
| justify-content: flex-end; | |
| background: var(--scrim); | |
| z-index: 40; | |
| } | |
| .bench-drawer { | |
| display: flex; | |
| flex-direction: column; | |
| width: min(560px, 92vw); | |
| height: 100%; | |
| background: var(--bg-elevated); | |
| border-left: 1px solid var(--border); | |
| box-shadow: var(--shadow-float); | |
| animation: bench-drawer-in 180ms var(--ease); | |
| } | |
| @keyframes bench-drawer-in { | |
| from { | |
| opacity: 0; | |
| transform: translateX(12px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(0); | |
| } | |
| } | |
| .bench-drawer-head { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 12px; | |
| padding: 18px 22px; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .bench-drawer-title { | |
| display: flex; | |
| align-items: center; | |
| gap: 9px; | |
| min-width: 0; | |
| font-family: var(--font-serif); | |
| font-size: 15px; | |
| font-weight: 600; | |
| color: var(--text); | |
| } | |
| .bench-drawer-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| flex-shrink: 0; | |
| } | |
| .bench-drawer-meta { | |
| margin: 0; | |
| padding: 10px 22px; | |
| border-bottom: 1px solid var(--border); | |
| font-family: var(--font-mono); | |
| font-size: 12px; | |
| color: var(--text-secondary); | |
| } | |
| .bench-drawer-body { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 20px 22px; | |
| font-size: 14.5px; | |
| line-height: 1.7; | |
| } | |
| .bench-drawer-body .md > * { | |
| margin: 0 0 12px; | |
| } | |
| /* ── 历史 ───────────────────────────────────────────────────────── */ | |
| .bench-history { | |
| margin-top: 8px; | |
| } | |
| .bench-history-title { | |
| font-family: var(--font-serif); | |
| font-size: 15px; | |
| font-weight: 600; | |
| color: var(--text); | |
| margin: 0 0 10px; | |
| } | |
| .bench-history-list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| border-top: 1px solid var(--border); | |
| } | |
| .bench-history-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| width: 100%; | |
| padding: 11px 6px; | |
| border: none; | |
| border-bottom: 1px solid var(--border); | |
| background: transparent; | |
| font-family: inherit; | |
| text-align: left; | |
| cursor: pointer; | |
| transition: background-color var(--dur) var(--ease); | |
| } | |
| .bench-history-item:hover { | |
| background: var(--accent-soft); | |
| } | |
| .bench-history-item.is-active { | |
| background: var(--accent-soft); | |
| } | |
| .bench-history-item:focus-visible { | |
| outline: 2px solid var(--accent); | |
| outline-offset: -2px; | |
| } | |
| .bench-history-name { | |
| font-family: var(--font-serif); | |
| font-size: 14px; | |
| color: var(--text); | |
| max-width: 46%; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .bench-history-meta { | |
| font-size: 12.5px; | |
| color: var(--text-secondary); | |
| } | |
| /* ── 动效克制(尊重 reduced-motion) ────────────────────────────── */ | |
| @media (prefers-reduced-motion: reduce) { | |
| .bench *, | |
| .bench *::before, | |
| .bench *::after { | |
| transition-duration: 0.01ms ; | |
| animation-duration: 0.01ms ; | |
| } | |
| } | |