/** * 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; } .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:1:pl-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: 32rpx; } .lead-input { width: 100%; height: 88rpx; background: #0a1628; border: 2rpx solid rgba(255, 255, 255, 0.1); border-radius: 16rpx; padding: 0 24rpx; box-sizing: border-box; font-size: 30rpx; color: #ffffff; margin-bottom: 32rpx; } .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; }