This commit is contained in:
2026-07-10 16:14:31 +08:00
commit 637b0bd144
158 changed files with 33269 additions and 0 deletions
@@ -0,0 +1,668 @@
page {
min-height: 100vh;
background: #f8faff;
color: #111827;
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.record-page {
width: 750rpx;
min-height: 100vh;
margin: 0 auto;
display: flex;
flex-direction: column;
box-sizing: border-box;
background:
radial-gradient(circle at 10% 0%, rgba(116, 98, 255, 0.08), transparent 34%),
radial-gradient(circle at 88% 10%, rgba(73, 132, 255, 0.08), transparent 30%),
linear-gradient(180deg, #fbfcff 0%, #f7f9ff 46%, #ffffff 100%);
}
.record-nav {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: space-between;
}
.nav-back,
.nav-space {
width: 60rpx;
height: 60rpx;
flex: 0 0 60rpx;
display: flex;
align-items: center;
}
.nav-back text {
width: 26rpx;
height: 26rpx;
display: block;
border-left: 5rpx solid #111827;
border-bottom: 5rpx solid #111827;
transform: rotate(45deg);
box-sizing: border-box;
}
.nav-title-wrap {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10rpx;
}
.nav-title {
font-size: 34rpx;
line-height: 40rpx;
font-weight: 900;
color: #111827;
}
.nav-subtitle {
max-width: 560rpx;
color: #687086;
font-size: 22rpx;
line-height: 28rpx;
font-weight: 600;
text-align: center;
white-space: nowrap;
}
.record-content {
flex: 1;
display: flex;
flex-direction: column;
gap: 22rpx;
padding: 20rpx 32rpx 30rpx;
box-sizing: border-box;
}
.panel {
width: 100%;
display: flex;
flex-direction: column;
border: 2rpx solid #e6e9ff;
border-radius: 18rpx;
background: rgba(255, 255, 255, 0.96);
box-shadow: 0 14rpx 34rpx rgba(80, 92, 170, 0.08);
box-sizing: border-box;
}
.photo-panel {
padding: 24rpx 26rpx 24rpx;
}
.panel-title {
color: #111827;
font-size: 28rpx;
line-height: 36rpx;
font-weight: 900;
}
.photo-body {
margin-top: 14rpx;
display: flex;
align-items: center;
gap: 56rpx;
}
.photo-preview {
width: 306rpx;
height: 224rpx;
display: flex;
align-items: flex-end;
justify-content: center;
border: 2rpx solid #dce1ff;
border-radius: 14rpx;
background: linear-gradient(180deg, #f8fbff 0%, #eef3ff 100%);
overflow: hidden;
box-sizing: border-box;
position: relative;
}
.portrait-bg {
width: 190rpx;
height: 218rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
}
.portrait-head {
width: 120rpx;
height: 138rpx;
display: flex;
align-items: flex-end;
justify-content: center;
border-radius: 60rpx 60rpx 44rpx 44rpx;
background: linear-gradient(160deg, #2e1e19 0%, #684235 56%, #9c6a58 100%);
box-shadow: 0 4rpx 12rpx rgba(85, 50, 44, 0.18);
}
.face {
width: 78rpx;
height: 98rpx;
margin-bottom: 10rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 8rpx;
border-radius: 42rpx 42rpx 36rpx 36rpx;
background: linear-gradient(180deg, #ffe8dc 0%, #ffd0c2 100%);
}
.eye-row {
width: 48rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.eye-row text {
width: 8rpx;
height: 8rpx;
border-radius: 50%;
background: #251918;
}
.nose {
width: 8rpx;
height: 12rpx;
border-radius: 8rpx;
background: rgba(196, 116, 101, 0.46);
}
.mouth {
width: 24rpx;
height: 7rpx;
border-radius: 0 0 16rpx 16rpx;
background: #ca6975;
}
.hair,
.hair-main {
display: none;
}
.portrait-neck {
width: 32rpx;
height: 22rpx;
background: #ffd3c4;
}
.portrait-cloth {
width: 178rpx;
height: 68rpx;
border-radius: 40rpx 40rpx 0 0;
background: linear-gradient(120deg, #ffffff 0%, #f7f6f2 50%, #ffffff 100%);
}
.camera-badge {
width: 60rpx;
height: 60rpx;
/* margin-bottom: 20rpx; */
display: flex;
align-items: center;
justify-content: center;
border: 4rpx solid rgba(255, 255, 255, 0.88);
border-radius: 50%;
background: rgba(66, 56, 49, 0.72);
box-sizing: border-box;
flex: 0 0 60rpx;
position: absolute;
bottom: 20rpx;
}
.camera-icon {
width: 28rpx;
height: 21rpx;
border: 4rpx solid #ffffff;
border-radius: 5rpx;
box-sizing: border-box;
}
.camera-icon::after {
content: '';
width: 8rpx;
height: 8rpx;
margin: 2rpx auto 0;
display: block;
border: 3rpx solid #ffffff;
border-radius: 50%;
box-sizing: border-box;
}
.photo-actions,
.voice-actions {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 24rpx;
}
.primary-small,
.ghost-small,
.stop-small {
height: 70rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 16rpx;
font-size: 26rpx;
line-height: 32rpx;
font-weight: 900;
box-sizing: border-box;
}
.primary-small {
color: #ffffff;
background: linear-gradient(100deg, #4e84ff 0%, #7d3ff3 100%);
box-shadow: 0 12rpx 24rpx rgba(91, 86, 245, 0.22);
}
.ghost-small,
.stop-small {
border: 2rpx solid #d9dcf2;
background: #fafbff;
color: #596083;
}
.hint-row {
margin-top: 18rpx;
display: flex;
align-items: center;
gap: 8rpx;
color: #7a8196;
font-size: 21rpx;
line-height: 28rpx;
font-weight: 600;
}
.hint-dot {
width: 18rpx;
height: 18rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: #b9bfd2;
color: #ffffff;
font-size: 12rpx;
line-height: 16rpx;
font-weight: 900;
}
.voice-panel {
padding: 24rpx 26rpx 24rpx;
}
.voice-body {
margin-top: 12rpx;
display: flex;
align-items: center;
gap: 32rpx;
}
.voice-visual {
width: 340rpx;
min-height: 240rpx;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
}
.recording-pill {
width: 116rpx;
height: 44rpx;
margin-right: 224rpx;
display: flex;
align-items: center;
justify-content: center;
gap: 10rpx;
border-radius: 22rpx;
color: #ffffff;
background: linear-gradient(90deg, #7380ff 0%, #8a55ed 100%);
box-shadow: 0 8rpx 18rpx rgba(117, 94, 239, 0.3);
font-size: 21rpx;
line-height: 26rpx;
font-weight: 800;
}
.recording-pill text:first-child {
width: 12rpx;
height: 12rpx;
border-radius: 50%;
background: #ffffff;
}
.recording-active .recording-pill text:first-child {
animation: blinkDot 1s ease-in-out infinite;
}
.wave-row {
width: 118rpx;
height: 82rpx;
display: flex;
align-items: center;
justify-content: center;
gap: 7rpx;
}
.wave-row text {
width: 5rpx;
border-radius: 6rpx;
background: linear-gradient(180deg, #5f86ff 0%, #bd67f2 100%);
transform-origin: center;
}
.recording-active .wave-row text:nth-child(2n) {
animation: waveScaleA 0.78s ease-in-out infinite;
}
.recording-active .wave-row text:nth-child(2n + 1) {
animation: waveScaleB 0.92s ease-in-out infinite;
}
.recording-active .wave-row text:nth-child(3n) {
animation-delay: 0.18s;
}
.mic-wrap {
width: 98rpx;
height: 98rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: radial-gradient(circle, rgba(139, 102, 255, 0.13) 0%, rgba(139, 102, 255, 0.05) 68%, transparent 70%);
}
.pulse-ring {
width: 90rpx;
height: 90rpx;
margin-right: -90rpx;
border: 3rpx solid rgba(135, 98, 247, 0.28);
border-radius: 50%;
box-sizing: border-box;
}
.recording-active .ring-one { animation: pulseRing 1.5s ease-out infinite; }
.recording-active .ring-two { animation: pulseRing 1.5s ease-out 0.3s infinite; }
.recording-active .ring-three { animation: pulseRing 1.5s ease-out 0.6s infinite; }
.mic-core {
width: 90rpx;
height: 90rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: linear-gradient(160deg, #77a0ff 0%, #8346f5 100%);
box-shadow: 0 10rpx 24rpx rgba(117, 86, 243, 0.32);
}
.mic-icon {
width: 32rpx;
height: 45rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.mic-icon::before {
content: '';
width: 24rpx;
height: 34rpx;
border-radius: 14rpx;
background: #ffffff;
}
.mic-icon text {
width: 34rpx;
height: 14rpx;
display: block;
border-bottom: 5rpx solid #ffffff;
border-left: 5rpx solid #ffffff;
border-right: 5rpx solid #ffffff;
border-radius: 0 0 18rpx 18rpx;
box-sizing: border-box;
}
.record-time {
width: 100%;
margin-top: 2rpx;
color: #586085;
font-size: 31rpx;
line-height: 38rpx;
font-weight: 600;
text-align: center;
}
.stop-small {
gap: 16rpx;
}
.stop-dot {
width: 16rpx;
height: 16rpx;
border-radius: 3rpx;
background: #ff6b6b;
}
.voice-hint {
margin-top: 8rpx;
}
.script-section {
margin-top: 24rpx;
display: flex;
flex-direction: column;
gap: 12rpx;
}
.script-title {
color: #111827;
font-size: 24rpx;
line-height: 32rpx;
font-weight: 900;
}
.script-card {
min-height: 92rpx;
padding: 18rpx 22rpx;
display: flex;
align-items: center;
border: 2rpx solid #dfe3ff;
border-radius: 10rpx;
background: linear-gradient(180deg, #fbfbff 0%, #f6f7ff 100%);
box-sizing: border-box;
color: #4d557d;
font-size: 24rpx;
line-height: 36rpx;
font-weight: 600;
}
.default-section {
display: flex;
flex-direction: column;
gap: 12rpx;
}
.default-title {
color: #4f47ff;
font-size: 23rpx;
line-height: 30rpx;
font-weight: 900;
}
.default-row {
display: flex;
gap: 10rpx;
}
.default-card {
flex: 1;
height: 88rpx;
min-width: 0;
padding: 10rpx 12rpx;
display: flex;
align-items: center;
gap: 12rpx;
border: 2rpx solid #e4e7f6;
border-radius: 14rpx;
background: rgba(255, 255, 255, 0.94);
box-shadow: 0 10rpx 24rpx rgba(80, 92, 170, 0.08);
box-sizing: border-box;
}
.mini-avatar {
width: 58rpx;
height: 58rpx;
border-radius: 12rpx;
background:
radial-gradient(circle at 50% 32%, #ffe0d2 0 16rpx, transparent 17rpx),
radial-gradient(circle at 50% 35%, #4b2d25 0 24rpx, transparent 25rpx),
linear-gradient(180deg, #eef4ff 0%, #ffffff 100%);
flex: 0 0 58rpx;
}
.mini-voice {
width: 58rpx;
height: 58rpx;
display: flex;
align-items: center;
justify-content: center;
gap: 5rpx;
border-radius: 12rpx;
background: #eef2ff;
flex: 0 0 58rpx;
}
.mini-voice text {
width: 5rpx;
border-radius: 5rpx;
background: linear-gradient(180deg, #5f86ff 0%, #8550f2 100%);
}
.default-name {
flex: 1;
min-width: 0;
color: #111827;
font-size: 23rpx;
line-height: 30rpx;
font-weight: 900;
white-space: nowrap;
}
.trial-pill {
padding: 6rpx 12rpx;
border-radius: 18rpx;
background: #fff3db;
color: #f4a326;
font-size: 18rpx;
line-height: 22rpx;
font-weight: 800;
white-space: nowrap;
}
.blue-pill {
background: #e9f3ff;
color: #5a96f0;
}
.next-action {
height: 78rpx;
margin-top: -2rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 16rpx;
color: #ffffff;
background: linear-gradient(100deg, #4e84ff 0%, #7d3ff3 100%);
box-shadow: 0 12rpx 24rpx rgba(91, 86, 245, 0.24);
font-size: 31rpx;
line-height: 38rpx;
font-weight: 900;
}
@keyframes waveScaleA {
0%, 100% { transform: scaleY(0.62); opacity: 0.62; }
50% { transform: scaleY(1.18); opacity: 1; }
}
@keyframes waveScaleB {
0%, 100% { transform: scaleY(1); opacity: 0.88; }
50% { transform: scaleY(0.55); opacity: 0.55; }
}
@keyframes pulseRing {
0% { transform: scale(0.72); opacity: 0.7; }
100% { transform: scale(1.72); opacity: 0; }
}
@keyframes blinkDot {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.38; transform: scale(0.72); }
}
.bar-22 { height: 22rpx; }
.bar-30 { height: 30rpx; }
.bar-34 { height: 34rpx; }
.bar-38 { height: 38rpx; }
.bar-42 { height: 42rpx; }
.bar-46 { height: 46rpx; }
.bar-48 { height: 48rpx; }
.bar-52 { height: 52rpx; }
.bar-58 { height: 58rpx; }
.bar-62 { height: 62rpx; }
.bar-70 { height: 70rpx; }
.mini-bar-18 { height: 18rpx; }
.mini-bar-28 { height: 28rpx; }
.mini-bar-30 { height: 30rpx; }
.mini-bar-36 { height: 36rpx; }
.mini-bar-46 { height: 46rpx; }
.mini-bar-56 { height: 56rpx; }
.icon-placeholder {
display: block;
flex-shrink: 0;
background: none;
border: 0;
box-shadow: none;
transform: none;
}
.asset-status {
margin-top: 14rpx;
height: 44rpx;
padding: 0 18rpx;
display: inline-flex;
align-items: center;
align-self: flex-start;
border-radius: 22rpx;
font-size: 21rpx;
line-height: 28rpx;
font-weight: 800;
box-sizing: border-box;
}
.success-status {
color: #16854f;
background: #e9f8f0;
border: 2rpx solid #bdebd3;
}
.pending-status {
color: #5a5f89;
background: #f1f3ff;
border: 2rpx solid #dfe3ff;
}