feat(brand): apply 森林AI identity

This commit is contained in:
2026-07-22 15:06:51 +08:00
parent bbc3a752dc
commit 98573cf4ca
21 changed files with 91 additions and 37 deletions

View File

@@ -38,8 +38,8 @@ export function LoginPage({ onLogin }: { onLogin: (input: { server: string; emai
<Card className="login-card" bordered>
<div className="login-brand-panel">
<div className="brand-lockup large">
<span className="brand-symbol">S</span>
<Title heading={2}>Agent</Title>
<img className="brand-icon" src="/senlinai-icon.svg" alt="" aria-hidden="true" />
<Title heading={2}>AI</Title>
</div>
<Text className="login-slogan"> · </Text>
<Text type="secondary"> · · AI Agent</Text>
@@ -51,7 +51,7 @@ export function LoginPage({ onLogin }: { onLogin: (input: { server: string; emai
</div>
<div className="login-form-panel">
<Title heading={4}> SenlinAI</Title>
<Title heading={4}>AI</Title>
<Text type="secondary"></Text>
<Form layout="vertical" className="login-form">
<Form.Item label="服务器地址IP 或域名优先)">
@@ -81,7 +81,7 @@ export function LoginPage({ onLogin }: { onLogin: (input: { server: string; emai
<div className="login-value-panel">
<Title heading={3}> · · </Title>
<Paragraph>
SenlinAI
AI
</Paragraph>
<ValuePoint icon={<IconSafe />} title="私有部署,数据自有" desc="所有数据与模型运行在您的环境中,安全可控。" />
<ValuePoint icon={<IconBook />} title="知识沉淀,结构清晰" desc="从收集到整理,形成可复用的团队知识库。" />

View File

@@ -1,6 +1,6 @@
import type { CSSProperties } from 'react'
import { Badge, Button, Layout, Space } from '@arco-design/web-react'
import { IconCompass, IconDashboard, IconPlus } from '@arco-design/web-react/icon'
import { IconCompass, IconPlus } from '@arco-design/web-react/icon'
import type { Project, WorkbenchView } from './project-types'
const { Sider } = Layout
@@ -26,10 +26,10 @@ export function ProjectRail({
<Sider className="project-rail" width={96}>
<Button
className={activeView === 'workspace' ? 'dashboard-button active' : 'dashboard-button'}
icon={<IconDashboard />}
icon={<img className="brand-icon rail-brand-icon" src="/senlinai-icon.svg" alt="" aria-hidden="true" />}
onClick={onSelectWorkspace}
aria-label="工作台"
title="工作台"
aria-label="森林AI 工作台"
title="森林AI 工作台"
/>
<Button
className={activeView === 'workspace-explore' ? 'dashboard-button active' : 'dashboard-button'}

View File

@@ -11,8 +11,8 @@ export function ProjectTopbar({ theme, onToggleTheme }: { theme: Theme; onToggle
return (
<Header className="topbar">
<div className="brand-lockup">
<span className="brand-symbol">S</span>
<Text className="brand-name">SenlinAI</Text>
<img className="brand-icon" src="/senlinai-icon.svg" alt="" aria-hidden="true" />
<Text className="brand-name">AI</Text>
</div>
<div className="global-search" role="search">
<Input size="large" prefix={<IconSearch />} placeholder="搜索项目、频道、文档、任务、联系人..." />