feat(frontend): 完成品牌 SVG 与后台 Phase 1 基础切片

This commit is contained in:
yml2213
2026-10-30 12:20:01 +08:00
parent 8d9481c251
commit 97167fa482
25 changed files with 2028 additions and 40 deletions
+507 -3
View File
@@ -560,9 +560,6 @@ a {
.login-brand__logo {
align-self: flex-start;
margin-bottom: 48px;
padding: 10px;
border-radius: 4px;
background: var(--paper-warm);
}
.login-brand__title {
@@ -813,3 +810,510 @@ a {
flex-direction: column;
}
}
/* Phase 1 shared loading */
.page-loading {
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
background: var(--paper);
}
.page-loading__placeholder {
width: 120px;
height: 40px;
}
/* Admin login */
.admin-login-page {
display: grid;
grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
min-height: 100vh;
background: var(--paper);
}
.admin-login-brand {
position: relative;
overflow: hidden;
background: var(--brand-ink);
color: var(--paper-warm);
}
.admin-login-brand::after {
position: absolute;
right: -120px;
bottom: -150px;
width: 420px;
height: 420px;
border: 1px solid rgba(236, 208, 177, 0.2);
border-radius: 50%;
content: '';
}
.admin-login-brand__inner {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
justify-content: center;
min-height: 100vh;
max-width: 560px;
margin: 0 auto;
padding: 64px;
}
.admin-login-brand__eyebrow {
margin-top: 52px;
color: var(--brand-seal-line);
font-size: 11px;
letter-spacing: 0.18em;
}
.admin-login-brand__title {
margin: 18px 0 22px !important;
color: #f0f4f2 !important;
font-size: clamp(42px, 5vw, 64px) !important;
line-height: 1.18 !important;
}
.admin-login-brand__copy {
max-width: 430px;
color: #d8e2dd !important;
font-size: 15px;
line-height: 1.9;
}
.admin-login-brand__foot {
margin-top: 32px;
color: #b9cbc3;
font-size: 12px;
letter-spacing: 0.04em;
}
.admin-login-brand__foot .anticon {
margin-right: 8px;
color: var(--brand-seal-line);
}
.admin-login-form-panel {
display: flex;
align-items: center;
justify-content: center;
padding: 48px 24px;
}
.admin-login-card {
width: 100%;
max-width: 430px;
padding: 36px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--paper-warm);
box-shadow: 0 1px 2px rgba(29, 36, 33, 0.04), 0 20px 60px rgba(29, 36, 33, 0.06);
}
.admin-login-card__head {
margin-bottom: 24px;
}
.admin-login-card__head .ant-typography {
display: block;
margin-top: 16px;
}
.admin-login-card__head h2 {
margin-bottom: 8px !important;
color: var(--brand-ink) !important;
}
.admin-captcha-button {
width: 128px;
padding: 0 !important;
overflow: hidden;
}
.admin-captcha-button img {
width: 100%;
height: 40px;
object-fit: cover;
}
.admin-login-card__foot {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 24px;
padding-top: 18px;
border-top: 1px solid var(--line);
color: var(--ink-muted);
font-size: 12px;
}
.admin-login-card__foot .ant-btn-link {
padding: 0;
color: var(--brand-ink);
}
/* Admin shell */
.admin-shell {
min-height: 100vh;
background: var(--paper);
}
.admin-sider {
border-right: 1px solid var(--line);
background: var(--paper-warm) !important;
}
.admin-sider .ant-layout-sider-children {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.admin-sider__brand {
display: flex;
align-items: center;
justify-content: space-between;
height: 72px;
padding: 0 18px;
border-bottom: 1px solid var(--line);
}
.admin-sider__phase {
color: var(--brand-seal);
font-family: 'Inter', monospace;
font-size: 9px;
letter-spacing: 0.12em;
}
.admin-menu {
flex: 1;
padding: 14px 10px;
overflow-y: auto;
border-inline-end: 0 !important;
background: transparent !important;
}
.admin-menu .ant-menu-submenu-title,
.admin-menu .ant-menu-item {
height: 40px;
margin: 2px 0;
border-radius: 4px;
color: var(--ink-secondary);
font-size: 13px;
}
.admin-menu .ant-menu-item-selected {
color: var(--brand-ink) !important;
font-weight: 600;
}
.admin-menu .ant-menu-submenu-selected > .ant-menu-submenu-title {
color: var(--brand-ink);
}
.admin-menu .ant-menu-item .anticon,
.admin-menu .ant-menu-submenu-title .anticon {
color: var(--sage);
}
.admin-sider__foot {
display: flex;
flex-direction: column;
gap: 4px;
padding: 16px 20px;
border-top: 1px solid var(--line);
font-size: 11px;
}
.admin-main {
min-width: 0;
background: var(--paper);
}
.admin-header {
position: sticky;
top: 0;
z-index: 10;
display: flex;
align-items: center;
justify-content: space-between;
height: 64px;
padding: 0 24px;
border-bottom: 1px solid var(--line);
background: rgba(255, 253, 248, 0.94);
backdrop-filter: blur(12px);
}
.admin-header__left {
display: flex;
align-items: center;
gap: 14px;
}
.admin-collapse {
color: var(--ink-secondary);
}
.admin-role-tag {
margin: 0;
border-radius: 2px;
background: #eef2ec;
color: var(--brand-ink);
}
.admin-account {
display: inline-flex;
align-items: center;
gap: 8px;
height: 40px;
padding: 0 8px;
}
.admin-avatar {
background: var(--brand-ink) !important;
color: var(--paper-warm) !important;
font-family: 'Noto Serif SC', 'Songti SC', serif;
}
.admin-account__name {
max-width: 120px;
overflow: hidden;
color: var(--ink);
font-size: 13px;
text-overflow: ellipsis;
white-space: nowrap;
}
.admin-content {
padding: 24px;
}
.admin-page {
max-width: 1600px;
margin: 0 auto;
}
.admin-page__head {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 24px;
margin-bottom: 24px;
}
.admin-page__head h2 {
margin: 6px 0 8px !important;
color: var(--brand-ink) !important;
font-size: 30px !important;
}
.admin-page__eyebrow {
color: var(--brand-seal);
font-size: 10px !important;
letter-spacing: 0.16em;
}
.admin-phase-tag {
margin: 0;
border-radius: 2px;
background: #f3ece4;
color: var(--brand-seal);
}
.admin-kpi-card {
min-height: 150px;
border-color: var(--line);
background: var(--paper-warm);
}
.admin-kpi-card .ant-statistic-title {
color: var(--ink-muted);
font-size: 12px;
}
.admin-kpi-card .ant-statistic-content {
color: var(--brand-ink);
font-family: 'Inter', 'DIN Alternate', sans-serif;
font-size: 30px;
}
.admin-kpi-card--accent {
background: var(--brand-ink);
}
.admin-kpi-card--accent .ant-statistic-title,
.admin-kpi-card--accent .admin-kpi-card__foot {
color: #b9cbc3;
}
.admin-kpi-card--accent .ant-statistic-content {
color: #f0f4f2;
}
.admin-kpi-card__icon {
display: flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
margin-bottom: 16px;
border: 1px solid var(--line);
border-radius: 4px;
background: #f4f0e6;
color: var(--brand-seal);
font-size: 17px;
}
.admin-kpi-card--accent .admin-kpi-card__icon {
border-color: rgba(236, 208, 177, 0.28);
background: rgba(236, 208, 177, 0.08);
color: var(--brand-seal-line);
}
.admin-kpi-card__foot {
display: block;
margin-top: 8px;
color: var(--ink-muted);
font-size: 12px;
}
.admin-section-title {
display: flex;
align-items: baseline;
gap: 12px;
margin: 30px 0 14px;
}
.admin-section-title h4 {
margin: 0 !important;
color: var(--brand-ink) !important;
}
.admin-pending-card {
display: flex;
align-items: center;
justify-content: space-between;
border-color: var(--line);
background: var(--paper-warm);
}
.admin-pending-card > .ant-card-body {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: 18px 20px;
}
.admin-pending-card > .ant-card-body > div {
display: flex;
flex-direction: column;
gap: 6px;
}
.admin-pending-card__label {
color: var(--ink-muted);
font-size: 12px;
}
.admin-pending-card strong {
color: var(--brand-ink);
font-family: 'Inter', 'DIN Alternate', sans-serif;
font-size: 28px;
line-height: 1;
}
.admin-table-card {
margin-top: 24px;
border-color: var(--line);
background: var(--paper-warm);
}
.admin-table-card .ant-card-head-title {
color: var(--brand-ink);
}
.admin-table-card .ant-card-head-title .anticon {
margin-right: 6px;
color: var(--brand-seal);
}
.admin-mono {
color: var(--ink-secondary);
font-family: 'Inter', monospace;
font-size: 11px;
}
.admin-money {
color: var(--brand-ink);
font-family: 'Inter', monospace;
font-size: 12px;
}
.admin-placeholder-card {
position: relative;
max-width: 760px;
padding: 34px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--paper-warm);
}
.admin-placeholder-card h4 {
margin: 0 0 10px !important;
color: var(--brand-ink) !important;
}
.admin-placeholder-card__seal {
display: inline-flex;
align-items: center;
justify-content: center;
width: 54px;
height: 54px;
margin-bottom: 20px;
border: 2px solid var(--brand-seal);
color: var(--brand-seal);
font-family: 'Noto Serif SC', 'Songti SC', serif;
font-size: 14px;
letter-spacing: 0.1em;
transform: rotate(-3deg);
}
@media (max-width: 1100px) {
.admin-login-page {
grid-template-columns: minmax(0, 1fr);
}
.admin-login-brand__inner {
min-height: auto;
padding: 44px 28px 52px;
}
.admin-login-brand__eyebrow {
margin-top: 30px;
}
}
@media (max-width: 900px) {
.admin-header {
padding: 0 16px;
}
.admin-content {
padding: 16px;
}
.admin-page__head {
align-items: flex-start;
flex-direction: column;
gap: 14px;
}
.admin-account__name {
display: none;
}
}