feat: ui update

This commit is contained in:
2026-09-15 16:01:59 +08:00
parent 1a11816839
commit 26c392d612
89 changed files with 10377 additions and 4861 deletions
+75 -219
View File
@@ -1,7 +1,9 @@
.edit-page {
/** 穿搭编辑:无缝拼图预览 + 发丝线表单 + 悬浮底部操作条 **/
.page-flex {
height: 100vh;
display: flex;
flex-direction: column;
overflow: hidden;
}
.scroll-body {
@@ -9,288 +11,142 @@
height: 0;
}
.nav-cancel {
font-size: 30rpx;
color: #007AFF;
padding: 0 8rpx;
}
/* 预览区 */
.preview {
margin: 24rpx;
height: 320rpx;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
.oe-preview {
margin: 40rpx var(--pad) 0;
}
.preview-empty {
.oe-empty {
display: flex;
flex-direction: column;
align-items: center;
color: #C7C7CC;
justify-content: center;
aspect-ratio: 1 / 1;
background: var(--paper-2);
border-radius: var(--r-img);
color: var(--ink-4);
}
.preview-empty .icon {
.oe-empty .icon {
width: 96rpx;
height: 96rpx;
}
.pe-title {
font-size: 26rpx;
color: #8E8E93;
margin-top: 16rpx;
.oe-empty-t {
margin-top: 24rpx;
font-family: var(--serif);
font-size: 32rpx;
color: var(--ink-2);
}
.pe-desc {
font-size: 22rpx;
color: #C7C7CC;
margin-top: 8rpx;
}
.preview-items {
width: 100%;
height: 100%;
position: relative;
}
.preview-item {
position: absolute;
width: 140rpx;
height: 180rpx;
background: #F8F8FA;
border-radius: 16rpx;
border: 1rpx solid #E5E5EA;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.preview-0 { left: 30rpx; top: 60rpx; transform: rotate(-5deg); }
.preview-1 { left: 120rpx; top: 100rpx; transform: rotate(3deg); }
.preview-2 { left: 210rpx; top: 50rpx; transform: rotate(6deg); }
.preview-3 { left: 300rpx; top: 110rpx; transform: rotate(-3deg); }
.preview-4 { left: 390rpx; top: 70rpx; transform: rotate(8deg); }
.preview-img {
width: 100%;
height: 100%;
}
.preview-placeholder {
width: 56rpx;
height: 56rpx;
color: #C7C7CC;
}
.preview-more {
position: absolute;
right: 24rpx;
top: 24rpx;
width: 56rpx;
height: 56rpx;
border-radius: 50%;
background: #007AFF;
color: #fff;
font-size: 24rpx;
display: flex;
align-items: center;
justify-content: center;
.oe-empty-d {
margin-top: 10rpx;
font-size: 23rpx;
color: var(--ink-3);
}
/* 表单 */
.form-card {
margin: 0 24rpx 24rpx;
.oe-form {
padding: 64rpx var(--pad) 0;
}
.field {
margin-bottom: 32rpx;
.oe-field {
margin-bottom: 40rpx;
}
.field:last-child {
.oe-field:last-child {
margin-bottom: 0;
}
.field-label {
.oe-label {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 26rpx;
font-weight: 600;
color: #1C1C1E;
color: var(--ink-2);
margin-bottom: 16rpx;
}
.req {
color: #FF3B30;
.oe-req {
color: var(--ink);
}
.count {
.oe-count {
font-size: 22rpx;
color: #8E8E93;
font-weight: 400;
color: var(--ink-3);
}
/* 选择衣物入口 */
.select-entry {
margin: 0 24rpx 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
.oe-grp {
margin-top: 64rpx;
}
.entry-left {
display: flex;
align-items: center;
}
.entry-icon {
width: 72rpx;
height: 72rpx;
border-radius: 24rpx;
background: rgba(0, 122, 255, 0.1);
color: #007AFF;
display: flex;
align-items: center;
justify-content: center;
margin-right: 24rpx;
}
.entry-icon .icon {
width: 40rpx;
height: 40rpx;
}
.entry-title {
font-size: 28rpx;
font-weight: 600;
color: #1C1C1E;
}
.entry-desc {
font-size: 24rpx;
color: #8E8E93;
margin-top: 4rpx;
}
.entry-right {
display: flex;
align-items: center;
color: #8E8E93;
}
.entry-count {
font-size: 26rpx;
margin-right: 8rpx;
}
.entry-count.on {
color: #007AFF;
}
.entry-right .icon {
width: 28rpx;
height: 28rpx;
color: #C7C7CC;
}
/* 底部按钮 */
.footer {
padding: 16rpx 24rpx;
padding-bottom: calc(40rpx + env(safe-area-inset-bottom));
}
.delete-link {
text-align: center;
padding: 16rpx 0 24rpx;
.oe-entry-d {
margin-top: 6rpx;
font-size: 23rpx;
color: var(--ink-3);
}
/* 多选视图 */
.select-view {
flex: 1;
height: 0;
display: flex;
flex-direction: column;
}
.cat-scroll {
background: #fff;
white-space: nowrap;
.segbar {
position: sticky;
top: 0;
z-index: 20;
background: var(--glass);
-webkit-backdrop-filter: saturate(180%) blur(20px);
backdrop-filter: saturate(180%) blur(20px);
border-bottom: 1rpx solid var(--hairline);
flex-shrink: 0;
}
.cat-row {
display: inline-flex;
padding: 20rpx 24rpx;
}
.cat-item {
flex-shrink: 0;
padding: 0 32rpx;
height: 60rpx;
line-height: 60rpx;
border-radius: 30rpx;
font-size: 26rpx;
color: #3C3C43;
background: #F2F2F7;
margin-right: 16rpx;
}
.cat-item.active {
background: #007AFF;
color: #fff;
}
.select-body {
flex: 1;
height: 0;
}
.grid {
.oe-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 44rpx 26rpx;
padding: 40rpx var(--pad) 0;
}
.oe-skel {
display: flex;
flex-wrap: wrap;
padding: 24rpx;
gap: 24rpx;
flex-direction: column;
gap: 18rpx;
}
.grid-item {
width: calc(50% - 12rpx);
box-sizing: border-box;
.oe-tile {
display: block;
width: 100%;
}
.sk-card {
height: 360rpx;
border-radius: 32rpx;
/* 底部操作条 */
.oe-del {
display: block;
text-align: center;
padding: 8rpx 0 28rpx;
}
.select-footer {
flex-shrink: 0;
background: #fff;
border-top: 1rpx solid #E5E5EA;
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 32rpx;
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
.oe-count-wrap {
flex: 1;
min-width: 0;
}
.sf-count {
.oe-count-t {
font-size: 30rpx;
font-weight: 600;
color: #1C1C1E;
color: var(--ink);
}
.sf-desc {
font-size: 22rpx;
color: #8E8E93;
.oe-count-d {
margin-top: 4rpx;
font-size: 22rpx;
color: var(--ink-3);
}
.sf-confirm {
width: 200rpx;
height: 80rpx;
.oe-confirm {
width: 240rpx;
height: 88rpx;
font-size: 28rpx;
}