Download src/styles/agent-tools.css from Leon4gr45/Velo: direct link, hf CLI and curl.
- Browser
- Download file 5.14 kB
-
https://huggingface.co/spaces/Leon4gr45/Velo/resolve/main/src/styles/agent-tools.css
- Command line
-
hf download hf://spaces/Leon4gr45/Velo/src/styles/agent-tools.css
-
curl -L -o agent-tools.css https://huggingface.co/spaces/Leon4gr45/Velo/resolve/main/src/styles/agent-tools.css
5.14 kB
| /** | |
| * Agent Tool UI 样式 | |
| * | |
| * 覆盖 ToolCallBlock、ConfirmCard、ArtifactCard 等组件的样式。 | |
| * 使用 CSS 变量确保主题兼容。 | |
| */ | |
| /* ===== ToolCallBlock — Tool 调用可视化区块 ===== */ | |
| .tool-call-block { | |
| margin: 6px 0; | |
| border-radius: 6px; | |
| border: 1px solid var(--color-border); | |
| overflow: hidden; | |
| font-size: 0.75rem; | |
| transition: border-color 0.2s ease; | |
| } | |
| .tool-call-block:hover { | |
| border-color: var(--color-text-muted); | |
| } | |
| .tool-call-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| padding: 6px 10px; | |
| background-color: var(--color-hover); | |
| cursor: pointer; | |
| user-select: none; | |
| transition: background-color 0.15s ease; | |
| } | |
| .tool-call-header:hover { | |
| background-color: var(--color-border); | |
| } | |
| .tool-call-icon { | |
| display: flex; | |
| align-items: center; | |
| flex-shrink: 0; | |
| } | |
| .tool-call-name { | |
| font-weight: 600; | |
| color: var(--color-text); | |
| white-space: nowrap; | |
| } | |
| .tool-call-source-badge { | |
| font-size: 0.65rem; | |
| padding: 1px 5px; | |
| border-radius: 3px; | |
| font-weight: 500; | |
| flex-shrink: 0; | |
| } | |
| .tool-call-source-badge.builtin { | |
| background-color: rgba(59, 130, 246, 0.12); | |
| color: #3b82f6; | |
| } | |
| .tool-call-source-badge.mcp { | |
| background-color: rgba(168, 85, 247, 0.12); | |
| color: #a855f7; | |
| } | |
| .tool-call-source-badge.skill { | |
| background-color: rgba(34, 197, 94, 0.12); | |
| color: #22c55e; | |
| } | |
| .tool-call-status { | |
| margin-left: auto; | |
| display: flex; | |
| align-items: center; | |
| gap: 4px; | |
| font-size: 0.7rem; | |
| } | |
| .tool-call-status.completed { | |
| color: #22c55e; | |
| } | |
| .tool-call-status.failed { | |
| color: #ef4444; | |
| } | |
| .tool-call-status.running { | |
| color: var(--color-accent); | |
| } | |
| .tool-call-status.waiting_confirm { | |
| color: #f59e0b; | |
| } | |
| .tool-call-body { | |
| padding: 8px 10px; | |
| border-top: 1px solid var(--color-border); | |
| background-color: var(--color-bg); | |
| } | |
| .tool-call-params { | |
| font-family: 'JetBrains Mono', 'Fira Code', monospace; | |
| font-size: 0.7rem; | |
| line-height: 1.6; | |
| color: var(--color-text-secondary); | |
| white-space: pre-wrap; | |
| word-break: break-all; | |
| } | |
| .tool-call-result { | |
| margin-top: 6px; | |
| padding-top: 6px; | |
| border-top: 1px dashed var(--color-border); | |
| color: var(--color-text); | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| max-height: 200px; | |
| overflow-y: auto; | |
| } | |
| .tool-call-result::-webkit-scrollbar { | |
| width: 4px; | |
| } | |
| .tool-call-result::-webkit-scrollbar-thumb { | |
| background: var(--color-border); | |
| border-radius: 2px; | |
| } | |
| /* 结果区域 hover 时显示复制按钮 */ | |
| .tool-call-result:hover button { | |
| opacity: 0.6 ; | |
| } | |
| .tool-call-result:hover button:hover { | |
| opacity: 1 ; | |
| } | |
| .tool-call-arrow { | |
| margin-left: auto; | |
| transition: transform 0.2s ease; | |
| color: var(--color-text-muted); | |
| opacity: 0.5; | |
| } | |
| .tool-call-arrow.expanded { | |
| transform: rotate(90deg); | |
| } | |
| /* ===== ConfirmCard — 操作确认卡片 ===== */ | |
| .confirm-card { | |
| margin: 6px 0; | |
| padding: 10px 12px; | |
| border-radius: 8px; | |
| border: 1px solid #f59e0b; | |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.05), rgba(245, 158, 11, 0.02)); | |
| } | |
| .confirm-card-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| margin-bottom: 8px; | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| color: #f59e0b; | |
| } | |
| .confirm-card-body { | |
| font-size: 0.72rem; | |
| color: var(--color-text-secondary); | |
| margin-bottom: 10px; | |
| line-height: 1.5; | |
| } | |
| .confirm-card-actions { | |
| display: flex; | |
| gap: 6px; | |
| justify-content: flex-end; | |
| } | |
| .confirm-card-btn { | |
| padding: 4px 14px; | |
| border-radius: 4px; | |
| font-size: 0.72rem; | |
| font-weight: 500; | |
| border: none; | |
| cursor: pointer; | |
| transition: all 0.15s ease; | |
| } | |
| .confirm-card-btn.approve { | |
| background-color: #22c55e; | |
| color: #fff; | |
| } | |
| .confirm-card-btn.approve:hover { | |
| background-color: #16a34a; | |
| } | |
| .confirm-card-btn.reject { | |
| background-color: var(--color-hover); | |
| color: var(--color-text); | |
| border: 1px solid var(--color-border); | |
| } | |
| .confirm-card-btn.reject:hover { | |
| background-color: var(--color-border); | |
| } | |
| /* ===== ArtifactCard — 产物卡片 ===== */ | |
| .artifact-card { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| margin: 4px 0; | |
| padding: 6px 10px; | |
| border-radius: 6px; | |
| border: 1px solid var(--color-border); | |
| background-color: var(--color-hover); | |
| font-size: 0.72rem; | |
| cursor: pointer; | |
| transition: all 0.15s ease; | |
| } | |
| .artifact-card:hover { | |
| border-color: var(--color-accent); | |
| background-color: rgba(var(--accent-rgb, 99, 102, 241), 0.06); | |
| } | |
| .artifact-icon { | |
| display: flex; | |
| align-items: center; | |
| color: var(--color-accent); | |
| flex-shrink: 0; | |
| } | |
| .artifact-name { | |
| font-weight: 500; | |
| color: var(--color-text); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .artifact-type { | |
| margin-left: auto; | |
| font-size: 0.65rem; | |
| color: var(--color-text-muted); | |
| flex-shrink: 0; | |
| } | |
| /* ===== 旋转动画 ===== */ | |
| @keyframes tool-spin { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| .tool-spinner { | |
| animation: tool-spin 1s linear infinite; | |
| } | |
| /* ===== 脉冲动画(等待确认) ===== */ | |
| @keyframes tool-pulse { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0.5; } | |
| } | |
| .tool-pulse { | |
| animation: tool-pulse 1.5s ease-in-out infinite; | |
| } | |