会员个人中心页面初步完成

This commit is contained in:
时舟年
2026-06-04 14:18:53 +08:00
committed by liwentao
parent 1fa2fbd3f3
commit a0026b1da5
170 changed files with 18092 additions and 35 deletions
@@ -0,0 +1,271 @@
.profile-header {
width: 100%;
display: flex;
flex-direction: column;
flex-shrink: 0;
}
/* 顶栏固定:仅白底导航栏吸顶,下方用户信息可滚动 */
.profile-header__toolbar {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
width: 100%;
background-color: var(--bg-white, #ffffff);
box-sizing: border-box;
}
.profile-header__toolbar-spacer {
width: 100%;
flex-shrink: 0;
}
.profile-header__nav {
position: relative;
display: flex;
flex-direction: row;
align-items: center;
height: 44px;
padding-left: 16px;
box-sizing: border-box;
}
.profile-header__nav-left {
display: flex;
flex-direction: row;
align-items: center;
gap: 12px;
min-width: 56px;
flex-shrink: 0;
position: relative;
z-index: 2;
}
.profile-header__nav-right {
min-width: 72px;
flex-shrink: 0;
position: relative;
z-index: 2;
margin-left: auto;
}
.profile-header__title {
position: absolute;
left: 50%;
transform: translateX(-50%);
max-width: 42%;
text-align: center;
font-size: var(--font-size-md, 16px);
font-family: var(--font-family);
font-weight: 600;
color: var(--text-dark);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
pointer-events: none;
z-index: 1;
}
.profile-header__icon-bell,
.profile-header__icon-settings {
width: 22px;
height: 22px;
flex-shrink: 0;
display: block;
}
/* settings.png 为白色线稿,白底顶栏需着色后才可见 */
.profile-header__icon-settings {
filter: brightness(0) saturate(100%) invert(52%) sepia(98%) saturate(1800%) hue-rotate(346deg) brightness(102%) contrast(101%);
}
/* 用户信息渐变区 */
.profile-header__hero {
width: 100%;
background-position: center;
background-size: 100% 100%;
background-repeat: no-repeat;
background-image: url("data:image/svg+xml;utf8,%3Csvg%20viewBox%3D'0%200%20390%20239'%20preserveAspectRatio%3D'none'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%0A%20%20%20%20%20%20%3Cdefs%3E%0A%20%20%20%20%20%20%20%20%3ClinearGradient%20id%3D'grad'%20gradientUnits%3D'objectBoundingBox'%20x1%3D'0'%20y1%3D'0.5'%20x2%3D'1'%20y2%3D'0.5'%20gradientTransform%3D'matrix(-0.0000%2C%201.0000%2C%20-1.0000%2C%20-0.0000%2C%201.0000%2C%200.0000)'%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cstop%20stop-color%3D'rgba(11%2C43%2C75%2C1)'%20offset%3D'0'%2F%3E%3Cstop%20stop-color%3D'rgba(26%2C74%2C111%2C1)'%20offset%3D'1'%2F%3E%0A%20%20%20%20%20%20%20%20%3C%2FlinearGradient%3E%0A%20%20%20%20%20%20%3C%2Fdefs%3E%0A%20%20%20%20%20%20%3Crect%20width%3D'100%25'%20height%3D'100%25'%20fill%3D'url(%23grad)'%2F%3E%0A%20%20%20%20%3C%2Fsvg%3E");
}
.profile-header__inner {
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 16px 20px 28px;
width: 100%;
box-sizing: border-box;
}
.profile-header__user {
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
}
.profile-header__user-inner {
display: flex;
flex-direction: row;
gap: 14px;
align-items: center;
width: 100%;
}
.profile-header__avatar-wrap {
position: relative;
width: 72px;
height: 72px;
flex-shrink: 0;
overflow: visible;
}
.profile-header__avatar-ring {
width: 72px;
height: 72px;
border-radius: 50%;
border: 3px solid #ffffff;
overflow: hidden;
box-sizing: border-box;
background-color: rgba(255, 255, 255, 0.12);
}
.profile-header__avatar {
width: 100%;
height: 100%;
display: block;
}
.profile-header__avatar-badge {
position: absolute;
right: -1px;
bottom: -1px;
width: 24px;
height: 24px;
border-radius: 50%;
border: 2px solid #ffffff;
background-color: #2ecc71;
display: flex;
align-items: center;
justify-content: center;
z-index: 2;
box-sizing: border-box;
}
.profile-header__avatar-badge-icon {
width: 12px;
height: 12px;
display: block;
flex-shrink: 0;
filter: brightness(0) invert(1);
}
.profile-header__user-meta {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
align-items: flex-start;
}
.profile-header__user-meta-inner {
display: flex;
flex-direction: column;
gap: var(--spacing-xs, 4px);
align-items: flex-start;
width: 100%;
}
.profile-header__name {
font-size: var(--font-size-xl, 20px);
font-family: var(--font-family);
font-weight: 700;
color: var(--text-inverse);
white-space: nowrap;
}
.profile-header__phone {
font-size: var(--font-size-base, 14px);
font-family: var(--font-family);
font-weight: 400;
color: rgba(255, 212, 184, 1);
white-space: nowrap;
}
.profile-header__badge {
display: flex;
flex-direction: row;
gap: var(--spacing-xs, 4px);
align-items: center;
padding: 3px 10px;
border-radius: 10px;
background-color: var(--accent-orange);
}
.profile-header__badge-icon {
width: 12px;
height: 12px;
flex-shrink: 0;
display: block;
}
.profile-header__level {
font-size: var(--font-size-sm, 12px);
font-family: var(--font-family);
font-weight: 600;
color: var(--text-inverse);
white-space: nowrap;
}
.profile-header__stats {
width: 100%;
}
.profile-header__stats-inner {
display: flex;
flex-direction: row;
align-items: flex-start;
padding-top: 16px;
width: 100%;
}
.profile-header__stat {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
min-width: 0;
}
.profile-header__stat-inner {
display: flex;
flex-direction: column;
gap: 2px;
align-items: center;
width: 100%;
}
.profile-header__stat-value {
font-size: var(--font-size-2xl, 22px);
font-family: var(--font-family);
font-weight: 700;
color: var(--text-inverse);
white-space: nowrap;
}
.profile-header__stat-label {
font-size: var(--font-size-sm, 12px);
font-family: var(--font-family);
font-weight: 400;
color: rgba(255, 212, 184, 1);
white-space: nowrap;
}
.profile-header__stat-divider {
width: 1px;
height: 32px;
flex-shrink: 0;
background-color: rgba(255, 255, 255, 0.31);
}