feat: add new brand logos
Desktop Client Build / Resolve Build Metadata (push) Successful in 26s
Frontend CI / Frontend (push) Successful in 3m23s
Backend CI / Backend (push) Successful in 16m58s
Desktop Client Build / Build Desktop Client (push) Successful in 24m56s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 36s

- Introduced icon-color.svg featuring a colorful gradient design.
- Added icon-with-title.svg that includes a title and multiple gradient elements.
This commit is contained in:
2026-05-31 23:05:27 +08:00
parent e490a267ff
commit e07a87224d
21 changed files with 787 additions and 135 deletions
+42 -19
View File
@@ -7,8 +7,8 @@
}"
>
<div class="brand">
<div class="brand-icon"><StarOutlined :style="{ fontSize: '16px' }" /></div>
<span>省心推运营控制台</span>
<img class="brand-logo brand-logo--white" src="/logos/icon-with-title.svg" alt="省心推运营控制台" />
<span class="brand-badge brand-badge--white">运营端</span>
</div>
<div class="characters-area">
<AnimatedCharacters
@@ -29,8 +29,8 @@
<div class="right">
<div class="form-wrapper">
<div class="mobile-brand">
<div class="brand-icon"><StarOutlined :style="{ fontSize: '16px' }" /></div>
<span>省心推运营控制台</span>
<img class="brand-logo brand-logo--mobile" src="/logos/icon-with-title.svg" alt="省心推运营控制台" />
<span class="brand-badge">运营端</span>
</div>
<div class="header">
<h1>欢迎回来</h1>
@@ -102,7 +102,7 @@
</template>
<script setup lang="ts">
import { EyeInvisibleOutlined, EyeOutlined, StarOutlined } from '@ant-design/icons-vue'
import { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons-vue'
import { onMounted, reactive, ref } from 'vue'
import { useRoute, useRouter } from 'vue-router'
@@ -205,19 +205,41 @@ async function handleSubmit(): Promise<void> {
z-index: 20;
display: flex;
align-items: center;
gap: 8px;
font-size: 18px;
font-weight: 600;
gap: 10px;
}
.brand-icon {
width: 32px;
height: 32px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(8px);
display: flex;
.brand-logo {
display: block;
width: 164px;
height: auto;
object-fit: contain;
}
.brand-logo--white {
filter: brightness(0) invert(1);
}
.brand-badge {
display: inline-flex;
align-items: center;
justify-content: center;
height: 24px;
padding: 0 9px;
border: 1px solid rgba(79, 70, 229, 0.24);
border-radius: 999px;
background: #eef2ff;
color: #4f46e5;
font-size: 12px;
font-weight: 700;
line-height: 1;
white-space: nowrap;
}
.brand-badge--white {
border-color: rgba(255, 255, 255, 0.38);
background: rgba(255, 255, 255, 0.14);
color: #fff;
backdrop-filter: blur(8px);
}
.characters-area {
position: relative;
@@ -438,11 +460,12 @@ async function handleSubmit(): Promise<void> {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 8px;
font-size: 18px;
font-weight: 600;
gap: 10px;
margin-bottom: 48px;
color: #18181b;
}
.brand-logo--mobile {
width: 144px;
}
}
</style>