@lofter-mission/react
Version:
React 组件库,基于 @lofter-mission/core 实现活动任务相关组件
1 lines • 6.68 kB
CSS
.activity-container{color:#2e2e2e;font-size:.4rem;line-height:1.5}.activity-user{display:flex;text-align:left}.points-icon{border-radius:50%;height:.5rem;margin-left:.1rem;width:.5rem}.activity-user.error{background:#ffebee;color:#d32f2f}.user-avatar{margin-right:12px}.user-avatar img{border-radius:50%;height:40px;object-fit:cover;width:40px}.user-info{flex:1}.user-nickname{font-weight:600;margin-bottom:4px}.user-level,.user-points{align-items:center;color:#2e2e2e;display:flex;font-size:.4rem;margin-bottom:.48rem}.mission-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;padding:16px;transition:all .2s ease}.mission-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.mission-item.completed{background:#f1f8e9;border-color:#c8e6c9}.mission-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.mission-name{color:#333;font-size:16px;font-weight:600;margin:0}.mission-status{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.mission-status.pending{background:#f5f5f5;color:#666}.mission-status.in_progress{background:#e3f2fd;color:#1976d2}.mission-status.completed{background:#e8f5e8;color:#388e3c}.mission-description{color:#666;font-size:14px;line-height:1.4;margin:0 0 12px}.mission-progress{margin:12px 0}.progress-bar{background:#e0e0e0;border-radius:3px;height:6px;margin-bottom:4px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#4caf50,#81c784);height:100%;transition:width .3s ease}.progress-text{color:#666;font-size:12px}.mission-actions{margin-top:12px}.mission-button{border:none;cursor:pointer}.mission-button:disabled{background:#ccc;cursor:not-allowed}.mission-button.completed{background:#4caf50}.mission-list{display:flex;justify-content:center;width:100%}.mission-list.empty,.mission-list.error,.mission-list.loading{color:#666;text-align:center}.mission-list.error{color:#d32f2f}.mission-list-header{margin-bottom:16px}.mission-list-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.mission-popup-overlay{align-items:center;background:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.mission-popup{background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.3);max-height:80vh;max-width:500px;overflow:hidden;width:90%}.popup-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px}.popup-header h2{color:#333;font-size:20px;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:background .2s ease;width:30px}.close-button:hover{background:#e0e0e0}.popup-content{max-height:calc(80vh - 80px);overflow-y:auto;padding:20px}.error-state,.loading-state{color:#666;padding:40px 20px;text-align:center}.error-state{color:#d32f2f}.error-state button{background:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:12px;padding:8px 16px}.user-section{margin-bottom:24px}@media (max-width:768px){.mission-popup{max-height:90vh;width:95%}.popup-content{max-height:calc(90vh - 80px);padding:16px}.mission-item{padding:12px}.mission-header{align-items:flex-start;flex-direction:column;gap:8px}}.mission-item-card{border:.06rem solid #fff3e6;border-radius:.3rem;box-sizing:border-box;margin-bottom:.29rem;padding:.5rem;width:10.3rem}.mission-content{align-items:center;display:flex}.mission-info{display:flex;flex-direction:column;width:5.56rem}.mission-invited-avatar-list{display:flex}.mission-invited-avatar-item{border-radius:50%;height:.88rem;margin-right:.1rem;width:.88rem}.mission-title{color:#2e2e2e;font-size:.4rem;font-weight:400}.mission-reward{justify-content:flex-start;width:2.3rem}.mission-reward,.reward-icon{align-items:center;display:flex}.reward-icon{border-radius:50%;height:20px;justify-content:center;margin-right:.14rem;width:20px}.reward-icon img{border-radius:50%;height:100%;object-fit:cover;width:100%}.reward-icon:empty:before{color:#fff;content:"¥";font-size:12px}.mission-action{flex-shrink:0}.action-button{align-items:center;background:#ffe3b4;border:none;border-radius:200px;color:#a47959;display:flex;font-size:.38rem;font-weight:400;height:.84rem;justify-content:center;width:2.01rem}.action-button:disabled{cursor:not-allowed;transform:none}.action-button.completed{filter:grayscale(100%)}.action-button.updating{background:#9e9e9e;color:#fff}.award-list-container{min-height:3rem}.reward-amount{color:#c89356;font-size:.36rem;white-space:nowrap}.award-content{border-radius:50%;height:2.45rem;width:2.45rem}.award-button{align-items:center;background:#ffe3b4;border:none;border-radius:200px;color:#a47959;display:flex;font-size:.36rem;font-weight:400;height:.71rem;justify-content:center;transition:all .3s ease;width:2.72rem}.award-grid{display:flex;flex-wrap:wrap;gap:.22rem;justify-content:flex-start;max-width:100%;transition:opacity .3s ease}.award-image,.award-image img{transition:all .3s ease}.award-image img{border:16rpx solid #fff;border-radius:.66rem;height:2.45rem;object-fit:cover;width:2.45rem}.award-title{color:#333;font-size:.34rem;font-weight:500;line-height:1.4;margin:.14rem 0;overflow:hidden;text-align:left;text-overflow:ellipsis;transition:all .3s ease;white-space:nowrap}.award-item-card{height:4.4rem;margin-right:.22rem;transition:all .3s ease}.unavailable{filter:grayscale(100%)}.toast-root{height:100%;left:0;position:fixed;top:0;width:100%;z-index:9999}.toast-container,.toast-root{align-items:center;display:flex;flex-direction:column;justify-content:center;pointer-events:none}.toast-item{animation:toast-enter .3s ease,toast-exit .3s ease forwards;animation-delay:0s,calc(var(--duration, 2s) - .3s);background-color:rgba(0,0,0,.7);border-radius:50px;box-shadow:0 2px 6px rgba(0,0,0,.3);color:#fff;font-size:14px;font-weight:700;line-height:1.5;margin:5px 0;max-width:250px;min-width:100px;padding:12px 16px;pointer-events:none;text-align:center;word-break:break-word}@keyframes toast-enter{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.simple-toast{background-color:rgba(0,0,0,.8);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.3);color:#fff;font-size:14px;left:50%;max-width:80vw;opacity:0;padding:12px 20px;pointer-events:none;position:fixed;text-align:center;top:50%;transform:translate(-50%,-50%);transition:opacity .3s ease;word-break:break-word;z-index:10000}.simple-toast.show{opacity:1}