/* ---- custom amount ---- */ .reward-custom { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; } .reward-custom__input { flex: 1; height: 40px; padding: 0 12px; border: 1px solid var(--color-line, #e5e7eb); border-radius: var(--radius, 10px); background: var(--surface-2, #F4F5F7); color: var(--color-ink); font-size: 14px; text-align: center; outline: none; transition: border-color 0.2s; -moz-appearance: textfield; } .reward-custom__input::-webkit-inner-spin-button, .reward-custom__input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } .reward-custom__input:focus { border-color: var(--color-primary, #f04494); } .reward-custom__confirm { flex-shrink: 0; height: 40px; padding: 0 20px; border: none; border-radius: var(--radius, 10px); background: var(--color-primary, #f04494); color: #fff; font-size: 14px; font-weight: 500; cursor: pointer; transition: opacity 0.2s; } .reward-custom__confirm:hover { opacity: 0.85; } /* ============================================================ * 9. 公告跑马灯 Widget * ============================================================ */ .aksrt-announcement { position: relative; overflow: hidden; padding: 10px 12px; background: var(--surface-2, #F4F5F7); border-radius: var(--radius, 10px); } .aksrt-announcement__icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--color-primary, var(--color-primary)); font-size: 14px; z-index: 1; } .aksrt-announcement__track { margin-left: 24px; overflow: hidden; height: 20px; } .aksrt-announcement__list { margin: 0; padding: 0; list-style: none; animation: aksrt-marquee 10s linear infinite; } .aksrt-announcement__item { height: 20px; line-height: 20px; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .aksrt-announcement__item a { color: var(--color-ink-2); text-decoration: none; } .aksrt-announcement__item a:hover { color: var(--color-primary, var(--color-primary)); } @keyframes aksrt-marquee { 0% { transform: translateY(0); } 100% { transform: translateY(-100%); } } .aksrt-announcement:hover .aksrt-announcement__list { animation-play-state: paused; } /* ============================================================ * 11. 滚动触发动画初始状态 * ============================================================ */ [data-aksrt-animate] { will-change: opacity, transform; } /* ============================================================ * 12. 粘性侧栏 * ============================================================ */ [data-aksrt-sticky] { will-change: transform; } /* ============================================================ * 13. 用户排行榜 Widget * ============================================================ */ .aksrt-user-ranking { margin: 0; padding: 0; list-style: none; } .aksrt-user-ranking__item { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--color-line-soft, #F0F1F3); } .aksrt-user-ranking__item:last-child { border-bottom: none; } .aksrt-user-ranking__rank { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 6px; background: var(--surface-2, #F4F5F7); color: var(--color-ink-3); font-size: 12px; font-weight: 600; flex-shrink: 0; } .aksrt-user-ranking__item--top:nth-child(1) .aksrt-user-ranking__rank { background: #FFD700; color: #fff; } .aksrt-user-ranking__item--top:nth-child(2) .aksrt-user-ranking__rank { background: #C0C0C0; color: #fff; } .aksrt-user-ranking__item--top:nth-child(3) .aksrt-user-ranking__rank { background: #CD7F32; color: #fff; } .aksrt-user-ranking__avatar { flex-shrink: 0; } .aksrt-user-ranking__avatar img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; } .aksrt-user-ranking__name { flex: 1; min-width: 0; font-size: 14px; color: var(--color-ink); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .aksrt-user-ranking__name:hover { color: var(--color-primary, var(--color-primary)); } .aksrt-user-ranking__value { font-size: 12px; color: var(--color-ink-4, #8A8F98); white-space: nowrap; } /* ============================================================ * 14. 图文封面卡片 Widget * ============================================================ */ .aksrt-cover-cards { display: grid; grid-template-columns: repeat(var(--cols, 2), 1fr); gap: 12px; } .aksrt-cover-card { position: relative; border-radius: var(--radius-lg, 8px); overflow: hidden; min-height: 160px; display: flex; align-items: flex-end; transition: transform 0.3s, box-shadow 0.3s; } .aksrt-cover-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); } .aksrt-cover-card__bg { position: absolute; inset: 0; } .aksrt-cover-card__bg img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; } .aksrt-cover-card:hover .aksrt-cover-card__bg img { transform: scale(1.02); } .aksrt-cover-card__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.6) 100%); } .aksrt-cover-card__content { position: relative; z-index: 1; padding: 16px; width: 100%; } .aksrt-cover-card__link { text-decoration: none; color: inherit; display: block; } .aksrt-cover-card__title { margin: 0 0 4px; font-size: 16px; font-weight: 600; color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); } .aksrt-cover-card__desc { margin: 0; font-size: 13px; color: rgba(255, 255, 255, 0.85); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* ============================================================ * 15. 视频播放器 Widget * ============================================================ */ .aksrt-video-widget { position: relative; width: 100%; overflow: hidden; border-radius: var(--radius, 10px); background: #000; } .aksrt-video-widget iframe, .aksrt-video-widget video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; } /* ============================================================ * 16. 表单输入浮动标签 * ============================================================ */ .aksrt-float-label { position: relative; } .aksrt-float-label__input { width: 100%; padding: 14px 12px 6px; font-size: 14px; border: 1px solid var(--color-line); border-radius: var(--radius, 10px); background: var(--surface-1, #fff); color: var(--color-ink); transition: border-color 0.2s; } .aksrt-float-label__input:focus { outline: none; border-color: var(--color-primary, var(--color-primary)); } .aksrt-float-label__label { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 14px; color: var(--color-ink-4, #8A8F98); pointer-events: none; transition: all 0.2s ease; } .aksrt-float-label__input:focus + .aksrt-float-label__label, .aksrt-float-label__input:not(:placeholder-shown) + .aksrt-float-label__label { top: 8px; transform: translateY(0); font-size: 11px; color: var(--color-primary, var(--color-primary)); } /* ============================================================ * 17. 视差滚动层 * ============================================================ */ [data-aksrt-parallax] { will-change: transform; transition: transform 0.1s linear; } /* ============================================================ * 18. 签到日历可视化 * ============================================================ */ .aksrt-signin-calendar__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; } .aksrt-signin-calendar__day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 6px; background: var(--surface-2, #F4F5F7); font-size: 12px; color: var(--color-ink-3); transition: all 0.2s; } .aksrt-signin-calendar__day.is-signed { background: var(--color-success, #10B981); color: #fff; } .aksrt-signin-calendar__day.is-today { border: 2px solid var(--color-primary, var(--color-primary)); } .aksrt-signin-calendar__day.is-signed.is-today { background: var(--color-primary, var(--color-primary)); border-color: var(--color-primary, var(--color-primary)); } .uc-signin-calendar__title { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; font-size: 14px; font-weight: 600; color: var(--color-ink-2); } .uc-signin-calendar__title i { color: var(--color-primary, var(--color-primary)); } /* ============================================================ * 19. VIP 等级标识 * ============================================================ */ .aksrt-vip-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: var(--radius-pill, 999px); font-size: 11px; font-weight: 600; } .aksrt-vip-badge--gold { background: linear-gradient(135deg, #FFD700, #FFA500); color: #fff; } .aksrt-vip-badge--silver { background: linear-gradient(135deg, #C0C0C0, #A8A8A8); color: #fff; } .aksrt-vip-badge--bronze { background: linear-gradient(135deg, #CD7F32, #A0522D); color: #fff; } /* ============================================================ * 20. 用户等级进度条 * ============================================================ */ .aksrt-level-bar { position: relative; height: 8px; background: var(--surface-2, #F4F5F7); border-radius: 4px; overflow: hidden; } .aksrt-level-bar__fill { height: 100%; background: linear-gradient(90deg, var(--color-primary, var(--color-primary)), var(--color-primary-active, #5A85BD)); border-radius: 4px; transition: width 0.5s ease; } .aksrt-level-bar__label { position: absolute; right: 0; top: -18px; font-size: 11px; color: var(--color-ink-4, #8A8F98); }