feat(admin): 登录页补充水果装饰

This commit is contained in:
Zhou Weidong committed 2026-10-24 17:32:12 +08:00
1 parent a266d44483
commit 33bf5bd3bb
1 file changed
+146 -11
+146 -11
View File
@@ -31,6 +31,94 @@ const themeChange = () => {
<img src="@/assets/imgs/brand-mark.png" alt="" />
<span>{{ underlineToHump(appStore.getTitle) }}</span>
</div>
<div class="hero-fruits" aria-hidden="true">
<svg class="fruit cherry" viewBox="0 0 120 140">
<path
d="M62 38c8-16 24-24 36-22"
fill="none"
stroke="#7d9a62"
stroke-width="3"
stroke-linecap="round"
/>
<path
d="M58 40c2-18-8-30-6-36"
fill="none"
stroke="#6d8a55"
stroke-width="3"
stroke-linecap="round"
/>
<ellipse
cx="34"
cy="28"
rx="14"
ry="7"
fill="#8fb56f"
transform="rotate(-28 34 28)"
/>
<circle cx="42" cy="78" r="28" fill="#c4322a" />
<circle cx="78" cy="86" r="26" fill="#a82822" />
<circle cx="32" cy="68" r="8" fill="#fff" opacity=".28" />
</svg>
<svg class="fruit mango" viewBox="0 0 150 170">
<path d="M78 28c18 2 28 8 34 16-22 4-36 2-48-8 4-4 8-8 14-8z" fill="#6d8a55" />
<path
d="M86 36c6-16 2-24-2-28"
fill="none"
stroke="#5f7a4c"
stroke-width="3"
stroke-linecap="round"
/>
<path
d="M46 58c-18 28-16 62 8 84 28 24 62 10 74-16 14-30 4-62-16-80-18-16-46-10-66 12z"
fill="#f0b429"
/>
<path
d="M58 78c8 22 10 40 4 58"
fill="none"
stroke="#ffe08a"
stroke-width="8"
stroke-linecap="round"
opacity=".55"
/>
<ellipse
cx="62"
cy="86"
rx="14"
ry="22"
fill="#fff"
opacity=".2"
transform="rotate(-24 62 86)"
/>
</svg>
<svg class="fruit banana" viewBox="0 0 160 150">
<path
d="M28 108c18-46 48-74 92-86 8 10 10 22 4 34-28 10-50 28-66 58-6 12-16 16-30 12-8-2-12-10 0-18z"
fill="#f2d34b"
/>
<path
d="M36 102c16-38 42-62 80-74"
fill="none"
stroke="#ffe98a"
stroke-width="7"
stroke-linecap="round"
opacity=".7"
/>
<path
d="M118 24c8 2 14 10 12 16"
fill="none"
stroke="#6d8a55"
stroke-width="4"
stroke-linecap="round"
/>
<path
d="M30 112c-6 8-4 16 4 16"
fill="none"
stroke="#c9a227"
stroke-width="4"
stroke-linecap="round"
/>
</svg>
</div>
<div class="hero-copy">
<p class="hero-kicker">{{ t('login.consoleLabel') }}</p>
<h1>{{ t('login.welcome') }}</h1>
@@ -81,16 +169,58 @@ const themeChange = () => {
flex-direction: column;
justify-content: space-between;
&::before,
&::after {
position: absolute;
right: -80px;
bottom: -120px;
width: 360px;
height: 360px;
border: 1px solid rgb(255 255 255 / 16%);
border: 1px solid rgb(255 255 255 / 12%);
border-radius: 50%;
content: '';
}
&::before {
top: -140px;
left: -80px;
width: 420px;
height: 420px;
}
&::after {
right: -120px;
bottom: -160px;
width: 460px;
height: 460px;
}
}
.hero-fruits {
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;
}
.fruit {
position: absolute;
filter: drop-shadow(0 18px 24px rgb(0 0 0 / 28%));
}
.cherry {
top: 16%;
right: 14%;
width: 150px;
}
.mango {
top: 30%;
left: 38%;
width: 210px;
}
.banana {
top: 54%;
left: 12%;
width: 200px;
transform: rotate(-8deg);
}
.hero-brand {
@@ -113,13 +243,14 @@ const themeChange = () => {
.hero-copy {
position: relative;
z-index: 1;
max-width: 460px;
max-width: 420px;
h1 {
margin: 10px 0 12px;
font-size: 40px;
font-weight: 700;
line-height: 1.2;
margin: 12px 0 0;
font-size: 44px;
font-weight: 600;
line-height: 1.15;
letter-spacing: -0.03em;
color: #fff;
}
}
@@ -191,8 +322,12 @@ const themeChange = () => {
padding: 16px 24px 20px;
}
.hero-fruits {
display: none;
}
.hero-copy h1 {
margin: 6px 0 8px;
margin: 6px 0 0;
font-size: 28px;
}