/** pages/profile/index.wxss **/ .profile-page { background-color: #F4F6F0; min-height: 100vh; position: relative; overflow: hidden; display: flex; flex-direction: column; } /* Animations */ .info-view-anim { animation: slideInRight 0.3s cubic-bezier(0.25, 1, 0.5, 1); } @keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } .sticky-nav { position: sticky; top: 0; z-index: 100; background: white; border-bottom: 2rpx solid #f0f0f0; padding: 20rpx; } .tab-content { padding: 32rpx; } /* Favorites Grid */ .fav-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24rpx; margin-top: 24rpx; } .fav-card { background: white; border-radius: 24rpx; overflow: hidden; box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.03); } .fav-img { width: 100%; display: block; background: #f0f0f0; } .fav-info { padding: 20rpx; } .fav-name { font-size: 28rpx; font-weight: 700; color: #37474F; margin-bottom: 12rpx; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .fav-meta-row { display: flex; align-items: center; gap: 8rpx; } .fav-type { font-size: 20rpx; color: #90A4AE; } .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80rpx 0; color: #B0BEC5; font-size: 28rpx; } /* Posts View */ .my-posts-list { padding: 40rpx; } .my-post-card { display: flex; gap: 24rpx; margin-bottom: 48rpx; position: relative; } .my-post-time { font-size: 24rpx; color: #B0BEC5; width: 140rpx; flex-shrink: 0; text-align: right; } .my-post-content-wrap { flex: 1; border-left: 4rpx solid #ECEFF1; padding-left: 24rpx; padding-bottom: 24rpx; } .my-post-images { margin: 16rpx 0; white-space: nowrap; overflow-x: auto; } .my-post-footer { display: flex; gap: 32rpx; margin-top: 16rpx; } .footer-item { display: flex; align-items: center; gap: 8rpx; font-size: 24rpx; color: #78909C; } /* Draft Card */ .draft-card { background: #FFFDE7; border-radius: 16rpx; padding: 20rpx; margin-left: 0; } .draft-card .my-post-content-wrap { border-left: 4rpx solid #FFC107; } .draft-badge { position: absolute; top: 0; left: 0; background: #FFC107; color: #fff; font-size: 20rpx; padding: 4rpx 16rpx; border-radius: 8rpx 0 8rpx 0; font-weight: 600; } /* Action Buttons */ .edit-btn, .delete-btn { cursor: pointer; } .edit-btn:active, .delete-btn:active { opacity: 0.7; } /* Badges View */ .badges-content { padding: 40rpx; background: white; height: 100%; } .level-card-large { background: linear-gradient(135deg, #FFF3E0 0%, #FFE0B2 100%); border-radius: 40rpx; padding: 48rpx; margin-bottom: 60rpx; color: #E65100; } .level-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 40rpx; } .level-label { font-size: 26rpx; opacity: 0.8; display: block; } .level-value { font-size: 48rpx; font-weight: 800; display: block; } .level-progress-section { } .progress-text { display: flex; justify-content: space-between; font-size: 24rpx; font-weight: 600; margin-bottom: 12rpx; } .next-level-tip { font-size: 22rpx; margin-top: 16rpx; display: block; opacity: 0.8; } .section-title-badges { font-size: 32rpx; font-weight: 700; color: #333; margin-bottom: 32rpx; } /* Basic TDesign Grid Item styling override if needed */ .t-grid-item__content { padding: 24rpx 0 !important; } /* Main Profile */ .main-profile-view { display: flex; flex-direction: column; height: 100%; } .profile-header { padding: 40rpx 48rpx; background: white; display: flex; justify-content: space-between; align-items: flex-start; } .user-main { display: flex; align-items: center; gap: 32rpx; } .user-text { display: flex; flex-direction: column; gap: 12rpx; } .user-name { font-size: 40rpx; font-weight: 800; color: var(--text-main); } .stats-grid { display: flex; justify-content: space-around; padding: 40rpx; margin: 24rpx 40rpx; background: white; border-radius: 32rpx; box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.02); } .stat-col { display: flex; flex-direction: column; align-items: center; gap: 4rpx; } .stat-num { font-size: 36rpx; font-weight: 800; color: var(--text-main); } .stat-label { font-size: 22rpx; color: #90A4AE; } .profile-menu { padding: 0 32rpx; }