Files
hera-web/src/pages/profile-edit/index.scss
T

370 lines
6.5 KiB
SCSS
Raw Normal View History

2026-10-13 22:50:37 +08:00
.edit-page {
min-height: 100vh;
box-sizing: border-box;
color: #211c3a;
background:
radial-gradient(circle at 14% 12%, rgba(179, 154, 255, 0.72), transparent 34%),
linear-gradient(180deg, #c2afff 0%, #e4d8ff 36%, #edf4ff 70%, #edf5ff 100%);
overflow-x: hidden;
}
// H5 keeps lazy-loaded page styles after navigation; contain all editor rules.
.edit-page {
.nav {
height: calc(112px + env(safe-area-inset-top));
padding: 0 32px 24px;
align-items: flex-end;
}
.nav-title {
color: #211c3a;
font-size: 40px;
font-weight: 800;
}
.back {
left: 34px;
bottom: 18px;
color: #292244;
font-size: 60px;
}
.profile-loading {
padding-top: calc(280px + env(safe-area-inset-top));
text-align: center;
color: rgba(33, 28, 58, 0.58);
font-size: 28px;
}
.edit-content {
width: 100%;
max-width: 750px;
min-height: 100vh;
margin: 0 auto;
padding: calc(164px + env(safe-area-inset-top)) 64px calc(78px + env(safe-area-inset-bottom));
box-sizing: border-box;
2026-10-13 22:50:37 +08:00
display: flex;
flex-direction: column;
align-items: center;
}
.avatar-button {
width: 280px;
height: 280px;
flex: none;
border-radius: 50%;
background: rgba(255, 255, 237, 0.94);
2026-10-13 22:50:37 +08:00
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: visible;
box-shadow: 0 4px 12px rgba(102, 83, 151, 0.08);
}
.avatar-image {
width: 100%;
height: 100%;
border-radius: 50%;
}
.edit-water-mascot {
width: 142px;
height: 178px;
position: relative;
border-radius: 70% 70% 56% 56% / 82% 82% 42% 42%;
background: linear-gradient(180deg, #a0f6ff 0%, #47d2ef 54%, #1fb7e4 100%);
box-shadow: inset 16px 10px 30px rgba(255, 255, 255, 0.28);
2026-10-13 22:50:37 +08:00
}
.edit-mascot-eye {
2026-10-13 22:50:37 +08:00
position: absolute;
top: 100px;
width: 10px;
height: 14px;
border-radius: 50%;
background: #3275ef;
2026-10-13 22:50:37 +08:00
}
.edit-mascot-eye.left { left: 48px; }
.edit-mascot-eye.right { right: 48px; }
.edit-mascot-smile {
position: absolute;
left: 56px;
top: 116px;
width: 34px;
height: 22px;
border: 7px solid #3275ef;
border-top: 0;
border-radius: 0 0 28px 28px;
2026-10-13 22:50:37 +08:00
box-sizing: border-box;
}
.avatar-add {
position: absolute;
right: 4px;
bottom: 4px;
width: 66px;
height: 66px;
border-radius: 50%;
background: linear-gradient(145deg, #ffb13b 0%, #ff8c1f 100%);
border: 5px solid rgba(255, 255, 255, 0.9);
box-sizing: border-box;
box-shadow: 0 7px 16px rgba(188, 100, 19, 0.24);
2026-10-13 22:50:37 +08:00
}
.plus-line {
position: absolute;
left: 50%;
top: 50%;
width: 30px;
height: 6px;
border-radius: 6px;
background: #fff;
transform: translate(-50%, -50%);
2026-10-13 22:50:37 +08:00
}
.plus-line.vertical {
transform: translate(-50%, -50%) rotate(90deg);
}
.form-card {
width: 100%;
min-height: 94px;
border: 3px solid rgba(255, 255, 255, 0.72);
border-radius: 50px;
background: rgba(255, 255, 255, 0.68);
box-sizing: border-box;
2026-10-13 22:50:37 +08:00
display: flex;
align-items: center;
color: #28204e;
2026-10-13 22:50:37 +08:00
}
.nickname-card {
2026-10-13 22:50:37 +08:00
margin-top: 58px;
padding: 0 30px;
2026-10-13 22:50:37 +08:00
}
.field-label {
flex: none;
font-size: 30px;
font-weight: 800;
2026-10-13 22:50:37 +08:00
}
.nickname-input {
height: 90px;
flex: 1;
min-width: 0;
margin-left: 36px;
color: #28204e;
font-size: 31px;
2026-10-13 22:50:37 +08:00
display: flex;
align-items: center;
}
.nickname-input input {
height: 100%;
padding: 0;
line-height: 90px;
box-sizing: border-box;
}
.nickname-count {
flex: none;
color: #746c9c;
font-size: 28px;
}
.gender-row {
width: 100%;
margin: 34px 0;
display: flex;
justify-content: space-between;
gap: 76px;
}
.gender-option {
height: 94px;
flex: 1;
border: 3px solid rgba(255, 255, 255, 0.7);
border-radius: 50px;
background: rgba(255, 255, 255, 0.66);
color: #332463;
font-size: 31px;
font-weight: 700;
2026-10-13 22:50:37 +08:00
display: flex;
align-items: center;
justify-content: center;
gap: 22px;
}
.gender-option.active {
color: #fff;
background: linear-gradient(90deg, #65c8f9 0%, #51b8ef 100%);
}
.gender-option + .gender-option {
margin-top: 0;
}
.gender-symbol {
font-size: 52px;
font-weight: 500;
line-height: 1;
}
.picker-card {
margin-bottom: 34px;
padding: 0 28px 0 31px;
}
.form-picker {
width: 100%;
display: block;
}
.field-value {
flex: 1;
min-width: 0;
margin-left: 36px;
font-size: 29px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.field-value.location {
font-size: 27px;
}
.field-value.placeholder {
color: #8e88aa;
}
.chevron {
flex: none;
margin-left: 14px;
font-size: 56px;
font-weight: 300;
line-height: 1;
2026-10-13 22:50:37 +08:00
}
.save-button {
width: 456px;
height: 96px;
margin-top: 36px;
border-radius: 52px;
color: #fff;
background: #ff9828;
font-size: 34px;
font-weight: 800;
2026-10-13 22:50:37 +08:00
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 10px 20px rgba(222, 128, 32, 0.14);
2026-10-13 22:50:37 +08:00
}
.save-button[disabled] {
opacity: 0.68;
2026-10-13 22:50:37 +08:00
}
.edit-note {
margin-top: 28px;
color: #666275;
font-size: 27px;
}
.edit-note text {
color: #f13d57;
}
.avatar-mask {
position: fixed;
z-index: 30;
inset: 0;
background: rgba(21, 17, 39, 0.62);
}
.avatar-sheet {
position: absolute;
left: 0;
right: 0;
bottom: 0;
padding-bottom: env(safe-area-inset-bottom);
border-radius: 28px 28px 0 0;
overflow: hidden;
background: #fff;
}
.avatar-action {
width: 100%;
height: 118px;
border-bottom: 1px solid #eeeef2;
border-radius: 0;
color: #202020;
background: #fff;
font-size: 33px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.wechat-avatar-action {
height: 154px;
flex-direction: column;
gap: 12px;
}
.wechat-avatar-preview {
width: 44px;
height: 44px;
border-radius: 6px;
}
.sheet-gap {
height: 16px;
background: #f5f5f7;
}
.cancel-action {
height: 126px;
border-bottom: 0;
}
@media screen and (max-height: 700px) {
.edit-content {
padding-top: calc(140px + env(safe-area-inset-top));
}
.avatar-button {
width: 220px;
height: 220px;
}
.edit-water-mascot {
transform: scale(0.82);
}
.nickname-card {
margin-top: 38px;
}
.gender-row,
.picker-card {
margin-bottom: 24px;
}
.gender-row {
margin-top: 24px;
}
.save-button {
margin-top: 18px;
}
2026-10-13 22:50:37 +08:00
}
.profile-load-error { padding: 160px 35px 50px; display: flex; flex-direction: column; gap: 28px; text-align: center; color: #856c9c; font-size: 28px; line-height: 1.8; }
.profile-load-error > button { width: 70%; padding: 20px; margin: 0 auto; border-radius: 40px; font-size: 28px; line-height: 1.5; color: #fff; background: #ae85d9; }
.profile-preview-notice { display: block; margin: 0 0 24px; color: #9a86ad; font-size: 22px; line-height: 1.5; text-align: center; }
}