Files
soul-yongping/miniprogram/pages/index/index.wxss
Alex-larget 0d12ab1d07 Update project documentation and enhance user interaction features
- Added a new entry for user interaction habit analysis based on agent transcripts, summarizing key insights into communication styles and preferences.
- Updated project indices to reflect the latest developments, including the addition of a wallet balance feature and enhancements to the mini program's user interface for better user experience.
- Improved the handling of loading states in the chapters page, ensuring a smoother user experience during data retrieval.
- Implemented a gift payment sharing feature, allowing users to share payment requests with friends for collaborative purchases.
2026-03-17 11:44:36 +08:00

948 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Soul创业实验 - 首页样式
* 1:1还原Web版本UI
*/
.page {
min-height: 100vh;
background: #000000;
padding-bottom: 200rpx;
}
/* ===== 导航栏占位 ===== */
.nav-placeholder {
width: 100%;
}
/* ===== 顶部区域 ===== */
.header {
padding: 0 32rpx 32rpx;
}
.header-content {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 32rpx;
padding-top: 24rpx;
}
.logo-section {
display: flex;
align-items: center;
gap: 16rpx;
}
.logo-icon {
width: 80rpx;
height: 80rpx;
border-radius: 20rpx;
background: linear-gradient(135deg, #00CED1 0%, #20B2AA 100%);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 8rpx 24rpx rgba(0, 206, 209, 0.3);
}
.logo-text {
color: #000000;
font-size: 36rpx;
font-weight: 700;
}
.logo-info {
display: flex;
flex-direction: column;
}
.logo-title-text {
font-size: 36rpx;
font-weight: 700;
color: #ffffff;
}
.contact-btn {
display: flex;
align-items: center;
gap: 12rpx;
padding: 8rpx 20rpx 8rpx 12rpx;
background: rgba(255, 255, 255, 0.08);
border: 2rpx solid rgba(255, 255, 255, 0.1);
border-radius: 40rpx;
font-size: 24rpx;
font-weight: 500;
color: #ffffff;
}
.contact-avatar {
width: 48rpx;
height: 48rpx;
border-radius: 50%;
background: rgba(255, 255, 255, 0.1);
}
.contact-text {
font-size: 24rpx;
}
.logo-title {
font-size: 36rpx;
font-weight: 700;
}
.text-white {
color: #ffffff;
}
.brand-color {
color: #00CED1;
}
.logo-subtitle {
font-size: 22rpx;
color: rgba(255, 255, 255, 0.4);
margin-top: 8rpx;
display: block;
}
.header-right {
display: flex;
align-items: center;
gap: 16rpx;
}
.chapter-badge {
font-size: 22rpx;
color: #00CED1;
background: rgba(0, 206, 209, 0.1);
padding: 8rpx 16rpx;
border-radius: 32rpx;
}
/* ===== 搜索栏 ===== */
.search-bar {
display: flex;
align-items: center;
gap: 24rpx;
padding: 24rpx 32rpx;
background: #1c1c1e;
border-radius: 24rpx;
border: 2rpx solid rgba(255, 255, 255, 0.05);
}
.search-icon-wrap {
width: 32rpx;
height: 32rpx;
display: flex;
align-items: center;
justify-content: center;
}
.search-icon-text {
font-size: 24rpx;
opacity: 0.6;
}
.search-placeholder {
font-size: 28rpx;
color: rgba(255, 255, 255, 0.4);
}
/* ===== 主内容区 ===== */
.main-content {
padding: 0 32rpx;
width: 100%;
box-sizing: border-box;
}
.main-content > .banner-card {
margin-bottom: 24rpx;
}
.main-content > .card {
margin-bottom: 24rpx;
}
/* ===== Banner卡片 ===== */
.banner-card {
position: relative;
padding: 40rpx;
border-radius: 32rpx;
overflow: hidden;
background: linear-gradient(135deg, #0d3331 0%, #1a1a2e 50%, #16213e 100%);
margin-bottom: 24rpx;
}
.banner-skeleton .banner-title {
color: rgba(255, 255, 255, 0.5);
}
.banner-glow {
position: absolute;
top: 0;
right: 0;
width: 256rpx;
height: 256rpx;
background: #00CED1;
border-radius: 50%;
filter: blur(120rpx);
opacity: 0.2;
}
.banner-tag {
display: inline-block;
padding: 8rpx 16rpx;
background: #00CED1;
color: #000000;
font-size: 22rpx;
font-weight: 500;
border-radius: 8rpx;
margin-bottom: 24rpx;
}
.banner-title {
font-size: 36rpx;
font-weight: 700;
color: #ffffff;
margin-bottom: 16rpx;
padding-right: 64rpx;
}
.banner-part {
font-size: 28rpx;
color: rgba(255, 255, 255, 0.6);
margin-bottom: 24rpx;
}
.banner-action {
display: flex;
align-items: center;
gap: 8rpx;
}
.banner-action-text {
font-size: 28rpx;
color: #00CED1;
font-weight: 500;
}
.banner-arrow {
color: #00CED1;
font-size: 28rpx;
}
/* ===== 通用卡片 ===== */
.card {
background: #1c1c1e;
border-radius: 32rpx;
padding: 32rpx;
border: 2rpx solid rgba(255, 255, 255, 0.05);
margin: 0 0 24rpx 0;
width: 100%;
box-sizing: border-box;
}
/* ===== 阅读进度卡 ===== */
.progress-card {
width: 100%;
background: #1c1c1e;
border-radius: 24rpx;
padding: 28rpx;
border: 2rpx solid rgba(255, 255, 255, 0.05);
margin: 0 0 24rpx 0;
box-sizing: border-box;
}
.progress-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 24rpx;
}
.progress-title {
font-size: 28rpx;
color: #ffffff;
font-weight: 500;
}
.progress-count {
font-size: 22rpx;
color: rgba(255, 255, 255, 0.4);
}
.progress-bar-wrapper {
margin-bottom: 24rpx;
}
.progress-bar-bg {
width: 100%;
height: 16rpx;
background: #2c2c2e;
border-radius: 8rpx;
overflow: hidden;
}
.progress-bar-fill {
height: 100%;
background: linear-gradient(90deg, #00CED1 0%, #20B2AA 100%);
border-radius: 8rpx;
transition: width 0.3s ease;
}
.progress-stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 24rpx;
}
.stat-item {
text-align: center;
}
.stat-value {
font-size: 36rpx;
font-weight: 700;
color: #ffffff;
display: block;
}
.stat-label {
font-size: 22rpx;
color: rgba(255, 255, 255, 0.4);
}
/* ===== 区块标题 ===== */
.section {
margin-bottom: 48rpx;
}
.section-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 24rpx;
}
.section-title {
font-size: 32rpx;
font-weight: 600;
color: #ffffff;
}
.section-more {
display: flex;
align-items: center;
gap: 8rpx;
}
.more-text {
font-size: 24rpx;
color: #00CED1;
}
.more-arrow {
font-size: 24rpx;
color: #00CED1;
}
/* ===== 精选推荐列表 ===== */
.featured-list {
display: flex;
flex-direction: column;
gap: 24rpx;
}
.featured-item {
display: flex;
align-items: flex-start;
justify-content: space-between;
padding: 32rpx;
background: #1c1c1e;
border-radius: 24rpx;
border: 2rpx solid rgba(255, 255, 255, 0.05);
}
.featured-item:active {
transform: scale(0.98);
background: #2c2c2e;
}
.featured-content {
flex: 1;
}
.featured-meta {
display: flex;
align-items: center;
gap: 16rpx;
margin-bottom: 12rpx;
}
.featured-id {
font-size: 28rpx;
font-weight: 600;
}
.featured-tag {
font-size: 20rpx;
font-weight: 600;
padding: 4rpx 12rpx;
border-radius: 8rpx;
}
.tag-hot {
background: rgba(246, 173, 85, 0.15);
color: #F6AD55;
}
.tag-rec {
background: rgba(0, 206, 209, 0.15);
color: #00CED1;
}
.tag {
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
padding: 6rpx 16rpx;
min-width: 80rpx;
border-radius: 8rpx;
box-sizing: border-box;
text-align: center;
}
.tag-free {
background: rgba(0, 206, 209, 0.1);
color: #00CED1;
}
.tag-pink {
background: rgba(233, 30, 99, 0.1);
color: #E91E63;
}
.tag-purple {
background: rgba(123, 97, 255, 0.1);
color: #7B61FF;
}
.featured-title {
font-size: 28rpx;
color: #ffffff;
font-weight: 500;
display: block;
margin-bottom: 8rpx;
}
.featured-part {
font-size: 22rpx;
color: rgba(255, 255, 255, 0.4);
}
.featured-arrow {
font-size: 32rpx;
color: rgba(255, 255, 255, 0.3);
margin-top: 8rpx;
}
/* ===== 内容概览列表 ===== */
.parts-list {
display: flex;
flex-direction: column;
gap: 24rpx;
}
.part-item {
display: flex;
align-items: center;
gap: 24rpx;
padding: 32rpx;
background: #1c1c1e;
border-radius: 24rpx;
border: 2rpx solid rgba(255, 255, 255, 0.05);
}
.part-item:active {
transform: scale(0.98);
background: #2c2c2e;
}
.part-icon {
width: 80rpx;
height: 80rpx;
border-radius: 16rpx;
background: linear-gradient(135deg, rgba(0, 206, 209, 0.2) 0%, rgba(32, 178, 170, 0.1) 100%);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.part-number {
font-size: 28rpx;
font-weight: 700;
color: #00CED1;
}
.part-info {
flex: 1;
min-width: 0;
}
.part-title {
font-size: 28rpx;
color: #ffffff;
font-weight: 500;
display: block;
margin-bottom: 4rpx;
}
.part-subtitle {
font-size: 22rpx;
color: rgba(255, 255, 255, 0.4);
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.part-arrow {
font-size: 32rpx;
color: rgba(255, 255, 255, 0.3);
flex-shrink: 0;
}
/* ===== 序言入口 ===== */
.preface-card {
display: flex;
align-items: center;
justify-content: space-between;
padding: 32rpx;
border-radius: 24rpx;
background: linear-gradient(90deg, rgba(0, 206, 209, 0.1) 0%, transparent 100%);
border: 2rpx solid rgba(0, 206, 209, 0.2);
margin-bottom: 24rpx;
}
.preface-card:active {
opacity: 0.8;
}
.preface-content {
flex: 1;
}
.preface-title {
font-size: 28rpx;
color: #ffffff;
font-weight: 500;
display: block;
margin-bottom: 8rpx;
}
.preface-desc {
font-size: 24rpx;
color: rgba(255, 255, 255, 0.6);
}
/* ===== 超级个体(横向滚动) ===== */
/* 加载骨架动画 */
.super-loading {
width: 100%;
margin: 0 -32rpx;
padding: 0 32rpx;
}
.super-loading-inner {
display: flex;
gap: 32rpx;
padding-bottom: 16rpx;
}
.super-loading-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 16rpx;
min-width: 140rpx;
}
.super-loading-avatar {
width: 112rpx;
height: 112rpx;
border-radius: 50%;
background: linear-gradient(90deg, #2c2c2e 25%, #3a3a3c 50%, #2c2c2e 75%);
background-size: 200% 100%;
animation: super-shimmer 1.2s ease-in-out infinite;
}
.super-loading-name {
width: 80rpx;
height: 24rpx;
border-radius: 8rpx;
background: linear-gradient(90deg, #2c2c2e 25%, #3a3a3c 50%, #2c2c2e 75%);
background-size: 200% 100%;
animation: super-shimmer 1.2s ease-in-out infinite 0.2s;
}
@keyframes super-shimmer {
0% { background-position: 100% 0; }
100% { background-position: -100% 0; }
}
.super-scroll {
white-space: nowrap;
width: 100%;
margin: 0 -32rpx;
padding: 0 32rpx;
}
.super-scroll::-webkit-scrollbar {
display: none;
}
.super-scroll-inner {
display: inline-flex;
gap: 32rpx;
padding-bottom: 16rpx;
}
.super-item-h {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 16rpx;
min-width: 140rpx;
}
.super-scroll .super-avatar {
width: 112rpx;
height: 112rpx;
}
.super-scroll .super-name {
font-size: 20rpx;
max-width: 120rpx;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.super-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 10rpx;
}
.super-avatar {
width: 108rpx;
height: 108rpx;
border-radius: 50%;
overflow: hidden;
background: rgba(0,206,209,0.1);
display: flex;
align-items: center;
justify-content: center;
border: 3rpx solid rgba(255,255,255,0.1);
}
.super-avatar-vip {
border: 3rpx solid #FFD700;
box-shadow: 0 0 12rpx rgba(255,215,0,0.3);
}
.super-avatar-img {
width: 100%;
height: 100%;
object-fit: cover;
}
.super-avatar-text {
font-size: 40rpx;
font-weight: 600;
color: #00CED1;
}
.super-name {
font-size: 22rpx;
color: rgba(255,255,255,0.7);
text-align: center;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.super-empty {
padding: 32rpx;
text-align: center;
background: rgba(255,255,255,0.03);
border-radius: 16rpx;
}
.super-empty-text {
font-size: 24rpx;
color: rgba(255,255,255,0.4);
display: block;
margin-bottom: 16rpx;
}
.super-empty-btn {
font-size: 26rpx;
color: #00CED1;
}
/* ===== 最新新增(时间线样式) ===== */
.latest-header {
margin-bottom: 32rpx;
}
.section-header-right {
display: flex;
align-items: center;
gap: 16rpx;
}
.daily-badge-wrap {
display: inline-flex;
align-items: center;
}
/* 设计稿 1:1橙底白字 rounded-full */
.daily-badge {
background: #F6AD55;
color: #ffffff;
font-size: 20rpx;
font-weight: 700;
padding: 8rpx 20rpx;
border-radius: 999rpx;
margin-left: 8rpx;
box-shadow: 0 4rpx 16rpx rgba(246, 173, 85, 0.3);
}
/* 设计稿 1:1pl-3 竖线 left-3 top-2 bottom-2 w-[1px] bg-gray-800 */
.timeline-wrap {
position: relative;
padding-left: 24rpx;
}
.timeline-line {
position: absolute;
left: 23rpx;
top: 16rpx;
bottom: 16rpx;
width: 2rpx;
background: #2c2c2e;
z-index: 0;
}
.timeline-list {
display: flex;
flex-direction: column;
gap: 48rpx;
position: relative;
z-index: 1;
}
/* 设计稿pl-6分隔线在 content 内 */
.timeline-item {
position: relative;
padding-left: 48rpx;
padding-bottom: 0;
}
.timeline-item:last-child .timeline-content {
border-bottom: none;
padding-bottom: 0;
}
/* 设计稿left-[-4.5px] top-1.5 w-2.5 h-2.5 ring-4 ring-black */
.timeline-dot {
position: absolute;
left: -9rpx;
top: 12rpx;
width: 20rpx;
height: 20rpx;
border-radius: 50%;
background: #2c2c2e;
box-shadow: 0 0 0 16rpx #000;
z-index: 2;
}
.timeline-item-first .timeline-dot {
background: #4FD1C5;
}
.timeline-content {
flex: 1;
padding-bottom: 32rpx;
border-bottom: 2rpx solid #1a1a1a;
}
/* 设计稿mb-1 justify-between gap-2 */
.timeline-row {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 16rpx;
margin-bottom: 8rpx;
}
.timeline-left {
flex: 1;
display: flex;
align-items: center;
gap: 16rpx;
min-width: 0;
}
.timeline-right {
display: flex;
flex-direction: column;
align-items: flex-end;
flex-shrink: 0;
padding-left: 16rpx;
}
/* NEW 标签:黑底黄字黄色边框 */
.latest-new-tag {
font-size: 18rpx;
font-weight: 700;
color: #F6AD55;
background: #000000;
padding: 6rpx 12rpx;
border-radius: 8rpx;
border: 2rpx solid #F6AD55;
flex-shrink: 0;
}
/* 设计稿text-sm font-medium text-white */
.timeline-title {
font-size: 28rpx;
color: #ffffff;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* 设计稿 1:1价格/日期 light grey */
.timeline-price {
font-size: 26rpx;
font-weight: 700;
color: #F6AD55;
}
.timeline-date {
font-size: 20rpx;
color: #A0AEC0;
margin-top: 4rpx;
}
/* 描述仅单行,超出省略 */
.timeline-desc {
font-size: 24rpx;
color: #A0AEC0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
line-height: 1;
min-width: 0;
width: 100%;
box-sizing: border-box;
height: 26rpx;
}
/* ===== 底部留白 ===== */
.bottom-space {
height: 40rpx;
}
/* ===== 链接卡若 - 留资弹窗 ===== */
.lead-mask {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.6);
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
padding: 48rpx;
box-sizing: border-box;
}
.lead-box {
width: 100%;
max-width: 560rpx;
background: #1C1C1E;
border-radius: 24rpx;
padding: 48rpx 40rpx;
border: 2rpx solid rgba(56, 189, 172, 0.3);
}
.lead-title {
display: block;
font-size: 34rpx;
font-weight: 600;
color: #ffffff;
margin-bottom: 12rpx;
}
.lead-desc {
display: block;
font-size: 26rpx;
color: #A0AEC0;
margin-bottom: 24rpx;
}
.lead-get-phone-btn {
width: 100%;
height: 88rpx;
background: rgba(56, 189, 172, 0.2);
border: 2rpx solid rgba(56, 189, 172, 0.5);
border-radius: 16rpx;
font-size: 30rpx;
color: #38bdac;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 24rpx;
line-height: normal;
}
.lead-get-phone-btn::after { border: none; }
.lead-divider {
display: block;
font-size: 24rpx;
color: #6B7280;
text-align: center;
margin-bottom: 16rpx;
}
.lead-input-wrap {
padding: 16rpx 24rpx;
background: #0a1628;
border: 2rpx solid rgba(255, 255, 255, 0.1);
border-radius: 16rpx;
margin-bottom: 32rpx;
}
.lead-input {
width: 100%;
font-size: 30rpx;
color: #ffffff;
background: transparent;
}
.lead-actions {
display: flex;
gap: 24rpx;
}
.lead-btn {
flex: 1;
height: 80rpx;
/* 使用 flex 垂直居中文本,避免小程序默认 padding 导致按钮文字下沉 */
display: flex;
align-items: center;
justify-content: center;
padding: 0;
border-radius: 16rpx;
font-size: 30rpx;
font-weight: 500;
border: none;
}
.lead-btn-cancel {
background: rgba(255, 255, 255, 0.1);
color: #A0AEC0;
}
.lead-btn-submit {
background: #38bdac;
color: #ffffff;
}