refactor(naming): 移除代码中的第三方产品名
- DeepSeekClient → APIClient(含 7 个 mixin,38 个文件) - --claude-* CSS 变量全部替换为新语义 token,删除 _tokens.scss 兼容别名 - build_openai_tools → build_llm_tools - login/register.html 主题 key claude → classic;terminal.html 变量改 --app- 前缀 - 注释中的 Claude 归因描述中性化 - 顺带删除误跟踪的 __pycache__ .pyc 缓存
This commit is contained in:
parent
0eaa8ba450
commit
3c66c6b05f
@ -2,7 +2,7 @@
|
||||
|
||||
模型的 API 端点 / 密钥 / 模型 ID 现已统一由 ``config/custom_models.json``
|
||||
(经 ``config/model_profiles.py`` 解析为模型档案)描述,并在运行时通过
|
||||
``DeepSeekClient.apply_profile`` 注入。旧的 ``AGENT_API_BASE_URL`` /
|
||||
``APIClient.apply_profile`` 注入。旧的 ``AGENT_API_BASE_URL`` /
|
||||
``AGENT_API_KEY`` / ``AGENT_MODEL_ID``(以及 THINKING / TITLE 三件套)属于早期
|
||||
把模型逻辑硬编码在程序里的残留,已移除。没有任何可用模型时,
|
||||
``model_profiles.get_default_model_key`` 会直接报错提示去配置模型。
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -57,7 +57,7 @@ from modules.mcp_client_manager import MCPClientManager
|
||||
|
||||
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.conversation_manager import ConversationManager
|
||||
from utils.host_workspace_debug import write_host_workspace_debug
|
||||
@ -98,7 +98,7 @@ class MainTerminal(MainTerminalCommandMixin, MainTerminalContextMixin, MainTermi
|
||||
self.usage_tracker = usage_tracker
|
||||
|
||||
# 初始化组件
|
||||
self.api_client = DeepSeekClient(thinking_mode=self.thinking_mode)
|
||||
self.api_client = APIClient(thinking_mode=self.thinking_mode)
|
||||
self.api_client.project_path = project_path
|
||||
self.model_key = get_default_model_key()
|
||||
self.model_profile = get_model_profile(self.model_key)
|
||||
|
||||
@ -71,7 +71,7 @@ except ImportError:
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import (
|
||||
extract_mcp_content_for_context,
|
||||
|
||||
@ -70,7 +70,7 @@ from modules.custom_tool_executor import CustomToolExecutor
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager, AUTO_SHALLOW_PLACEHOLDER
|
||||
from utils.host_workspace_debug import write_host_workspace_debug
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
|
||||
@ -70,7 +70,7 @@ from modules.custom_tool_executor import CustomToolExecutor
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager, AUTO_SHALLOW_PLACEHOLDER
|
||||
from utils.host_workspace_debug import write_host_workspace_debug
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
|
||||
@ -72,7 +72,7 @@ from modules.custom_tool_executor import CustomToolExecutor
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager, AUTO_SHALLOW_PLACEHOLDER
|
||||
from utils.host_workspace_debug import write_host_workspace_debug
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
|
||||
@ -71,7 +71,7 @@ from modules.custom_tool_executor import CustomToolExecutor
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager, AUTO_SHALLOW_PLACEHOLDER
|
||||
from utils.host_workspace_debug import write_host_workspace_debug
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
|
||||
@ -70,7 +70,7 @@ from modules.custom_tool_executor import CustomToolExecutor
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager, AUTO_SHALLOW_PLACEHOLDER
|
||||
from utils.host_workspace_debug import write_host_workspace_debug
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
|
||||
@ -70,7 +70,7 @@ from modules.custom_tool_executor import CustomToolExecutor
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager, AUTO_SHALLOW_PLACEHOLDER
|
||||
from utils.host_workspace_debug import write_host_workspace_debug
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
@ -193,7 +193,7 @@ class ToolsDefinitionCustomMcpMixin:
|
||||
self.mcp_tool_alias_map = {}
|
||||
return []
|
||||
try:
|
||||
tool_defs, alias_map = manager.build_openai_tools(
|
||||
tool_defs, alias_map = manager.build_llm_tools(
|
||||
ensure_discovery=True,
|
||||
discovery_timeout_seconds=10,
|
||||
)
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -68,7 +68,7 @@ from modules.mcp_server_registry import MCPServerRegistry, build_default_mcp_cat
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -95,7 +95,7 @@ from modules.custom_tool_executor import CustomToolExecutor
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
@ -972,7 +972,7 @@ class MainTerminalToolsExecutionMixin:
|
||||
servers = [item for item in servers if item.get("id") == server_id]
|
||||
|
||||
# 读取当前 alias 映射(不强制再次发现)
|
||||
_, alias_map = manager.build_openai_tools(ensure_discovery=False)
|
||||
_, alias_map = manager.build_llm_tools(ensure_discovery=False)
|
||||
aliases_by_server = {}
|
||||
for alias, binding in (alias_map or {}).items():
|
||||
sid = getattr(binding, "server_id", "")
|
||||
|
||||
@ -73,7 +73,7 @@ except ImportError:
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
@ -72,7 +72,7 @@ from modules.custom_tool_executor import CustomToolExecutor
|
||||
|
||||
from modules.container_monitor import collect_stats, inspect_state
|
||||
from core.tool_config import TOOL_CATEGORIES
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.context_manager import ContextManager
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.logger import setup_logger
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -389,7 +389,7 @@ class MCPClientManager:
|
||||
continue
|
||||
yield item
|
||||
|
||||
def build_openai_tools(
|
||||
def build_llm_tools(
|
||||
self,
|
||||
*,
|
||||
ensure_discovery: bool = True,
|
||||
@ -461,7 +461,7 @@ class MCPClientManager:
|
||||
return self._latest_alias_map[tool_alias]
|
||||
|
||||
# 容错:从缓存动态重建一遍
|
||||
_, rebuilt = self.build_openai_tools(ensure_discovery=False)
|
||||
_, rebuilt = self.build_llm_tools(ensure_discovery=False)
|
||||
return rebuilt.get(tool_alias)
|
||||
|
||||
def call_tool_by_alias(
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
"""Conversation-scoped shallow file versioning for workspace edits.
|
||||
|
||||
Mirrors Claude Code's file-history approach:
|
||||
Mirrors the file-history approach of mainstream AI coding tools:
|
||||
- Only files touched by write_file / edit_file are tracked.
|
||||
- Before each edit the current content is backed up.
|
||||
- A snapshot is taken per user message, referencing the latest backup version
|
||||
|
||||
@ -20,7 +20,7 @@ from modules.sub_agent.toolkit import (
|
||||
_format_tool_result,
|
||||
_build_sub_agent_profile,
|
||||
)
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from utils.logger import setup_logger
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@ -540,7 +540,7 @@ class SubAgentTask:
|
||||
return True
|
||||
|
||||
def _build_client(self) -> tuple:
|
||||
"""加载模型配置并初始化 DeepSeekClient。"""
|
||||
"""加载模型配置并初始化 APIClient。"""
|
||||
config_path = self.manager.models_config_file
|
||||
models: List[Dict[str, Any]] = []
|
||||
default_key = ""
|
||||
@ -567,7 +567,7 @@ class SubAgentTask:
|
||||
if chosen_key not in model_map:
|
||||
raise RuntimeError(f"未找到可用子智能体模型配置: {config_path}")
|
||||
|
||||
client = DeepSeekClient(thinking_mode=(self.thinking_mode == "thinking"), web_mode=True)
|
||||
client = APIClient(thinking_mode=(self.thinking_mode == "thinking"), web_mode=True)
|
||||
client.model_key = chosen_key
|
||||
client.project_path = str(self.manager.project_path)
|
||||
client.apply_profile(model_map[chosen_key])
|
||||
@ -575,7 +575,7 @@ class SubAgentTask:
|
||||
|
||||
async def _call_model(
|
||||
self,
|
||||
client: DeepSeekClient,
|
||||
client: APIClient,
|
||||
model_key: str,
|
||||
tools: List[Dict[str, Any]],
|
||||
) -> tuple:
|
||||
|
||||
@ -355,7 +355,7 @@ def _format_tool_result(name: str, raw: Any) -> str:
|
||||
|
||||
|
||||
def _build_sub_agent_profile(model_raw: Dict[str, Any]) -> Optional[Dict[str, Any]]:
|
||||
"""把 sub_agent_models.json 中的模型条目转成 DeepSeekClient.apply_profile 所需格式。"""
|
||||
"""把 sub_agent_models.json 中的模型条目转成 APIClient.apply_profile 所需格式。"""
|
||||
name = str(model_raw.get("name") or model_raw.get("model_name") or model_raw.get("model") or "").strip()
|
||||
url = str(_parse_env_ref(model_raw.get("url") or model_raw.get("base_url") or "") or "").strip()
|
||||
api_key = str(_parse_env_ref(model_raw.get("apikey") or model_raw.get("api_key") or "") or "").strip()
|
||||
|
||||
@ -248,7 +248,7 @@ from modules.user_container_manager import UserContainerManager
|
||||
from modules.usage_tracker import UsageTracker, QUOTA_DEFAULTS
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.conversation_manager import ConversationManager
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from .files import files_bp
|
||||
|
||||
app = Flask(__name__, static_folder=str(PROJECT_ROOT / 'static'))
|
||||
@ -480,7 +480,7 @@ async def _generate_title_async(user_message: str) -> Optional[str]:
|
||||
if not user_message:
|
||||
_title_debug_log("skip_empty_user_message")
|
||||
return None
|
||||
client = DeepSeekClient(thinking_mode=False, web_mode=True)
|
||||
client = APIClient(thinking_mode=False, web_mode=True)
|
||||
try:
|
||||
default_model = get_default_model_key()
|
||||
client.model_key = default_model
|
||||
|
||||
@ -10,7 +10,7 @@ from typing import Any, Dict, List, Optional
|
||||
|
||||
from core.web_terminal import WebTerminal
|
||||
from config import LOGS_DIR
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
from config.model_profiles import get_default_model_key, get_model_profile
|
||||
|
||||
TITLE_DEBUG_DIR = Path(LOGS_DIR).expanduser().resolve() / "title_debug"
|
||||
@ -51,7 +51,7 @@ async def _generate_title_async(
|
||||
_title_debug_log("skip_empty_user_message")
|
||||
return None
|
||||
|
||||
client = DeepSeekClient(thinking_mode=False, web_mode=True)
|
||||
client = APIClient(thinking_mode=False, web_mode=True)
|
||||
try:
|
||||
default_model = get_default_model_key()
|
||||
client.model_key = default_model
|
||||
|
||||
@ -57,7 +57,7 @@ from utils.perf_log import perf_log, PerfTimer
|
||||
from core.web_terminal import WebTerminal
|
||||
from utils.tool_result_formatter import format_tool_result_for_context
|
||||
from utils.conversation_manager import ConversationManager
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
|
||||
from .auth_helpers import api_login_required, resolve_admin_policy, get_current_user_record, get_current_username
|
||||
from .context import with_terminal, get_terminal_for_sid, get_gui_manager, get_upload_guard, build_upload_error_response, ensure_conversation_loaded, reset_system_state, get_user_resources, get_or_create_usage_tracker
|
||||
|
||||
@ -12,11 +12,11 @@
|
||||
(function () {
|
||||
try {
|
||||
var key = window.localStorage.getItem('agents_ui_theme');
|
||||
var theme = key === 'light' || key === 'dark' || key === 'claude' ? key : 'claude';
|
||||
var theme = key === 'light' || key === 'dark' || key === 'classic' ? key : 'classic';
|
||||
document.documentElement.setAttribute('data-theme', theme);
|
||||
document.body && document.body.setAttribute('data-theme', theme);
|
||||
} catch (_e) {
|
||||
document.documentElement.setAttribute('data-theme', 'claude');
|
||||
document.documentElement.setAttribute('data-theme', 'classic');
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
@ -12,11 +12,11 @@
|
||||
(function () {
|
||||
try {
|
||||
var key = window.localStorage.getItem('agents_ui_theme');
|
||||
var theme = key === 'light' || key === 'dark' || key === 'claude' ? key : 'claude';
|
||||
var theme = key === 'light' || key === 'dark' || key === 'classic' ? key : 'classic';
|
||||
document.documentElement.setAttribute('data-theme', theme);
|
||||
document.body && document.body.setAttribute('data-theme', theme);
|
||||
} catch (_e) {
|
||||
document.documentElement.setAttribute('data-theme', 'claude');
|
||||
document.documentElement.setAttribute('data-theme', 'classic');
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
@ -977,7 +977,7 @@ button {
|
||||
border: none;
|
||||
border-radius: 999px;
|
||||
padding: 10px 18px;
|
||||
background: var(--claude-highlight);
|
||||
background: var(--highlight);
|
||||
color: #3b2f1d;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
@ -996,7 +996,7 @@ button:disabled {
|
||||
|
||||
button:not(:disabled):hover {
|
||||
transform: translateY(-1px);
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
box-shadow: 0 8px 16px rgba(189, 93, 58, 0.25);
|
||||
}
|
||||
|
||||
@ -1057,7 +1057,7 @@ button:not(:disabled):hover {
|
||||
border-radius: 28px;
|
||||
padding: 24px;
|
||||
border: 1px solid rgba(118, 103, 84, 0.35);
|
||||
box-shadow: var(--claude-shadow);
|
||||
box-shadow: var(--shadow-card);
|
||||
color: #23170b;
|
||||
}
|
||||
|
||||
@ -1077,7 +1077,7 @@ button:not(:disabled):hover {
|
||||
.metric-card h3 {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
letter-spacing: 0.08em;
|
||||
}
|
||||
|
||||
@ -1126,7 +1126,7 @@ button:not(:disabled):hover {
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.token-card strong {
|
||||
@ -1160,7 +1160,7 @@ button:not(:disabled):hover {
|
||||
|
||||
.token-breakdown-header span {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.token-table-wrapper {
|
||||
@ -1195,7 +1195,7 @@ button:not(:disabled):hover {
|
||||
|
||||
.token-empty {
|
||||
margin: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -1214,7 +1214,7 @@ button:not(:disabled):hover {
|
||||
|
||||
.leader-card h3 {
|
||||
margin: 0 0 10px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@ -1234,7 +1234,7 @@ button:not(:disabled):hover {
|
||||
}
|
||||
|
||||
.leader-card .muted {
|
||||
color: var(--claude-muted);
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.table-wrapper {
|
||||
@ -1274,7 +1274,7 @@ th {
|
||||
|
||||
.status-badge.online {
|
||||
background: rgba(118, 176, 134, 0.18);
|
||||
color: var(--claude-success);
|
||||
color: var(--state-success);
|
||||
}
|
||||
|
||||
.status-badge.offline {
|
||||
@ -1284,12 +1284,12 @@ th {
|
||||
|
||||
.status-badge.warning {
|
||||
background: rgba(217, 152, 69, 0.2);
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
}
|
||||
|
||||
.status-badge.danger {
|
||||
background: rgba(189, 93, 58, 0.18);
|
||||
color: var(--claude-accent-strong);
|
||||
color: var(--accent-strong);
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
@ -1302,7 +1302,7 @@ th {
|
||||
.progress-bar span {
|
||||
display: block;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, var(--claude-highlight), var(--claude-accent));
|
||||
background: linear-gradient(90deg, var(--highlight), var(--accent));
|
||||
}
|
||||
|
||||
.upload-feed {
|
||||
@ -1329,7 +1329,7 @@ th {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
flex-wrap: wrap;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@ -1366,7 +1366,7 @@ th {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -1383,7 +1383,7 @@ th {
|
||||
}
|
||||
|
||||
.invite-card span {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -1416,7 +1416,7 @@ th {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 16px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.spinner {
|
||||
@ -1497,7 +1497,7 @@ th {
|
||||
|
||||
.password-field label {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@ -1569,7 +1569,7 @@ th {
|
||||
|
||||
.user-search-selected .user-search-email {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
@ -1582,7 +1582,7 @@ th {
|
||||
|
||||
.user-search-arrow {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
transition: transform 0.15s ease;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
@ -1650,7 +1650,7 @@ th {
|
||||
|
||||
.user-search-item .user-search-email {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
@ -1669,7 +1669,7 @@ th {
|
||||
.user-search-empty {
|
||||
padding: 16px;
|
||||
text-align: center;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -1686,7 +1686,7 @@ th {
|
||||
border-radius: 12px;
|
||||
cursor: pointer;
|
||||
box-shadow: none;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.password-actions .ghost-btn:hover:not(:disabled) {
|
||||
@ -1695,7 +1695,7 @@ th {
|
||||
}
|
||||
|
||||
.password-success {
|
||||
color: var(--claude-success);
|
||||
color: var(--state-success);
|
||||
margin: 0;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@ -569,7 +569,7 @@ button {
|
||||
border: none;
|
||||
border-radius: 12px;
|
||||
padding: 10px 14px;
|
||||
background: var(--claude-highlight);
|
||||
background: var(--highlight);
|
||||
color: #2a2013;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
|
||||
@ -417,7 +417,7 @@ watch(secondaryVerified, async (val) => {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* Claude 经典:米色+白色+深棕的柔和高对比配色 */
|
||||
/* 经典:米色+白色+深棕的柔和高对比配色 */
|
||||
:global(html, body) {
|
||||
min-height: 100%;
|
||||
background:
|
||||
@ -710,8 +710,8 @@ watch(secondaryVerified, async (val) => {
|
||||
.primary {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--claude-accent) 0%,
|
||||
var(--claude-accent-strong) 100%
|
||||
var(--accent) 0%,
|
||||
var(--accent-strong) 100%
|
||||
);
|
||||
color: #fff;
|
||||
border: none;
|
||||
|
||||
@ -54,8 +54,8 @@ onMounted(() => {
|
||||
--border: #e3d8c8;
|
||||
--ink: #1a120b;
|
||||
--muted: #6f635a;
|
||||
--accent: var(--claude-accent);
|
||||
--accent-strong: var(--claude-accent-strong);
|
||||
--accent: var(--accent);
|
||||
--accent-strong: var(--accent-strong);
|
||||
--shadow: 0 16px 40px rgba(47, 32, 21, 0.12);
|
||||
|
||||
max-width: 1080px;
|
||||
|
||||
@ -1386,7 +1386,7 @@ button:disabled {
|
||||
|
||||
.fancy-path {
|
||||
fill: none;
|
||||
stroke: var(--claude-text-secondary);
|
||||
stroke: var(--text-secondary);
|
||||
stroke-width: 5;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
@ -1399,13 +1399,13 @@ button:disabled {
|
||||
}
|
||||
|
||||
.toggle-row input:checked + .fancy-check .fancy-path {
|
||||
stroke: var(--claude-accent);
|
||||
stroke: var(--accent);
|
||||
stroke-dasharray: 70.5096664428711 9999999;
|
||||
stroke-dashoffset: -262.2723388671875;
|
||||
}
|
||||
|
||||
.toggle-row span {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
|
||||
@ -10,8 +10,8 @@ body {
|
||||
min-height: 100vh;
|
||||
font-family:
|
||||
-apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', sans-serif;
|
||||
background: var(--claude-bg);
|
||||
color: var(--claude-text);
|
||||
background: var(--surface-base);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.auth-page {
|
||||
@ -42,7 +42,7 @@ body {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 0;
|
||||
font-size: 0.9rem;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.auth-form-group {
|
||||
@ -53,7 +53,7 @@ body {
|
||||
display: block;
|
||||
margin-bottom: 6px;
|
||||
font-size: 0.86rem;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.auth-input {
|
||||
@ -63,7 +63,7 @@ body {
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--theme-control-border);
|
||||
background: var(--theme-surface-strong);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
padding: 11px 12px;
|
||||
font-size: 0.95rem;
|
||||
transition:
|
||||
@ -73,8 +73,8 @@ body {
|
||||
|
||||
.auth-input:focus {
|
||||
outline: none;
|
||||
border-color: var(--claude-accent-strong);
|
||||
box-shadow: 0 0 0 3px var(--claude-highlight);
|
||||
border-color: var(--accent-strong);
|
||||
box-shadow: 0 0 0 3px var(--highlight);
|
||||
}
|
||||
|
||||
.auth-button {
|
||||
@ -85,7 +85,7 @@ body {
|
||||
min-height: 44px;
|
||||
font-size: 0.95rem;
|
||||
cursor: pointer;
|
||||
background: linear-gradient(135deg, var(--claude-accent), var(--claude-accent-strong));
|
||||
background: linear-gradient(135deg, var(--accent), var(--accent-strong));
|
||||
color: var(--on-accent);
|
||||
transition:
|
||||
transform 0.15s ease,
|
||||
@ -108,9 +108,9 @@ body {
|
||||
margin-top: 10px;
|
||||
border-radius: 999px;
|
||||
min-height: 42px;
|
||||
border: 1px solid var(--claude-accent-strong);
|
||||
border: 1px solid var(--accent-strong);
|
||||
background: var(--theme-surface-strong);
|
||||
color: var(--claude-accent-strong);
|
||||
color: var(--accent-strong);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -124,10 +124,10 @@ body {
|
||||
.auth-link {
|
||||
margin-top: 16px;
|
||||
font-size: 0.86rem;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.auth-link a {
|
||||
color: var(--claude-accent-strong);
|
||||
color: var(--accent-strong);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@ -1071,13 +1071,13 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.summary-line-text:hover {
|
||||
background-color: var(--claude-panel);
|
||||
background-color: var(--surface-panel);
|
||||
}
|
||||
|
||||
.summary-content-wrapper {
|
||||
min-width: 0;
|
||||
font-size: 15px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.7;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
@ -1173,7 +1173,7 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.check-icon {
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
@ -1181,17 +1181,17 @@ onBeforeUnmount(() => {
|
||||
/* 运行中文本:按字符依次闪烁 */
|
||||
.summary-line-text.running .summary-char {
|
||||
display: inline-block;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
animation: summaryPass 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes summaryPass {
|
||||
0%,
|
||||
100% {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
50% {
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1266,13 +1266,13 @@ onBeforeUnmount(() => {
|
||||
|
||||
.step-icon {
|
||||
flex-shrink: 0;
|
||||
color: var(--claude-text-tertiary); /* 和竖线、字体一样的灰色 */
|
||||
color: var(--text-tertiary); /* 和竖线、字体一样的灰色 */
|
||||
}
|
||||
|
||||
.step-line {
|
||||
width: 2px;
|
||||
flex: 1; /* 自动填充剩余空间 */
|
||||
background: var(--claude-border);
|
||||
background: var(--border-default);
|
||||
margin-top: 4px;
|
||||
margin-bottom: -14px; /* 延伸到下一个 step-item,保持上下距离 SVG 相等 */
|
||||
flex-shrink: 0;
|
||||
@ -1292,7 +1292,7 @@ onBeforeUnmount(() => {
|
||||
.step-header {
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
margin-bottom: 8px;
|
||||
@ -1300,13 +1300,13 @@ onBeforeUnmount(() => {
|
||||
|
||||
.step-body {
|
||||
font-size: 14px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
/* 思考内容 */
|
||||
.thinking-content {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
line-height: 1.7;
|
||||
white-space: pre-wrap;
|
||||
@ -1320,7 +1320,7 @@ onBeforeUnmount(() => {
|
||||
margin-top: calc((1em - 1.7em) / 2);
|
||||
/* 滚动条样式(参考 git 状态侧边栏文件列表,滚动槽透明贴合灰色底色) */
|
||||
scrollbar-width: thin; /* Firefox */
|
||||
scrollbar-color: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent) transparent;
|
||||
scrollbar-color: color-mix(in srgb, var(--text-secondary) 55%, transparent) transparent;
|
||||
}
|
||||
|
||||
.thinking-content::-webkit-scrollbar {
|
||||
@ -1335,7 +1335,7 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.thinking-content::-webkit-scrollbar-thumb {
|
||||
background: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent);
|
||||
background: color-mix(in srgb, var(--text-secondary) 55%, transparent);
|
||||
border-radius: 999px;
|
||||
border: 2px solid transparent;
|
||||
background-clip: padding-box;
|
||||
@ -1345,7 +1345,7 @@ onBeforeUnmount(() => {
|
||||
.step-header {
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
margin: 0 0 8px 0;
|
||||
@ -1354,7 +1354,7 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
.tool-intent {
|
||||
font-weight: 500;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 12px;
|
||||
font-size: 14px;
|
||||
line-height: 1.7;
|
||||
@ -1363,8 +1363,8 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.tool-result {
|
||||
background: var(--claude-panel);
|
||||
border: 1px solid var(--claude-border);
|
||||
background: var(--surface-panel);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 8px;
|
||||
padding: 12px;
|
||||
font-size: 13px;
|
||||
@ -1395,12 +1395,12 @@ onBeforeUnmount(() => {
|
||||
word-wrap: break-word;
|
||||
font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.result-item {
|
||||
padding: 8px 0;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
.result-item:last-child {
|
||||
@ -1422,7 +1422,7 @@ onBeforeUnmount(() => {
|
||||
.text-content {
|
||||
font-size: 15px;
|
||||
line-height: 1.7;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
word-wrap: break-word;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1646,7 +1646,7 @@ function renderListActiveSubAgents(result: any): string {
|
||||
.code-block pre,
|
||||
.output-block pre {
|
||||
scrollbar-width: thin; /* Firefox */
|
||||
scrollbar-color: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent) transparent;
|
||||
scrollbar-color: color-mix(in srgb, var(--text-secondary) 55%, transparent) transparent;
|
||||
}
|
||||
|
||||
.tool-result-content.scrollable::-webkit-scrollbar,
|
||||
@ -1670,7 +1670,7 @@ function renderListActiveSubAgents(result: any): string {
|
||||
.tool-result-diff.scrollable::-webkit-scrollbar-thumb,
|
||||
.code-block pre::-webkit-scrollbar-thumb,
|
||||
.output-block pre::-webkit-scrollbar-thumb {
|
||||
background: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent);
|
||||
background: color-mix(in srgb, var(--text-secondary) 55%, transparent);
|
||||
border-radius: 999px;
|
||||
border: 2px solid transparent;
|
||||
background-clip: padding-box;
|
||||
@ -1771,13 +1771,13 @@ function renderListActiveSubAgents(result: any): string {
|
||||
}
|
||||
|
||||
.diff-line-number {
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
text-align: right;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.diff-marker {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
text-align: center;
|
||||
user-select: none;
|
||||
}
|
||||
@ -1800,7 +1800,7 @@ function renderListActiveSubAgents(result: any): string {
|
||||
|
||||
.diff-separator {
|
||||
text-align: left;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
margin: 8px 0;
|
||||
}
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
width: var(--square-size);
|
||||
height: var(--square-size);
|
||||
left: 15%;
|
||||
background-color: var(--claude-text-tertiary);
|
||||
background-color: var(--text-tertiary);
|
||||
transform-origin: 50%;
|
||||
animation: bounce-square 0.5s alternate infinite ease;
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
position: absolute;
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
|
||||
@ -42,7 +42,7 @@
|
||||
content: '';
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
transform: scale(0);
|
||||
opacity: 0.5;
|
||||
animation: pulse calc(var(--speed) * 1.111) ease-in-out infinite;
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
top: 50%;
|
||||
animation: chase-up 2.4s cubic-bezier(0, 0, 0.24, 1.21) infinite;
|
||||
left: 50%;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.dual-chase-loader::after {
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
|
||||
.five-squares-loader div {
|
||||
display: inline-block;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
width: var(--square);
|
||||
height: var(--square);
|
||||
position: absolute;
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -1px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
animation: follow-track 1.25s infinite;
|
||||
}
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
left: 50%;
|
||||
margin-top: -1.5px;
|
||||
margin-left: -1.5px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
animation: corner-cycle 1.8s ease-in-out infinite;
|
||||
}
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
.sq {
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
animation: jump 2s ease infinite;
|
||||
}
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
content: '';
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.dot:nth-child(2) {
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
top: 75%;
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.dot:first-child {
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.box:nth-child(3n) {
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
left: 0;
|
||||
width: var(--size-orbe);
|
||||
height: var(--size-orbe);
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
filter: blur(0.35px);
|
||||
}
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@
|
||||
.cell:nth-child(7),
|
||||
.cell:nth-child(8),
|
||||
.cell:nth-child(9) {
|
||||
--cell-color: var(--claude-text-tertiary);
|
||||
--cell-color: var(--text-tertiary);
|
||||
}
|
||||
|
||||
@keyframes ripple {
|
||||
|
||||
@ -100,7 +100,7 @@
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
margin: 0.5px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
animation: square-animation 10s ease-in-out infinite both;
|
||||
}
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
height: var(--sq);
|
||||
position: relative;
|
||||
left: -10px;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
animation: roll 2s linear infinite;
|
||||
}
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
}
|
||||
|
||||
.square {
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
position: absolute;
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
.sq {
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
animation: wave var(--speed) ease-in-out infinite;
|
||||
}
|
||||
|
||||
|
||||
@ -980,9 +980,9 @@
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0;
|
||||
/* 线条色与左侧对话记录侧边栏导航图标一致(--claude-text),恒定不变:
|
||||
/* 线条色与左侧对话记录侧边栏导航图标一致(--text-primary),恒定不变:
|
||||
无 hover 变色,展开(is-active)状态也不变色 */
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
/* 底色与背后面板一致(收起=对话标题栏 / 展开=应用背景,两者同为 --surface-panel) */
|
||||
background: var(--surface-panel);
|
||||
border: none;
|
||||
|
||||
@ -129,7 +129,7 @@ defineExpose(publicApi);
|
||||
max-height: calc(
|
||||
((var(--file-at-row-height) * 7) + (var(--file-at-gap) * 8) + (var(--file-at-pad-y) * 2)) * 1.5
|
||||
);
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: var(--file-at-radius);
|
||||
background: var(--surface-soft);
|
||||
box-shadow: 0 8px 24px var(--shadow-color);
|
||||
@ -165,7 +165,7 @@ defineExpose(publicApi);
|
||||
border-radius: 7px;
|
||||
padding: 3px 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
@ -184,7 +184,7 @@ defineExpose(publicApi);
|
||||
.file-at-item__name {
|
||||
flex: 0 1 auto;
|
||||
min-width: 0;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
@ -195,7 +195,7 @@ defineExpose(publicApi);
|
||||
.file-at-item__description {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
@ -209,13 +209,13 @@ defineExpose(publicApi);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 3px 9px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
body[data-theme='dark'] .file-at-menu-wrapper {
|
||||
background: var(--badge-bg);
|
||||
border-color: var(--claude-border);
|
||||
border-color: var(--border-default);
|
||||
}
|
||||
|
||||
.file-at-menu-motion-enter-active,
|
||||
|
||||
@ -2987,7 +2987,7 @@ onBeforeUnmount(() => {
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
pointer-events: auto;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.floating-status-row {
|
||||
@ -3018,7 +3018,7 @@ onBeforeUnmount(() => {
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
padding: 4px 10px 4px 4px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 14px;
|
||||
background: var(--theme-surface-soft);
|
||||
box-shadow: none;
|
||||
@ -3037,7 +3037,7 @@ onBeforeUnmount(() => {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
line-height: 16px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
background: var(--chat-surface-color);
|
||||
padding: 2px 8px;
|
||||
border-radius: 9999px;
|
||||
@ -3107,7 +3107,7 @@ onBeforeUnmount(() => {
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font: inherit;
|
||||
font-size: 12px;
|
||||
line-height: 1.2;
|
||||
@ -3139,12 +3139,12 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.floating-project-status__button--branch {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.floating-project-status__notice {
|
||||
padding: 0 8px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.floating-project-status__notice--button {
|
||||
@ -3221,7 +3221,7 @@ onBeforeUnmount(() => {
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
padding: 6px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 14px;
|
||||
background: var(--theme-surface-soft);
|
||||
box-shadow: none;
|
||||
@ -3236,7 +3236,7 @@ onBeforeUnmount(() => {
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 14px;
|
||||
line-height: 1.2;
|
||||
text-align: left;
|
||||
@ -3299,8 +3299,8 @@ onBeforeUnmount(() => {
|
||||
border-radius: 999px;
|
||||
font-size: 12px;
|
||||
line-height: 1.4;
|
||||
color: var(--claude-text-secondary);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 92%, var(--claude-text-tertiary) 8%);
|
||||
color: var(--text-secondary);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 92%, var(--text-tertiary) 8%);
|
||||
border: 1px solid var(--theme-chip-border);
|
||||
user-select: none;
|
||||
transition:
|
||||
@ -3333,32 +3333,32 @@ onBeforeUnmount(() => {
|
||||
opacity: 0;
|
||||
}
|
||||
.goal-mode-banner--running {
|
||||
color: var(--claude-accent);
|
||||
border-color: var(--claude-accent);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--claude-accent) 18%);
|
||||
color: var(--accent);
|
||||
border-color: var(--accent);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--accent) 18%);
|
||||
}
|
||||
.goal-mode-banner--done {
|
||||
color: var(--claude-success);
|
||||
border-color: var(--claude-success);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--claude-success) 18%);
|
||||
color: var(--state-success);
|
||||
border-color: var(--state-success);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--state-success) 18%);
|
||||
}
|
||||
:global(:root[data-theme='dark']) .goal-mode-banner,
|
||||
:global(body[data-theme='dark']) .goal-mode-banner {
|
||||
color: var(--claude-text-secondary);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 82%, var(--claude-text-tertiary) 18%);
|
||||
color: var(--text-secondary);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 82%, var(--text-tertiary) 18%);
|
||||
border-color: var(--theme-control-border-strong);
|
||||
}
|
||||
:global(:root[data-theme='dark']) .goal-mode-banner--running,
|
||||
:global(body[data-theme='dark']) .goal-mode-banner--running {
|
||||
color: var(--text-primary);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--claude-accent) 28%);
|
||||
border-color: color-mix(in srgb, var(--claude-accent) 70%, white 30%);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--accent) 28%);
|
||||
border-color: color-mix(in srgb, var(--accent) 70%, white 30%);
|
||||
}
|
||||
:global(:root[data-theme='dark']) .goal-mode-banner--done,
|
||||
:global(body[data-theme='dark']) .goal-mode-banner--done {
|
||||
color: color-mix(in srgb, var(--state-success) 30%, white);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--claude-success) 28%);
|
||||
border-color: color-mix(in srgb, var(--claude-success) 70%, white 30%);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--state-success) 28%);
|
||||
border-color: color-mix(in srgb, var(--state-success) 70%, white 30%);
|
||||
}
|
||||
.goal-mode-banner--clickable {
|
||||
cursor: pointer;
|
||||
@ -3367,14 +3367,14 @@ onBeforeUnmount(() => {
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
border-radius: 50%;
|
||||
background: var(--claude-text-tertiary);
|
||||
background: var(--text-tertiary);
|
||||
}
|
||||
.goal-mode-banner--running .goal-mode-banner__dot {
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
animation: goal-banner-pulse 1.4s ease-in-out infinite;
|
||||
}
|
||||
.goal-mode-banner--done .goal-mode-banner__dot {
|
||||
background: var(--claude-success);
|
||||
background: var(--state-success);
|
||||
}
|
||||
@keyframes goal-banner-pulse {
|
||||
0%,
|
||||
|
||||
@ -292,17 +292,17 @@ const goalCompleted = computed(() => String(props.goalProgress?.status || '').to
|
||||
margin-top: 2px;
|
||||
}
|
||||
.menu-entry.goal-entry-active {
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
.menu-entry.goal-entry-active .entry-arrow {
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-size: 12px;
|
||||
}
|
||||
.menu-entry.mode-entry-active {
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
.menu-entry.mode-entry-active .entry-arrow {
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -192,8 +192,8 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
max-width: 96vw;
|
||||
height: min(700px, 88vh);
|
||||
max-height: 88vh;
|
||||
background: var(--claude-panel);
|
||||
border: 1px solid var(--claude-border);
|
||||
background: var(--surface-panel);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 16px;
|
||||
box-shadow: var(--theme-shadow-strong);
|
||||
display: flex;
|
||||
@ -210,7 +210,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
.header-titles {
|
||||
@ -221,14 +221,14 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
line-height: 1.2;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
.review-header .subtitle {
|
||||
font-size: 12px;
|
||||
line-height: 1.2;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
@ -245,7 +245,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
padding: 0 10px;
|
||||
border-radius: 8px;
|
||||
background: var(--theme-tab-active);
|
||||
@ -265,7 +265,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
border: 0;
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
cursor: pointer;
|
||||
transition:
|
||||
background 140ms ease,
|
||||
@ -274,7 +274,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
|
||||
.icon-close-btn:hover:not(:disabled) {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.icon-close-btn:disabled {
|
||||
@ -291,7 +291,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
}
|
||||
|
||||
.review-left {
|
||||
border-right: 1px solid var(--claude-border);
|
||||
border-right: 1px solid var(--border-default);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 0;
|
||||
@ -316,12 +316,12 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
.pane-head-label {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.pane-head-meta {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* ===== 通用滚动容器:隐藏滚动条,无边框盒子 ===== */
|
||||
@ -387,7 +387,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
bottom: 14px;
|
||||
width: 3px;
|
||||
border-radius: 999px;
|
||||
background: var(--claude-text-secondary);
|
||||
background: var(--text-secondary);
|
||||
}
|
||||
|
||||
.conversation-item .row {
|
||||
@ -395,7 +395,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.conversation-item .item-title {
|
||||
@ -419,13 +419,13 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
font-size: 12px;
|
||||
line-height: 1;
|
||||
background: var(--theme-chip-bg);
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.conversation-item .meta {
|
||||
font-size: 12px;
|
||||
line-height: 1;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
white-space: nowrap;
|
||||
@ -435,7 +435,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
|
||||
.empty {
|
||||
text-align: center;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
padding: 20px 0;
|
||||
}
|
||||
@ -453,7 +453,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
border-radius: 10px;
|
||||
padding: 0 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
@ -464,7 +464,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
|
||||
.load-more-btn:hover:not(:disabled) {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.load-more-btn:disabled {
|
||||
@ -483,7 +483,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
gap: 1px;
|
||||
font-family: Menlo, Consolas, 'SFMono-Regular', monospace;
|
||||
font-size: 13px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
}
|
||||
@ -503,7 +503,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
height: 100%;
|
||||
min-height: 220px;
|
||||
text-align: center;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
@ -513,23 +513,23 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
}
|
||||
|
||||
.placeholder-icon {
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.text-main {
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.text-sub {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.placeholder.error .text-main {
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
}
|
||||
|
||||
/* ===== 底部操作栏 ===== */
|
||||
@ -541,7 +541,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 14px;
|
||||
border-top: 1px solid var(--claude-border);
|
||||
border-top: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
/* 自定义开关(非原生 checkbox 外观),固定高度 */
|
||||
@ -551,7 +551,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
gap: 10px;
|
||||
height: 38px;
|
||||
font-size: 14px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
@ -586,7 +586,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
}
|
||||
|
||||
.toggle-send input:checked + .switch {
|
||||
background: var(--claude-accent-strong);
|
||||
background: var(--accent-strong);
|
||||
}
|
||||
|
||||
.toggle-send input:checked + .switch::after {
|
||||
@ -607,7 +607,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
color: var(--on-accent);
|
||||
transition:
|
||||
background 140ms ease,
|
||||
@ -615,7 +615,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
}
|
||||
|
||||
.primary-btn:hover:not(:disabled) {
|
||||
background: var(--claude-button-hover);
|
||||
background: var(--accent-hover);
|
||||
}
|
||||
|
||||
.primary-btn:disabled,
|
||||
@ -636,7 +636,7 @@ const formatUpdatedAt = (value: string | number) => {
|
||||
}
|
||||
.review-left {
|
||||
border-right: none;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -168,51 +168,51 @@ const stoppedReasonLabel = computed(() => {
|
||||
padding: 2px 10px;
|
||||
border-radius: 999px;
|
||||
border: 1px solid var(--theme-chip-border);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 92%, var(--claude-text-tertiary) 8%);
|
||||
color: var(--claude-text-secondary);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 92%, var(--text-tertiary) 8%);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
.goal-progress-status.is-running {
|
||||
color: var(--claude-accent);
|
||||
border-color: var(--claude-accent);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--claude-accent) 18%);
|
||||
color: var(--accent);
|
||||
border-color: var(--accent);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--accent) 18%);
|
||||
}
|
||||
.goal-progress-status.is-done {
|
||||
color: var(--claude-success);
|
||||
border-color: var(--claude-success);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--claude-success) 18%);
|
||||
color: var(--state-success);
|
||||
border-color: var(--state-success);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--state-success) 18%);
|
||||
}
|
||||
.goal-progress-status.is-stopped {
|
||||
color: var(--claude-warning);
|
||||
border-color: var(--claude-warning);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--claude-warning) 18%);
|
||||
color: var(--state-warning);
|
||||
border-color: var(--state-warning);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 82%, var(--state-warning) 18%);
|
||||
}
|
||||
:global(:root[data-theme='dark']) .goal-progress-status,
|
||||
:global(body[data-theme='dark']) .goal-progress-status {
|
||||
color: var(--claude-text-secondary);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 82%, var(--claude-text-tertiary) 18%);
|
||||
color: var(--text-secondary);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 82%, var(--text-tertiary) 18%);
|
||||
border-color: var(--theme-control-border-strong);
|
||||
}
|
||||
:global(:root[data-theme='dark']) .goal-progress-status.is-running,
|
||||
:global(body[data-theme='dark']) .goal-progress-status.is-running {
|
||||
color: var(--text-primary);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--claude-accent) 28%);
|
||||
border-color: color-mix(in srgb, var(--claude-accent) 70%, white 30%);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--accent) 28%);
|
||||
border-color: color-mix(in srgb, var(--accent) 70%, white 30%);
|
||||
}
|
||||
:global(:root[data-theme='dark']) .goal-progress-status.is-done,
|
||||
:global(body[data-theme='dark']) .goal-progress-status.is-done {
|
||||
color: color-mix(in srgb, var(--state-success) 30%, white);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--claude-success) 28%);
|
||||
border-color: color-mix(in srgb, var(--claude-success) 70%, white 30%);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--state-success) 28%);
|
||||
border-color: color-mix(in srgb, var(--state-success) 70%, white 30%);
|
||||
}
|
||||
:global(:root[data-theme='dark']) .goal-progress-status.is-stopped,
|
||||
:global(body[data-theme='dark']) .goal-progress-status.is-stopped {
|
||||
color: color-mix(in srgb, var(--state-warning) 30%, white);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--claude-warning) 28%);
|
||||
border-color: color-mix(in srgb, var(--claude-warning) 70%, white 30%);
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 72%, var(--state-warning) 28%);
|
||||
border-color: color-mix(in srgb, var(--state-warning) 70%, white 30%);
|
||||
}
|
||||
.goal-progress-goal {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
@ -234,16 +234,16 @@ const stoppedReasonLabel = computed(() => {
|
||||
.goal-metric__value {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.goal-metric__label {
|
||||
margin-top: 4px;
|
||||
font-size: 11px;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
.goal-progress-reason {
|
||||
font-size: 13px;
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.goal-progress-summary {
|
||||
@ -252,13 +252,13 @@ const stoppedReasonLabel = computed(() => {
|
||||
}
|
||||
.goal-progress-summary__title {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.goal-progress-summary__body {
|
||||
font-size: 13px;
|
||||
line-height: 1.6;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
max-height: 240px;
|
||||
|
||||
@ -100,13 +100,13 @@ button {
|
||||
|
||||
.primary {
|
||||
border: none;
|
||||
background: linear-gradient(135deg, var(--claude-accent), var(--claude-accent-strong));
|
||||
background: linear-gradient(135deg, var(--accent), var(--accent-strong));
|
||||
color: var(--on-accent);
|
||||
}
|
||||
|
||||
.ghost {
|
||||
background: var(--theme-surface-soft);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
button:hover:not(:disabled) {
|
||||
|
||||
@ -66,7 +66,7 @@ defineEmits<{
|
||||
.overlay-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
|
||||
.overlay-header h3 { margin: 0; font-size: 16px; }
|
||||
.overlay-header button { border: none; background: transparent; font-size: 20px; cursor: pointer; }
|
||||
.hint { font-size: 12px; color: var(--claude-text-secondary); margin: 0 0 8px 0; }
|
||||
.hint { font-size: 12px; color: var(--text-secondary); margin: 0 0 8px 0; }
|
||||
.mode-switch { display: inline-flex; border: 1px solid var(--theme-control-border); border-radius: 10px; overflow: hidden; margin-bottom: 8px; }
|
||||
.mode-btn { border: none; background: transparent; padding: 6px 10px; cursor: pointer; font-size: 12px; }
|
||||
.mode-btn.active { background: var(--theme-tab-active); font-weight: 600; }
|
||||
|
||||
@ -164,7 +164,7 @@ function submit() {
|
||||
max-height: min(520px, calc(100vh - 36px));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
background: var(--theme-surface-card);
|
||||
border: 1px solid var(--theme-control-border);
|
||||
border-radius: 20px;
|
||||
@ -178,7 +178,7 @@ function submit() {
|
||||
grid-template-columns: 56px 1fr 56px;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid var(--theme-control-border);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 92%, var(--claude-left-rail) 8%);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 92%, var(--surface-rail) 8%);
|
||||
}
|
||||
|
||||
.user-question-traffic {
|
||||
@ -203,7 +203,7 @@ function submit() {
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
@ -226,7 +226,7 @@ function submit() {
|
||||
}
|
||||
|
||||
.user-question-kicker {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@ -257,7 +257,7 @@ function submit() {
|
||||
border-radius: 6px;
|
||||
border: 1px solid var(--theme-control-border);
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
cursor: pointer;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
@ -271,7 +271,7 @@ function submit() {
|
||||
|
||||
.user-question-nav button:hover:not(:disabled) {
|
||||
background: var(--hover-bg);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.user-question-nav button:disabled {
|
||||
@ -298,7 +298,7 @@ function submit() {
|
||||
|
||||
.user-question-context {
|
||||
margin: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
font-size: 13px;
|
||||
white-space: pre-wrap;
|
||||
@ -315,7 +315,7 @@ function submit() {
|
||||
border: 1px solid var(--theme-control-border);
|
||||
border-radius: 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
padding: 9px 11px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
@ -339,7 +339,7 @@ function submit() {
|
||||
}
|
||||
|
||||
.user-question-option__desc {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
line-height: 1.42;
|
||||
white-space: pre-wrap;
|
||||
@ -364,7 +364,7 @@ function submit() {
|
||||
border: 1px solid var(--theme-control-border);
|
||||
border-radius: 12px;
|
||||
padding: 10px 11px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
background: var(--theme-surface-soft);
|
||||
outline: none;
|
||||
font: inherit;
|
||||
@ -388,7 +388,7 @@ function submit() {
|
||||
gap: 12px;
|
||||
padding: 0 18px;
|
||||
border-top: 1px solid var(--theme-control-border);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 92%, var(--claude-left-rail) 8%);
|
||||
background: color-mix(in srgb, var(--theme-surface-soft) 92%, var(--surface-rail) 8%);
|
||||
}
|
||||
|
||||
.user-question-spacer {
|
||||
@ -412,22 +412,22 @@ function submit() {
|
||||
|
||||
.user-question-btn.ghost {
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.user-question-btn.ghost:hover {
|
||||
background: var(--hover-bg);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.user-question-btn.primary {
|
||||
background: var(--claude-accent);
|
||||
border-color: var(--claude-accent-strong);
|
||||
background: var(--accent);
|
||||
border-color: var(--accent-strong);
|
||||
color: var(--on-accent);
|
||||
}
|
||||
|
||||
.user-question-btn.primary:hover:not(:disabled) {
|
||||
background: var(--claude-button-hover);
|
||||
background: var(--accent-hover);
|
||||
}
|
||||
|
||||
.user-question-btn:disabled {
|
||||
|
||||
@ -253,12 +253,12 @@ const splitDiffContent = (content: any): string[] => {
|
||||
max-height: 88vh;
|
||||
overflow: hidden;
|
||||
border-radius: 16px;
|
||||
background: var(--claude-panel);
|
||||
border: 1px solid var(--claude-border);
|
||||
background: var(--surface-panel);
|
||||
border: 1px solid var(--border-default);
|
||||
box-shadow: var(--theme-shadow-strong);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* ===== 头部:固定高度,靠分隔线 ===== */
|
||||
@ -266,7 +266,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
flex: 0 0 auto;
|
||||
height: 60px;
|
||||
padding: 0 18px;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
@ -334,7 +334,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
}
|
||||
|
||||
.switch-line input:checked + .switch {
|
||||
background: var(--claude-accent-strong);
|
||||
background: var(--accent-strong);
|
||||
}
|
||||
|
||||
.switch-line input:checked + .switch::after {
|
||||
@ -355,7 +355,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.scope-label {
|
||||
@ -372,10 +372,10 @@ const splitDiffContent = (content: any): string[] => {
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 0 10px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
transition:
|
||||
@ -412,8 +412,8 @@ const splitDiffContent = (content: any): string[] => {
|
||||
left: 1px;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-right: 1.5px solid var(--claude-text-secondary);
|
||||
border-bottom: 1.5px solid var(--claude-text-secondary);
|
||||
border-right: 1.5px solid var(--text-secondary);
|
||||
border-bottom: 1.5px solid var(--text-secondary);
|
||||
transform: rotate(45deg);
|
||||
transition: transform 160ms ease;
|
||||
}
|
||||
@ -431,7 +431,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
width: max-content;
|
||||
z-index: 20;
|
||||
padding: 6px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 12px;
|
||||
background: var(--theme-surface-strong);
|
||||
box-shadow: var(--theme-shadow-soft);
|
||||
@ -450,7 +450,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
border: 0;
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
@ -470,7 +470,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
|
||||
.scope-option-check {
|
||||
flex: 0 0 auto;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* ===== 头部按钮 ===== */
|
||||
@ -480,10 +480,10 @@ const splitDiffContent = (content: any): string[] => {
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 0 12px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
transition: background 140ms ease;
|
||||
@ -506,7 +506,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
border: 0;
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
cursor: pointer;
|
||||
transition:
|
||||
background 140ms ease,
|
||||
@ -515,7 +515,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
|
||||
.icon-close-btn:hover {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* ===== 主体:左右分栏靠竖线 ===== */
|
||||
@ -540,7 +540,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
}
|
||||
|
||||
.checkpoint-list {
|
||||
border-right: 1px solid var(--claude-border);
|
||||
border-right: 1px solid var(--border-default);
|
||||
padding: 6px 8px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -558,7 +558,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
border-radius: 10px;
|
||||
padding: 0 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
@ -585,7 +585,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
bottom: 16px;
|
||||
width: 3px;
|
||||
border-radius: 999px;
|
||||
background: var(--claude-text-secondary);
|
||||
background: var(--text-secondary);
|
||||
}
|
||||
|
||||
.row {
|
||||
@ -597,18 +597,18 @@ const splitDiffContent = (content: any): string[] => {
|
||||
|
||||
.row.top {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.seq {
|
||||
font-weight: 700;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.preview {
|
||||
font-size: 13px;
|
||||
line-height: 1.3;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@ -628,7 +628,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
}
|
||||
|
||||
.files {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.checkpoint-detail {
|
||||
@ -664,7 +664,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
gap: 10px;
|
||||
align-items: center;
|
||||
min-height: 40px;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
padding: 0 4px;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
@ -682,12 +682,12 @@ const splitDiffContent = (content: any): string[] => {
|
||||
|
||||
.status {
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.path {
|
||||
word-break: break-all;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.delta {
|
||||
@ -697,7 +697,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
|
||||
.loading,
|
||||
.empty {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
padding: 12px 4px;
|
||||
}
|
||||
@ -707,7 +707,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
flex: 0 0 auto;
|
||||
min-height: 60px;
|
||||
padding: 12px 18px;
|
||||
border-top: 1px solid var(--claude-border);
|
||||
border-top: 1px solid var(--border-default);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
@ -729,7 +729,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
|
||||
.restore-option-label {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@ -742,10 +742,10 @@ const splitDiffContent = (content: any): string[] => {
|
||||
.restore-option-btn {
|
||||
height: 32px;
|
||||
padding: 0 12px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
@ -760,8 +760,8 @@ const splitDiffContent = (content: any): string[] => {
|
||||
}
|
||||
|
||||
.restore-option-btn.active {
|
||||
border-color: var(--claude-accent);
|
||||
background: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
background: var(--accent);
|
||||
color: var(--on-accent);
|
||||
}
|
||||
|
||||
@ -782,14 +782,14 @@ const splitDiffContent = (content: any): string[] => {
|
||||
padding: 0 18px;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
color: var(--on-accent);
|
||||
cursor: pointer;
|
||||
transition: background 140ms ease;
|
||||
}
|
||||
|
||||
.confirm-btn:hover:not(:disabled) {
|
||||
background: var(--claude-button-hover);
|
||||
background: var(--accent-hover);
|
||||
}
|
||||
|
||||
.confirm-btn:disabled {
|
||||
@ -810,7 +810,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
|
||||
.tool-result-diff.scroll-area {
|
||||
max-height: calc(8 * 1.5em + 16px);
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 8px;
|
||||
padding: 8px;
|
||||
background: var(--theme-surface-soft);
|
||||
@ -829,7 +829,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
}
|
||||
|
||||
.diff-marker {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
text-align: center;
|
||||
user-select: none;
|
||||
}
|
||||
@ -853,13 +853,13 @@ const splitDiffContent = (content: any): string[] => {
|
||||
|
||||
.diff-context {
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.approval-note {
|
||||
padding: 6px 8px;
|
||||
font-size: 11px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
@media (max-width: 860px) {
|
||||
@ -869,7 +869,7 @@ const splitDiffContent = (content: any): string[] => {
|
||||
}
|
||||
.checkpoint-list {
|
||||
border-right: none;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -560,7 +560,7 @@ onBeforeUnmount(() => {
|
||||
|
||||
.terminal-panel__close:hover {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
box-shadow: 0 1px 2px var(--shadow-color);
|
||||
}
|
||||
|
||||
|
||||
@ -290,26 +290,26 @@ const parseFinalMessage = (text: string) => {
|
||||
.tool-approval-panel.is-goal-approval-mode .auto-approval-block {
|
||||
background: var(--theme-surface-card);
|
||||
border-color: var(--theme-control-border);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.tool-approval-panel.is-goal-approval-mode .auto-approval-block__content,
|
||||
.tool-approval-panel.is-goal-approval-mode .auto-approval-block__reason {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.tool-approval-panel.is-goal-approval-mode .auto-approval-block__decision {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
:global(:root[data-theme='dark']) .auto-approval-block,
|
||||
:global(body[data-theme='dark']) .auto-approval-block {
|
||||
background: color-mix(in srgb, var(--theme-surface-muted) 86%, white 4%);
|
||||
border-color: var(--theme-control-border-strong);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
:global(:root[data-theme='dark']) .auto-approval-block__content,
|
||||
:global(body[data-theme='dark']) .auto-approval-block__content {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1740,7 +1740,7 @@
|
||||
key="sub-agents"
|
||||
class="settings-page"
|
||||
>
|
||||
<div class="settings-section-desc" style="margin: 0 0 16px; color: var(--claude-text-secondary); font-size: 13px; line-height: 1.6">
|
||||
<div class="settings-section-desc" style="margin: 0 0 16px; color: var(--text-secondary); font-size: 13px; line-height: 1.6">
|
||||
管理多智能体模式下的子智能体角色。预设角色可编辑(创建自定义覆盖),自定义角色可创建/编辑/删除。
|
||||
</div>
|
||||
|
||||
@ -3212,7 +3212,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.sub-agent-role-name {
|
||||
font-size: 14px;
|
||||
font-weight: 550;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
@ -3224,22 +3224,22 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
font-weight: 400;
|
||||
}
|
||||
.sub-agent-role-tag.tag-preset {
|
||||
background: color-mix(in srgb, var(--claude-text-secondary) 15%, transparent);
|
||||
color: var(--claude-text-secondary);
|
||||
background: color-mix(in srgb, var(--text-secondary) 15%, transparent);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
.sub-agent-role-tag.tag-custom {
|
||||
background: color-mix(in srgb, var(--claude-accent) 15%, transparent);
|
||||
color: var(--claude-accent);
|
||||
background: color-mix(in srgb, var(--accent) 15%, transparent);
|
||||
color: var(--accent);
|
||||
}
|
||||
.sub-agent-role-desc {
|
||||
font-size: 12.5px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
margin-top: 3px;
|
||||
line-height: 1.38;
|
||||
}
|
||||
.sub-agent-role-meta {
|
||||
font-size: 11px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
opacity: 0.7;
|
||||
margin-top: 2px;
|
||||
}
|
||||
@ -3274,7 +3274,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.role-editor-header h2 {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
margin: 0;
|
||||
}
|
||||
.role-editor-body {
|
||||
@ -3301,10 +3301,10 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.settings-section-title {
|
||||
font-size: 14px;
|
||||
font-weight: 550;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.settings-empty-hint {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
padding: 24px 0;
|
||||
text-align: center;
|
||||
@ -3345,7 +3345,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
border: 0;
|
||||
border-radius: 50%;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: grid;
|
||||
place-items: center;
|
||||
cursor: pointer;
|
||||
@ -3399,7 +3399,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
border: 0;
|
||||
border-radius: 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
padding: 0 13px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -3458,7 +3458,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
|
||||
.settings-redesign-content-header h2 {
|
||||
margin: 0;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 28px;
|
||||
line-height: 1;
|
||||
letter-spacing: -0.045em;
|
||||
@ -3515,7 +3515,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
align-items: center;
|
||||
gap: 18px;
|
||||
padding: 11px 0;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.settings-list-row.tall,
|
||||
@ -3534,7 +3534,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
|
||||
.settings-row-title {
|
||||
display: block;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 14px;
|
||||
font-weight: 550;
|
||||
letter-spacing: -0.01em;
|
||||
@ -3544,7 +3544,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.settings-row-desc {
|
||||
display: block;
|
||||
margin-top: 3px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12.5px;
|
||||
line-height: 1.38;
|
||||
}
|
||||
@ -3562,7 +3562,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
border: 0;
|
||||
border-radius: 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@ -3648,7 +3648,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
border: 0;
|
||||
border-radius: 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) 22px;
|
||||
row-gap: 0;
|
||||
@ -3672,7 +3672,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
grid-column: 1;
|
||||
grid-row: 1;
|
||||
display: block;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 15px;
|
||||
font-weight: 550;
|
||||
letter-spacing: -0.01em;
|
||||
@ -3684,7 +3684,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
grid-row: 2;
|
||||
display: block;
|
||||
margin-top: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 11px;
|
||||
line-height: 1.15;
|
||||
min-width: 0;
|
||||
@ -3701,7 +3701,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
fill: none;
|
||||
stroke: var(--claude-text);
|
||||
stroke: var(--text-primary);
|
||||
stroke-width: 2.25;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
@ -3721,7 +3721,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
border: 1px solid var(--theme-control-border);
|
||||
border-radius: 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
padding: 0 12px;
|
||||
outline: none;
|
||||
font-size: 13px;
|
||||
@ -3740,7 +3740,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.settings-section-divider__label {
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
.settings-section-divider::after {
|
||||
@ -3761,7 +3761,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.settings-number-row input:focus,
|
||||
.settings-number-input:focus,
|
||||
.settings-compression-grid input:focus {
|
||||
border-color: var(--claude-text-secondary);
|
||||
border-color: var(--text-secondary);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
@ -3798,7 +3798,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
border: 1px solid var(--theme-control-border);
|
||||
border-radius: 999px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
min-height: 32px;
|
||||
padding: 0 12px;
|
||||
font-size: 12px;
|
||||
@ -3814,13 +3814,13 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
|
||||
.settings-chip-row button.active,
|
||||
.settings-primary-button {
|
||||
border-color: var(--claude-accent);
|
||||
background: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
background: var(--accent);
|
||||
color: var(--on-accent);
|
||||
}
|
||||
|
||||
.settings-secondary-button.danger {
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
}
|
||||
|
||||
.settings-inline-actions {
|
||||
@ -3836,12 +3836,12 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
}
|
||||
|
||||
.settings-mini-status {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.settings-mini-status.warning {
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
}
|
||||
|
||||
.settings-add-row,
|
||||
@ -3865,7 +3865,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
padding: 14px 0;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.settings-textarea-row textarea {
|
||||
@ -3875,7 +3875,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
border: 1px solid var(--theme-control-border);
|
||||
border-radius: 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
padding: 12px;
|
||||
outline: none;
|
||||
font-size: 13px;
|
||||
@ -3886,12 +3886,12 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
}
|
||||
|
||||
.settings-textarea-row textarea:focus {
|
||||
border-color: var(--claude-text-secondary);
|
||||
border-color: var(--text-secondary);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.settings-textarea-row textarea::placeholder {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
@ -3926,7 +3926,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
|
||||
.fancy-path {
|
||||
fill: none;
|
||||
stroke: var(--claude-text-secondary);
|
||||
stroke: var(--text-secondary);
|
||||
stroke-width: 5;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
@ -3939,7 +3939,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
}
|
||||
|
||||
.settings-toggle-row input:checked + .fancy-check .fancy-path {
|
||||
stroke: var(--claude-text-secondary);
|
||||
stroke: var(--text-secondary);
|
||||
stroke-dasharray: 70.5096664428711 9999999;
|
||||
stroke-dashoffset: -262.2723388671875;
|
||||
}
|
||||
@ -3975,7 +3975,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.settings-compression-grid label {
|
||||
display: grid;
|
||||
gap: 5px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@ -4003,12 +4003,12 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
}
|
||||
|
||||
.status.success {
|
||||
color: var(--claude-success);
|
||||
color: var(--state-success);
|
||||
}
|
||||
|
||||
.status.error,
|
||||
.usage-summary-error {
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
}
|
||||
|
||||
.usage-summary-page {
|
||||
@ -4035,7 +4035,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.usage-summary-eyebrow {
|
||||
margin: 0;
|
||||
font-size: 11px;
|
||||
color: var(--claude-accent-strong);
|
||||
color: var(--accent-strong);
|
||||
letter-spacing: 0.16em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
@ -4044,7 +4044,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
.usage-summary-note,
|
||||
.usage-summary-meta {
|
||||
margin: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@ -4070,22 +4070,22 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
|
||||
.usage-summary-item .label {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.usage-summary-item .value {
|
||||
margin-top: 4px;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.usage-summary-item .value--success {
|
||||
color: var(--claude-success);
|
||||
color: var(--state-success);
|
||||
}
|
||||
|
||||
.usage-summary-item .value--warning {
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
}
|
||||
|
||||
.usage-summary-meta {
|
||||
@ -4101,7 +4101,7 @@ const applyThemeOption = async (theme: ThemeKey) => {
|
||||
border-radius: 999px;
|
||||
padding: 7px 14px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -7,8 +7,8 @@ body {
|
||||
|
||||
body {
|
||||
font-family: 'Iowan Old Style', ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
|
||||
background: var(--claude-bg);
|
||||
color: var(--claude-text);
|
||||
background: var(--surface-base);
|
||||
color: var(--text-primary);
|
||||
overflow: hidden;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
@ -21,8 +21,8 @@ select {
|
||||
}
|
||||
|
||||
body[data-theme='dark'] {
|
||||
background: var(--claude-bg);
|
||||
color: var(--claude-text);
|
||||
background: var(--surface-base);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* Remove iOS/Android WebView default tap highlight */
|
||||
|
||||
@ -47,37 +47,16 @@
|
||||
--effort-dot-uncovered: rgba(0, 0, 0, 0.28);
|
||||
|
||||
/* === 兼容别名(旧 token 名 → 新语义 token),迁移完成后删除 === */
|
||||
--claude-bg: var(--surface-base);
|
||||
--claude-panel: var(--surface-panel);
|
||||
--claude-left-rail: var(--surface-rail);
|
||||
--claude-sidebar: var(--surface-sidebar);
|
||||
--theme-surface-card: var(--surface-card);
|
||||
--theme-surface-strong: var(--surface-raised);
|
||||
--theme-surface-soft: var(--surface-soft);
|
||||
--theme-surface-muted: var(--surface-muted);
|
||||
--claude-text: var(--text-primary);
|
||||
--claude-text-secondary: var(--text-secondary);
|
||||
--claude-text-tertiary: var(--text-tertiary);
|
||||
--claude-muted: var(--text-muted);
|
||||
--claude-border: var(--border-default);
|
||||
--claude-border-strong: var(--border-strong);
|
||||
--theme-card-border-strong: var(--border-card-strong);
|
||||
--theme-chip-border: var(--chip-border);
|
||||
--claude-accent: var(--accent);
|
||||
--claude-accent-strong: var(--accent-strong);
|
||||
--claude-button-hover: var(--accent-hover);
|
||||
--claude-button-active: var(--accent-active);
|
||||
--claude-deep: var(--accent-deep);
|
||||
--claude-deep-strong: var(--accent-deep-strong);
|
||||
--claude-success: var(--state-success);
|
||||
--claude-warning: var(--state-warning);
|
||||
--claude-danger: var(--state-danger);
|
||||
--claude-highlight: var(--highlight);
|
||||
--theme-tab-active: var(--tab-active);
|
||||
--theme-chip-bg: var(--chip-bg);
|
||||
--theme-badge-bg: var(--badge-bg);
|
||||
--theme-switch-track: var(--switch-track);
|
||||
--claude-shadow: var(--shadow-card);
|
||||
--theme-shadow-soft: var(--shadow-soft);
|
||||
--theme-shadow-mid: var(--shadow-mid);
|
||||
--theme-shadow-strong: var(--shadow-strong);
|
||||
@ -93,7 +72,7 @@
|
||||
|
||||
:root[data-theme='classic'] {
|
||||
color-scheme: light;
|
||||
/* Surface 表面层级 —— Claude 亮色暖奶油盘(canvas<soft<card<cream-strong,raised纯白浮起) */
|
||||
/* Surface 表面层级 —— 亮色暖奶油盘(canvas<soft<card<cream-strong,raised纯白浮起) */
|
||||
--effort-track-bg: var(--surface-muted);
|
||||
--surface-base: #faf9f5;
|
||||
--surface-panel: #faf9f5;
|
||||
@ -103,17 +82,17 @@
|
||||
--surface-raised: #ffffff;
|
||||
--surface-soft: #f5f0e8;
|
||||
--surface-muted: #e8e0d2;
|
||||
/* Text 文字 —— Claude */
|
||||
/* Text 文字 */
|
||||
--text-primary: #141413;
|
||||
--text-secondary: #3d3d3a;
|
||||
--text-tertiary: #6c6a64;
|
||||
--text-muted: rgba(108, 106, 100, 0.55);
|
||||
/* Border 边框 —— Claude hairline */
|
||||
/* Border 边框 —— hairline */
|
||||
--border-default: #e6dfd8;
|
||||
--border-strong: #d8cfc4;
|
||||
--border-card-strong: #e6dfd8;
|
||||
--chip-border: #ebe6df;
|
||||
/* Accent 强调 —— Claude primary,克制 CTA-only */
|
||||
/* Accent 强调 —— primary,克制 CTA-only */
|
||||
--accent: #cc785c;
|
||||
--accent-strong: #a9583e;
|
||||
--accent-hover: #bd6a4f;
|
||||
@ -121,7 +100,7 @@
|
||||
--accent-deep: #6c6a64;
|
||||
--accent-deep-strong: #3d3d3a;
|
||||
--on-accent: #ffffff;
|
||||
/* State 状态 —— Claude semantic */
|
||||
/* State 状态 —— semantic */
|
||||
--state-success: #10b981;
|
||||
--state-warning: #f59e0b;
|
||||
--state-danger: #dc2626;
|
||||
@ -281,7 +260,7 @@
|
||||
/* 首屏(JS 设置 data-theme 之前)回退到 classic 取值 */
|
||||
:root:not([data-theme]) {
|
||||
--effort-track-bg: var(--surface-muted);
|
||||
/* Surface 表面层级 —— 同 classic(Claude 亮色暖奶油盘) */
|
||||
/* Surface 表面层级 —— 同 classic(亮色暖奶油盘) */
|
||||
--surface-base: #faf9f5;
|
||||
--surface-panel: #faf9f5;
|
||||
--surface-rail: #f5f0e8;
|
||||
|
||||
@ -619,7 +619,7 @@
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 50%;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
background: var(--surface-soft);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -635,21 +635,21 @@
|
||||
}
|
||||
|
||||
.scroll-lock-toggle.locked .scroll-lock-btn {
|
||||
border-color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.scroll-lock-btn svg {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
stroke: var(--claude-text);
|
||||
stroke: var(--text-primary);
|
||||
stroke-width: 1.8;
|
||||
fill: none;
|
||||
transition: stroke 0.2s ease;
|
||||
}
|
||||
|
||||
.scroll-lock-toggle.locked .scroll-lock-btn svg {
|
||||
stroke: var(--claude-accent);
|
||||
stroke: var(--accent);
|
||||
}
|
||||
|
||||
.message-block {
|
||||
@ -731,7 +731,7 @@
|
||||
margin: 14px 0 6px;
|
||||
font-weight: 600;
|
||||
line-height: 1.3;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.user-message.user-message--multi-agent .bubble-text h1 {
|
||||
@ -779,27 +779,27 @@
|
||||
.user-message.user-message--multi-agent .bubble-text blockquote {
|
||||
margin: 10px 0;
|
||||
padding: 4px 12px;
|
||||
border-left: 3px solid var(--claude-border);
|
||||
color: var(--claude-text-secondary);
|
||||
border-left: 3px solid var(--border-default);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.user-message.user-message--multi-agent .bubble-text hr {
|
||||
margin: 14px 0;
|
||||
border: none;
|
||||
border-top: 1px solid var(--claude-border);
|
||||
border-top: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
/* 代码/表格底色基于气泡色 chip-bg 派生,避免与气泡背景融为一体 */
|
||||
.user-message.user-message--multi-agent .bubble-text code {
|
||||
font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', 'Consolas', 'Menlo', 'Monaco', 'Courier New', monospace;
|
||||
background: color-mix(in srgb, var(--claude-text) 7%, var(--chip-bg));
|
||||
background: color-mix(in srgb, var(--text-primary) 7%, var(--chip-bg));
|
||||
padding: 2px 5px;
|
||||
border-radius: 4px;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.user-message.user-message--multi-agent .bubble-text pre {
|
||||
background: color-mix(in srgb, var(--claude-text) 5%, var(--chip-bg));
|
||||
background: color-mix(in srgb, var(--text-primary) 5%, var(--chip-bg));
|
||||
padding: 10px 12px;
|
||||
border-radius: 8px;
|
||||
overflow-x: auto;
|
||||
@ -826,9 +826,9 @@
|
||||
margin: 10px 0;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 8px;
|
||||
background: color-mix(in srgb, var(--claude-text) 4%, var(--chip-bg));
|
||||
background: color-mix(in srgb, var(--text-primary) 4%, var(--chip-bg));
|
||||
}
|
||||
|
||||
.user-message.user-message--multi-agent .bubble-text .md-table-scroll > table,
|
||||
@ -838,7 +838,7 @@
|
||||
|
||||
.user-message.user-message--multi-agent .bubble-text th,
|
||||
.user-message.user-message--multi-agent .bubble-text td {
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
padding: 6px 10px;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
@ -847,7 +847,7 @@
|
||||
|
||||
.user-message.user-message--multi-agent .bubble-text th {
|
||||
font-weight: 600;
|
||||
background: color-mix(in srgb, var(--claude-text) 7%, var(--chip-bg));
|
||||
background: color-mix(in srgb, var(--text-primary) 7%, var(--chip-bg));
|
||||
}
|
||||
|
||||
.message-block--last
|
||||
@ -894,7 +894,7 @@
|
||||
.assistant-message .message-header {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 10px;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
@ -903,13 +903,13 @@
|
||||
margin-left: 8px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.assistant-generating-placeholder {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.05em;
|
||||
@ -945,7 +945,7 @@
|
||||
font-size: 15px;
|
||||
line-height: 1.6;
|
||||
box-shadow: none;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
white-space: pre-wrap;
|
||||
word-break: break-all;
|
||||
overflow-wrap: normal;
|
||||
@ -967,7 +967,7 @@
|
||||
padding: 10px 14px;
|
||||
border-radius: 14px;
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
background: var(--theme-surface-card);
|
||||
border: 1px solid var(--theme-control-border);
|
||||
}
|
||||
@ -984,7 +984,7 @@
|
||||
gap: 14px;
|
||||
width: 100%;
|
||||
margin: 2px auto;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
@ -1094,14 +1094,14 @@
|
||||
transform: none;
|
||||
pointer-events: auto;
|
||||
background: transparent;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
border-radius: 4px;
|
||||
transition: color 140ms ease;
|
||||
}
|
||||
|
||||
.user-bubble-expand-row .user-bubble-expand-btn:hover {
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.user-bubble-actions {
|
||||
@ -1122,7 +1122,7 @@
|
||||
|
||||
.user-bubble-time {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
margin-left: auto;
|
||||
padding-left: 8px;
|
||||
line-height: 20px;
|
||||
@ -1143,7 +1143,7 @@
|
||||
border-radius: 6px;
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
cursor: pointer;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
@ -1156,7 +1156,7 @@
|
||||
|
||||
.user-bubble-action-btn:hover {
|
||||
background-color: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.user-bubble-action-btn::before {
|
||||
@ -1195,8 +1195,8 @@
|
||||
}
|
||||
|
||||
.assistant-message .message-text {
|
||||
background: var(--claude-highlight);
|
||||
border-left: 4px solid var(--claude-accent);
|
||||
background: var(--highlight);
|
||||
border-left: 4px solid var(--accent);
|
||||
}
|
||||
|
||||
.user-message .message-text.user-bubble-text .image-inline-row {
|
||||
@ -1237,7 +1237,7 @@
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
letter-spacing: 0.08em;
|
||||
background: transparent;
|
||||
border: none;
|
||||
@ -1273,7 +1273,7 @@
|
||||
font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
|
||||
font-size: 13px;
|
||||
line-height: 1.6;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
@ -1286,7 +1286,7 @@
|
||||
border-radius: 12px;
|
||||
margin-bottom: 12px;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
box-shadow: none;
|
||||
}
|
||||
@ -1307,7 +1307,7 @@
|
||||
}
|
||||
|
||||
.collapsible-header:hover {
|
||||
background: var(--claude-highlight);
|
||||
background: var(--highlight);
|
||||
}
|
||||
|
||||
/* 深色模式下块 hover 对齐对话列表 hover 颜色 */
|
||||
@ -1330,7 +1330,7 @@ body[data-theme='dark'] .collapsible-header:hover {
|
||||
mask-position: center;
|
||||
-webkit-mask-position: center;
|
||||
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* 移除旧的 ::before 箭头 */
|
||||
@ -1357,7 +1357,7 @@ body[data-theme='dark'] .collapsible-header:hover {
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
font-size: 14px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.collapsible-content {
|
||||
@ -1402,7 +1402,7 @@ body[data-theme='dark'] .collapsible-header:hover {
|
||||
padding: 13px 13px 13px 37px;
|
||||
font-size: 13px;
|
||||
line-height: 1.6;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
@ -1438,9 +1438,9 @@ body[data-theme='dark'] .collapsible-header:hover {
|
||||
|
||||
.stacked-shell {
|
||||
position: relative;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 16px;
|
||||
background: var(--claude-card);
|
||||
background: var(--surface-card);
|
||||
box-shadow: none;
|
||||
overflow: hidden;
|
||||
min-height: 0;
|
||||
@ -1458,7 +1458,7 @@ body[data-theme='dark'] .collapsible-header:hover {
|
||||
}
|
||||
|
||||
.stacked-item {
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
.stacked-item:last-child {
|
||||
@ -1481,8 +1481,8 @@ body[data-theme='dark'] .collapsible-header:hover {
|
||||
.stacked-more-block {
|
||||
position: absolute;
|
||||
inset: 0 0 auto 0;
|
||||
background: var(--claude-card);
|
||||
border-bottom: 0 solid var(--claude-border);
|
||||
background: var(--surface-card);
|
||||
border-bottom: 0 solid var(--border-default);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
@ -1526,11 +1526,11 @@ body[data-theme='dark'] .more-icon {
|
||||
|
||||
.more-title {
|
||||
font-weight: 700;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.more-desc {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@ -1578,7 +1578,7 @@ body[data-theme='dark'] .more-icon {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 2px;
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
animation: progress-bar 2s ease-in-out infinite;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
@ -1606,18 +1606,18 @@ body[data-theme='dark'] .more-icon {
|
||||
|
||||
.status-text {
|
||||
font-size: 14px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.collapsible-block.processing .status-text {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.tool-desc {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
margin-left: 8px;
|
||||
white-space: nowrap;
|
||||
@ -1651,7 +1651,7 @@ body[data-theme='dark'] .more-icon {
|
||||
|
||||
.text-output {
|
||||
margin: 16px 0;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 15px;
|
||||
line-height: 1.7;
|
||||
}
|
||||
@ -1660,7 +1660,7 @@ body[data-theme='dark'] .more-icon {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
margin: 14px auto;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
background: transparent;
|
||||
@ -1683,18 +1683,18 @@ body[data-theme='dark'] .more-icon {
|
||||
|
||||
.chat-inline-card__pending-tip {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.chat-inline-card__error {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.chat-inline-card__caption {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
text-align: center;
|
||||
line-height: 1.4;
|
||||
padding: 0 8px;
|
||||
@ -1718,16 +1718,16 @@ body[data-theme='dark'] .more-icon {
|
||||
max-height: 720px;
|
||||
object-fit: contain;
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
box-shadow: none;
|
||||
background: var(--claude-card);
|
||||
background: var(--surface-card);
|
||||
}
|
||||
|
||||
.chat-inline-card--error {
|
||||
border: 1px dashed var(--claude-accent);
|
||||
border: 1px dashed var(--accent);
|
||||
padding: 6px 10px;
|
||||
border-radius: 12px;
|
||||
background: var(--claude-highlight);
|
||||
background: var(--highlight);
|
||||
}
|
||||
|
||||
.chat-inline-card--html {
|
||||
@ -1751,9 +1751,9 @@ body[data-theme='dark'] .more-icon {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
border-radius: 999px;
|
||||
border: 1px solid var(--claude-border);
|
||||
background: color-mix(in srgb, var(--claude-card) 78%, transparent);
|
||||
color: var(--claude-text-secondary);
|
||||
border: 1px solid var(--border-default);
|
||||
background: color-mix(in srgb, var(--surface-card) 78%, transparent);
|
||||
color: var(--text-secondary);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@ -1767,9 +1767,9 @@ body[data-theme='dark'] .more-icon {
|
||||
}
|
||||
|
||||
.chat-inline-card__refresh-btn:hover {
|
||||
color: var(--claude-text);
|
||||
border-color: var(--claude-accent);
|
||||
background: color-mix(in srgb, var(--claude-highlight) 72%, transparent);
|
||||
color: var(--text-primary);
|
||||
border-color: var(--accent);
|
||||
background: color-mix(in srgb, var(--highlight) 72%, transparent);
|
||||
}
|
||||
|
||||
.chat-inline-card__refresh-btn.is-refreshing {
|
||||
@ -1795,7 +1795,7 @@ body[data-theme='dark'] .more-icon {
|
||||
|
||||
.chat-inline-html__pending-tip {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.chat-inline-html__iframe {
|
||||
@ -1824,7 +1824,7 @@ show-html:not([data-rendered='1']) {
|
||||
margin: 14px auto;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 12px;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
@ -1926,7 +1926,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 12px;
|
||||
background: var(--theme-surface-soft);
|
||||
box-shadow: none;
|
||||
@ -1951,13 +1951,13 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
|
||||
.text-output .text-content .md-table-scroll::-webkit-scrollbar-thumb,
|
||||
.text-output .text-content [data-md-table-scroll='1']::-webkit-scrollbar-thumb {
|
||||
background: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent);
|
||||
background: color-mix(in srgb, var(--text-secondary) 55%, transparent);
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.text-output .text-content .md-table-scroll,
|
||||
.text-output .text-content [data-md-table-scroll='1'] {
|
||||
scrollbar-color: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent)
|
||||
scrollbar-color: color-mix(in srgb, var(--text-secondary) 55%, transparent)
|
||||
color-mix(in srgb, var(--theme-surface-muted) 70%, transparent);
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
@ -1968,7 +1968,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
|
||||
.text-output .text-content th,
|
||||
.text-output .text-content td {
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
padding: 10px 14px;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
@ -1977,13 +1977,13 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
|
||||
.text-output .text-content th {
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.text-output .text-content hr {
|
||||
margin: 32px calc(var(--chat-content-x) * -1);
|
||||
border: none;
|
||||
border-top: 1px solid var(--claude-border);
|
||||
border-top: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
.system-action {
|
||||
@ -1992,7 +1992,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
border-radius: 8px;
|
||||
background: linear-gradient(135deg, color-mix(in srgb, var(--state-info) 8%, transparent), color-mix(in srgb, var(--state-info) 8%, transparent));
|
||||
border-left: 4px solid var(--state-info);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
@ -2008,7 +2008,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
line-height: 1.7;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.append-block,
|
||||
@ -2017,12 +2017,12 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
padding: 12px 16px;
|
||||
border-radius: 10px;
|
||||
background: var(--theme-surface-soft);
|
||||
border-left: 4px solid var(--claude-accent);
|
||||
border-left: 4px solid var(--accent);
|
||||
box-shadow: none;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.append-block.append-error,
|
||||
@ -2039,7 +2039,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
}
|
||||
|
||||
.code-block-wrapper {
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 20px;
|
||||
overflow: hidden;
|
||||
margin: 16px 0;
|
||||
@ -2059,11 +2059,11 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
.code-language {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
letter-spacing: -0.01em;
|
||||
@ -2078,7 +2078,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
padding: 0;
|
||||
border-radius: 10px;
|
||||
background-color: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
cursor: pointer;
|
||||
opacity: 0.9;
|
||||
transition:
|
||||
@ -2100,7 +2100,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
|
||||
.copy-code-btn:hover {
|
||||
background-color: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.copy-code-btn.copied::before {
|
||||
@ -2138,7 +2138,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
padding: 0 !important;
|
||||
border: 0 !important;
|
||||
box-shadow: none !important;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-family:
|
||||
'JetBrains Mono', 'SF Mono', 'Fira Code', 'Consolas', 'Menlo', 'Monaco', 'Courier New',
|
||||
monospace !important;
|
||||
@ -2171,7 +2171,7 @@ show-html:not([data-rendered='1'])[ratio='3:4'] {
|
||||
|
||||
.cursor-blink {
|
||||
animation: blink 1s steps(1) infinite;
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
@ -2211,7 +2211,7 @@ a.md-download-link {
|
||||
overflow-y: hidden;
|
||||
text-align: center;
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent) transparent;
|
||||
scrollbar-color: color-mix(in srgb, var(--text-secondary) 55%, transparent) transparent;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
height: 6px;
|
||||
@ -2222,7 +2222,7 @@ a.md-download-link {
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent);
|
||||
background: color-mix(in srgb, var(--text-secondary) 55%, transparent);
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
|
||||
@ -19,16 +19,16 @@
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
padding: 48px 64px;
|
||||
border: 2px dashed var(--claude-accent);
|
||||
border: 2px dashed var(--accent);
|
||||
border-radius: 16px;
|
||||
background: var(--claude-highlight);
|
||||
background: var(--highlight);
|
||||
animation: drag-pulse 1.5s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.drag-upload-icon {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
|
||||
svg {
|
||||
width: 100%;
|
||||
@ -39,12 +39,12 @@
|
||||
.drag-upload-text {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.drag-upload-hint {
|
||||
font-size: 14px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
// 动画 - 使用主题色的脉冲效果(颜色走 --pulse-ring,随主题自动适配)
|
||||
@ -71,16 +71,16 @@
|
||||
// 浅色主题(light) - 使用黑色强调
|
||||
:root[data-theme='light'] {
|
||||
.drag-upload-content {
|
||||
border-color: var(--claude-text);
|
||||
background: var(--claude-highlight);
|
||||
border-color: var(--text-primary);
|
||||
background: var(--highlight);
|
||||
}
|
||||
|
||||
.drag-upload-icon {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.drag-upload-hint {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,18 +88,18 @@
|
||||
:root[data-theme='classic'],
|
||||
:root:not([data-theme]) {
|
||||
.drag-upload-hint {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
}
|
||||
|
||||
// 深色主题(dark) - 使用白色强调
|
||||
:root[data-theme='dark'] {
|
||||
.drag-upload-content {
|
||||
border-color: var(--claude-text);
|
||||
background: var(--claude-highlight);
|
||||
border-color: var(--text-primary);
|
||||
background: var(--highlight);
|
||||
}
|
||||
|
||||
.drag-upload-icon {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
line-height: 1.3;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@ -96,7 +96,7 @@
|
||||
flex-shrink: 0;
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
line-height: 1.2;
|
||||
padding: 3px 4px;
|
||||
@ -108,7 +108,7 @@
|
||||
|
||||
.runtime-queue-item__action:hover {
|
||||
background: var(--theme-chip-bg);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.runtime-queue-item__action--danger:hover {
|
||||
@ -147,7 +147,7 @@
|
||||
(var(--skill-slash-row-height) * var(--skill-slash-visible-rows)) +
|
||||
(var(--skill-slash-gap) * (var(--skill-slash-visible-rows) + 1)) + 2px + 2px - 2px
|
||||
);
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-top-left-radius: var(--skill-slash-radius);
|
||||
border-top-right-radius: var(--skill-slash-radius);
|
||||
background: var(--surface-soft);
|
||||
@ -224,7 +224,7 @@
|
||||
border-radius: 7px;
|
||||
padding: 3px 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
@ -275,7 +275,7 @@
|
||||
.skill-slash-item__description {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
@ -289,7 +289,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 3px 9px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
@ -313,7 +313,7 @@ body[data-theme='dark'] {
|
||||
|
||||
.skill-slash-menu-wrapper {
|
||||
background: var(--badge-bg);
|
||||
border-color: var(--claude-border);
|
||||
border-color: var(--border-default);
|
||||
}
|
||||
|
||||
.skill-slash-item__name {
|
||||
@ -401,7 +401,7 @@ body[data-theme='light'] {
|
||||
|
||||
.context-usage-ring {
|
||||
--context-progress: 0%;
|
||||
--context-ring-color: var(--claude-accent);
|
||||
--context-ring-color: var(--accent);
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 50%;
|
||||
@ -432,7 +432,7 @@ body[data-theme='light'] {
|
||||
border: 1px solid var(--theme-control-border);
|
||||
background: var(--theme-surface-soft);
|
||||
box-shadow: none;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 12px;
|
||||
line-height: 1.35;
|
||||
opacity: 0;
|
||||
@ -451,7 +451,7 @@ body[data-theme='light'] {
|
||||
.permission-switcher__btn {
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
border-radius: 999px;
|
||||
padding: 4px 12px;
|
||||
font-size: 14px;
|
||||
@ -465,7 +465,7 @@ body[data-theme='light'] {
|
||||
}
|
||||
|
||||
.permission-switcher__btn:hover:not(:disabled) {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
background: var(--theme-chip-bg);
|
||||
box-shadow: none;
|
||||
@ -516,14 +516,14 @@ body[data-theme='light'] {
|
||||
|
||||
.permission-switcher__group-title {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-weight: 600;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.permission-switcher__caret {
|
||||
font-size: 14px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
transform: rotate(90deg);
|
||||
transition: transform 0.18s ease;
|
||||
}
|
||||
@ -547,7 +547,7 @@ body[data-theme='light'] {
|
||||
border-radius: 10px;
|
||||
padding: 8px 10px;
|
||||
cursor: pointer;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
@ -568,7 +568,7 @@ body[data-theme='light'] {
|
||||
|
||||
.permission-switcher__item-desc {
|
||||
font-size: 11px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
@ -684,7 +684,7 @@ body[data-theme='light'] {
|
||||
|
||||
.stadium-input-editor p.is-editor-empty:first-child::before {
|
||||
content: attr(data-placeholder);
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
float: left;
|
||||
height: 0;
|
||||
pointer-events: none;
|
||||
@ -733,7 +733,7 @@ body[data-theme='light'] {
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
font-family: inherit;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
white-space: pre-wrap;
|
||||
word-break: break-all;
|
||||
overflow-wrap: normal;
|
||||
@ -793,7 +793,7 @@ body[data-theme='light'] {
|
||||
border: none;
|
||||
border-radius: 7px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
@ -818,13 +818,13 @@ body[data-theme='light'] {
|
||||
}
|
||||
|
||||
.stadium-btn.send-btn {
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
color: var(--on-accent);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.stadium-btn.send-btn:hover:not(:disabled) {
|
||||
background: var(--claude-button-hover);
|
||||
background: var(--accent-hover);
|
||||
}
|
||||
|
||||
.stadium-btn.send-btn:disabled {
|
||||
@ -971,7 +971,7 @@ body[data-theme='light'] {
|
||||
width: 230px;
|
||||
padding: 12px;
|
||||
background: var(--surface-soft);
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 18px;
|
||||
box-shadow: none;
|
||||
z-index: 30;
|
||||
@ -988,7 +988,7 @@ body[data-theme='light'] {
|
||||
border-radius: 12px;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
@ -1008,7 +1008,7 @@ body[data-theme='light'] {
|
||||
|
||||
.menu-entry.active {
|
||||
background: var(--chip-bg);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@ -1019,7 +1019,7 @@ body[data-theme='light'] {
|
||||
|
||||
.menu-entry.has-submenu .entry-arrow {
|
||||
margin-left: 10px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.quick-submenu {
|
||||
@ -1030,7 +1030,7 @@ body[data-theme='light'] {
|
||||
min-width: 0;
|
||||
padding: 12px;
|
||||
border-radius: 18px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
background: var(--surface-soft);
|
||||
box-shadow: none;
|
||||
z-index: 31;
|
||||
@ -1039,7 +1039,7 @@ body[data-theme='light'] {
|
||||
.submenu-status,
|
||||
.submenu-empty {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.submenu-list {
|
||||
@ -1129,7 +1129,7 @@ body[data-theme='light'] {
|
||||
}
|
||||
|
||||
.menu-entry.submenu-entry .entry-arrow {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.tool-submenu-list {
|
||||
@ -1190,7 +1190,7 @@ body[data-theme='light'] {
|
||||
right: 0;
|
||||
bottom: calc(100% + 12px);
|
||||
background: var(--surface-soft);
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 12px;
|
||||
box-shadow: none;
|
||||
padding: 12px;
|
||||
@ -1261,7 +1261,7 @@ body[data-theme='light'] {
|
||||
flex: 1;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
@ -1296,7 +1296,7 @@ body[data-theme='light'] {
|
||||
font-weight: 500;
|
||||
text-align: left;
|
||||
background: var(--surface-soft);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
@ -1313,7 +1313,7 @@ body[data-theme='light'] {
|
||||
|
||||
.menu-btn.compress-entry {
|
||||
background: var(--surface-soft);
|
||||
color: var(--claude-success);
|
||||
color: var(--state-success);
|
||||
}
|
||||
|
||||
.menu-btn.compress-entry:not(:disabled):hover {
|
||||
@ -1350,7 +1350,7 @@ body[data-theme='light'] {
|
||||
|
||||
.mobile-approval-overlay .mobile-panel-sheet--approval {
|
||||
pointer-events: auto;
|
||||
background: var(--claude-panel);
|
||||
background: var(--surface-panel);
|
||||
}
|
||||
|
||||
/* 手机端审批面板按钮样式 - 与电脑端一致 */
|
||||
@ -1362,9 +1362,9 @@ body[data-theme='light'] {
|
||||
}
|
||||
|
||||
.mobile-panel-sheet--approval .approval-btn--approve {
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
color: var(--on-accent);
|
||||
border-color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
}
|
||||
|
||||
.mobile-panel-sheet--approval .approval-btn--reject {
|
||||
@ -1374,8 +1374,8 @@ body[data-theme='light'] {
|
||||
|
||||
.mobile-panel-sheet--approval .approval-btn--switch {
|
||||
background: transparent;
|
||||
border-color: var(--claude-accent);
|
||||
color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
/* 审批卡片样式保持一致 */
|
||||
@ -1392,7 +1392,7 @@ body[data-theme='light'] {
|
||||
.mobile-panel-sheet--approval .sidebar-header,
|
||||
.mobile-panel-sheet--approval .sidebar .sidebar-header {
|
||||
background: transparent !important;
|
||||
border-color: var(--claude-border);
|
||||
border-color: var(--border-default);
|
||||
padding: 0 16px !important;
|
||||
}
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
box-shadow: var(--theme-shadow-strong);
|
||||
padding: 40px;
|
||||
text-align: left;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
@ -51,7 +51,7 @@
|
||||
|
||||
.personal-page-header p {
|
||||
margin: 6px 0 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@
|
||||
padding: 8px 18px;
|
||||
border-radius: 999px;
|
||||
border: none;
|
||||
background: linear-gradient(135deg, var(--claude-accent) 0%, var(--claude-accent-strong) 100%);
|
||||
background: linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);
|
||||
color: var(--surface-card);
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
@ -82,7 +82,7 @@
|
||||
border-radius: 999px;
|
||||
border: 1px solid var(--theme-control-border-strong);
|
||||
background: var(--theme-surface-soft);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
@ -128,7 +128,7 @@
|
||||
}
|
||||
|
||||
.toggle-desc {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -165,7 +165,7 @@
|
||||
}
|
||||
|
||||
.toggle-switch input:checked + .switch-slider {
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
}
|
||||
|
||||
.toggle-switch input:checked + .switch-slider::before {
|
||||
@ -229,7 +229,7 @@
|
||||
|
||||
.fancy-path {
|
||||
fill: none;
|
||||
stroke: var(--claude-text-secondary);
|
||||
stroke: var(--text-secondary);
|
||||
stroke-width: 5;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
@ -247,13 +247,13 @@
|
||||
}
|
||||
|
||||
.toggle-row input:checked + .fancy-check .fancy-path {
|
||||
stroke: var(--claude-accent);
|
||||
stroke: var(--accent);
|
||||
stroke-dasharray: 70.5096664428711 9999999;
|
||||
stroke-dashoffset: -262.2723388671875;
|
||||
}
|
||||
|
||||
.toggle-row span {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@ -296,7 +296,7 @@
|
||||
text-align: left;
|
||||
font-weight: 600;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
cursor: pointer;
|
||||
transition:
|
||||
background 0.2s ease,
|
||||
@ -308,14 +308,14 @@
|
||||
display: block;
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
margin-top: 2px;
|
||||
letter-spacing: 0.4px;
|
||||
}
|
||||
|
||||
.personal-tab-button.active {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
box-shadow: 0 10px 24px var(--border-default);
|
||||
}
|
||||
|
||||
@ -840,7 +840,7 @@
|
||||
}
|
||||
|
||||
.behavior-field-header .field-desc {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -933,7 +933,7 @@
|
||||
}
|
||||
|
||||
.experiment-copy p {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
@ -941,7 +941,7 @@
|
||||
text-transform: uppercase;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.4em;
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
@ -965,7 +965,7 @@
|
||||
|
||||
.experiment-toggle-info p {
|
||||
margin: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.experiment-toggle .toggle-text {
|
||||
@ -988,7 +988,7 @@
|
||||
margin: 0;
|
||||
padding-left: 20px;
|
||||
line-height: 1.6;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* Liquid glass overlay */
|
||||
@ -1173,12 +1173,12 @@
|
||||
}
|
||||
|
||||
.run-mode-card:hover {
|
||||
border-color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.run-mode-card.active {
|
||||
border-color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
background: var(--theme-tab-active);
|
||||
box-shadow: 0 8px 20px var(--border-default);
|
||||
}
|
||||
@ -1194,12 +1194,12 @@
|
||||
.run-mode-title {
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.run-mode-badge {
|
||||
font-size: 12px;
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-weight: 600;
|
||||
background: var(--theme-badge-bg);
|
||||
border-radius: 999px;
|
||||
@ -1207,7 +1207,7 @@
|
||||
}
|
||||
|
||||
.run-mode-desc {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
@ -1230,12 +1230,12 @@
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.thinking-presets button.active {
|
||||
border-color: var(--claude-accent);
|
||||
color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
color: var(--accent);
|
||||
background: var(--theme-tab-active);
|
||||
}
|
||||
|
||||
@ -1266,12 +1266,12 @@
|
||||
}
|
||||
|
||||
.thinking-hint {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.behavior-hint {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -1290,7 +1290,7 @@
|
||||
.link-button {
|
||||
border: none;
|
||||
background: none;
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
}
|
||||
@ -1313,7 +1313,7 @@
|
||||
}
|
||||
|
||||
.tool-category-chip input {
|
||||
accent-color: var(--claude-accent);
|
||||
accent-color: var(--accent);
|
||||
}
|
||||
|
||||
.global-actions {
|
||||
@ -1356,14 +1356,14 @@
|
||||
|
||||
.theme-header p {
|
||||
margin: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.theme-badge {
|
||||
padding: 6px 12px;
|
||||
border-radius: 12px;
|
||||
background: var(--theme-badge-bg);
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.08em;
|
||||
@ -1393,13 +1393,13 @@
|
||||
}
|
||||
|
||||
.theme-card:hover {
|
||||
border-color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
box-shadow: var(--theme-shadow-soft);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.theme-card.active {
|
||||
border-color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
box-shadow: 0 10px 28px var(--shadow-color);
|
||||
background: var(--theme-tab-active);
|
||||
}
|
||||
@ -1426,7 +1426,7 @@
|
||||
|
||||
.theme-check {
|
||||
font-weight: 700;
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
@ -1437,13 +1437,13 @@
|
||||
|
||||
.theme-card-body p {
|
||||
margin: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.theme-note {
|
||||
margin: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -1528,7 +1528,7 @@
|
||||
padding: 0;
|
||||
border-radius: 8px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
cursor: pointer;
|
||||
pointer-events: auto;
|
||||
display: flex;
|
||||
@ -1715,7 +1715,7 @@
|
||||
border-radius: 50%;
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@ -1774,7 +1774,7 @@
|
||||
.mobile-panel-sheet {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: var(--claude-left-rail);
|
||||
background: var(--surface-rail);
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
padding: 0;
|
||||
@ -1787,11 +1787,11 @@
|
||||
|
||||
.mobile-panel-sheet--conversation,
|
||||
.mobile-panel-sheet--workspace {
|
||||
background: var(--claude-left-rail);
|
||||
background: var(--surface-rail);
|
||||
}
|
||||
|
||||
.mobile-panel-sheet--conversation {
|
||||
background: var(--claude-left-rail);
|
||||
background: var(--surface-rail);
|
||||
width: min(var(--conversation-expanded-width, 306px), 100vw);
|
||||
max-width: 100vw;
|
||||
padding-top: 0;
|
||||
@ -1804,14 +1804,14 @@
|
||||
}
|
||||
|
||||
.mobile-panel-sheet--approval {
|
||||
background: var(--claude-panel);
|
||||
background: var(--surface-panel);
|
||||
width: min(460px, 92vw);
|
||||
max-width: 92vw;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.mobile-panel-sheet--focus {
|
||||
background: var(--claude-panel);
|
||||
background: var(--surface-panel);
|
||||
}
|
||||
|
||||
.mobile-overlay-close {
|
||||
@ -1823,7 +1823,7 @@
|
||||
border-radius: 16px;
|
||||
border: none;
|
||||
background: var(--border-default);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
z-index: 5;
|
||||
@ -1915,7 +1915,7 @@
|
||||
.desktop-approval-sheet {
|
||||
height: 100%;
|
||||
max-width: 92vw;
|
||||
background: var(--claude-panel);
|
||||
background: var(--surface-panel);
|
||||
box-shadow: var(--shadow-strong);
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
@ -1999,7 +1999,7 @@
|
||||
|
||||
.confirm-message {
|
||||
font-size: 14px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.confirm-warning {
|
||||
@ -2028,7 +2028,7 @@
|
||||
.confirm-button {
|
||||
border: 1px solid var(--theme-control-border-strong);
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
border-radius: 10px;
|
||||
padding: 8px 20px;
|
||||
font-weight: 500;
|
||||
@ -2036,8 +2036,8 @@
|
||||
}
|
||||
|
||||
.confirm-button--primary {
|
||||
background: var(--claude-accent);
|
||||
border-color: var(--claude-accent-strong);
|
||||
background: var(--accent);
|
||||
border-color: var(--accent-strong);
|
||||
color: var(--on-accent);
|
||||
}
|
||||
|
||||
@ -2091,7 +2091,7 @@
|
||||
.subagent-activity-close {
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
padding: 4px 8px;
|
||||
@ -2107,7 +2107,7 @@
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
@ -2186,7 +2186,7 @@
|
||||
|
||||
.subagent-activity-empty,
|
||||
.subagent-activity-error {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@ -2206,7 +2206,7 @@
|
||||
}
|
||||
|
||||
.subagent-activity-text {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
line-height: 1.4;
|
||||
word-break: break-all;
|
||||
}
|
||||
@ -2243,7 +2243,7 @@
|
||||
border: 1px solid var(--theme-control-border);
|
||||
border-radius: 12px;
|
||||
background: var(--theme-surface-soft);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
padding: 14px;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
@ -2393,7 +2393,7 @@
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.tone-preset-buttons {
|
||||
@ -2412,8 +2412,8 @@
|
||||
}
|
||||
|
||||
.tone-preset-buttons button:hover {
|
||||
border-color: var(--claude-accent);
|
||||
color: var(--claude-accent);
|
||||
border-color: var(--accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
.consideration-input {
|
||||
@ -2431,7 +2431,7 @@
|
||||
height: 38px;
|
||||
border-radius: 12px;
|
||||
border: none;
|
||||
background: var(--claude-accent);
|
||||
background: var(--accent);
|
||||
color: var(--surface-card);
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
@ -2465,13 +2465,13 @@
|
||||
|
||||
.drag-handle {
|
||||
font-size: 16px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.consideration-text {
|
||||
flex: 1;
|
||||
font-size: 14px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.consideration-remove {
|
||||
@ -2487,7 +2487,7 @@
|
||||
.consideration-hint,
|
||||
.consideration-limit {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.personal-form-actions {
|
||||
@ -2541,7 +2541,7 @@
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
border-radius: 999px;
|
||||
background: linear-gradient(135deg, var(--claude-accent) 0%, var(--claude-accent-strong) 100%);
|
||||
background: linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);
|
||||
color: var(--text-primary);
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
@ -2577,7 +2577,7 @@
|
||||
.personalization-loading {
|
||||
padding: 32px 0;
|
||||
text-align: center;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@ -2665,7 +2665,7 @@
|
||||
opacity: 1;
|
||||
}
|
||||
.panel-card {
|
||||
border-left: 1px solid var(--claude-border);
|
||||
border-left: 1px solid var(--border-default);
|
||||
padding: 0 0 0 0;
|
||||
}
|
||||
.app-loading-state {
|
||||
@ -2677,7 +2677,7 @@
|
||||
justify-content: center;
|
||||
gap: 28px;
|
||||
text-align: center;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.loading-animation {
|
||||
@ -2697,15 +2697,15 @@
|
||||
|
||||
.loading-copy p {
|
||||
margin: 6px 0 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.loading-refresh-btn {
|
||||
margin-top: 14px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 10px;
|
||||
background: var(--claude-panel);
|
||||
color: var(--claude-text);
|
||||
background: var(--surface-panel);
|
||||
color: var(--text-primary);
|
||||
padding: 8px 14px;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
@ -2722,8 +2722,8 @@
|
||||
.boxes {
|
||||
--size: 34px;
|
||||
--duration: 900ms;
|
||||
--box-primary: var(--claude-accent);
|
||||
--box-secondary: var(--claude-accent-strong);
|
||||
--box-primary: var(--accent);
|
||||
--box-secondary: var(--accent-strong);
|
||||
--box-tertiary: color-mix(in srgb, var(--accent) 30%, white);
|
||||
height: calc(var(--size) * 2);
|
||||
width: calc(var(--size) * 3);
|
||||
@ -3461,7 +3461,7 @@ body[data-theme='dark'] {
|
||||
|
||||
/* 左侧面板头部(文件/待办事项/子智能体标签栏) */
|
||||
.sidebar-header {
|
||||
background: var(--claude-left-rail);
|
||||
background: var(--surface-rail);
|
||||
}
|
||||
|
||||
/* 移动端审批面板 - 移除所有背景让内容顶头 */
|
||||
@ -3588,7 +3588,7 @@ body[data-theme='dark'] {
|
||||
.tutorial-intro-eyebrow {
|
||||
margin: 0;
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
letter-spacing: 0.06em;
|
||||
}
|
||||
|
||||
@ -3602,7 +3602,7 @@ body[data-theme='dark'] {
|
||||
.tutorial-status-text,
|
||||
.tutorial-feature-item p {
|
||||
margin: 0;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.55;
|
||||
}
|
||||
|
||||
@ -3643,7 +3643,7 @@ body[data-theme='dark'] {
|
||||
|
||||
.tutorial-status-badge.success {
|
||||
color: var(--text-primary);
|
||||
background: linear-gradient(135deg, var(--claude-success), color-mix(in srgb, var(--state-success) 70%, black));
|
||||
background: linear-gradient(135deg, var(--state-success), color-mix(in srgb, var(--state-success) 70%, black));
|
||||
}
|
||||
|
||||
.tutorial-intro-actions {
|
||||
@ -3661,7 +3661,7 @@ body[data-theme='dark'] {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
background: linear-gradient(135deg, var(--claude-accent), var(--claude-accent-strong));
|
||||
background: linear-gradient(135deg, var(--accent), var(--accent-strong));
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -3732,7 +3732,7 @@ body[data-theme='dark'] {
|
||||
border-radius: 14px;
|
||||
border: 1px solid var(--theme-control-border-strong);
|
||||
background: var(--theme-surface-card);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
box-shadow: var(--theme-shadow-strong);
|
||||
padding: 14px 14px 12px;
|
||||
pointer-events: auto;
|
||||
@ -3754,13 +3754,13 @@ body[data-theme='dark'] {
|
||||
.tutorial-popover__step {
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.tutorial-popover__close {
|
||||
border: 1px solid var(--theme-control-border);
|
||||
background: var(--theme-surface-soft);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
border-radius: 999px;
|
||||
padding: 4px 10px;
|
||||
font-size: 12px;
|
||||
@ -3776,7 +3776,7 @@ body[data-theme='dark'] {
|
||||
margin: 8px 0 0;
|
||||
font-size: 13px;
|
||||
line-height: 1.58;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.tutorial-popover__hint,
|
||||
@ -3786,7 +3786,7 @@ body[data-theme='dark'] {
|
||||
}
|
||||
|
||||
.tutorial-popover__hint {
|
||||
color: var(--claude-accent-strong);
|
||||
color: var(--accent-strong);
|
||||
}
|
||||
|
||||
.tutorial-popover__warn {
|
||||
@ -3808,7 +3808,7 @@ body[data-theme='dark'] {
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
background: linear-gradient(135deg, var(--claude-accent), var(--claude-accent-strong));
|
||||
background: linear-gradient(135deg, var(--accent), var(--accent-strong));
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -3818,7 +3818,7 @@ body[data-theme='dark'] {
|
||||
}
|
||||
|
||||
.tutorial-btn--ghost {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
border: 1px solid var(--theme-control-border);
|
||||
background: var(--theme-surface-soft);
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
.token-count {
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-weight: 500;
|
||||
}
|
||||
/* 顶部 Token 抽屉 */
|
||||
@ -18,8 +18,8 @@
|
||||
|
||||
.token-display-panel {
|
||||
width: min(860px, 92%);
|
||||
background: var(--claude-panel);
|
||||
border: 1px solid var(--claude-border);
|
||||
background: var(--surface-panel);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 26px;
|
||||
box-shadow: 0 24px 42px var(--shadow-color);
|
||||
transition: transform 0.35s ease, opacity 0.35s ease;
|
||||
@ -59,7 +59,7 @@
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
width: 1px;
|
||||
background: var(--claude-border);
|
||||
background: var(--border-default);
|
||||
transform: translateX(-0.5px);
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
@ -92,7 +92,7 @@
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.stat-grid {
|
||||
@ -115,7 +115,7 @@
|
||||
}
|
||||
|
||||
.stat-label {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
@ -124,20 +124,20 @@
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
font-variant-numeric: tabular-nums;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.stat-value--accent {
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.stat-value--success {
|
||||
color: var(--claude-success);
|
||||
color: var(--state-success);
|
||||
}
|
||||
|
||||
.stat-value--warning {
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
}
|
||||
|
||||
.stat-value--mono {
|
||||
@ -148,7 +148,7 @@
|
||||
.stat-meta,
|
||||
.stat-foot {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.stat-meta {
|
||||
@ -161,7 +161,7 @@
|
||||
|
||||
.usage-placeholder {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.token-close-btn {
|
||||
@ -262,19 +262,19 @@
|
||||
|
||||
.quota-label {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.quota-value {
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.quota-reset {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.token-item {
|
||||
@ -285,7 +285,7 @@
|
||||
}
|
||||
|
||||
.token-label {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
text-transform: uppercase;
|
||||
@ -293,19 +293,19 @@
|
||||
}
|
||||
|
||||
.token-value {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.token-value.current {
|
||||
color: var(--claude-accent);
|
||||
color: var(--accent);
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.token-value.input { color: var(--claude-success); }
|
||||
.token-value.output { color: var(--claude-warning); }
|
||||
.token-value.input { color: var(--state-success); }
|
||||
.token-value.output { color: var(--state-warning); }
|
||||
|
||||
.panel-row-title {
|
||||
display: flex;
|
||||
@ -313,7 +313,7 @@
|
||||
align-items: center;
|
||||
margin-bottom: 12px;
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
@ -329,7 +329,7 @@
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
background: var(--badge-bg);
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.quota-toast {
|
||||
@ -338,12 +338,12 @@
|
||||
right: 32px;
|
||||
padding: 12px 18px;
|
||||
border-radius: 12px;
|
||||
background: var(--claude-bg);
|
||||
border: 1px solid var(--claude-border-strong);
|
||||
background: var(--surface-base);
|
||||
border: 1px solid var(--border-strong);
|
||||
box-shadow: 0 12px 30px var(--shadow-color);
|
||||
z-index: 2000;
|
||||
max-width: 320px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-weight: 500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -387,26 +387,26 @@
|
||||
gap: 12px;
|
||||
padding: 12px 14px;
|
||||
border-radius: 14px;
|
||||
background: var(--claude-bg);
|
||||
border: 1px solid var(--claude-border-strong);
|
||||
background: var(--surface-base);
|
||||
border: 1px solid var(--border-strong);
|
||||
box-shadow: 0 12px 30px var(--shadow-color);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.app-toast::before {
|
||||
content: "";
|
||||
width: 4px;
|
||||
border-radius: 999px;
|
||||
background: var(--claude-text-secondary);
|
||||
background: var(--text-secondary);
|
||||
align-self: stretch;
|
||||
}
|
||||
|
||||
.app-toast--success::before {
|
||||
background: var(--claude-success);
|
||||
background: var(--state-success);
|
||||
}
|
||||
|
||||
.app-toast--warning::before {
|
||||
background: var(--claude-warning);
|
||||
background: var(--state-warning);
|
||||
}
|
||||
|
||||
.app-toast--error::before {
|
||||
@ -432,30 +432,30 @@
|
||||
.toast-close {
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.toast-close:hover {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
|
||||
.status-pill--running {
|
||||
background: color-mix(in srgb, var(--state-success) 22%, transparent);
|
||||
color: var(--claude-success);
|
||||
color: var(--state-success);
|
||||
}
|
||||
|
||||
.status-pill--stopped {
|
||||
background: color-mix(in srgb, var(--state-warning) 22%, transparent);
|
||||
color: var(--claude-warning);
|
||||
color: var(--state-warning);
|
||||
}
|
||||
|
||||
.status-pill--host {
|
||||
background: var(--badge-bg);
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.container-metric-grid {
|
||||
@ -471,7 +471,7 @@
|
||||
}
|
||||
|
||||
.metric-label {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
@ -479,18 +479,18 @@
|
||||
|
||||
.metric-value {
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 16px;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.metric-subtext {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.container-empty {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
padding: 12px 0;
|
||||
}
|
||||
@ -503,7 +503,7 @@
|
||||
|
||||
.container-stats-card {
|
||||
border-left: none;
|
||||
border-top: 1px solid var(--claude-border);
|
||||
border-top: 1px solid var(--border-default);
|
||||
padding-left: 0;
|
||||
padding-top: 16px;
|
||||
}
|
||||
@ -570,7 +570,7 @@
|
||||
/* 搜索结果展示 */
|
||||
.search-meta {
|
||||
font-size: 14px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
margin-bottom: 12px;
|
||||
word-break: break-word;
|
||||
@ -593,11 +593,11 @@
|
||||
.search-result-title {
|
||||
font-weight: 600;
|
||||
margin-bottom: 6px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.search-result-url a {
|
||||
color: var(--claude-accent-strong);
|
||||
color: var(--accent-strong);
|
||||
text-decoration: none;
|
||||
word-break: break-all;
|
||||
}
|
||||
@ -608,6 +608,6 @@
|
||||
|
||||
.search-empty {
|
||||
font-size: 13px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
.sidebar.right-sidebar .sidebar-header h3 {
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@
|
||||
border: none;
|
||||
border-radius: 16px;
|
||||
background: var(--hover-bg);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
@ -57,7 +57,7 @@
|
||||
border: none;
|
||||
border-radius: 16px;
|
||||
background: var(--hover-bg);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
@ -69,9 +69,9 @@
|
||||
height: var(--app-viewport);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: var(--claude-left-rail);
|
||||
border-left: 1px solid var(--claude-border);
|
||||
color: var(--claude-text);
|
||||
background: var(--surface-rail);
|
||||
border-left: 1px solid var(--border-default);
|
||||
color: var(--text-primary);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
.git-changes-panel__title {
|
||||
@ -105,7 +105,7 @@
|
||||
|
||||
.git-changes-panel__upstream,
|
||||
.git-changes-panel__arrow {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.git-changes-panel__summary,
|
||||
@ -132,7 +132,7 @@
|
||||
border: none;
|
||||
border-radius: 14px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 18px;
|
||||
line-height: 1;
|
||||
cursor: pointer;
|
||||
@ -140,7 +140,7 @@
|
||||
|
||||
.git-changes-panel__close:hover {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
box-shadow: 0 1px 2px var(--shadow-color);
|
||||
}
|
||||
|
||||
@ -149,13 +149,13 @@
|
||||
min-height: 0;
|
||||
overflow: auto;
|
||||
padding: 12px;
|
||||
scrollbar-color: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent)
|
||||
scrollbar-color: color-mix(in srgb, var(--text-secondary) 55%, transparent)
|
||||
color-mix(in srgb, var(--theme-surface-muted) 70%, transparent);
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
.git-changes-panel * {
|
||||
scrollbar-color: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent)
|
||||
scrollbar-color: color-mix(in srgb, var(--text-secondary) 55%, transparent)
|
||||
color-mix(in srgb, var(--theme-surface-muted) 70%, transparent);
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
@ -175,7 +175,7 @@
|
||||
|
||||
.git-changes-panel::-webkit-scrollbar-thumb,
|
||||
.git-changes-panel ::-webkit-scrollbar-thumb {
|
||||
background: color-mix(in srgb, var(--claude-text-secondary) 55%, transparent);
|
||||
background: color-mix(in srgb, var(--text-secondary) 55%, transparent);
|
||||
border-radius: 999px;
|
||||
border: 2px solid transparent;
|
||||
background-clip: padding-box;
|
||||
@ -214,7 +214,7 @@
|
||||
justify-content: space-between;
|
||||
gap: 10px;
|
||||
padding: 0 8px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
}
|
||||
@ -243,14 +243,14 @@
|
||||
border: none;
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.git-change-file__open-btn:hover,
|
||||
.git-change-file__open-btn.open {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
box-shadow: 0 1px 2px var(--shadow-color);
|
||||
}
|
||||
|
||||
@ -303,7 +303,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
max-height: 260px;
|
||||
overflow-y: auto;
|
||||
padding: 6px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 12px;
|
||||
background: var(--theme-surface-muted);
|
||||
box-shadow: none;
|
||||
@ -319,7 +319,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
border: none;
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
@ -339,7 +339,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
|
||||
.git-change-file__open-empty {
|
||||
padding: 8px 10px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
white-space: nowrap;
|
||||
@ -359,14 +359,14 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.git-change-file__reset:hover {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
box-shadow: 0 1px 2px var(--shadow-color);
|
||||
}
|
||||
|
||||
@ -394,7 +394,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
border: none;
|
||||
border-radius: 9px;
|
||||
background: var(--theme-surface-muted);
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font: inherit;
|
||||
font-family: inherit;
|
||||
cursor: pointer;
|
||||
@ -414,7 +414,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
|
||||
.git-change-file__fold:hover {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
box-shadow: 0 1px 2px var(--shadow-color);
|
||||
}
|
||||
|
||||
@ -426,7 +426,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex: 0 0 16px;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
}
|
||||
@ -449,7 +449,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
|
||||
.git-change-file__hunk-header {
|
||||
padding: 3px 8px;
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
@ -466,13 +466,13 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
}
|
||||
|
||||
.git-change-line__num {
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
text-align: right;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.git-change-line__marker {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
text-align: center;
|
||||
user-select: none;
|
||||
}
|
||||
@ -565,7 +565,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
|
||||
.no-files {
|
||||
text-align: center;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
padding: 60px 20px;
|
||||
font-size: 14px;
|
||||
}
|
||||
@ -577,7 +577,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
}
|
||||
|
||||
.file-tab {
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
background: var(--surface-soft);
|
||||
@ -591,16 +591,16 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
.file-name {
|
||||
font-weight: 500;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.file-size {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@ -633,7 +633,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
}
|
||||
|
||||
.approval-card {
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 12px;
|
||||
background: var(--theme-surface-soft);
|
||||
box-shadow: var(--theme-shadow-soft);
|
||||
@ -646,17 +646,17 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
.approval-card__title {
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.approval-card__summary {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.approval-path {
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
@ -707,7 +707,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
font-size: 12px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
background: var(--theme-surface-muted);
|
||||
border: 1px solid var(--theme-control-border);
|
||||
border-radius: 8px;
|
||||
@ -729,18 +729,18 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
.approval-note {
|
||||
padding: 6px 8px;
|
||||
font-size: 11px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.approval-lines--old {
|
||||
background: color-mix(in srgb, var(--claude-warning) 18%, transparent);
|
||||
border: 1px solid color-mix(in srgb, var(--claude-warning) 50%, transparent);
|
||||
background: color-mix(in srgb, var(--state-warning) 18%, transparent);
|
||||
border: 1px solid color-mix(in srgb, var(--state-warning) 50%, transparent);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.approval-lines--new {
|
||||
background: color-mix(in srgb, var(--claude-success) 18%, transparent);
|
||||
border: 1px solid color-mix(in srgb, var(--claude-success) 50%, transparent);
|
||||
background: color-mix(in srgb, var(--state-success) 18%, transparent);
|
||||
border: 1px solid color-mix(in srgb, var(--state-success) 50%, transparent);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
@ -788,7 +788,7 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
|
||||
.approval-btn--approve {
|
||||
color: var(--theme-surface-strong);
|
||||
background: var(--claude-success);
|
||||
background: var(--state-success);
|
||||
}
|
||||
|
||||
.approval-btn--switch {
|
||||
@ -798,5 +798,5 @@ body[data-theme='dark'] .git-change-file__open-icon {
|
||||
|
||||
.approval-btn--reject {
|
||||
color: var(--theme-surface-strong);
|
||||
background: var(--claude-accent-strong);
|
||||
background: var(--accent-strong);
|
||||
}
|
||||
|
||||
@ -10,9 +10,9 @@
|
||||
height: var(--app-viewport) !important;
|
||||
min-height: var(--app-viewport) !important;
|
||||
overflow: hidden;
|
||||
background: var(--claude-left-rail);
|
||||
background: var(--surface-rail);
|
||||
border-right: 0;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
transition: width 320ms cubic-bezier(0.22, 1, 0.36, 1);
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
width: 1px;
|
||||
pointer-events: none;
|
||||
opacity: 1;
|
||||
background: var(--claude-border);
|
||||
background: var(--border-default);
|
||||
transition: opacity 320ms cubic-bezier(0.22, 1, 0.36, 1);
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@
|
||||
border: 0;
|
||||
border-radius: 8px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: grid;
|
||||
align-items: center;
|
||||
}
|
||||
@ -163,7 +163,7 @@
|
||||
}
|
||||
|
||||
.monitor-mode-btn.blocked {
|
||||
color: var(--claude-text-tertiary);
|
||||
color: var(--text-tertiary);
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
@ -185,7 +185,7 @@
|
||||
}
|
||||
|
||||
.search-inline-icon {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.search-input {
|
||||
@ -196,13 +196,13 @@
|
||||
outline: 0;
|
||||
padding: 0 12px 0 8px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
.search-input::placeholder {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.conversation-sidebar .conversation-list {
|
||||
@ -228,14 +228,14 @@
|
||||
.conversation-sidebar .running-task-section {
|
||||
margin: 0 8px 12px;
|
||||
padding: 6px 0 8px;
|
||||
border-bottom: 1px solid color-mix(in srgb, var(--claude-border) 72%, transparent);
|
||||
border-bottom: 1px solid color-mix(in srgb, var(--border-default) 72%, transparent);
|
||||
}
|
||||
|
||||
.conversation-sidebar .running-task-section-title {
|
||||
margin: 0 8px 4px;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
|
||||
@ -250,7 +250,7 @@
|
||||
border: 0;
|
||||
border-radius: 8px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
transition:
|
||||
@ -269,7 +269,7 @@
|
||||
white-space: nowrap;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.conversation-sidebar .running-task-title {
|
||||
@ -279,7 +279,7 @@
|
||||
font-size: 13px;
|
||||
line-height: 1.25;
|
||||
letter-spacing: -0.01em;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.conversation-sidebar .running-task-main {
|
||||
@ -362,7 +362,7 @@ body[data-theme='dark'] .conversation-sidebar .running-task-item.active {
|
||||
inset: 0;
|
||||
z-index: 1;
|
||||
border-radius: 12px;
|
||||
background: var(--claude-left-rail);
|
||||
background: var(--surface-rail);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@ -445,7 +445,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
min-width: 0;
|
||||
padding-left: 12px;
|
||||
padding-right: 4px;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
line-height: 1.25;
|
||||
letter-spacing: -0.01em;
|
||||
@ -468,7 +468,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
.conversation-sidebar .conversation-running-loader {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border: 2px solid var(--claude-text-secondary);
|
||||
border: 2px solid var(--text-secondary);
|
||||
border-bottom-color: transparent;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
@ -480,7 +480,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: inline-block;
|
||||
background: var(--claude-text-secondary);
|
||||
background: var(--text-secondary);
|
||||
mask: url('/static/icons/check.svg') center / contain no-repeat;
|
||||
-webkit-mask: url('/static/icons/check.svg') center / contain no-repeat;
|
||||
}
|
||||
@ -501,7 +501,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
border: 0;
|
||||
border-radius: 9px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
display: grid;
|
||||
place-items: center;
|
||||
cursor: pointer;
|
||||
@ -518,7 +518,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
|
||||
.conversation-sidebar .conversation-more-btn:hover,
|
||||
.conversation-sidebar .conversation-action-wrap.menu-open .conversation-more-btn {
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.conversation-sidebar .conversation-more-btn span {
|
||||
@ -547,7 +547,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
width: max-content;
|
||||
min-width: 92px;
|
||||
padding: 6px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 14px;
|
||||
background: var(--theme-surface-strong);
|
||||
box-shadow: none;
|
||||
@ -583,7 +583,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
border: 0;
|
||||
border-radius: 10px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: grid;
|
||||
grid-template-columns: 24px auto;
|
||||
align-items: center;
|
||||
@ -622,7 +622,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
.no-conversations,
|
||||
.search-done,
|
||||
.search-progress {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
padding: 10px 12px;
|
||||
white-space: nowrap;
|
||||
@ -639,7 +639,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
border-radius: 10px;
|
||||
padding: 0 12px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
transition:
|
||||
@ -649,7 +649,7 @@ body[data-theme='dark'] .conversation-sidebar .conversation-item.active:focus-wi
|
||||
|
||||
.load-more-btn:hover:not(:disabled) {
|
||||
background: var(--theme-tab-active);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.load-more-btn:disabled {
|
||||
@ -744,13 +744,13 @@ body[data-theme='dark'] .workspace-group-header:hover {
|
||||
border: 0;
|
||||
border-radius: 8px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.workspace-folder-icon {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* 搜索结果分组头:仅作分类标识,不可交互、无 hover 高亮 */
|
||||
@ -784,7 +784,7 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
.workspace-running-loader {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border: 2px solid var(--claude-text-secondary);
|
||||
border: 2px solid var(--text-secondary);
|
||||
border-bottom-color: transparent;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
@ -812,7 +812,7 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
border: 0;
|
||||
border-radius: 8px;
|
||||
background: transparent;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
display: grid;
|
||||
place-items: center;
|
||||
cursor: pointer;
|
||||
@ -825,7 +825,7 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
.workspace-more-btn:hover,
|
||||
.workspace-group-actions.visible .workspace-more-btn[aria-expanded='true'] {
|
||||
background: var(--theme-surface-strong);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.workspace-more-btn span {
|
||||
@ -857,7 +857,7 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
width: max-content;
|
||||
min-width: 120px;
|
||||
padding: 6px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 14px;
|
||||
background: var(--theme-surface-strong);
|
||||
box-shadow: none;
|
||||
@ -882,7 +882,7 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
border: 0;
|
||||
border-radius: 10px;
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
display: grid;
|
||||
align-items: center;
|
||||
padding: 0 10px;
|
||||
@ -939,7 +939,7 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
|
||||
.workspace-no-conversations,
|
||||
.workspace-conversations-loading {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
padding: 10px 12px;
|
||||
}
|
||||
@ -963,7 +963,7 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
padding: 16px;
|
||||
border-radius: 16px;
|
||||
background: var(--theme-surface-strong);
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
@ -972,17 +972,17 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
.workspace-rename-title {
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.workspace-rename-input {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
padding: 0 12px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 10px;
|
||||
background: var(--surface-base);
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
font-size: 14px;
|
||||
outline: none;
|
||||
}
|
||||
@ -1009,7 +1009,7 @@ body[data-theme='dark'] .workspace-group-header.search-result-group-header:hover
|
||||
|
||||
.workspace-rename-cancel {
|
||||
background: transparent;
|
||||
color: var(--claude-text);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.workspace-rename-cancel:hover {
|
||||
|
||||
@ -5,11 +5,11 @@
|
||||
flex-direction: row;
|
||||
height: var(--app-viewport);
|
||||
align-items: stretch;
|
||||
background: var(--claude-bg);
|
||||
color: var(--claude-text);
|
||||
background: var(--surface-base);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
#app {
|
||||
min-height: var(--app-viewport);
|
||||
background: var(--claude-bg);
|
||||
background: var(--surface-base);
|
||||
}
|
||||
|
||||
@ -19,27 +19,27 @@
|
||||
box-sizing: border-box;
|
||||
}
|
||||
:root {
|
||||
--claude-bg: #eeece2;
|
||||
--claude-panel: rgba(255, 255, 255, 0.92);
|
||||
--claude-border: rgba(118, 103, 84, 0.25);
|
||||
--claude-text: #3d3929;
|
||||
--claude-text-secondary: #7f7766;
|
||||
--claude-accent: #da7756;
|
||||
--claude-muted: rgba(121, 109, 94, 0.45);
|
||||
--app-bg: #eeece2;
|
||||
--app-panel: rgba(255, 255, 255, 0.92);
|
||||
--app-border: rgba(118, 103, 84, 0.25);
|
||||
--app-text: #3d3929;
|
||||
--app-text-secondary: #7f7766;
|
||||
--app-accent: #da7756;
|
||||
--app-muted: rgba(121, 109, 94, 0.45);
|
||||
}
|
||||
body {
|
||||
font-family: 'Iowan Old Style', ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
|
||||
background: var(--claude-bg);
|
||||
color: var(--claude-text);
|
||||
background: var(--app-bg);
|
||||
color: var(--app-text);
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
.header {
|
||||
background: var(--claude-bg);
|
||||
background: var(--app-bg);
|
||||
padding: 15px 24px;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--app-border);
|
||||
box-shadow: 0 10px 20px rgba(61, 57, 41, 0.08);
|
||||
}
|
||||
.header h1 {
|
||||
@ -65,12 +65,12 @@
|
||||
animation: none;
|
||||
}
|
||||
.session-tabs {
|
||||
background: var(--claude-bg);
|
||||
background: var(--app-bg);
|
||||
padding: 12px 24px;
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
overflow-x: auto;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--app-border);
|
||||
box-shadow: inset 0 -1px rgba(61, 57, 41, 0.05);
|
||||
}
|
||||
.tab {
|
||||
@ -84,7 +84,7 @@
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
white-space: nowrap;
|
||||
color: var(--claude-text);
|
||||
color: var(--app-text);
|
||||
}
|
||||
.tab:hover {
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
@ -92,8 +92,8 @@
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
.tab.active {
|
||||
background: var(--claude-accent);
|
||||
border-color: var(--claude-accent);
|
||||
background: var(--app-accent);
|
||||
border-color: var(--app-accent);
|
||||
color: #fffaf0;
|
||||
box-shadow: 0 10px 24px rgba(218, 119, 86, 0.26);
|
||||
}
|
||||
@ -115,7 +115,7 @@
|
||||
box-shadow: 0 24px 48px rgba(61, 57, 41, 0.16);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--app-border);
|
||||
}
|
||||
.terminal-header {
|
||||
background: rgba(255, 255, 255, 0.86);
|
||||
@ -123,14 +123,14 @@
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid var(--claude-border);
|
||||
border-bottom: 1px solid var(--app-border);
|
||||
}
|
||||
.terminal-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
font-size: 14px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--app-text-secondary);
|
||||
}
|
||||
.terminal-controls {
|
||||
display: flex;
|
||||
@ -163,7 +163,7 @@
|
||||
height: 100%;
|
||||
margin: 0 14px 0 18px;
|
||||
background: #ffffff;
|
||||
color: var(--claude-text);
|
||||
color: var(--app-text);
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
min-height: 0;
|
||||
@ -191,10 +191,10 @@
|
||||
}
|
||||
.sidebar {
|
||||
width: 300px;
|
||||
background: var(--claude-panel);
|
||||
background: var(--app-panel);
|
||||
border-radius: 18px;
|
||||
padding: 20px;
|
||||
border: 1px solid var(--claude-border);
|
||||
border: 1px solid var(--app-border);
|
||||
box-shadow: 0 18px 40px rgba(61, 57, 41, 0.1);
|
||||
overflow-y: auto;
|
||||
scrollbar-width: none;
|
||||
@ -208,7 +208,7 @@
|
||||
.info-section h3 {
|
||||
font-size: 14px;
|
||||
margin-bottom: 10px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--app-text-secondary);
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
.info-item {
|
||||
@ -219,10 +219,10 @@
|
||||
font-size: 14px;
|
||||
}
|
||||
.info-label {
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--app-text-secondary);
|
||||
}
|
||||
.info-value {
|
||||
color: var(--claude-text);
|
||||
color: var(--app-text);
|
||||
font-weight: 600;
|
||||
}
|
||||
.command-history {
|
||||
@ -238,20 +238,20 @@
|
||||
margin: 3px 0;
|
||||
font-family: inherit;
|
||||
font-size: 12px;
|
||||
color: var(--claude-accent);
|
||||
border-left: 3px solid var(--claude-accent);
|
||||
color: var(--app-accent);
|
||||
border-left: 3px solid var(--app-accent);
|
||||
padding-left: 10px;
|
||||
background: rgba(218, 119, 86, 0.08);
|
||||
border-radius: 6px;
|
||||
}
|
||||
.status-bar {
|
||||
background: var(--claude-panel);
|
||||
background: var(--app-panel);
|
||||
padding: 12px 24px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 13px;
|
||||
border-top: 1px solid var(--claude-border);
|
||||
border-top: 1px solid var(--app-border);
|
||||
box-shadow: 0 -8px 18px rgba(61, 57, 41, 0.08);
|
||||
}
|
||||
.status-left {
|
||||
@ -262,7 +262,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
color: var(--claude-text-secondary);
|
||||
color: var(--app-text-secondary);
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.main-content {
|
||||
@ -276,7 +276,7 @@
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border: 3px solid rgba(61, 57, 41, 0.15);
|
||||
border-top-color: var(--claude-accent);
|
||||
border-top-color: var(--app-accent);
|
||||
border-radius: 50%;
|
||||
animation: spin 1s linear infinite;
|
||||
margin: 20px auto;
|
||||
|
||||
@ -2,12 +2,12 @@ from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
|
||||
|
||||
class APIClientMultimodalSanitizeTest(unittest.TestCase):
|
||||
def test_text_only_model_adds_notice_when_only_media_parts(self):
|
||||
client = DeepSeekClient(web_mode=True)
|
||||
client = APIClient(web_mode=True)
|
||||
client.model_key = "DeepSeek-V4-Pro High" # custom_models.json: multimodal=none
|
||||
|
||||
messages = [
|
||||
@ -29,7 +29,7 @@ class APIClientMultimodalSanitizeTest(unittest.TestCase):
|
||||
)
|
||||
|
||||
def test_text_only_model_strips_image_parts_to_text(self):
|
||||
client = DeepSeekClient(web_mode=True)
|
||||
client = APIClient(web_mode=True)
|
||||
client.model_key = "DeepSeek-V4-Pro High" # custom_models.json: multimodal=none
|
||||
|
||||
messages = [
|
||||
@ -54,7 +54,7 @@ class APIClientMultimodalSanitizeTest(unittest.TestCase):
|
||||
)
|
||||
|
||||
def test_profile_text_only_fallback_strips_media_parts(self):
|
||||
client = DeepSeekClient(web_mode=True)
|
||||
client = APIClient(web_mode=True)
|
||||
client.model_key = ""
|
||||
client.model_multimodal = "none"
|
||||
|
||||
@ -79,7 +79,7 @@ class APIClientMultimodalSanitizeTest(unittest.TestCase):
|
||||
)
|
||||
|
||||
def test_profile_multimodal_model_keeps_image_parts(self):
|
||||
client = DeepSeekClient(web_mode=True)
|
||||
client = APIClient(web_mode=True)
|
||||
client.model_key = ""
|
||||
client.model_multimodal = "image,video"
|
||||
|
||||
@ -103,7 +103,7 @@ class APIClientMultimodalSanitizeTest(unittest.TestCase):
|
||||
)
|
||||
|
||||
def test_profile_multimodal_fallback_works_when_model_key_missing(self):
|
||||
client = DeepSeekClient(web_mode=True)
|
||||
client = APIClient(web_mode=True)
|
||||
client.model_key = "" # 模拟未知/缺失 key,仅走 profile 兜底
|
||||
client.model_multimodal = "none"
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ os.environ["SUB_AGENT_STATE_FILE"] = str(_test_tmp / "state.json")
|
||||
os.environ["SUB_AGENT_PROJECT_RESULTS_DIR"] = str(_test_tmp / "results")
|
||||
|
||||
from modules.sub_agent import SubAgentManager
|
||||
from utils.api_client import DeepSeekClient
|
||||
from utils.api_client import APIClient
|
||||
|
||||
|
||||
class FakeTerminal:
|
||||
@ -85,7 +85,7 @@ class FakeTerminal:
|
||||
|
||||
|
||||
class FakeModel:
|
||||
"""按脚本驱动 DeepSeekClient.chat 的返回。"""
|
||||
"""按脚本驱动 APIClient.chat 的返回。"""
|
||||
|
||||
def __init__(self, responses: List[List[Dict[str, Any]]]):
|
||||
self.responses = responses
|
||||
@ -122,13 +122,13 @@ def make_finish_chunk() -> Dict[str, Any]:
|
||||
|
||||
def install_fake_model(responses: List[List[Dict[str, Any]]]):
|
||||
fake = FakeModel(responses)
|
||||
original = DeepSeekClient.chat
|
||||
DeepSeekClient.chat = fake.chat
|
||||
original = APIClient.chat
|
||||
APIClient.chat = fake.chat
|
||||
return fake, original
|
||||
|
||||
|
||||
def restore_model(original):
|
||||
DeepSeekClient.chat = original
|
||||
APIClient.chat = original
|
||||
|
||||
|
||||
def test_write_file_and_edit():
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user