Initial commit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
谢宇宁
2026-09-29 11:47:47 +07:00
co-authored by Claude Opus 5.5
commit 0fbdba5ccf
622 changed files with 72105 additions and 0 deletions
+452
View File
@@ -0,0 +1,452 @@
/* About page: mobile frame 375 × 1779 in Figma. */
@media (max-width: 768px) {
body.about-page {
overflow-x: hidden;
padding-top: 0;
background: #0b0b0d;
}
.about-page .site-header {
display: none;
}
.about-page .page-subheader {
display: flex;
background: #0b0b0d;
border-bottom: 1px solid rgba(255, 255, 255, .07);
}
.about-main {
width: 100%;
padding-top: 56px;
}
.about-intro,
.about-story,
.about-features,
.about-app {
width: 100%;
box-sizing: border-box;
}
.about-intro {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 10px;
padding: 24px 16px 8px;
}
.about-intro__heading {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 10px;
width: 100%;
padding: 0;
}
.about-kicker,
.about-app__kicker {
display: inline-flex;
align-items: center;
gap: 10px;
min-height: 18px;
margin: 0;
color: #ff4a7b;
font-size: 13px;
font-weight: 500;
line-height: 18px;
letter-spacing: .12em;
}
.about-kicker__bar {
display: block;
width: 18px;
height: 2px;
flex: none;
background: #ec237f;
}
.about-intro__title {
margin: 0;
color: #f2f2f4;
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.about-intro__subtitle {
margin: 0;
color: #a1a1aa;
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.about-story {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 12px;
padding: 0;
}
.about-story__visual {
order: -1;
overflow: hidden;
width: 100%;
height: auto;
aspect-ratio: 343 / 220;
margin-bottom: 4px;
border: 1px solid rgba(255, 255, 255, .07);
border-radius: 12px;
box-sizing: border-box;
}
.about-story__visual img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.about-story__copy {
display: contents;
}
.about-story__paragraph {
margin: 0;
color: #a1a1aa;
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.about-story__paragraph--desktop {
display: none;
}
.about-story__paragraph--mobile {
display: block;
}
.about-story__slogan {
margin: 0;
color: #ff4a7b;
font-size: 15px;
font-weight: 600;
line-height: 21px;
}
.about-story__tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.about-story__tag {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 30px;
padding: 0 12px;
border: 1px solid rgba(255, 255, 255, .12);
border-radius: 999px;
box-sizing: border-box;
color: #a1a1aa;
font-size: 12px;
line-height: 18px;
}
.about-features {
display: flex;
flex-direction: column;
gap: 10px;
padding: 12px 16px 8px;
}
.about-features__heading {
display: flex;
align-items: baseline;
gap: 10px;
min-height: 0;
margin-bottom: 0;
}
.about-features__title {
margin: 0;
color: #f2f2f4;
font-size: 18px;
font-weight: 600;
line-height: 26px;
}
.about-features__subtitle {
color: #7c7c86;
font-size: 12px;
line-height: 18px;
}
.about-features__grid {
display: flex;
flex-direction: column;
gap: 10px;
}
.about-feature {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 14px;
min-width: 0;
min-height: 0;
padding: 16px;
border: 1px solid rgba(255, 255, 255, .07);
border-radius: 12px;
box-sizing: border-box;
background: #1b1b1f;
}
.about-feature__number {
flex: none;
background: linear-gradient(180deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
font-family: Inter, Arial, sans-serif;
font-size: 40px;
font-weight: 700;
line-height: 40px;
letter-spacing: -.03em;
}
.about-feature__copy {
display: flex;
flex: 1;
flex-direction: column;
gap: 4px;
min-width: 0;
}
.about-feature__title {
margin: 0;
color: #f2f2f4;
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.about-feature__description {
margin: 0;
color: #a1a1aa;
font-size: 13px;
font-weight: 400;
line-height: 20px;
}
.about-app {
padding: 8px 16px 24px;
}
.about-app__card {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 12px;
min-height: 0;
padding: 20px;
border: 1px solid rgba(255, 255, 255, .07);
border-radius: 16px;
box-sizing: border-box;
background: linear-gradient(135deg, #2a0d22 15%, #150a17 57%, #141417 85%);
}
.about-app__copy {
display: contents;
}
.about-app__title {
margin: 0;
color: #f2f2f4;
font-size: 18px;
font-weight: 600;
line-height: 26px;
}
.about-app__desc-desktop,
.about-app__note-desktop,
.about-app__qr,
.about-app__button--android {
display: none;
}
.about-app__desc-mobile {
display: block;
margin: 0;
color: #a1a1aa;
font-size: 13px;
line-height: 20px;
}
.about-app__actions {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 8px;
width: 100%;
flex: 0 0 auto;
}
.about-app__button {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 100%;
height: 48px;
padding: 0 22px;
border: 1px solid rgba(255, 255, 255, .12);
border-radius: 999px;
box-sizing: border-box;
background: rgba(11, 11, 13, .72);
color: #f2f2f4;
font-size: 15px;
font-weight: 500;
line-height: 22px;
text-decoration: none;
}
.about-app__button.is-primary {
border-color: transparent;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
color: #fff;
}
.about-app__button.about-app__button--android {
display: none;
}
.about-app__button-label-desktop {
display: none;
}
.about-app__button-label-mobile {
display: inline;
}
.about-app__button img,
.about-app__button .icon {
width: 20px;
height: 20px;
}
.about-app__recommendation {
position: absolute;
top: -8px;
right: -5px;
height: 20px;
padding: 0 7px;
border-radius: 999px;
background: #fff;
color: #ff4a7b;
font-size: 11px;
font-weight: 500;
line-height: 20px;
}
.about-app__note-mobile {
display: block;
margin: 0;
color: #7c7c86;
font-size: 11px;
line-height: 16px;
}
/* Reuse the common footer and arrange its existing links like the mobile frame. */
.about-page .site-footer {
background: #141417;
}
.about-page .site-footer__inner {
padding: 32px 16px 28px;
gap: 18px;
}
.about-page .site-footer__brand {
gap: 18px;
}
.about-page .site-footer__links {
flex-wrap: wrap;
gap: 12px 16px;
}
.about-page .footer-col {
flex-wrap: nowrap;
}
.about-page .footer-col:first-child,
.about-page .footer-col:nth-child(2) a:last-child,
.about-page .footer-col:nth-child(3) a:last-child {
display: none;
}
.about-page .footer-download {
display: flex;
flex-basis: 100%;
justify-content: center;
padding: 0;
border: 0;
background: none;
}
.about-page .footer-download .qr-box,
.about-page .footer-download__copy strong,
.about-page .footer-download__copy p,
.about-page .footer-download__copy .icon {
display: none;
}
.about-page .footer-download .btn {
height: 20px;
padding: 0;
color: #a1a1aa;
background: none;
font-size: 13px;
line-height: 20px;
}
.about-page .site-footer__rule {
display: none;
}
.about-page .site-footer__legal {
flex-direction: column;
justify-content: flex-start;
align-items: center;
gap: 0;
}
.about-page .site-footer__legal p:first-child {
order: 2;
width: 100%;
padding-top: 16px;
margin-top: 16px;
border-top: 1px solid rgba(255, 255, 255, .07);
}
.about-page .site-footer__legal p:last-child {
order: 1;
}
.about-page .site-footer__adult,
.about-page .site-footer__rights {
display: none;
}
.about-page .site-footer__mobile-adult {
display: inline;
}
}
+415
View File
@@ -0,0 +1,415 @@
/* 关于我们:1440px 桌面稿。各区块限制在公共 1200px 内容宽度内。 */
.about-page {
min-height: 100vh;
padding-top: 72px;
background: var(--bg);
}
.about-page .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.about-page .site-header__login {
display: inline-flex;
align-items: center;
justify-content: center;
height: 40px;
padding-inline: 16px;
border-radius: 999px;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
color: #fff;
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
}
.about-main {
width: min(calc(100% - 48px), var(--page-width));
margin-inline: auto;
}
.about-intro {
display: block;
}
.about-intro__heading {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 16px;
padding: 64px 0 16px;
}
.about-kicker,
.about-app__kicker {
display: inline-flex;
align-items: center;
gap: 10px;
min-height: 18px;
margin: 0;
color: var(--accent-hot);
font-size: 13px;
font-weight: 500;
line-height: 18px;
letter-spacing: .12em;
}
.about-kicker__bar {
width: 18px;
height: 2px;
flex: 0 0 18px;
background: var(--accent);
}
.about-intro__title {
max-width: 900px;
margin: 0;
color: var(--text);
font-size: 40px;
font-weight: 600;
line-height: 50px;
letter-spacing: -.01em;
}
.about-intro__subtitle {
margin: 0;
color: var(--text-muted);
font-size: 18px;
font-weight: 400;
line-height: 30px;
}
.about-story {
display: grid;
grid-template-columns: minmax(0, 624fr) minmax(0, 520fr);
align-items: start;
gap: 56px;
padding: 24px 0;
}
.about-story__copy {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 20px;
min-width: 0;
}
.about-story__paragraph {
width: 100%;
margin: 0;
color: var(--text-muted);
font-size: 16px;
font-weight: 400;
line-height: 26px;
}
.about-story__paragraph--mobile {
display: none;
}
.about-story__slogan {
margin: 0;
color: var(--accent-hot);
font-size: 18px;
font-weight: 600;
line-height: 26px;
}
.about-story__tags {
display: flex;
flex-wrap: wrap;
gap: 10px;
width: 100%;
}
.about-story__tag {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 34px;
padding-inline: 14px;
border: 1px solid var(--line);
border-radius: 999px;
color: var(--text-muted);
font-size: 13px;
font-weight: 400;
line-height: 20px;
white-space: nowrap;
}
.about-story__visual {
width: 100%;
aspect-ratio: 13 / 9;
overflow: hidden;
border: 1px solid var(--line-soft);
border-radius: 20px;
background: var(--bg-panel);
}
.about-story__visual > img {
width: 100%;
height: 100%;
object-fit: cover;
}
.about-features {
padding: 24px 0 16px;
}
.about-features__heading {
display: flex;
align-items: center;
gap: 14px;
min-height: 30px;
margin-bottom: 24px;
}
.about-features__title {
margin: 0;
color: var(--text);
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.about-features__subtitle {
margin: 0;
color: var(--text-dim);
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.about-features__grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
}
.about-feature {
display: flex;
flex-direction: column;
gap: 12px;
min-width: 0;
min-height: 192px;
padding: 28px;
border: 1px solid var(--line-soft);
border-radius: 16px;
background: var(--bg-panel);
}
.about-feature__number {
display: block;
width: fit-content;
background: linear-gradient(180deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
background-clip: text;
color: transparent;
font-family: Inter, var(--font);
font-size: 40px;
font-weight: 700;
line-height: 40px;
letter-spacing: -.03em;
-webkit-background-clip: text;
}
.about-feature__title {
margin: 0;
color: var(--text);
font-size: 20px;
font-weight: 600;
line-height: 28px;
}
.about-feature__copy {
display: flex;
flex-direction: column;
gap: 12px;
}
.about-feature__description {
margin: 0;
color: var(--text-muted);
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.about-app {
padding: 16px 0 48px;
}
.about-app__card {
display: flex;
align-items: center;
gap: 20px;
min-height: 216px;
padding: 28px 32px;
border: 1px solid var(--line-soft);
border-radius: 20px;
background: linear-gradient(90deg, #2a0d22 0%, #150a17 60%, #141417 100%);
}
.about-app__copy {
display: flex;
flex: 1 1 auto;
flex-direction: column;
align-items: flex-start;
gap: 8px;
min-width: 0;
}
.about-app__title {
margin: 0;
color: var(--text);
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.about-app__desc-desktop,
.about-app__desc-mobile,
.about-app__note-desktop,
.about-app__note-mobile {
margin: 0;
color: var(--text-muted);
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.about-app__note-desktop,
.about-app__note-mobile {
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.about-app__desc-mobile,
.about-app__note-mobile,
.about-app__button-label-mobile {
display: none;
}
.about-app__qr {
width: 108px;
height: 108px;
flex: 0 0 108px;
padding: 6px;
border-radius: 12px;
background: #fff;
}
.about-app__qr > img {
width: 96px;
height: 96px;
object-fit: contain;
}
.about-app__actions {
display: flex;
flex: 0 0 220px;
flex-direction: column;
gap: 8px;
width: 220px;
}
.about-app__button {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 100%;
height: 48px;
padding-inline: 22px;
border: 1px solid rgba(255, 255, 255, .24);
border-radius: 999px;
color: var(--text);
font-size: 15px;
font-weight: 500;
line-height: 22px;
white-space: nowrap;
}
.about-app__button.is-primary {
border-color: transparent;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
color: #fff;
}
.about-app__button img,
.about-app__button svg {
width: 20px;
height: 20px;
flex: 0 0 20px;
}
.about-app__recommendation {
position: absolute;
top: -8px;
right: -5px;
display: inline-flex;
align-items: center;
justify-content: center;
height: 20px;
padding-inline: 7px;
border-radius: 999px;
background: #fff;
color: var(--accent-hot);
font-size: 11px;
font-weight: 500;
line-height: 14px;
}
.about-app__button:hover {
filter: brightness(1.1);
}
.about-app__button:focus-visible,
.about-page .site-header__login:focus-visible {
outline: 2px solid var(--accent-hot);
outline-offset: 3px;
}
/* 页尾内容沿用公共组件,桌面稿的两段法律文案分列两端。 */
.about-page .site-footer__legal {
flex-direction: row;
justify-content: space-between;
gap: 24px;
}
@media (min-width: 769px) {
.about-page .site-footer__rule {
margin-top: 8px;
}
}
@media (min-width: 769px) and (max-width: 1199px) {
.about-page .site-header {
height: 72px;
padding-block: 0;
flex-wrap: nowrap;
}
.about-page .site-header__left,
.about-page .site-header__right {
width: auto;
}
.about-page .site-header .search {
width: min(260px, 30vw);
}
.about-story {
gap: clamp(24px, 4vw, 56px);
}
}
@media (min-width: 769px) and (max-width: 1100px) {
.about-page .site-header .nav {
display: none;
}
}
+72
View File
@@ -0,0 +1,72 @@
/* 与「我的收藏」一致的账户列表空状态。 */
/* 空态时仍保持与个人中心同宽的主栏,避免筛选条贴到视口左缘。 */
.account-empty {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
width: 100%;
padding: 96px 16px;
font-size: 14px;
line-height: 22px;
text-align: center;
}
.account-empty[hidden] { display: none !important; }
.account-empty__icon {
display: flex;
align-items: center;
justify-content: center;
width: 96px;
height: 96px;
flex: 0 0 96px;
border: 1px solid var(--line);
border-radius: 50%;
background: #1b1b1f;
}
.account-empty__icon img { width: 40px; height: 40px; }
.account-empty__title {
margin: 0;
color: var(--text);
font-size: 20px;
font-weight: 600;
line-height: 28px;
}
.account-empty__description {
margin: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.account-empty__description-mobile { display: none; }
.account-empty__action {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 147px;
height: 48px;
border-radius: 999px;
background: linear-gradient(105deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
color: #fff;
font-size: 14px;
font-weight: 600;
line-height: 20px;
white-space: nowrap;
}
.account-empty__action img { width: 20px; height: 20px; }
.account-empty__action:focus-visible { outline: 2px solid var(--accent-hot); outline-offset: 3px; }
@media (max-width: 768px) {
.account-empty { padding: 48px 16px; }
.account-empty__description-desktop { display: none; }
.account-empty__description-mobile { display: inline; }
}
+2
View File
@@ -0,0 +1,2 @@
/* 兼容旧缓存:请使用 promo.css。夸克会拦截 ads.css / .ads / .ad-slot */
@import url("./promo.css?v=1");
+772
View File
@@ -0,0 +1,772 @@
/* 全局变量与公共样式 */
:root {
--bg: #0b0b0d;
--bg-elevated: #141417;
--bg-panel: #1b1b1f;
--text: #f2f2f4;
--text-muted: #a1a1aa;
--text-dim: #7c7c86;
--accent: #ec237f;
--accent-hot: #ff4a7b;
--accent-deep: #93226f;
--gold: #e9c977;
--line: rgba(255, 255, 255, 0.12);
--line-soft: rgba(255, 255, 255, 0.07);
--page-width: 1200px;
--hero-width: 1440px;
--h5-gutter: 16px;
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 16px;
--radius-xl: 20px;
--font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
--scrollbar-size: 8px;
--scrollbar-track: #0a0a0a;
--scrollbar-thumb: #3a3a3a;
--scrollbar-thumb-hover: #4a4a4a;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
min-height: 100%;
background: #0b0b0d;
color: var(--text);
font-family: var(--font);
overflow-x: hidden;
scrollbar-width: thin;
scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
/* 公共滚动条 */
::-webkit-scrollbar {
width: var(--scrollbar-size);
height: var(--scrollbar-size);
}
::-webkit-scrollbar-track {
background: var(--scrollbar-track);
}
::-webkit-scrollbar-thumb {
background: var(--scrollbar-thumb);
border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--scrollbar-thumb-hover);
}
/* 横滑 / 纵滑区域 */
.scroll-x,
.scroll-y,
[data-scroll="x"],
[data-scroll="y"] {
-webkit-overflow-scrolling: touch;
overscroll-behavior: contain;
}
.scroll-x {
overflow-x: auto;
overflow-y: hidden;
}
.scroll-y {
overflow-x: hidden;
overflow-y: auto;
}
/* 隐藏滚动条但仍可滚动 */
.scroll-hidden {
scrollbar-width: none;
}
.scroll-hidden::-webkit-scrollbar {
display: none;
}
a {
color: inherit;
text-decoration: none;
}
button {
font: inherit;
color: inherit;
background: none;
border: 0;
padding: 0;
cursor: pointer;
}
img {
display: block;
max-width: 100%;
}
/* Page shell — 整体居中 */
.page {
width: min(100%, var(--page-width));
margin: 0 auto;
background: var(--bg);
overflow: hidden;
display: flex;
flex-direction: column;
}
.icon {
width: 18px;
height: 18px;
flex-shrink: 0;
object-fit: contain;
}
.icon--sm {
width: 16px;
height: 16px;
}
/* Buttons */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
height: 40px;
padding: 0 16px;
border-radius: 999px;
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
transition: opacity 0.2s ease, transform 0.2s ease;
}
.btn:hover {
opacity: 0.92;
}
.btn--primary {
color: #fff;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.btn--ghost {
color: var(--text);
background: rgba(11, 11, 13, 0.72);
border: 1px solid var(--line);
}
.btn--outline {
color: var(--text);
border: 1px solid rgba(255, 255, 255, 0.24);
}
.btn--lg {
height: 56px;
padding: 0 28px;
font-size: 16px;
line-height: 24px;
}
.btn--sm {
height: 36px;
padding: 0 12px;
}
.btn--icon {
width: 56px;
height: 56px;
padding: 0;
background: rgba(11, 11, 13, 0.72);
border: 1px solid var(--line);
}
.btn--icon .icon {
width: 22px;
height: 22px;
}
/* Tags / badges */
.tag {
display: inline-flex;
align-items: center;
height: 22px;
padding: 0 8px;
border-radius: 999px;
font-size: 11px;
font-weight: 500;
line-height: 14px;
}
.tag--dark {
background: rgba(11, 11, 13, 0.72);
border: 1px solid var(--line);
}
.badge {
position: absolute;
top: 4px;
right: 4px;
z-index: 1;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 36px;
height: 20px;
padding: 0 8px;
border-radius: 6px;
font-size: 11px;
font-weight: 500;
line-height: 14px;
}
.badge--hot {
color: #fff;
background: var(--accent-deep);
}
.badge--original {
color: #3a2a0a;
background: linear-gradient(135deg, #fadc44 0%, #f9c24e 100%);
}
.badge--fire {
color: #fff;
background: linear-gradient(135deg, #f04050 0%, #d01030 100%);
}
.badge--new {
color: #fff;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.badge--exclusive {
color: #fff;
background: rgba(0, 0, 0, 0.6);
}
.breadcrumb {
display: inline-flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
}
.breadcrumb__item,
.breadcrumb__sep {
color: var(--text-dim);
font-size: 13px;
font-weight: 400;
line-height: 20px;
}
.breadcrumb__item.is-current {
color: var(--text);
}
.breadcrumb__sep {
width: 14px;
height: 14px;
opacity: 0.9;
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
margin: 0;
color: var(--accent-hot);
font-size: 13px;
font-weight: 500;
line-height: 18px;
letter-spacing: 1.56px;
}
.eyebrow__bar {
width: 18px;
height: 2px;
background: var(--accent);
}
/* Brand */
.brand {
display: inline-flex;
align-items: center;
}
.brand__logo {
width: 148px;
height: 36px;
object-fit: contain;
}
.brand__logo--lg {
width: 181px;
height: 44px;
}
/* 端适配显隐:默认桌面可见,H5 隐藏;.only-h5 默认隐藏 */
.only-h5 {
display: none !important;
}
@media (max-width: 768px) {
.only-pc {
display: none !important;
}
.only-h5 {
display: flex !important;
}
img.only-h5 {
display: block !important;
}
}
/* H5 子页顶栏:返回 / 标题 / 搜索或分享 */
.page-subheader {
position: fixed;
top: 0;
left: 0;
z-index: 100;
box-sizing: border-box;
width: 100%;
height: 56px;
padding: 0 12px;
align-items: center;
justify-content: space-between;
background: var(--bg);
border-bottom: 1px solid var(--line-soft);
}
.page-subheader__btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border-radius: 999px;
flex-shrink: 0;
color: var(--text);
background: transparent;
border: 0;
padding: 0;
cursor: pointer;
}
.page-subheader__btn .icon {
width: 22px;
height: 22px;
}
.page-subheader__title {
flex: 1 1 0;
margin: 0;
text-align: center;
color: var(--text);
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.page-subheader--overlay {
background: transparent;
border-bottom-color: transparent;
}
/* Section block */
.block {
padding: 24px 0 8px;
}
.block__head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
}
.block__titles {
display: flex;
align-items: baseline;
gap: 12px;
}
.block__title {
margin: 0;
font-size: 24px;
font-weight: 600;
line-height: 32px;
}
.block__subtitle {
margin: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 20px;
}
.block__more {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--text-muted);
font-size: 14px;
line-height: 20px;
}
.block__more:hover {
color: var(--text);
}
.tabs {
display: inline-flex;
align-items: center;
gap: 20px;
margin-left: 8px;
}
.tabs__item {
position: relative;
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
padding-bottom: 6px;
}
.tabs__item::after {
content: "";
position: absolute;
left: 50%;
bottom: 0;
width: 16px;
height: 2px;
background: var(--accent);
transform: translateX(-50%);
opacity: 0;
}
.tabs__item.is-active {
color: var(--text);
}
.tabs__item.is-active::after {
opacity: 1;
}
/* Grids & cards */
.grid {
display: grid;
gap: 20px 16px;
}
.grid--6 {
grid-template-columns: repeat(6, minmax(0, 1fr));
}
.card {
min-width: 0;
display: flex;
flex-direction: column;
gap: 10px;
}
.card__cover {
position: relative;
overflow: hidden;
aspect-ratio: 186 / 248;
border-radius: var(--radius-md);
border: 1px solid transparent;
box-shadow: inset 0 0 0 1px var(--line-soft);
isolation: isolate;
background-color: #141417;
background-image:
linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.55) 100%),
var(--cover);
background-position: center, center;
background-size: cover, cover;
background-repeat: no-repeat, no-repeat;
background-clip: padding-box;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
/* Figma HGW/封面卡:遮罩、播放按钮与文案 */
.card__cover {
transition:
box-shadow 180ms ease,
border-color 180ms ease;
}
.card__cover::before {
position: absolute;
inset: 0;
z-index: 3;
border-radius: inherit;
background: rgba(0, 0, 0, 0.6);
content: "";
opacity: 0;
pointer-events: none;
transition: opacity 180ms ease;
}
.card__cover::after {
position: absolute;
top: 50%;
left: 50%;
z-index: 4;
box-sizing: border-box;
width: 100px;
height: 76px;
padding-top: 54px;
background:
url("../images/play.svg") center 13px / 18px 18px no-repeat,
radial-gradient(
circle at 50% 22px,
rgba(11, 11, 13, 0.72) 0 21px,
rgba(255, 255, 255, 0.24) 21px 22px,
transparent 22px
);
color: #f2f2f4;
content: "立即播放";
font-size: 12px;
font-weight: 500;
line-height: 16px;
text-align: center;
opacity: 0;
pointer-events: none;
transform: translate(-50%, calc(-50% + 6px));
transition:
opacity 180ms ease,
transform 180ms ease;
}
.card__cover:focus-visible {
box-shadow: inset 0 0 0 1px rgba(236, 35, 127, 0.45);
}
.card__cover:focus-visible::before,
.card__cover:focus-visible::after {
opacity: 1;
}
.card__cover:focus-visible::after {
transform: translate(-50%, -50%);
}
/* 触屏设备不模拟悬浮,避免首次点击只显示遮罩 */
@media (hover: hover) and (pointer: fine) {
.card__cover:hover {
box-shadow: inset 0 0 0 1px rgba(236, 35, 127, 0.45);
}
.card__cover:hover::before,
.card__cover:hover::after {
opacity: 1;
}
.card__cover:hover::after {
transform: translate(-50%, -50%);
}
}
.card__progress {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 3px;
background: rgba(255, 255, 255, 0.18);
}
.card__progress::after {
content: "";
display: block;
width: var(--p, 0%);
height: 100%;
background: var(--accent-hot);
}
.card__ep {
position: absolute;
left: 10px;
bottom: 10px;
z-index: 1;
color: var(--text);
font-size: 12px;
font-weight: 500;
line-height: 16px;
text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}
.card__title {
margin: 0;
font-size: 15px;
font-weight: 500;
line-height: 22px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.card__meta {
margin: 0;
color: var(--text-muted);
font-size: 13px;
line-height: 18px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.card__meta a {
color: inherit;
text-decoration: none;
}
.card__meta a:hover {
color: var(--text);
}
.qr-box {
padding: 6px;
background: #fff;
border-radius: var(--radius-md);
}
.qr-box img,
.qr-box canvas {
width: 96px;
height: 96px;
object-fit: cover;
display: block;
}
/* Shared responsive */
@media (max-width: 1280px) {
.grid--6 {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}
@media (max-width: 768px) {
.page {
width: 100%;
}
.block {
padding: 16px var(--h5-gutter) 8px;
}
.block__head {
margin-bottom: 14px;
}
.block__titles {
gap: 10px;
}
.block__title {
font-size: 18px;
line-height: 26px;
}
.block__subtitle {
font-size: 12px;
line-height: 18px;
color: var(--text-dim);
}
.block__more {
font-size: 13px;
}
.block__more .icon--sm {
width: 14px;
height: 14px;
}
.grid {
gap: 8px;
}
.grid--6 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.card {
gap: 6px;
}
.card__cover {
aspect-ratio: 109 / 145;
border-radius: var(--radius-sm);
}
.card__title {
font-size: 14px;
font-weight: 600;
line-height: 20px;
}
.card__meta {
font-size: 11px;
line-height: 16px;
}
.card__ep {
left: 10px;
bottom: 10px;
font-size: 11px;
line-height: 14px;
}
.card__progress {
left: 10px;
right: 10px;
bottom: 6px;
width: auto;
border-radius: 999px;
overflow: hidden;
}
.btn--lg {
height: 48px;
padding: 0 22px;
font-size: 15px;
line-height: 22px;
}
.btn--icon {
width: 48px;
height: 48px;
}
.btn--icon .icon {
width: 20px;
height: 20px;
}
}
/* 可访问性文本:在不改变视觉布局时保留页面语义标题。 */
.visually-hidden {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
+223
View File
@@ -0,0 +1,223 @@
.dialog-ad-mask {
position: fixed;
inset: 0;
z-index: 1900;
padding: 24px;
display: none;
align-items: center;
justify-content: center;
overflow-y: auto;
background: rgba(0, 0, 0, 0.7);
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
box-sizing: border-box;
}
.dialog-ad-mask.is-open {
display: flex;
}
.dialog-ad-panel {
width: 640px;
max-width: calc(100vw - 48px);
margin: auto;
}
.dialog-ad-panel[hidden] {
display: none;
}
.dialog-ad-card {
position: relative;
display: flex;
flex-direction: column;
overflow: hidden;
background: #141417;
border-radius: 20px;
outline: 1px solid rgba(255, 255, 255, 0.12);
outline-offset: -1px;
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
}
.dialog-ad-cover {
position: relative;
width: 100%;
height: 400px;
overflow: hidden;
background: #232328;
}
.dialog-ad-media {
display: block;
width: 100%;
height: 100%;
}
.dialog-ad-image {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
.dialog-ad-tag {
position: absolute;
top: 12px;
left: 12px;
z-index: 1;
height: 22px;
padding: 0 8px;
color: #f2f2f4;
background: rgba(0, 0, 0, 0.6);
border: 0;
}
.dialog-ad-close {
position: absolute;
top: 16px;
right: 16px;
z-index: 2;
box-sizing: border-box;
width: 32px;
height: 32px;
padding: 0;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.6);
border: 0;
border-radius: 999px;
cursor: pointer;
transition: opacity 180ms ease, transform 180ms ease;
}
.dialog-ad-close img {
width: 18px;
height: 18px;
display: block;
}
.dialog-ad-close:hover,
.dialog-ad-close:focus-visible {
opacity: 0.85;
transform: scale(1.06);
}
.dialog-ad-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 16px 20px;
}
.dialog-ad-copy {
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
.dialog-ad-title {
margin: 0;
color: #f2f2f4;
font-size: 16px;
font-weight: 600;
line-height: 22px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dialog-ad-desc {
margin: 0;
color: #7c7c86;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.dialog-ad-cta {
flex-shrink: 0;
box-sizing: border-box;
height: 40px;
padding: 0 16px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
color: #fff;
font-size: 14px;
font-weight: 500;
line-height: 20px;
text-decoration: none;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
border-radius: 999px;
}
.dialog-ad-cta__icon {
width: 18px;
height: 18px;
display: block;
}
.dialog-ad-cta:hover {
filter: brightness(1.05);
}
@media (max-width: 767px) {
.dialog-ad-mask {
padding: 24px;
-webkit-backdrop-filter: blur(2px);
backdrop-filter: blur(2px);
}
.dialog-ad-panel {
width: 327px;
max-width: calc(100vw - 48px);
}
.dialog-ad-cover {
height: 204px;
}
.dialog-ad-tag {
top: 10px;
left: 10px;
height: 20px;
padding: 0 6px;
}
.dialog-ad-foot {
flex-direction: column;
align-items: stretch;
gap: 10px;
padding: 16px;
}
.dialog-ad-copy {
display: contents;
}
.dialog-ad-title {
font-size: 15px;
line-height: 21px;
white-space: normal;
}
.dialog-ad-desc {
font-size: 11px;
line-height: 16px;
}
.dialog-ad-cta {
align-self: stretch;
width: 100%;
}
}
@media (prefers-reduced-motion: reduce) {
.dialog-ad-close {
transition: none;
}
}
+155
View File
@@ -0,0 +1,155 @@
/* 下载 App 弹窗 */
.download-pop {
position: fixed;
inset: 0;
z-index: 290;
display: none;
align-items: center;
justify-content: center;
padding: 24px;
}
.download-pop.is-open {
display: flex;
}
.download-pop__mask {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.7);
}
.download-pop__panel {
position: relative;
z-index: 1;
width: 480px;
max-width: 100%;
padding: 32px 36px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 24px;
background: #141417;
border-radius: 20px;
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
outline: 1px solid rgba(255, 255, 255, 0.12);
outline-offset: -1px;
overflow: hidden;
}
.download-pop__close {
position: absolute;
top: 16px;
right: 16px;
width: 32px;
height: 32px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.04);
border-radius: 999px;
}
.download-pop__close .icon {
width: 18px;
height: 18px;
}
.download-pop__copy {
align-self: stretch;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
padding-right: 24px;
}
.download-pop__title {
margin: 0;
color: #f2f2f4;
font-size: 28px;
font-weight: 600;
line-height: 38px;
}
.download-pop__desc {
margin: 0;
align-self: stretch;
color: #a1a1aa;
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.download-pop__download {
align-self: stretch;
height: 56px;
padding: 0 28px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
border-radius: 999px;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
color: #fff;
font-size: 16px;
font-weight: 500;
line-height: 24px;
white-space: nowrap;
}
.download-pop__download-icon {
width: 22px;
height: 22px;
flex-shrink: 0;
object-fit: contain;
filter: brightness(0) invert(1);
}
.download-pop__close:focus-visible,
.download-pop__download:focus-visible {
outline: 2px solid #fff;
outline-offset: 2px;
}
@media (max-width: 768px) {
.download-pop {
align-items: flex-end;
padding: 0;
}
.download-pop__panel {
width: 100%;
max-width: none;
padding: 24px 20px calc(24px + env(safe-area-inset-bottom, 0px));
gap: 20px;
border-radius: 20px 20px 0 0;
box-shadow: none;
}
.download-pop__close {
top: 12px;
right: 12px;
}
.download-pop__copy {
padding-right: 28px;
gap: 6px;
}
.download-pop__title {
font-size: 22px;
line-height: 30px;
}
.download-pop__desc {
font-size: 13px;
line-height: 20px;
}
.download-pop__download {
height: 52px;
font-size: 15px;
}
}
+142
View File
@@ -0,0 +1,142 @@
/* 18+ 年龄确认弹窗 */
html.eighteen-ok .eighteen {
display: none !important;
}
.eighteen {
position: fixed;
inset: 0;
z-index: 300;
display: none;
align-items: center;
justify-content: center;
padding: 24px;
}
.eighteen.is-open {
display: flex;
}
.eighteen__mask {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.7);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}
.eighteen__dialog {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 20px;
width: min(100%, 480px);
padding: 32px;
background: #141417;
border: 1px solid var(--line);
border-radius: var(--radius-xl);
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
}
.eighteen__badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 64px;
height: 64px;
border-radius: 999px;
background: rgba(236, 35, 127, 0.1);
border: 1px solid rgba(236, 35, 127, 0.3);
color: var(--accent-hot);
font-family: Inter, var(--font);
font-size: 20px;
font-weight: 600;
line-height: 26px;
}
.eighteen__title {
margin: 0;
text-align: center;
color: var(--text);
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.eighteen__desc {
margin: 0;
align-self: stretch;
text-align: center;
color: var(--text-muted);
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.eighteen__enter {
align-self: stretch;
height: 52px;
padding: 0 28px;
font-size: 16px;
line-height: 24px;
}
.eighteen__exit {
text-align: center;
color: var(--text-muted);
font-size: 14px;
font-weight: 400;
line-height: 22px;
cursor: pointer;
}
.eighteen__exit:hover {
color: var(--text);
}
body.eighteen-locked {
overflow: hidden;
}
@media (max-width: 768px) {
.eighteen {
padding: 24px;
}
.eighteen__dialog {
width: min(100%, 327px);
padding: 24px;
gap: 16px;
border-radius: 20px;
}
.eighteen__badge {
width: 56px;
height: 56px;
}
.eighteen__title {
font-size: 20px;
line-height: 28px;
}
.eighteen__desc {
font-size: 13px;
line-height: 20px;
}
.eighteen__enter {
height: 48px;
padding: 0 22px;
font-size: 15px;
line-height: 22px;
}
.eighteen__exit {
font-size: 13px;
line-height: 20px;
}
}
+266
View File
@@ -0,0 +1,266 @@
/* 我的收藏 H5:以 Figma 375px 画板为基准。 */
@media (max-width: 768px) {
.favorites-main {
display: flex;
flex-direction: column;
gap: 12px;
width: 100%;
max-width: none;
min-width: 0;
margin: 0;
padding: 12px var(--profile-gutter, 16px) 20px;
}
.favorites-main.is-empty {
width: 100%;
gap: 0;
padding: 12px 0 20px;
}
.favorites-main.is-empty .favorites-toolbar {
width: 100%;
padding-inline: var(--profile-gutter, 16px);
}
.favorites-main.is-empty .favorites-recommendations {
width: auto;
margin-top: 8px;
padding: 0 var(--profile-gutter, 16px) 24px;
}
.favorites-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
width: 100%;
min-width: 0;
min-height: 30px;
}
.favorites-filters {
display: flex;
flex: 1 1 auto;
flex-wrap: nowrap;
align-items: center;
gap: clamp(6px, 2.666667vw, 10px);
min-width: 0;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.favorites-filters::-webkit-scrollbar {
display: none;
}
.favorites-filter {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
height: 30px;
padding: 0 clamp(11px, 4.266667vw, 16px);
border: 1px solid rgba(255, 255, 255, .12);
border-radius: 999px;
background: transparent;
color: #a1a1aa;
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
}
.favorites-filter.is-active {
border-color: rgba(236, 35, 127, .3);
background: rgba(236, 35, 127, .1);
color: #ff4a7b;
}
.favorites-manage {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
height: 30px;
padding: 0;
border: 0;
background: none;
color: #a1a1aa;
font-size: 12px;
font-weight: 400;
line-height: 18px;
white-space: nowrap;
}
.favorites-manage svg,
.favorites-manage img {
display: none;
}
.favorites-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px var(--profile-card-gap, 8px);
width: 100%;
min-width: 0;
}
.favorites-card {
position: relative;
display: flex;
flex-direction: column;
gap: 6px;
min-width: 0;
}
.favorites-card .profile-card__cover {
width: 100%;
aspect-ratio: 109 / 145;
border-radius: 8px;
}
.favorites-card .profile-card__title {
overflow: hidden;
font-size: 14px;
font-weight: 600;
line-height: 20px;
text-overflow: ellipsis;
white-space: nowrap;
}
.favorites-card .profile-card__meta {
overflow: hidden;
font-size: 11px;
line-height: 16px;
text-overflow: ellipsis;
white-space: nowrap;
}
.favorites-card__desktop-meta {
display: none;
}
.favorites-card__mobile-meta {
display: inline;
}
.favorites-card__remove {
display: none;
}
.favorites-page.is-managing .favorites-card__remove {
position: absolute;
top: 6px;
left: 6px;
z-index: 3;
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
padding: 0;
border: 1px solid rgba(255, 255, 255, .5);
border-radius: 50%;
background: rgba(11, 11, 13, .8);
color: #f2f2f4;
}
.favorites-card .profile-card__episodes {
bottom: 10px;
left: 10px;
font-size: 11px;
line-height: 14px;
}
.favorites-card .profile-card__badge {
top: 4px;
right: 4px;
min-width: 30px;
height: 20px;
padding: 0 5px;
}
.favorites-load-more {
display: inline-flex;
align-items: center;
justify-content: center;
width: 100%;
height: 40px;
padding: 0 16px;
border: 1px solid rgba(255, 255, 255, .24);
border-radius: 999px;
background: transparent;
color: #f2f2f4;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.favorites-pagination {
display: none;
}
.favorites-empty {
gap: 16px;
padding: 48px 16px;
}
.favorites-empty__description-desktop,
.favorites-recommendations__more-desktop {
display: none;
}
.favorites-empty__description-mobile,
.favorites-recommendations__more-mobile {
display: inline;
}
.favorites-recommendations {
width: 100%;
padding: 0 var(--profile-gutter, 16px) 20px;
}
.favorites-recommendations__head {
height: 26px;
margin-bottom: 14px;
}
.favorites-recommendations__head h2 {
font-size: 18px;
line-height: 26px;
}
.favorites-recommendations__head a {
font-size: 12px;
line-height: 18px;
}
.favorites-recommendations__head a img {
width: 14px;
height: 14px;
}
.favorites-recommendations__grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px var(--profile-card-gap, 8px);
}
.favorites-card[hidden],
.favorites-empty[hidden],
.favorites-load-more[hidden] {
display: none !important;
}
}
@media (max-width: 359px) {
.favorites-filters {
flex-wrap: nowrap;
gap: 6px;
}
.favorites-filter {
padding-inline: 8px;
font-size: 12px;
}
}
+352
View File
@@ -0,0 +1,352 @@
/* 我的收藏:1440px 桌面稿,公共个人页头与封面卡复用 profile.css。 */
.favorites-page [hidden] {
display: none !important;
}
.favorites-main {
display: flex;
flex-direction: column;
gap: 24px;
width: min(calc(100% - 48px), var(--page-width));
margin-inline: auto;
padding: 24px 0 40px;
}
.favorites-main.is-empty {
width: 100%;
max-width: none;
gap: 24px;
margin: 0;
padding: 24px 0 40px;
}
.favorites-main.is-empty .favorites-toolbar {
width: min(calc(100% - 48px), var(--page-width));
margin-inline: auto;
}
.favorites-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
min-height: 36px;
}
.favorites-filters {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 10px;
min-width: 0;
}
.favorites-filter,
.favorites-manage {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
height: 36px;
border: 1px solid var(--line);
border-radius: 999px;
background: transparent;
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
}
.favorites-filter {
padding-inline: 16px;
color: var(--text-muted);
}
.favorites-filter.is-active {
border-color: rgba(236, 35, 127, .3);
background: rgba(236, 35, 127, .1);
color: var(--accent-hot);
}
.favorites-manage {
gap: 6px;
padding-inline: 12px;
border-color: rgba(255, 255, 255, .24);
color: var(--text);
cursor: pointer;
}
.favorites-manage img,
.favorites-manage svg {
display: block;
width: 16px;
height: 16px;
flex: 0 0 16px;
}
.favorites-filter:hover,
.favorites-manage:hover {
border-color: rgba(255, 255, 255, .36);
color: var(--text);
}
.favorites-filter:focus-visible,
.favorites-manage:focus-visible,
.favorites-pagination button:focus-visible {
outline: 2px solid var(--accent-hot);
outline-offset: 3px;
}
.favorites-grid {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 32px 24px;
min-width: 0;
}
.favorites-grid .favorites-card {
min-width: 0;
}
.favorites-card__mobile-meta,
.favorites-card__remove {
display: none;
}
.favorites-card__media {
position: relative;
min-width: 0;
}
.favorites-page.is-managing .favorites-card__remove {
position: absolute;
top: 6px;
left: 6px;
z-index: 3;
display: inline-flex;
align-items: center;
justify-content: center;
width: 26px;
height: 26px;
border: 1px solid rgba(255, 255, 255, .4);
border-radius: 50%;
background: rgba(11, 11, 13, .78);
color: #fff;
font-size: 18px;
line-height: 1;
}
.favorites-card__remove img {
display: block;
width: 14px;
height: 14px;
}
.favorites-page.is-managing .favorites-manage {
border-color: rgba(236, 35, 127, .3);
background: rgba(236, 35, 127, .1);
color: var(--accent-hot);
}
.favorites-load-more {
display: none;
}
.favorites-pagination,
.favorites-pagination__pages {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}
.favorites-pagination {
min-height: 36px;
}
.favorites-pagination button {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 36px;
width: 36px;
height: 36px;
border: 1px solid var(--line-soft);
border-radius: 8px;
background: var(--bg-elevated);
color: var(--text-muted);
font-family: Inter, var(--font);
font-size: 16px;
font-weight: 600;
line-height: 20px;
}
.favorites-pagination button.is-active {
border-color: transparent;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
color: #fff;
}
.favorites-pagination button:not(:disabled):not(.is-active):hover {
border-color: rgba(255, 255, 255, .24);
color: var(--text);
}
.favorites-pagination button:disabled {
cursor: default;
opacity: .45;
}
.favorites-pagination button img,
.favorites-pagination button svg {
display: block;
width: 16px;
height: 16px;
}
.favorites-pagination > .favorites-pagination__button:first-child img {
transform: rotate(180deg);
}
.favorites-pagination__total {
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
white-space: nowrap;
}
.favorites-empty {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
width: 100%;
padding: 96px 16px;
font-size: 14px;
line-height: 22px;
text-align: center;
}
.favorites-main.is-empty:has(.favorites-recommendations) .favorites-empty {
padding-bottom: 40px;
}
.favorites-main.is-empty .favorites-recommendations {
padding-top: 8px;
}
.favorites-filter-empty {
margin: 0;
padding: 56px 16px;
color: var(--text-dim);
font-size: 14px;
line-height: 22px;
text-align: center;
}
.favorites-empty__icon {
display: flex;
align-items: center;
justify-content: center;
width: 96px;
height: 96px;
flex: 0 0 96px;
border: 1px solid var(--line);
border-radius: 50%;
background: #1b1b1f;
}
.favorites-empty__icon img {
width: 40px;
height: 40px;
}
.favorites-empty__title {
margin: 0;
color: var(--text);
font-size: 20px;
font-weight: 600;
line-height: 28px;
}
.favorites-empty__description {
margin: 0;
color: var(--text-muted);
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.favorites-empty__description-mobile,
.favorites-recommendations__more-mobile {
display: none;
}
.favorites-empty__action {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 147px;
height: 48px;
border-radius: 999px;
background: linear-gradient(105deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
color: #fff;
font-size: 14px;
font-weight: 600;
line-height: 20px;
white-space: nowrap;
}
.favorites-empty__action img {
width: 20px;
height: 20px;
}
.favorites-empty__action:focus-visible,
.favorites-recommendations__head a:focus-visible {
outline: 2px solid var(--accent-hot);
outline-offset: 3px;
}
.favorites-recommendations {
width: min(calc(100% - 48px), var(--page-width));
margin-inline: auto;
padding-bottom: 40px;
}
.favorites-recommendations__head {
display: flex;
align-items: center;
justify-content: space-between;
height: 32px;
margin-bottom: 18px;
}
.favorites-recommendations__head h2 {
margin: 0;
color: var(--text);
font-size: 20px;
font-weight: 600;
line-height: 28px;
}
.favorites-recommendations__head a {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.favorites-recommendations__head a img {
width: 16px;
height: 16px;
}
.favorites-recommendations__grid {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 24px;
}
+667
View File
@@ -0,0 +1,667 @@
/* PC 意见反馈页 */
body.page-feedback .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.feedback-page {
padding-top: 72px;
}
.feedback-hero {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 12px;
padding: 48px 0 8px;
}
.feedback-hero__title {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 36px;
}
.feedback-hero__desc {
margin: 0;
color: var(--text-muted);
font-size: 15px;
line-height: 24px;
}
.feedback-layout {
display: flex;
align-items: flex-start;
gap: 40px;
padding: 24px 0 48px;
}
.feedback-form {
flex: 1 1 0;
min-width: 0;
max-width: 784px;
padding: 32px;
display: flex;
flex-direction: column;
gap: 24px;
background: #141417;
border: 1px solid var(--line-soft);
border-radius: var(--radius-lg);
}
.feedback-form__field {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
}
.feedback-form__field:has(.feedback-form__types) {
gap: 10px;
}
.feedback-form__label {
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.feedback-form__types {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.feedback-type {
height: 36px;
padding: 0 16px;
display: inline-flex;
align-items: center;
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
border: 1px solid var(--line);
border-radius: 999px;
cursor: pointer;
}
.feedback-type input {
position: absolute;
opacity: 0;
pointer-events: none;
}
.feedback-type.is-active,
.feedback-type:has(input:checked) {
color: #ff4a7b;
background: rgba(236, 35, 127, 0.1);
border-color: rgba(236, 35, 127, 0.3);
}
.feedback-form__textarea-wrap {
align-self: stretch;
height: 160px;
min-height: 160px;
padding: 14px 16px;
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 12px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--line);
border-radius: var(--radius-md);
}
.feedback-form__textarea-wrap:focus-within {
border-color: rgba(236, 35, 127, 0.45);
}
.feedback-form__textarea {
flex: 1 1 auto;
width: 100%;
min-height: 0;
padding: 0;
border: 0;
outline: none;
resize: none;
background: transparent;
color: var(--text);
font: inherit;
font-size: 15px;
line-height: 24px;
}
.feedback-form__textarea::placeholder {
color: var(--text-dim);
}
.feedback-form__count {
align-self: stretch;
text-align: right;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.feedback-uploads {
display: flex;
flex-wrap: wrap;
gap: 12px;
width: min(100%, 384px);
}
.feedback-upload {
width: 120px;
height: 120px;
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 6px;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
background: rgba(255, 255, 255, 0.06);
border: 1px dashed var(--line);
border-radius: var(--radius-md);
cursor: pointer;
overflow: hidden;
position: relative;
}
.feedback-upload--placeholder {
cursor: default;
}
.feedback-upload--preview {
border-style: solid;
}
.feedback-upload--preview.is-uploading {
opacity: 0.65;
}
.feedback-upload--preview.is-error {
border-color: rgba(236, 35, 127, 0.7);
}
.feedback-upload .icon {
width: 22px;
height: 22px;
}
.feedback-upload--preview img {
width: 100%;
height: 100%;
object-fit: cover;
}
.feedback-upload__remove {
position: absolute;
top: 6px;
right: 6px;
width: 22px;
height: 22px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(11, 11, 13, 0.72);
border: 1px solid var(--line);
border-radius: 999px;
}
.feedback-upload__remove .icon {
width: 12px;
height: 12px;
}
.feedback-form__control {
align-self: stretch;
height: 48px;
padding: 0 16px;
display: flex;
align-items: center;
gap: 10px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--line);
border-radius: var(--radius-md);
}
.feedback-form__control:focus-within {
border-color: rgba(236, 35, 127, 0.45);
}
.feedback-form__control > .icon {
width: 18px;
height: 18px;
flex-shrink: 0;
}
.feedback-form__input {
flex: 1 1 0;
min-width: 0;
height: 100%;
padding: 0;
border: 0;
outline: none;
background: transparent;
color: var(--text);
font: inherit;
font-size: 15px;
line-height: 24px;
}
.feedback-form__input::placeholder {
color: var(--text-dim);
}
.feedback-form__foot {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 16px;
}
.feedback-form__submit {
height: 48px;
padding: 0 22px;
font-size: 15px;
line-height: 22px;
}
.feedback-form__submit.is-loading,
.feedback-form__submit:disabled {
opacity: 0.72;
cursor: wait;
}
.feedback-form__submit .icon {
width: 20px;
height: 20px;
}
.feedback-form__hint {
margin: 0;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.feedback-aside {
width: 376px;
flex-shrink: 0;
display: flex;
flex-direction: column;
gap: 16px;
}
.feedback-aside__card {
padding: 24px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 12px;
background: #141417;
border: 1px solid var(--line-soft);
border-radius: var(--radius-lg);
}
.feedback-aside__card--muted {
gap: 10px;
background: #1b1b1f;
}
.feedback-aside__title {
margin: 0;
color: var(--text);
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.feedback-aside__link,
.feedback-aside__row {
margin: 0;
align-self: stretch;
display: flex;
align-items: center;
gap: 8px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.feedback-aside__link .icon,
.feedback-aside__row .icon {
width: 16px;
height: 16px;
flex-shrink: 0;
}
.feedback-aside__row a {
color: inherit;
}
.feedback-aside__link {
color: var(--text-muted);
font-weight: 400;
}
.feedback-aside__row a:hover,
.feedback-aside__link:hover {
color: var(--text);
}
@media (min-width: 769px) {
.page-feedback .feedback-form {
min-height: 690px;
}
.page-feedback .site-footer__legal {
flex-direction: row;
justify-content: space-between;
gap: 24px;
}
.page-feedback .site-footer__rule {
margin-top: 8px;
}
}
@media (min-width: 769px) and (max-width: 1199px) {
.page-feedback .site-header {
height: 72px;
padding: 0 24px;
flex-wrap: nowrap;
gap: 16px;
}
.page-feedback .site-header__left,
.page-feedback .site-header__right {
width: auto;
min-width: 0;
gap: 12px;
}
.page-feedback .site-header .search {
width: min(260px, 30vw);
}
.page-feedback .site-header .nav {
display: none;
}
}
@media (min-width: 769px) and (max-width: 900px) {
.page-feedback .site-header .search {
display: none;
}
.page-feedback .feedback-page {
width: calc(100% - 32px);
}
.page-feedback .feedback-layout {
flex-direction: column;
gap: 16px;
}
.page-feedback .feedback-form,
.page-feedback .feedback-aside {
width: 100%;
max-width: none;
}
}
@media (min-width: 901px) and (max-width: 1023px) {
.page-feedback .site-footer__inner {
padding: 32px 16px 24px;
gap: 24px;
}
.page-feedback .site-footer__top {
flex-direction: column;
align-items: center;
gap: 28px;
}
.page-feedback .site-footer__brand {
align-items: center;
text-align: center;
}
.page-feedback .site-footer__links {
width: 100%;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 28px 12px;
}
.page-feedback .footer-download {
grid-column: 1 / -1;
justify-self: center;
max-width: 100%;
}
.page-feedback .site-footer__legal {
flex-direction: column;
align-items: center;
text-align: center;
gap: 8px;
}
}
@media (max-width: 768px) {
body.page-feedback .site-header {
display: none !important;
}
.page-feedback .page-subheader {
display: flex;
}
.feedback-page {
padding-top: 56px;
}
.feedback-hero {
gap: 8px;
padding: 20px var(--h5-gutter) 4px;
}
.feedback-hero__title {
font-size: 22px;
line-height: 30px;
}
.feedback-hero__desc {
font-size: 13px;
line-height: 20px;
}
.feedback-layout {
flex-direction: column;
gap: 18px;
padding: 12px var(--h5-gutter) 20px;
}
.feedback-form {
width: 100%;
max-width: none;
padding: 0;
gap: 18px;
background: transparent;
border: 0;
border-radius: 0;
}
.feedback-form__field:has(.feedback-form__types) {
gap: 8px;
}
.feedback-type {
height: 32px;
}
.feedback-form__textarea-wrap {
height: 140px;
min-height: 140px;
box-sizing: border-box;
}
.feedback-form__textarea {
min-height: 0;
}
.feedback-uploads {
gap: 10px;
}
.feedback-upload {
width: min(96px, calc((100% - 20px) / 3));
height: 96px;
gap: 4px;
font-size: 11px;
line-height: 16px;
border-radius: var(--radius-sm);
}
.feedback-upload .icon {
width: 20px;
height: 20px;
}
.feedback-form__foot {
flex-direction: column;
align-items: stretch;
gap: 18px;
}
.feedback-form__submit {
width: 100%;
box-sizing: border-box;
}
.feedback-form__hint {
text-align: center;
font-size: 11px;
line-height: 16px;
}
.feedback-aside {
width: 100%;
gap: 0;
}
.feedback-aside__card--muted {
padding: 16px;
gap: 8px;
border-radius: var(--radius-md);
}
.feedback-aside__card--muted .feedback-aside__title {
font-size: 15px;
line-height: 21px;
}
.feedback-aside__card--muted .feedback-aside__row {
font-size: 13px;
line-height: 20px;
}
.feedback-aside__card--muted .feedback-aside__row .icon {
width: 14px;
height: 14px;
}
/* Feedback uses the compact footer arrangement shown in the mobile design. */
.page-feedback .site-footer {
background: #141417;
}
.page-feedback .site-footer__inner {
padding: 32px 16px 28px;
gap: 18px;
}
.page-feedback .site-footer__brand {
gap: 18px;
}
.page-feedback .site-footer__links {
flex-wrap: wrap;
gap: 12px 16px;
}
.page-feedback .footer-col {
flex-wrap: nowrap;
}
.page-feedback .footer-col:first-child,
.page-feedback .footer-col:nth-child(2) a:last-child,
.page-feedback .footer-col:nth-child(3) a:last-child {
display: none;
}
.page-feedback .footer-download {
display: flex;
flex-basis: 100%;
justify-content: center;
padding: 0;
border: 0;
background: none;
}
.page-feedback .footer-download .qr-box,
.page-feedback .footer-download__copy strong,
.page-feedback .footer-download__copy p,
.page-feedback .footer-download__copy .icon {
display: none;
}
.page-feedback .footer-download .btn {
height: 20px;
padding: 0;
color: #a1a1aa;
background: none;
font-size: 13px;
line-height: 20px;
}
.page-feedback .site-footer__rule {
display: none;
}
.page-feedback .site-footer__legal {
flex-direction: column;
justify-content: flex-start;
align-items: center;
gap: 0;
}
.page-feedback .site-footer__legal p:first-child {
order: 2;
width: 100%;
padding-top: 16px;
margin-top: 16px;
border-top: 1px solid rgba(255, 255, 255, .07);
}
.page-feedback .site-footer__legal p:last-child {
order: 1;
}
.page-feedback .site-footer__adult,
.page-feedback .site-footer__rights {
display: none;
}
.page-feedback .site-footer__mobile-adult {
display: inline;
}
}
+257
View File
@@ -0,0 +1,257 @@
/* 公共页脚 */
.site-footer {
width: 100%;
background: var(--bg-elevated);
border-top: 1px solid var(--line-soft);
}
.site-footer__inner {
width: min(100%, var(--page-width));
margin: 0 auto;
padding: 56px 0 32px;
display: flex;
flex-direction: column;
gap: 28px;
}
.site-footer__top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 40px;
}
.site-footer__brand {
display: flex;
flex-direction: column;
gap: 16px;
}
.social {
display: flex;
gap: 10px;
}
.social__item {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 999px;
border: 1px solid var(--line);
}
.social__item:hover {
background: rgba(255, 255, 255, 0.06);
}
.site-footer__links {
display: flex;
align-items: flex-start;
gap: 72px;
}
.footer-col {
display: flex;
flex-direction: column;
gap: 12px;
}
.footer-col h3 {
margin: 0;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.footer-col a {
color: var(--text-muted);
font-size: 14px;
line-height: 20px;
}
.footer-col a:hover {
color: var(--text);
}
.footer-download {
display: flex;
align-items: center;
gap: 14px;
padding: 16px;
border-radius: var(--radius-lg);
background: var(--bg-panel);
border: 1px solid var(--line-soft);
}
.footer-download .qr-box img {
width: 84px;
height: 84px;
}
.footer-download__copy {
display: flex;
flex-direction: column;
gap: 6px;
}
.footer-download__copy strong {
font-size: 15px;
font-weight: 600;
line-height: 21px;
}
.footer-download__copy p {
margin: 0;
color: var(--text-dim);
font-size: 13px;
line-height: 18px;
}
.site-footer__rule {
width: 100%;
height: 1px;
margin: 0;
border: 0;
background: var(--line-soft);
}
.site-footer__legal {
display: flex;
flex-direction: column;
gap: 8px;
}
.site-footer__legal p {
margin: 0;
color: var(--text-dim);
font-size: 13px;
line-height: 20px;
}
.site-footer__mobile-adult {
display: none;
}
@media (max-width: 1280px) {
.site-footer__links {
gap: 40px;
}
}
@media (max-width: 900px) {
.site-footer__inner {
padding: 32px 16px 24px;
gap: 24px;
}
.site-footer__top {
flex-direction: column;
align-items: center;
gap: 28px;
}
.site-footer__brand {
align-items: center;
text-align: center;
}
.site-footer__links {
width: 100%;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 28px 12px;
}
.footer-col {
min-width: 0;
}
.footer-download {
grid-column: 1 / -1;
justify-self: center;
max-width: 100%;
}
.site-footer__legal {
text-align: center;
}
.site-footer__legal p {
font-size: 12px;
line-height: 18px;
}
}
@media (max-width: 768px) {
.site-footer__inner {
padding: 32px var(--h5-gutter) 24px;
gap: 18px;
align-items: center;
text-align: center;
}
.site-footer__top {
gap: 18px;
}
.site-footer__brand {
gap: 12px;
}
.site-footer__brand .brand__logo {
width: 140px;
height: 34px;
}
.site-footer__brand .block__subtitle {
font-size: 13px;
line-height: 20px;
}
.social__item {
width: 36px;
height: 36px;
}
.social__item .icon {
width: 15px;
height: 15px;
}
.site-footer__links {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
gap: 16px;
}
.footer-col h3,
.footer-download {
display: none;
}
.footer-col {
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
gap: 16px;
}
.footer-col a {
font-size: 13px;
}
.site-footer__legal {
align-items: center;
}
.site-footer__legal p {
font-size: 11px;
line-height: 16px;
text-align: center;
}
}
File diff suppressed because it is too large Load Diff
+449
View File
@@ -0,0 +1,449 @@
/* 常见问题:桌面 1440 × 1193,移动 375 × 1257。 */
.help-page {
min-height: 100vh;
padding-top: 72px;
background: var(--bg);
}
.help-page .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.help-page .site-header__login {
display: inline-flex;
align-items: center;
justify-content: center;
height: 40px;
padding-inline: 16px;
border-radius: 999px;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
color: #fff;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.help-main {
width: min(calc(100% - 48px), var(--page-width));
margin: 0 auto;
}
.help-heading {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 12px;
padding: 48px 0 8px;
}
.help-kicker {
display: inline-flex;
align-items: center;
gap: 10px;
margin: 0;
color: var(--accent-hot);
font-size: 13px;
font-weight: 500;
line-height: 18px;
letter-spacing: .12em;
}
.help-kicker span {
width: 18px;
height: 2px;
flex: none;
background: var(--accent);
}
.help-heading h1 {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 36px;
letter-spacing: -.01em;
}
.help-heading__intro {
margin: 0;
color: var(--text-muted);
font-size: 15px;
line-height: 24px;
}
.help-content {
display: grid;
grid-template-columns: minmax(0, 784px) minmax(0, 376px);
gap: 40px;
padding: 24px 0 48px;
}
.help-faq,
.help-aside {
min-width: 0;
}
.help-faq__item {
padding: 20px 0;
border-bottom: 1px solid var(--line-soft);
}
.help-faq__item:last-child {
border-bottom: 0;
}
.help-faq__item summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
color: var(--text-muted);
font-size: 16px;
font-weight: 600;
line-height: 22px;
list-style: none;
cursor: pointer;
}
.help-faq__item summary::-webkit-details-marker {
display: none;
}
.help-faq__item[open] summary {
color: var(--text);
}
.help-faq__item summary:focus-visible {
outline: 2px solid var(--accent-hot);
outline-offset: 4px;
}
.help-faq__chevron {
display: block;
width: 18px;
height: 18px;
flex: 0 0 18px;
background: url('/static/images/chevron-right.svg') center / 18px no-repeat;
opacity: .75;
transform: rotate(90deg);
}
.help-faq__item[open] .help-faq__chevron {
transform: rotate(-90deg);
}
.help-faq__item p {
margin: 12px 0 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.help-aside {
display: flex;
flex-direction: column;
gap: 16px;
}
.help-contact,
.help-app {
display: flex;
flex-direction: column;
align-items: flex-start;
border: 1px solid var(--line-soft);
border-radius: 16px;
}
.help-contact {
gap: 14px;
padding: 24px;
background: var(--bg-elevated);
}
.help-contact h2,
.help-app h2 {
margin: 0;
color: var(--text);
font-size: 18px;
font-weight: 600;
line-height: 26px;
}
.help-contact p,
.help-app p {
margin: 0;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
}
.help-contact__button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 100%;
height: 48px;
border-radius: 999px;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
color: #fff;
font-size: 15px;
font-weight: 500;
line-height: 22px;
}
.help-contact__button img {
width: 20px;
height: 20px;
}
.help-contact__email {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--accent-hot);
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.help-contact__email img,
.help-app a img {
width: 16px;
height: 16px;
}
.help-app {
gap: 12px;
padding: 24px;
background: var(--bg-panel);
}
.help-app a {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
height: 40px;
padding: 0 16px;
border: 1px solid var(--line);
border-radius: 999px;
color: var(--text);
font-size: 14px;
line-height: 20px;
}
.help-contact__button:hover,
.help-app a:hover {
filter: brightness(1.1);
}
.help-contact__button:focus-visible,
.help-app a:focus-visible,
.help-contact__email:focus-visible {
outline: 2px solid var(--accent-hot);
outline-offset: 3px;
}
.help-page .site-footer__legal {
flex-direction: row;
justify-content: space-between;
gap: 24px;
}
@media (min-width: 769px) {
.help-page .site-footer__rule {
margin-top: 8px;
}
}
@media (min-width: 769px) and (max-width: 1199px) {
.help-page .site-header {
height: 72px;
padding-block: 0;
flex-wrap: nowrap;
}
.help-page .site-header__left,
.help-page .site-header__right {
width: auto;
}
.help-page .site-header .search {
width: min(260px, 30vw);
}
}
@media (min-width: 769px) and (max-width: 1100px) {
.help-page .site-header .nav {
display: none;
}
}
@media (max-width: 768px) {
.help-page {
padding-top: 0;
}
.help-page .site-header {
display: none;
}
.help-page .page-subheader {
display: flex;
}
.help-main {
width: 100%;
padding-top: 56px;
}
.help-heading {
gap: 8px;
padding: 20px 16px 4px;
}
.help-heading h1 {
font-size: 22px;
line-height: 30px;
}
.help-heading__intro {
font-size: 13px;
line-height: 20px;
}
.help-content {
display: flex;
flex-direction: column;
gap: 16px;
padding: 4px 16px 20px;
}
.help-faq__item summary {
font-size: 16px;
line-height: 22px;
}
.help-faq__item p {
font-size: 14px;
line-height: 22px;
}
.help-aside {
display: block;
}
.help-contact {
gap: 10px;
padding: 18px;
border-radius: 12px;
}
.help-contact h2 {
font-size: 16px;
line-height: 22px;
}
.help-contact__button {
height: 40px;
font-size: 14px;
line-height: 20px;
}
.help-contact__button img {
width: 18px;
height: 18px;
}
.help-contact p {
font-size: 12px;
line-height: 18px;
}
.help-contact__email,
.help-app {
display: none;
}
.help-page .site-footer__inner {
padding: 32px 16px 28px;
gap: 18px;
}
.help-page .site-footer__brand {
gap: 18px;
}
.help-page .site-footer__links {
flex-wrap: wrap;
gap: 12px 16px;
}
.help-page .footer-col {
flex-wrap: nowrap;
}
.help-page .footer-col:first-child,
.help-page .footer-col:nth-child(2) a:last-child,
.help-page .footer-col:nth-child(3) a:last-child {
display: none;
}
.help-page .footer-download {
display: flex;
flex-basis: 100%;
justify-content: center;
padding: 0;
border: 0;
background: none;
}
.help-page .footer-download .qr-box,
.help-page .footer-download__copy strong,
.help-page .footer-download__copy p,
.help-page .footer-download__copy .icon {
display: none;
}
.help-page .footer-download .btn {
height: 20px;
padding: 0;
color: var(--text-muted);
background: none;
font-size: 13px;
line-height: 20px;
}
.help-page .site-footer__rule {
display: none;
}
.help-page .site-footer__legal {
flex-direction: column;
align-items: center;
gap: 0;
}
.help-page .site-footer__legal p:first-child {
order: 2;
width: 100%;
padding-top: 16px;
margin-top: 16px;
border-top: 1px solid var(--line-soft);
}
.help-page .site-footer__legal p:last-child {
order: 1;
}
.help-page .site-footer__adult,
.help-page .site-footer__rights {
display: none;
}
.help-page .site-footer__mobile-adult {
display: inline;
}
}
+256
View File
@@ -0,0 +1,256 @@
/* 观看历史 H5:对齐 Figma 375px 画板。 */
@media (max-width: 768px) {
.history-main {
display: flex;
flex-direction: column;
gap: 12px;
width: 100%;
max-width: none;
margin: 0;
padding: 12px 16px 20px;
}
.history-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-width: 0;
min-height: 30px;
}
.history-filters {
display: flex;
flex: 1 1 auto;
align-items: center;
gap: 10px;
min-width: 0;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.history-filters::-webkit-scrollbar { display: none; }
.history-filter {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
height: 30px;
padding: 0 16px;
border: 1px solid rgba(255, 255, 255, .12);
border-radius: 999px;
background: transparent;
color: #a1a1aa;
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
cursor: pointer;
}
.history-filter.is-active {
border-color: rgba(236, 35, 127, .3);
background: rgba(236, 35, 127, .1);
color: #ff4a7b;
}
.history-clear {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
height: auto;
padding: 0;
border: 0;
background: transparent;
color: #a1a1aa;
font-size: 12px;
font-weight: 400;
line-height: 18px;
white-space: nowrap;
cursor: pointer;
}
.history-clear img,
.history-clear__desktop { display: none; }
.history-clear__mobile { display: inline; }
.history-group,
.history-list {
display: flex;
flex-direction: column;
width: 100%;
min-width: 0;
}
.history-group__title {
margin: 0;
color: #7c7c86;
font-size: 12px;
font-weight: 500;
line-height: 16px;
}
.history-item {
display: flex;
align-items: center;
gap: 12px;
width: 100%;
min-width: 0;
padding: 12px 0;
border-bottom: 1px solid rgba(255, 255, 255, .07);
}
.history-item__cover {
display: block;
flex: 0 0 48px;
width: 48px;
height: 64px;
overflow: hidden;
border-radius: 6px;
background: #141417;
}
.history-item__image {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.history-item__body {
display: flex;
flex: 1 1 0;
flex-direction: column;
align-items: flex-start;
gap: 5px;
min-width: 0;
}
.history-item__title {
display: block;
align-self: stretch;
overflow: hidden;
margin: 0;
color: #f2f2f4;
font-size: 15px;
font-weight: 600;
line-height: 21px;
text-overflow: ellipsis;
white-space: nowrap;
}
.history-item__title a {
color: inherit;
text-decoration: none;
}
.history-item__details {
display: block;
align-self: stretch;
overflow: hidden;
color: #7c7c86;
font-size: 11px;
font-weight: 400;
line-height: 16px;
text-overflow: ellipsis;
white-space: nowrap;
}
.history-item__episodes,
.history-item__mobile-time {
display: inline;
}
.history-item__mobile-time::before {
content: " ";
white-space: pre;
}
.history-item__genre,
.history-item__time,
.history-item__resume-desktop {
display: none;
}
.history-item__progress {
display: block;
width: 140px;
max-width: 100%;
height: 3px;
overflow: hidden;
border-radius: 999px;
background: rgba(255, 255, 255, .12);
}
.history-item__progress-fill {
display: block;
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.history-item__resume {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
gap: 8px;
width: auto;
min-width: 0;
height: 32px;
padding: 0 12px;
border: 1px solid rgba(255, 255, 255, .24);
border-radius: 999px;
background: transparent;
color: #f2f2f4;
font-size: 14px;
font-weight: 500;
line-height: 20px;
text-decoration: none;
white-space: nowrap;
}
.history-item__resume svg,
.history-item__resume img {
flex: 0 0 16px;
width: 16px;
height: 16px;
}
.history-item__resume-mobile {
display: inline;
}
.history-item__remove {
display: inline-flex;
flex: 0 0 14px;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
padding: 0;
border: 0;
background: transparent;
color: #7c7c86;
cursor: pointer;
}
.history-item__remove svg,
.history-item__remove img {
display: block;
width: 14px;
height: 14px;
}
.history-main .account-pagination {
margin-top: 4px;
}
.history-empty,
.history-main .account-empty {
padding: 48px 0;
}
}
+256
View File
@@ -0,0 +1,256 @@
/* 观看历史:1440px Figma 桌面画板,沿用个人中心公共页头与页签。 */
.history-page [hidden] { display: none !important; }
.history-main {
display: flex;
flex-direction: column;
gap: 24px;
width: min(calc(100% - 48px), var(--page-width));
margin-inline: auto;
padding: 24px 0 40px;
}
.history-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
min-height: 36px;
}
.history-filters {
display: flex;
align-items: center;
gap: 10px;
}
.history-filter,
.history-clear,
.history-item__resume {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
height: 36px;
padding: 0;
border: 1px solid var(--line);
border-radius: 999px;
background: transparent;
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
cursor: pointer;
}
.history-filter {
padding-inline: 16px;
}
.history-filter.is-active {
border-color: rgba(236, 35, 127, .3);
background: rgba(236, 35, 127, .1);
color: var(--accent-hot);
}
.history-clear {
gap: 6px;
padding-inline: 12px;
border-color: rgba(255, 255, 255, .24);
color: var(--text);
}
.history-clear__mobile { display: none; }
.history-clear svg,
.history-clear img,
.history-item__resume svg,
.history-item__resume img,
.history-item__remove svg,
.history-item__remove img {
display: block;
width: 16px;
height: 16px;
flex: 0 0 16px;
}
.history-filter:hover,
.history-clear:hover,
.history-item__resume:hover,
.history-item__remove:hover {
border-color: rgba(255, 255, 255, .36);
color: var(--text);
}
.history-filter:focus-visible,
.history-clear:focus-visible,
.history-item__resume:focus-visible,
.history-item__remove:focus-visible {
outline: 2px solid var(--accent-hot);
outline-offset: 3px;
}
.history-group {
min-width: 0;
}
.history-group__title {
margin: 0;
color: var(--text-dim);
font-size: 12px;
font-weight: 500;
line-height: 16px;
}
.history-list {
margin: 0;
padding: 0;
list-style: none;
}
.history-item {
display: grid;
grid-template-columns: 56px minmax(0, 1fr) 120px 106px 16px;
align-items: center;
gap: 16px;
min-width: 0;
min-height: 104px;
padding-block: 14px;
border-bottom: 1px solid var(--line-soft);
}
.history-item__cover {
display: block;
width: 56px;
height: 75px;
overflow: hidden;
border-radius: 6px;
background: var(--bg-panel);
}
.history-item__image {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.history-item__body {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
min-width: 0;
}
.history-item__title {
display: block;
max-width: 100%;
margin: 0;
overflow: hidden;
color: var(--text);
font-size: 16px;
font-weight: 600;
line-height: 22px;
text-overflow: ellipsis;
white-space: nowrap;
}
.history-item__title a {
color: inherit;
text-decoration: none;
}
.history-item__title a:hover {
color: var(--accent-hot);
}
.history-item__details {
display: flex;
align-items: center;
gap: 8px;
max-width: 100%;
overflow: hidden;
color: #a1a1aa;
font-size: 13px;
font-weight: 400;
line-height: 20px;
white-space: nowrap;
}
.history-item__episodes,
.history-item__genre {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.history-item__episodes {
flex: 0 0 auto;
}
.history-item__progress {
display: block;
width: 240px;
max-width: 100%;
height: 3px;
overflow: hidden;
border-radius: 999px;
background: var(--line);
}
.history-item__progress-fill {
display: block;
width: var(--progress, 0%);
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.history-item__time {
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
white-space: nowrap;
}
.history-item__mobile-time,
.history-item__resume-mobile {
display: none;
}
.history-item__resume {
gap: 8px;
width: 106px;
padding-inline: 12px;
border-color: rgba(255, 255, 255, .24);
color: var(--text);
text-decoration: none;
}
.history-item__remove {
display: inline-flex;
align-items: center;
justify-content: center;
width: 16px;
height: 36px;
padding: 0;
border: 0;
background: transparent;
color: var(--text-dim);
cursor: pointer;
}
.history-group + .history-group {
margin-top: 0;
}
.history-main.is-empty {
gap: 24px;
padding: 24px 0 40px;
}
.history-main.is-empty .account-empty {
padding-block: 72px;
}
File diff suppressed because it is too large Load Diff
+478
View File
@@ -0,0 +1,478 @@
/* Shared layout for the static terms and privacy pages. */
.legal-page {
min-height: 100vh;
padding-top: 72px;
background: var(--bg);
}
/* overflow-x:hidden on html/body breaks position:sticky; clip keeps horizontal containment */
html:has(body.legal-page),
body.legal-page {
overflow-x: clip;
}
.legal-page .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.legal-page .site-header__login {
display: inline-flex;
align-items: center;
justify-content: center;
height: 40px;
padding: 0 16px;
border-radius: 999px;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
color: #fff;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.legal-main {
width: 100%;
}
.legal-hero,
.legal-layout {
width: min(calc(100% - 48px), 1200px);
margin: 0 auto;
}
.legal-hero {
display: flex;
flex-direction: column;
gap: 12px;
padding: 48px 0 8px;
}
.legal-kicker {
display: inline-flex;
align-items: center;
gap: 10px;
height: 18px;
margin: 0;
color: var(--accent-hot);
font-size: 13px;
font-weight: 500;
line-height: 18px;
letter-spacing: .12em;
}
.legal-kicker > span {
display: block;
width: 18px;
height: 2px;
flex: none;
background: var(--accent);
}
.legal-title {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 36px;
letter-spacing: -.01em;
}
.legal-dates,
.legal-intro {
margin: 0;
color: var(--text-muted);
font-size: 15px;
font-weight: 400;
line-height: 24px;
}
.legal-layout {
position: relative;
display: grid;
grid-template-columns: 280px minmax(0, 1fr);
align-items: start;
gap: 40px;
padding: 24px 0 48px;
}
.legal-toc-slot {
position: relative;
min-width: 0;
align-self: start;
}
.legal-toc {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
max-height: calc(100vh - 104px);
overflow-y: auto;
padding: 12px;
border: 1px solid var(--line-soft);
border-radius: 12px;
background: var(--bg-elevated);
}
.legal-toc.is-fixed {
position: fixed;
z-index: 20;
}
.legal-toc__label {
color: var(--text-dim);
font-size: 12px;
font-weight: 500;
line-height: 16px;
}
.legal-toc__list {
display: flex;
flex-direction: column;
gap: 2px;
}
.legal-toc__item {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
height: 40px;
padding: 0 10px;
border-radius: 8px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
white-space: nowrap;
}
.legal-toc__item > span:first-child {
color: var(--text-dim);
font-family: Inter, var(--font);
font-size: 12px;
font-weight: 500;
line-height: 16px;
letter-spacing: .06em;
}
.legal-toc__item.is-active {
background: rgba(236, 35, 127, .1);
color: var(--accent-hot);
}
.legal-toc__item.is-active > span:first-child {
color: var(--accent-hot);
}
.legal-content {
display: flex;
flex-direction: column;
gap: 32px;
min-width: 0;
}
.legal-section {
display: flex;
flex-direction: column;
gap: 10px;
scroll-margin-top: 88px;
}
.legal-section__title {
margin: 0;
color: var(--text);
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.legal-section__paragraph {
margin: 0;
color: var(--text-muted);
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.legal-section__paragraph a,
.legal-section__meta a {
color: var(--accent-hot);
}
.legal-section__meta {
margin: 0;
display: inline-flex;
flex-wrap: wrap;
align-items: center;
align-content: center;
gap: 8px;
color: var(--text-muted);
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
@media (min-width: 769px) {
.legal-page .site-footer__legal {
flex-direction: row;
justify-content: space-between;
gap: 24px;
}
.legal-page .site-footer__rule {
margin-top: 8px;
}
}
@media (min-width: 769px) and (max-width: 1199px) {
.legal-page .site-header {
height: 72px;
padding-block: 0;
flex-wrap: nowrap;
}
.legal-page .site-header__left,
.legal-page .site-header__right {
width: auto;
}
.legal-page .site-header .search {
width: min(260px, 30vw);
}
}
@media (min-width: 769px) and (max-width: 1100px) {
.legal-page .site-header .nav {
display: none;
}
}
@media (max-width: 768px) {
.legal-page {
padding-top: 0;
}
.legal-page .site-header {
display: none;
}
.legal-page .page-subheader {
display: flex;
background: var(--bg);
border-bottom: 1px solid var(--line-soft);
}
.legal-main {
padding-top: 56px;
}
.legal-hero,
.legal-layout {
width: 100%;
}
.legal-hero {
gap: 8px;
padding: 20px 16px 4px;
}
.legal-kicker {
letter-spacing: 1.56px;
}
.legal-title {
font-size: 22px;
line-height: 30px;
letter-spacing: 0;
}
.legal-dates,
.legal-intro {
font-size: 13px;
line-height: 20px;
}
.legal-layout {
display: flex;
flex-direction: column;
gap: 0;
padding: 0;
}
.legal-toc {
position: static;
top: auto;
left: auto;
z-index: auto;
display: block;
width: 100% !important;
max-height: none;
overflow: visible;
padding: 8px 0 0;
border: 0;
border-radius: 0;
background: transparent;
}
.legal-toc.is-fixed {
position: static;
}
.legal-toc-slot {
height: auto !important;
}
.legal-toc__label {
display: none;
}
.legal-toc__list {
display: flex;
flex-direction: row;
gap: 8px;
width: 100%;
padding: 0 16px;
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.legal-toc__list::-webkit-scrollbar {
display: none;
}
.legal-toc__item {
width: auto;
height: 30px;
flex: none;
gap: 6px;
padding: 0 14px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 999px;
background: transparent;
color: var(--text-muted);
font-size: 13px;
font-weight: 400;
line-height: 20px;
}
.legal-toc__item > span:first-child {
color: inherit;
font-family: var(--font);
font-size: inherit;
font-weight: inherit;
line-height: inherit;
letter-spacing: 0;
}
.legal-toc__item.is-active {
background: rgba(236, 35, 127, 0.1);
border-color: rgba(236, 35, 127, 0.3);
color: var(--accent-hot);
}
.legal-content {
width: 100%;
gap: 20px;
padding: 12px 16px 20px;
}
.legal-section {
gap: 8px;
scroll-margin-top: 72px;
}
.legal-section__title {
font-size: 16px;
line-height: 22px;
}
.legal-section__paragraph,
.legal-section__meta {
font-size: 13px;
line-height: 20px;
}
.legal-page .site-footer__inner {
padding: 32px 16px 24px;
gap: 18px;
}
.legal-page .site-footer__brand {
gap: 12px;
}
.legal-page .site-footer__links {
flex-wrap: wrap;
justify-content: center;
gap: 12px 16px;
}
.legal-page .footer-col {
flex-wrap: nowrap;
}
/* H5:隐藏浏览栏与「联系我们」,保留条款含 2257 / DMCA,下载改为文字链 */
.legal-page .footer-col:first-child,
.legal-page .footer-col[aria-label="帮助"] a[href*="CustomerServiceHost"],
.legal-page .footer-col[aria-label="帮助"] a:last-child {
display: none;
}
.legal-page .footer-download {
display: flex;
flex-basis: auto;
justify-content: center;
padding: 0;
border: 0;
background: none;
}
.legal-page .footer-download .qr-box,
.legal-page .footer-download__copy strong,
.legal-page .footer-download__copy p,
.legal-page .footer-download__copy .icon {
display: none;
}
.legal-page .footer-download .btn {
height: 20px;
padding: 0;
color: var(--text-muted);
background: none;
font-size: 13px;
line-height: 20px;
}
.legal-page .site-footer__rule {
display: none;
}
.legal-page .site-footer__legal {
flex-direction: column;
align-items: center;
gap: 0;
}
.legal-page .site-footer__legal p:first-child {
order: 2;
width: 100%;
padding-top: 16px;
margin-top: 16px;
border-top: 1px solid var(--line-soft);
}
.legal-page .site-footer__legal p:last-child {
order: 1;
}
.legal-page .site-footer__adult,
.legal-page .site-footer__rights {
display: none;
}
.legal-page .site-footer__mobile-adult {
display: inline;
}
}
+246
View File
@@ -0,0 +1,246 @@
/* 短剧列表页 */
body.page-list .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.list-page {
padding-top: 72px;
}
.list-hero {
display: flex;
flex-direction: column;
gap: 20px;
padding: 36px 0 8px;
}
.list-hero__intro {
display: flex;
flex-direction: column;
gap: 8px;
}
.list-hero__eyebrow {
margin: 0;
}
.list-hero__title {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 36px;
}
.list-hero__desc {
margin: 0;
color: var(--text-muted);
font-size: 15px;
font-weight: 400;
line-height: 24px;
}
.list-filters {
display: flex;
flex-direction: column;
gap: 12px;
padding-bottom: 4px;
}
.filter-row {
display: flex;
align-items: flex-start;
gap: 16px;
}
.filter-row__label {
flex-shrink: 0;
width: 56px;
color: var(--text-dim);
font-size: 14px;
font-weight: 400;
line-height: 36px;
}
.filter-row__options {
display: flex;
flex: 1 1 0;
flex-wrap: wrap;
gap: 10px;
min-width: 0;
}
.filter-chip {
display: inline-flex;
align-items: center;
justify-content: center;
height: 36px;
padding: 0 16px;
border-radius: 999px;
border: 1px solid var(--line);
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
background: transparent;
}
.filter-chip.is-active,
.filter-chip:hover {
color: var(--accent-hot);
background: rgba(236, 35, 127, 0.1);
border-color: rgba(236, 35, 127, 0.3);
}
.list-body {
display: flex;
flex-direction: column;
gap: 28px;
padding: 20px 0 24px;
}
.list-count {
display: none;
margin: 0;
color: var(--text-dim);
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.grid--list {
display: flex;
flex-wrap: wrap;
gap: 24px;
align-content: flex-start;
}
.card--list {
width: 180px;
gap: 10px;
}
.card--list .card__cover {
display: block;
aspect-ratio: 180 / 240;
height: 240px;
}
.card--list .card__title {
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.card--list .card__meta {
font-size: 13px;
line-height: 20px;
}
.card--list .card__ep {
bottom: 10px;
}
.list-promo,
.list-mid-promo {
flex: 0 0 100%;
width: 100%;
padding: 0;
}
.list-bottom-promo {
padding-bottom: 24px;
}
@media (max-width: 768px) {
.list-page {
padding-top: 56px;
}
.list-hero {
padding: 16px var(--h5-gutter) 8px;
gap: 12px;
}
.list-hero__title {
font-size: 22px;
line-height: 30px;
}
.list-hero__desc {
font-size: 13px;
line-height: 20px;
}
.list-filters {
gap: 8px;
padding: 0;
}
.filter-row {
flex-direction: column;
gap: 8px;
}
.filter-row__options {
flex: none;
width: 100%;
flex-wrap: nowrap;
overflow-x: auto;
scrollbar-width: none;
gap: 8px;
padding: 0 var(--h5-gutter);
}
.filter-row__options::-webkit-scrollbar {
display: none;
}
.filter-chip {
flex-shrink: 0;
height: 32px;
padding: 0 14px;
font-size: 13px;
font-weight: 400;
border-color: rgba(255, 255, 255, 0.12);
}
.list-body {
padding: 14px var(--h5-gutter) 20px;
gap: 14px;
}
.list-count {
display: block;
}
.list-body:has(.list-count) .pagination__total {
display: none;
}
.grid--list {
gap: 14px 8px;
}
.card--list {
width: calc((100% - 16px) / 3);
gap: 6px;
}
.card--list .card__cover {
height: auto;
aspect-ratio: 109 / 145;
}
.card--list .card__title {
font-size: 14px;
line-height: 20px;
}
.card--list .card__meta {
font-size: 11px;
line-height: 16px;
}
}
+283
View File
@@ -0,0 +1,283 @@
/* H5 登录页 */
body.page-login {
min-height: 100vh;
background: var(--bg);
}
.page-login .page-subheader {
display: flex;
border-bottom: 0;
}
.login-page {
min-height: 100vh;
padding: 56px 0 32px;
box-sizing: border-box;
}
.login-page__inner {
width: 100%;
max-width: 440px;
margin: 0 auto;
padding: 24px var(--h5-gutter);
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
box-sizing: border-box;
}
.login-page__brand {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
.login-page__logo {
width: 64px;
height: 64px;
border-radius: 12px;
object-fit: cover;
box-shadow: 0 8px 24px rgba(236, 35, 127, 0.4);
}
.login-page__content {
align-self: stretch;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 18px;
}
.login-page__intro {
align-self: stretch;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
}
.login-page__title {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 38px;
}
.login-page__desc {
margin: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.login-page__form {
align-self: stretch;
display: flex;
flex-direction: column;
gap: 16px;
}
.login-page__field {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
}
.login-page__label {
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.login-page__control {
align-self: stretch;
height: 48px;
padding: 0 16px;
display: flex;
align-items: center;
gap: 10px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid transparent;
border-radius: 12px;
outline: 1px solid transparent;
outline-offset: -1px;
}
.login-page__control:focus-within {
outline-color: rgba(236, 35, 127, 0.45);
}
.login-page__field.is-error .login-page__control {
outline-color: #ff5a5f;
}
.login-page__error {
display: inline-flex;
align-items: center;
gap: 6px;
color: #ff5a5f;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.login-page__error[hidden] {
display: none !important;
}
.login-page__error-icon {
width: 14px;
height: 14px;
flex-shrink: 0;
}
.login-page__control > .icon {
width: 18px;
height: 18px;
flex-shrink: 0;
}
.login-page__input {
flex: 1 1 0;
min-width: 0;
height: 100%;
padding: 0;
border: 0;
outline: none;
background: transparent;
color: var(--text);
font: inherit;
font-size: 15px;
line-height: 24px;
}
.login-page__input::placeholder {
color: var(--text-dim);
}
.login-page__toggle {
width: 18px;
height: 18px;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-dim);
}
.login-page__toggle .icon {
width: 18px;
height: 18px;
}
.login-page__meta {
align-self: stretch;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.login-page__remember {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
cursor: pointer;
}
.login-page__checkbox {
position: absolute;
opacity: 0;
width: 1px;
height: 1px;
pointer-events: none;
}
.login-page__check {
width: 18px;
height: 18px;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 4px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--line);
}
.login-page__checkbox:checked + .login-page__check {
border-color: transparent;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.login-page__checkbox:checked + .login-page__check::after {
content: "";
width: 10px;
height: 6px;
border-left: 1.5px solid #fff;
border-bottom: 1.5px solid #fff;
transform: translateY(-1px) rotate(-45deg);
}
.login-page__forgot {
color: #ff4a7b;
font-size: 13px;
line-height: 20px;
}
.login-page__submit {
align-self: stretch;
height: 52px;
padding: 0 28px;
font-size: 16px;
line-height: 24px;
}
.login-page__switch {
margin: 0;
align-self: stretch;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.login-page__switch a {
color: #ff4a7b;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.login-page__rule {
align-self: stretch;
height: 1px;
background: var(--line-soft);
}
.login-page__legal {
margin: 0;
align-self: stretch;
text-align: center;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.login-page__legal a {
color: inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
+308
View File
@@ -0,0 +1,308 @@
/* PC 登录弹窗 */
.login-pop {
position: fixed;
inset: 0;
z-index: 290;
display: none;
align-items: center;
justify-content: center;
padding: 24px;
}
.login-pop.is-open {
display: flex;
}
.login-pop__mask {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.7);
}
.login-pop__panel {
position: relative;
z-index: 1;
width: 440px;
max-width: 100%;
padding: 32px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 20px;
background: #141417;
border: 1px solid var(--line);
border-radius: var(--radius-xl);
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
overflow: hidden;
}
.login-pop__close {
position: absolute;
top: 16px;
right: 16px;
width: 32px;
height: 32px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.04);
border-radius: 999px;
}
.login-pop__close .icon {
width: 18px;
height: 18px;
}
.login-pop__intro {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
padding-right: 40px;
}
.login-pop__title {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 38px;
}
.login-pop__desc {
margin: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.login-pop__form {
align-self: stretch;
display: flex;
flex-direction: column;
gap: 16px;
}
.login-pop__field {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
}
.login-pop__label {
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.login-pop__control {
align-self: stretch;
height: 48px;
padding: 0 16px;
display: flex;
align-items: center;
gap: 10px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid transparent;
border-radius: 12px;
outline: 1px solid transparent;
outline-offset: -1px;
}
.login-pop__control:focus-within {
outline-color: rgba(236, 35, 127, 0.45);
}
.login-pop__field.is-error .login-pop__control {
outline-color: #ff5a5f;
}
.login-pop__error {
display: inline-flex;
align-items: center;
gap: 6px;
color: #ff5a5f;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.login-pop__error[hidden] {
display: none !important;
}
.login-pop__error-icon {
width: 14px;
height: 14px;
flex-shrink: 0;
}
.login-pop__control > .icon {
width: 18px;
height: 18px;
flex-shrink: 0;
color: var(--text-dim);
}
.login-pop__input {
flex: 1 1 0;
min-width: 0;
height: 100%;
padding: 0;
border: 0;
outline: none;
background: transparent;
color: var(--text);
font: inherit;
font-size: 15px;
line-height: 24px;
}
.login-pop__input::placeholder {
color: var(--text-dim);
}
.login-pop__toggle {
width: 18px;
height: 18px;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-dim);
}
.login-pop__toggle .icon {
width: 18px;
height: 18px;
}
.login-pop__meta {
align-self: stretch;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.login-pop__remember {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
cursor: pointer;
}
.login-pop__checkbox {
position: absolute;
opacity: 0;
width: 1px;
height: 1px;
pointer-events: none;
}
.login-pop__check {
width: 18px;
height: 18px;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 4px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--line);
}
.login-pop__checkbox:checked + .login-pop__check {
border-color: transparent;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.login-pop__checkbox:checked + .login-pop__check::after {
content: "";
width: 10px;
height: 6px;
border-left: 1.5px solid #fff;
border-bottom: 1.5px solid #fff;
transform: translateY(-1px) rotate(-45deg);
}
.login-pop__submit {
align-self: stretch;
height: 52px;
padding: 0 28px;
font-size: 16px;
line-height: 24px;
}
.login-pop__submit.is-loading,
.login-pop__submit:disabled {
opacity: 0.72;
cursor: wait;
}
.login-pop__tip {
margin: 0;
align-self: stretch;
padding: 8px 12px;
border-radius: 8px;
font-size: 13px;
line-height: 20px;
background: rgba(255, 74, 123, 0.1);
color: #ff4a7b;
}
.login-pop__tip.is-success {
background: rgba(30, 120, 70, 0.12);
color: #1e7846;
}
.login-pop__tip[hidden] {
display: none !important;
}
.login-pop__rule {
align-self: stretch;
height: 1px;
background: var(--line-soft);
}
.login-pop__legal {
margin: 0;
align-self: stretch;
text-align: center;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.login-pop__legal a {
color: inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
@media (max-width: 768px) {
.login-pop {
padding: 16px;
}
.login-pop__panel {
max-height: calc(100vh - 32px);
max-height: calc(100dvh - 32px);
padding: 24px 20px;
border-radius: 18px;
overflow-y: auto;
}
.login-pop__title {
font-size: 24px;
line-height: 32px;
}
}
+521
View File
@@ -0,0 +1,521 @@
/* Mobile search: the Figma frames use a 375px-wide canvas. */
.mobile-search {
--mobile-search-unit: 1px;
width: 375px;
max-width: 100%;
min-height: 100vh;
margin-inline: auto;
background: var(--bg, #0b0b0d);
color: var(--text, #f2f2f4);
font-family: var(--font, "PingFang SC", sans-serif);
}
.mobile-search__header {
display: flex;
align-items: center;
width: 100%;
height: calc(56 * var(--mobile-search-unit));
padding-inline: calc(12 * var(--mobile-search-unit));
background: var(--bg, #0b0b0d);
border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.mobile-search__back {
display: grid;
flex: 0 0 calc(36 * var(--mobile-search-unit));
place-items: center;
width: calc(36 * var(--mobile-search-unit));
height: calc(36 * var(--mobile-search-unit));
border-radius: 50%;
}
.mobile-search__back img,
.mobile-search__back svg {
display: block;
width: calc(22 * var(--mobile-search-unit));
height: calc(22 * var(--mobile-search-unit));
}
.mobile-search__form {
display: flex;
flex: 1 1 0;
align-items: center;
gap: calc(8 * var(--mobile-search-unit));
min-width: 0;
height: calc(36 * var(--mobile-search-unit));
padding-inline: calc(14 * var(--mobile-search-unit));
background: rgba(255, 255, 255, 0.06);
border: 1px solid #ec237f;
border-radius: 999px;
}
.mobile-search__search-icon {
display: block;
flex: 0 0 calc(18 * var(--mobile-search-unit));
width: calc(18 * var(--mobile-search-unit));
height: calc(18 * var(--mobile-search-unit));
}
.mobile-search__input {
flex: 1 1 0;
min-width: 0;
height: 100%;
padding: 0;
color: var(--text, #f2f2f4);
background: transparent;
border: 0;
outline: 0;
font: 400 calc(14 * var(--mobile-search-unit)) / calc(22 * var(--mobile-search-unit)) var(--font, "PingFang SC", sans-serif);
appearance: none;
}
.mobile-search__input::placeholder {
color: var(--text-dim, #7c7c86);
opacity: 1;
}
.mobile-search__input::-webkit-search-cancel-button,
.mobile-search__input::-webkit-search-decoration {
appearance: none;
}
.mobile-search__clear {
display: grid;
flex: 0 0 calc(16 * var(--mobile-search-unit));
place-items: center;
width: calc(16 * var(--mobile-search-unit));
height: calc(16 * var(--mobile-search-unit));
}
.mobile-search__clear[hidden] {
display: none;
}
.mobile-search__clear img,
.mobile-search__clear svg {
display: block;
width: 100%;
height: 100%;
}
.mobile-search__cancel {
flex: 0 0 auto;
padding-left: 8px;
color: var(--text-muted, #a1a1aa);
font-size: calc(14 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(22 * var(--mobile-search-unit));
white-space: nowrap;
}
.mobile-search__main,
.mobile-search__default,
.mobile-search__suggestions {
width: 100%;
}
.mobile-search__default[hidden],
.mobile-search__suggestions[hidden],
.mobile-search__suggestion-list[hidden],
.mobile-search__suggestion[hidden],
.mobile-search__history[hidden] {
display: none;
}
.mobile-search__history {
display: flex;
flex-direction: column;
align-items: stretch;
gap: calc(10 * var(--mobile-search-unit));
padding: calc(16 * var(--mobile-search-unit)) calc(16 * var(--mobile-search-unit)) calc(8 * var(--mobile-search-unit));
}
.mobile-search__history-head,
.mobile-search__section-head {
display: flex;
align-items: center;
justify-content: space-between;
}
.mobile-search__section-label {
margin: 0;
color: var(--text-dim, #7c7c86);
font-size: calc(12 * var(--mobile-search-unit));
font-weight: 500;
line-height: calc(16 * var(--mobile-search-unit));
}
.mobile-search__history-clear {
display: grid;
flex: 0 0 calc(14 * var(--mobile-search-unit));
place-items: center;
width: calc(14 * var(--mobile-search-unit));
height: calc(14 * var(--mobile-search-unit));
}
.mobile-search__history-clear img,
.mobile-search__history-clear svg {
display: block;
width: 100%;
height: 100%;
}
.mobile-search__chips {
display: flex;
flex-wrap: wrap;
gap: calc(8 * var(--mobile-search-unit));
}
.mobile-search__chip {
display: inline-flex;
align-items: center;
justify-content: center;
height: calc(30 * var(--mobile-search-unit));
padding-inline: calc(12 * var(--mobile-search-unit));
color: var(--text-muted, #a1a1aa);
background: rgba(255, 255, 255, 0.06);
border-radius: 999px;
font-size: calc(13 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(20 * var(--mobile-search-unit));
white-space: nowrap;
}
.mobile-search__trending {
display: flex;
flex-direction: column;
gap: calc(6 * var(--mobile-search-unit));
padding: calc(12 * var(--mobile-search-unit)) calc(16 * var(--mobile-search-unit)) calc(16 * var(--mobile-search-unit));
}
.mobile-search__trend-list {
display: flex;
flex-direction: column;
gap: calc(6 * var(--mobile-search-unit));
margin: 0;
padding: 0;
list-style: none;
}
.mobile-search__trend {
min-width: 0;
}
.mobile-search__trend > a {
display: flex;
align-items: center;
gap: calc(12 * var(--mobile-search-unit));
width: 100%;
min-width: 0;
min-height: calc(40 * var(--mobile-search-unit));
padding-block: calc(9 * var(--mobile-search-unit));
}
.mobile-search__trend-rank {
flex: 0 0 calc(18 * var(--mobile-search-unit));
width: calc(18 * var(--mobile-search-unit));
color: var(--text-dim, #7c7c86);
font-family: Inter, var(--font, "PingFang SC", sans-serif);
font-size: calc(16 * var(--mobile-search-unit));
font-weight: 600;
line-height: calc(20 * var(--mobile-search-unit));
}
.mobile-search__trend:nth-child(-n + 3) .mobile-search__trend-rank {
color: var(--accent-hot, #ff4a7b);
}
.mobile-search__trend-name {
flex: 1 1 0;
min-width: 0;
overflow: hidden;
color: var(--text, #f2f2f4);
font-size: calc(14 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(22 * var(--mobile-search-unit));
text-overflow: ellipsis;
white-space: nowrap;
}
.mobile-search__trend-badge {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
height: calc(18 * var(--mobile-search-unit));
padding-inline: calc(5 * var(--mobile-search-unit));
border-radius: 999px;
font-size: calc(11 * var(--mobile-search-unit));
font-weight: 500;
line-height: calc(14 * var(--mobile-search-unit));
}
.mobile-search__trend-badge--hot,
.mobile-search__trend-badge:not(.mobile-search__trend-badge--new) {
color: #fff;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
}
.mobile-search__trend-badge--new {
color: var(--accent-hot, #ff4a7b);
background: rgba(236, 35, 127, 0.1);
border: 1px solid rgba(236, 35, 127, 0.3);
}
.mobile-search__trend-heat {
flex: 0 0 auto;
color: var(--text-dim, #7c7c86);
font-size: calc(12 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(18 * var(--mobile-search-unit));
white-space: nowrap;
}
.mobile-search__recommendations {
display: flex;
flex-direction: column;
gap: calc(14 * var(--mobile-search-unit));
padding: calc(8 * var(--mobile-search-unit)) calc(16 * var(--mobile-search-unit)) calc(24 * var(--mobile-search-unit));
}
.mobile-search__recommend-title {
margin: 0;
color: var(--text, #f2f2f4);
font-size: calc(16 * var(--mobile-search-unit));
font-weight: 600;
line-height: calc(22 * var(--mobile-search-unit));
}
.mobile-search__recommend-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: calc(16 * var(--mobile-search-unit)) calc(8 * var(--mobile-search-unit));
}
.mobile-search__card {
display: flex;
flex-direction: column;
gap: calc(6 * var(--mobile-search-unit));
min-width: 0;
}
.mobile-search__cover {
position: relative;
display: block;
width: 100%;
aspect-ratio: 109 / 145;
overflow: hidden;
background: var(--bg-panel, #1b1b1f);
border: 1px solid rgba(255, 255, 255, 0.07);
border-radius: calc(8 * var(--mobile-search-unit));
}
.mobile-search__cover > img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.mobile-search__cover-shade {
position: absolute;
inset: 58% 0 0;
background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.7));
pointer-events: none;
}
.mobile-search__episodes {
position: absolute;
z-index: 1;
bottom: calc(10 * var(--mobile-search-unit));
left: calc(10 * var(--mobile-search-unit));
color: var(--text, #f2f2f4);
font-size: calc(11 * var(--mobile-search-unit));
font-weight: 500;
line-height: calc(14 * var(--mobile-search-unit));
white-space: nowrap;
}
.mobile-search__title,
.mobile-search__meta {
display: block;
margin: 0;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.mobile-search__title {
color: var(--text, #f2f2f4);
font-size: calc(14 * var(--mobile-search-unit));
font-weight: 600;
line-height: calc(20 * var(--mobile-search-unit));
}
.mobile-search__meta {
color: var(--text-muted, #a1a1aa);
font-size: calc(11 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(16 * var(--mobile-search-unit));
}
.mobile-search__suggestions {
display: flex;
flex-direction: column;
align-items: stretch;
padding: calc(12 * var(--mobile-search-unit)) calc(16 * var(--mobile-search-unit)) calc(16 * var(--mobile-search-unit));
}
.mobile-search__suggestion-list {
display: flex;
flex-direction: column;
align-items: stretch;
gap: calc(6 * var(--mobile-search-unit));
width: 100%;
margin: 0;
padding: 0;
list-style: none;
}
.mobile-search__suggest-empty {
margin: 0;
padding: calc(12 * var(--mobile-search-unit)) calc(4 * var(--mobile-search-unit));
color: var(--text-dim, #7c7c86);
font-size: calc(13 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(20 * var(--mobile-search-unit));
}
.mobile-search__suggestion-feature {
display: flex;
align-items: center;
gap: calc(12 * var(--mobile-search-unit));
width: 100%;
min-height: calc(84 * var(--mobile-search-unit));
padding: calc(10 * var(--mobile-search-unit));
background: var(--bg-panel, #1b1b1f);
border-radius: calc(12 * var(--mobile-search-unit));
}
.mobile-search__feature-cover {
display: block;
flex: 0 0 calc(48 * var(--mobile-search-unit));
width: calc(48 * var(--mobile-search-unit));
height: calc(64 * var(--mobile-search-unit));
overflow: hidden;
border-radius: calc(6 * var(--mobile-search-unit));
}
.mobile-search__feature-cover img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.mobile-search__feature-copy {
display: flex;
flex: 1 1 0;
flex-direction: column;
gap: calc(4 * var(--mobile-search-unit));
min-width: 0;
}
.mobile-search__feature-title {
margin: 0;
overflow: hidden;
color: var(--text, #f2f2f4);
font-size: calc(15 * var(--mobile-search-unit));
font-weight: 600;
line-height: calc(21 * var(--mobile-search-unit));
text-overflow: ellipsis;
white-space: nowrap;
}
.mobile-search__feature-title mark,
.mobile-search__feature-title > span:first-child,
.mobile-search__suggestion-text mark,
.mobile-search__suggestion-text > span:first-child,
.mobile-search__highlight {
color: var(--accent-hot, #ff4a7b);
background: none;
}
.mobile-search__feature-meta {
margin: 0;
overflow: hidden;
color: var(--text-dim, #7c7c86);
font-size: calc(12 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(18 * var(--mobile-search-unit));
text-overflow: ellipsis;
white-space: nowrap;
}
.mobile-search__feature-play {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
gap: calc(8 * var(--mobile-search-unit));
height: calc(32 * var(--mobile-search-unit));
padding-inline: calc(12 * var(--mobile-search-unit));
color: #fff;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
border-radius: 999px;
font-size: calc(14 * var(--mobile-search-unit));
font-weight: 500;
line-height: calc(20 * var(--mobile-search-unit));
white-space: nowrap;
}
.mobile-search__feature-play img,
.mobile-search__feature-play svg {
width: calc(16 * var(--mobile-search-unit));
height: calc(16 * var(--mobile-search-unit));
}
.mobile-search__suggestion {
display: flex;
align-items: center;
gap: calc(10 * var(--mobile-search-unit));
min-width: 0;
padding: calc(10 * var(--mobile-search-unit)) calc(4 * var(--mobile-search-unit));
border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.mobile-search__suggestion-icon {
display: block;
flex: 0 0 calc(16 * var(--mobile-search-unit));
width: calc(16 * var(--mobile-search-unit));
height: calc(16 * var(--mobile-search-unit));
}
.mobile-search__suggestion-text {
flex: 1 1 0;
min-width: 0;
overflow: hidden;
color: var(--text, #f2f2f4);
font-size: calc(14 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(22 * var(--mobile-search-unit));
text-overflow: ellipsis;
white-space: nowrap;
}
.mobile-search__suggestion-type {
flex: 0 0 auto;
color: var(--text-dim, #7c7c86);
font-size: calc(12 * var(--mobile-search-unit));
font-weight: 400;
line-height: calc(18 * var(--mobile-search-unit));
white-space: nowrap;
}
@media (max-width: 768px) {
.mobile-search {
--mobile-search-unit: calc(100vw / 375);
width: 100%;
}
}
+12
View File
@@ -0,0 +1,12 @@
/* 首页配置更多页 */
body.page-more .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
@media (max-width: 768px) {
body.page-more .site-header {
display: none !important;
}
}
+428
View File
@@ -0,0 +1,428 @@
/* 官方导航页:H5 默认(375 / 343 内容栏),PC 加宽居中 */
.nav-page-body {
margin: 0;
min-height: 100vh;
min-height: 100dvh;
background: #0b0b0d;
color: #f2f2f4;
font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
.nav-page {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
overflow: hidden;
box-sizing: border-box;
width: 100%;
min-height: 100vh;
min-height: 100dvh;
padding: 64px 16px 40px;
}
.nav-page__bg {
position: absolute;
inset: -40px;
z-index: 0;
pointer-events: none;
}
.nav-page__bg-img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
filter: blur(5px);
transform: scale(1.02);
}
.nav-page__bg-mask {
position: absolute;
inset: 0;
background:
linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 70%),
rgba(0, 0, 0, 0.6);
}
.nav-page__inner {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: center;
width: min(100%, 343px);
}
.nav-page__sr-title {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Brand */
.nav-brand {
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
width: 100%;
text-align: center;
}
.nav-brand__lockup {
display: inline-flex;
align-items: center;
justify-content: center;
color: inherit;
text-decoration: none;
}
.nav-brand__logo {
display: block;
width: 220px;
height: auto;
}
.nav-brand__tagline {
margin: 0;
color: #a1a1aa;
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.nav-brand__highlight {
margin: 0;
color: #ff4a7b;
font-size: 18px;
font-weight: 600;
line-height: 26px;
}
/* Entries */
.nav-entries {
display: flex;
flex-direction: column;
gap: 12px;
width: 100%;
margin-top: 26px;
}
.nav-entry {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
box-sizing: border-box;
width: 100%;
min-height: 72px;
padding: 14px 14px 14px 18px;
overflow: hidden;
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.07);
background: rgba(255, 255, 255, 0.07);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
color: inherit;
text-decoration: none;
-webkit-tap-highlight-color: transparent;
}
.nav-entry__glow {
position: absolute;
top: -36px;
left: 226px;
width: 189px;
height: 144px;
border-radius: 9999px;
background: #ec237f;
opacity: 0.28;
filter: blur(20px);
pointer-events: none;
}
.nav-entry__copy {
position: relative;
z-index: 1;
display: flex;
flex: 1 1 auto;
flex-direction: column;
align-items: flex-start;
gap: 3px;
min-width: 0;
text-align: left;
}
.nav-entry__name {
color: #f2f2f4;
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.nav-entry__url {
color: #ff4a7b;
font-size: 15px;
font-weight: 400;
line-height: 24px;
word-break: break-all;
}
.nav-entry__cta {
position: relative;
z-index: 1;
display: inline-flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
gap: 4px;
height: 36px;
padding: 0 12px;
border-radius: 999px;
border: 1px solid #ff4a7b;
color: #ff4a7b;
font-size: 12px;
font-weight: 500;
line-height: 16px;
}
.nav-entry__cta-icon {
display: block;
width: 14px;
height: 14px;
filter: brightness(0) saturate(100%) invert(42%) sepia(84%) saturate(2146%) hue-rotate(314deg) brightness(101%) contrast(101%);
}
.nav-entry--forever {
flex-direction: column;
justify-content: center;
gap: 3px;
padding: 14px 16px;
border-color: rgba(236, 35, 127, 0.3);
background: rgba(236, 35, 127, 0.1);
text-align: center;
}
.nav-entry--forever .nav-entry__name,
.nav-entry--forever .nav-entry__url {
width: 100%;
text-align: center;
}
/* APP banner */
.nav-app {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
box-sizing: border-box;
width: 100%;
height: 50px;
margin-top: 20px;
padding: 0 22px;
border-radius: 12px;
border: none;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
color: #f2f2f4;
text-decoration: none;
-webkit-tap-highlight-color: transparent;
}
.nav-app__icon {
display: block;
width: 20px;
height: 20px;
flex-shrink: 0;
filter: brightness(0) invert(95%);
}
.nav-app__text {
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
/* Contact + icons */
.nav-contact {
display: flex;
flex-wrap: wrap;
justify-content: center;
width: 100%;
padding: 20px 0 18px;
color: #ff4a7b;
font-size: 13px;
font-weight: 400;
line-height: 20px;
text-decoration: none;
word-break: break-all;
-webkit-tap-highlight-color: transparent;
}
.nav-icons {
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
align-items: flex-start;
gap: 0;
width: 100%;
}
.nav-icon {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 7px;
flex: 1 1 0;
min-width: 0;
color: inherit;
text-decoration: none;
-webkit-tap-highlight-color: transparent;
}
.nav-icon__badge {
display: inline-flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
width: 40px;
height: 40px;
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.07);
background: rgba(255, 255, 255, 0.12);
}
.nav-icon__badge img {
display: block;
width: 18px;
height: 18px;
object-fit: contain;
filter: brightness(0) invert(95%);
}
.nav-icon__badge img[src*="brand-telegram"] {
width: 20px;
height: 16px;
}
.nav-icon__label {
color: #a1a1aa;
font-size: 12px;
font-weight: 400;
line-height: 18px;
text-align: center;
white-space: nowrap;
}
/* Footer */
.nav-footer {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
width: 100%;
margin-top: 26px;
text-align: center;
}
.nav-footer__note,
.nav-footer__copy {
margin: 0;
color: #7c7c86;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.nav-footer__copy {
margin-top: 10px;
}
/* PC:400 内容栏 + 更大品牌与间距 */
@media (min-width: 768px) {
.nav-page {
padding: 132px 24px 72px;
}
.nav-page__bg-img {
filter: blur(11px);
}
.nav-page__inner {
width: min(100%, 400px);
}
.nav-brand {
gap: 14px;
}
.nav-brand__logo {
width: 250px;
}
.nav-brand__tagline {
font-size: 15px;
line-height: 24px;
}
.nav-brand__highlight {
font-size: 20px;
line-height: 28px;
}
.nav-entries {
margin-top: 30px;
}
.nav-entry {
min-height: 76px;
}
.nav-entry__glow {
top: -38px;
left: auto;
right: -36px;
width: 220px;
height: 152px;
}
.nav-app {
height: 50px;
margin-top: 24px;
}
.nav-contact {
padding: 22px 0;
}
.nav-icons {
flex-wrap: wrap;
justify-content: center;
gap: 22px;
}
.nav-icon {
width: auto;
flex: 0 0 auto;
}
.nav-icon__badge {
width: 42px;
height: 42px;
}
.nav-footer {
margin-top: 30px;
}
}
+106
View File
@@ -0,0 +1,106 @@
/* 404 页面 */
body.page-404 .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.not-found-page {
padding-top: 72px;
}
.not-found {
display: flex;
flex-direction: column;
align-items: center;
gap: 20px;
padding: 120px 0 140px;
text-align: center;
}
.not-found__code {
margin: 0;
color: #ff4a7b;
font-family: Inter, var(--font);
font-size: 96px;
font-weight: 700;
line-height: 96px;
}
.not-found__title {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 38px;
}
.not-found__desc {
margin: 0;
max-width: 520px;
color: var(--text-muted);
font-size: 15px;
line-height: 24px;
}
.not-found__actions {
padding-top: 8px;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 12px;
}
.not-found__cta .icon {
width: 22px;
height: 22px;
}
@media (max-width: 768px) {
.not-found-page {
padding-top: 56px;
}
.not-found {
gap: 14px;
padding: 96px var(--h5-gutter);
box-sizing: border-box;
}
.not-found__code {
font-size: 64px;
line-height: 64px;
}
.not-found__title {
font-size: 20px;
line-height: 28px;
}
.not-found__desc {
max-width: none;
align-self: stretch;
font-size: 13px;
line-height: 20px;
}
.not-found__actions {
align-self: stretch;
flex-direction: column;
align-items: stretch;
gap: 10px;
}
.not-found__cta {
width: 100%;
height: 48px;
padding: 0 22px;
font-size: 15px;
line-height: 22px;
}
.not-found__cta .icon {
width: 20px;
height: 20px;
}
}
+68
View File
@@ -0,0 +1,68 @@
.pagination {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
flex-wrap: wrap;
}
.pagination__btn,
.pagination__page {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border-radius: var(--radius-sm);
background: #141417;
border: 1px solid var(--line-soft);
color: var(--text-muted);
font-family: Inter, var(--font);
font-size: 16px;
font-weight: 600;
line-height: 20px;
}
.pagination__page.is-active {
color: #fff;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
border-color: transparent;
}
.pagination__btn .icon {
width: 16px;
height: 16px;
}
.pagination__btn--prev .icon {
transform: rotate(180deg);
}
.pagination__btn.is-disabled {
opacity: 0.45;
pointer-events: none;
}
.pagination__ellipsis {
color: var(--text-dim);
font-family: Inter, var(--font);
font-size: 16px;
font-weight: 600;
line-height: 20px;
}
.pagination__total {
margin-left: 4px;
color: var(--text-dim);
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
@media (max-width: 768px) {
.pagination__total {
width: 100%;
text-align: center;
margin: 8px 0 0;
}
}
File diff suppressed because it is too large Load Diff
+396
View File
@@ -0,0 +1,396 @@
/* 播放页评论区(含输入框、列表、内联回复) */
.play-comments {
flex: 1 1 0;
min-width: 0;
display: flex;
flex-direction: column;
gap: 16px;
}
.play-comments__head {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 14px;
}
.play-comments__title {
margin: 0;
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.play-comments__count {
color: var(--text-dim);
font-size: 14px;
line-height: 22px;
}
.play-composer {
display: flex;
align-items: center;
gap: 12px;
}
.play-composer__avatar {
width: 40px;
height: 40px;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
background: #232328;
border-radius: 999px;
overflow: hidden;
}
.play-composer__avatar-img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.play-composer__field {
flex: 1 1 0;
min-width: 0;
height: 44px;
padding: 0 16px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--line);
border-radius: var(--radius-md);
}
.play-composer__input {
flex: 1 1 0;
min-width: 0;
height: 100%;
padding: 0;
border: 0;
outline: none;
background: transparent;
color: var(--text);
font: inherit;
font-size: 15px;
line-height: 24px;
}
.play-composer__input::placeholder {
color: var(--text-dim);
}
.play-composer__count {
flex-shrink: 0;
color: var(--text-dim);
font-size: 14px;
line-height: 20px;
}
.play-composer__login,
.play-composer__send {
flex-shrink: 0;
}
.play-composer__send:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.play-comment-list {
margin: 0;
padding: 0;
list-style: none;
}
.play-comment {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 16px 0;
border-bottom: 1px solid var(--line-soft);
}
.play-comment:last-child {
border-bottom: 0;
}
.play-comment__avatar {
width: 40px;
height: 40px;
flex-shrink: 0;
border-radius: 999px;
object-fit: cover;
}
.play-comment__body {
flex: 1 1 0;
min-width: 0;
display: flex;
flex-direction: column;
gap: 8px;
}
.play-comment__meta {
display: flex;
align-items: center;
gap: 10px;
}
.play-comment__name {
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.play-comment__time {
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.play-comment__text {
margin: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.play-comment--empty {
justify-content: center;
align-items: center;
border-bottom: 0;
}
.play-comment--empty .play-comment__text {
padding: 12px 0;
color: var(--muted, #888);
text-align: center;
width: 100%;
}
.play-comment__reply {
padding: 10px 14px;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
background: rgba(255, 255, 255, 0.04);
border-radius: var(--radius-sm);
}
.play-comment__actions {
display: flex;
align-items: center;
gap: 20px;
}
.play-comment__action {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 0;
border: 0;
background: transparent;
color: var(--text-dim);
font: inherit;
font-size: 12px;
line-height: 18px;
cursor: pointer;
}
.play-comment__action:disabled {
cursor: default;
opacity: 0.7;
}
.play-comment__action.is-active {
color: var(--brand, #e9c977);
}
.play-comment__action.is-active .icon {
opacity: 1;
filter: none;
}
.play-comment__action .icon {
width: 14px;
height: 14px;
opacity: 0.75;
}
.play-comment__inline {
width: 100%;
margin-top: 4px;
padding: 10px 12px;
display: flex;
flex-direction: column;
gap: 8px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid var(--line-soft);
border-radius: var(--radius-sm);
box-sizing: border-box;
}
.play-comment__inline-hint {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.play-comment__inline-hint button {
flex-shrink: 0;
padding: 0;
border: 0;
background: transparent;
color: var(--brand, #e9c977);
font: inherit;
font-size: 12px;
line-height: 18px;
cursor: pointer;
}
.play-comment__inline-row {
display: flex;
align-items: center;
gap: 8px;
}
.play-comment__inline-input {
flex: 1 1 0;
min-width: 0;
height: 36px;
padding: 0 12px;
border: 1px solid var(--line);
border-radius: 999px;
background: rgba(0, 0, 0, 0.35);
color: var(--text);
font: inherit;
font-size: 13px;
line-height: 20px;
outline: none;
}
.play-comment__inline-input::placeholder {
color: var(--text-dim);
}
.play-comment__inline-input:focus,
.play-comment__inline-input:focus-visible {
border-color: rgba(233, 201, 119, 0.55);
}
.play-comment__inline-send {
flex-shrink: 0;
height: 36px;
padding: 0 14px;
border: 0;
border-radius: 999px;
background: var(--brand, #e9c977);
color: #141417;
font: inherit;
font-size: 13px;
font-weight: 600;
line-height: 20px;
cursor: pointer;
}
.play-comment__inline-send:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.play-comments__more {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
padding-top: 12px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
background: transparent;
border: 0;
cursor: pointer;
}
.play-comments__more[hidden] {
display: none;
}
.play-comments__more:disabled {
opacity: 0.6;
cursor: default;
}
.play-comments__more .icon {
width: 16px;
height: 16px;
transform: rotate(90deg);
}
@media (max-width: 768px) {
.play-comments {
width: 100%;
padding: 0;
gap: 16px;
}
.play-comments__head {
gap: 14px;
flex-wrap: nowrap;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.play-comments__head::-webkit-scrollbar {
display: none;
}
.play-comments__title {
flex-shrink: 0;
font-size: 22px;
line-height: 30px;
}
.play-comments__count {
flex-shrink: 0;
}
.play-composer {
width: 100%;
gap: 12px;
}
.play-composer__avatar {
flex-shrink: 0;
}
.play-composer__field {
min-width: 0;
}
.play-composer__login,
.play-composer__send {
flex-shrink: 0;
height: 40px;
padding: 0 16px;
}
.play-comment-list {
width: 100%;
}
.play-comments__more {
width: 100%;
}
}
+67
View File
@@ -0,0 +1,67 @@
/* 播放页官方入口链接块 */
.play-links {
padding: 14px 16px;
display: flex;
flex-direction: column;
gap: 10px;
background: var(--bg-elevated);
border: 1px solid var(--line-soft);
border-radius: var(--radius-md);
}
.play-links__row {
display: flex;
gap: 16px;
}
.play-links__item {
flex: 1 1 0;
min-width: 0;
display: flex;
align-items: center;
gap: 8px;
}
.play-links__item .icon {
width: 16px;
height: 16px;
flex-shrink: 0;
}
.play-links__label {
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
white-space: nowrap;
}
.play-links__value {
flex: 1 1 0;
min-width: 0;
color: var(--accent-hot);
font-size: 14px;
font-weight: 500;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@media (max-width: 768px) {
.play-links {
margin: 16px var(--h5-gutter) 0;
padding: 12px 14px;
gap: 8px;
}
.play-links__row {
flex-direction: column;
gap: 8px;
}
.play-links__label {
width: 104px;
flex-shrink: 0;
}
}
+12
View File
@@ -0,0 +1,12 @@
/* 热门推荐页 */
body.page-popular .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
@media (max-width: 768px) {
body.page-popular .site-header {
display: none !important;
}
}
+590
View File
@@ -0,0 +1,590 @@
/* 个人中心 H5:以 Figma 375px 画板为基准。 */
@media (max-width: 768px) {
.profile-page {
--profile-gutter: clamp(14px, 4.266667vw, 18px);
--profile-card-gap: clamp(7px, 2.133333vw, 9px);
width: 100%;
min-width: 0;
padding-top: 0;
background: #0b0b0d;
}
.profile-hero {
width: 100%;
padding-top: 56px; /* 公共导航固定在视口顶部 */
background: linear-gradient(180deg, #2a0d22 0%, #150a17 60%, #0b0b0d 100%);
}
.profile-hero::before {
top: -90px;
left: -60px;
width: 360px;
height: 220px;
filter: blur(55px);
opacity: 0.22;
}
.profile-hero__inner {
display: block;
grid-template-columns: none;
width: 100%;
max-width: none;
margin: 0;
padding: 0;
}
.profile-identity {
display: flex;
align-items: center;
gap: clamp(12px, 3.733333vw, 16px);
min-width: 0;
margin: 0;
padding: 12px var(--profile-gutter) 16px;
}
.profile-identity__avatar {
display: block;
flex: 0 0 clamp(55px, 17.066667vw, 73px);
width: clamp(55px, 17.066667vw, 73px);
height: clamp(55px, 17.066667vw, 73px);
border: 2px solid rgba(255, 255, 255, 0.24);
border-radius: 50%;
object-fit: cover;
}
.profile-identity__copy {
display: grid;
flex: 1 1 0;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: 26px 16px;
column-gap: 12px;
row-gap: 6px;
min-width: 0;
}
.profile-identity__name {
grid-column: 1;
grid-row: 1;
overflow: hidden;
color: #f2f2f4;
font-size: 18px;
font-weight: 600;
line-height: 26px;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-identity__meta {
grid-column: 1;
grid-row: 2;
overflow: hidden;
color: #a1a1aa;
font-size: 11px;
font-weight: 400;
line-height: 16px;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-identity__edit {
display: inline-flex;
grid-column: 2;
grid-row: 1 / 3;
align-self: center;
flex: 0 0 auto;
align-items: center;
justify-content: center;
gap: 8px;
height: 32px;
padding: 0 8px;
color: #f2f2f4;
border: 1px solid rgba(255, 255, 255, 0.24);
border-radius: 999px;
font-size: 0;
font-weight: 500;
line-height: 0;
white-space: nowrap;
}
.profile-identity__edit::after {
content: "编辑";
font-size: 14px;
line-height: 20px;
}
.profile-identity__edit .icon,
.profile-identity__edit img,
.profile-identity__edit svg {
width: 16px;
height: 16px;
}
.profile-wallet {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
min-height: 101px;
margin: 0 var(--profile-gutter) 16px;
padding: 14px;
background: #141417;
border: 1px solid rgba(255, 255, 255, 0.07);
border-radius: 12px;
}
.profile-wallet__label {
display: flex;
align-items: center;
gap: 6px;
color: #f2f2f4;
font-size: 15px;
font-weight: 600;
line-height: 21px;
}
.profile-wallet__amount {
display: block;
margin-top: 4px;
color: #e9c977;
font-family: Inter, var(--font);
font-size: 20px;
font-weight: 600;
line-height: 26px;
}
.profile-wallet__hint {
margin: 4px 0 0;
color: #7c7c86;
font-size: 11px;
line-height: 16px;
white-space: nowrap;
}
.profile-wallet__actions {
display: flex;
flex: 0 0 auto;
align-items: center;
}
.profile-wallet__recharge {
display: inline-flex;
align-items: center;
justify-content: center;
height: 32px;
padding: 0 12px;
color: #fff;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
border: 0;
border-radius: 999px;
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
}
.profile-wallet__details {
display: none;
}
.profile-stats {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
margin: 0;
min-height: 64px;
padding: 12px var(--profile-gutter) 14px;
border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.profile-stat {
display: flex;
flex: 0 0 auto;
flex-direction: column;
align-items: center;
gap: 2px;
min-width: 0;
text-align: center;
}
.profile-stat__value {
color: #f2f2f4;
font-family: Inter, var(--font);
font-size: 16px;
font-weight: 600;
line-height: 20px;
}
.profile-stat__value span { display: none; }
.profile-stat__label {
color: #7c7c86;
font-size: 11px;
font-weight: 400;
line-height: 16px;
white-space: nowrap;
}
.profile-tabs {
width: 100%;
margin: 0;
padding-top: 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.profile-tabs__inner {
display: flex;
align-items: flex-end;
gap: 24px;
width: 100%;
max-width: none;
min-height: 38px;
height: 38px;
margin: 0;
padding: 6px var(--profile-gutter) 0;
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.profile-tabs__inner::-webkit-scrollbar { display: none; }
.profile-tabs__link {
position: relative;
display: inline-flex;
flex: 0 0 auto;
align-items: flex-start;
justify-content: center;
min-height: 31px;
padding: 0 0 10px;
color: #a1a1aa;
font-size: 15px;
font-weight: 600;
line-height: 21px;
white-space: nowrap;
}
.profile-tabs__link.is-active { color: #f2f2f4; }
.profile-tabs__link.is-active::after {
content: "";
position: absolute;
bottom: 0;
left: 50%;
width: 20px;
height: 2px;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
transform: translateX(-50%);
}
.profile-main {
display: block;
width: 100%;
max-width: none;
min-width: 0;
margin: 0;
padding: 0;
}
.profile-section {
display: flex;
flex-direction: column;
gap: 14px;
width: 100%;
max-width: none;
margin: 0;
padding-right: var(--profile-gutter);
padding-left: var(--profile-gutter);
}
.profile-section--recent { padding-top: 16px; padding-bottom: 8px; }
.profile-section--favorites { padding-top: 12px; padding-bottom: 8px; }
.profile-section__head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
min-height: 26px;
}
.profile-section__heading {
display: flex;
align-items: baseline;
gap: 10px;
min-width: 0;
}
.profile-section__title {
margin: 0;
color: #f2f2f4;
font-size: 18px;
font-weight: 600;
line-height: 26px;
white-space: nowrap;
}
.profile-section__subtitle {
color: #7c7c86;
font-size: 12px;
line-height: 18px;
white-space: nowrap;
}
.profile-section--recent .profile-section__subtitle { display: none; }
.profile-section__more {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
gap: 2px;
color: #a1a1aa;
font-size: 13px;
line-height: 20px;
white-space: nowrap;
}
.profile-section__more .icon,
.profile-section__more img,
.profile-section__more svg { width: 14px; height: 14px; }
.profile-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px var(--profile-card-gap);
width: 100%;
min-width: 0;
}
.profile-section--recent .profile-card:nth-child(n + 4) { display: none; }
.profile-card {
display: flex;
flex-direction: column;
gap: 6px;
min-width: 0;
}
.profile-card__cover {
position: relative;
display: block;
width: 100%;
aspect-ratio: 109 / 145;
overflow: hidden;
background: #1b1b1f;
border: 1px solid rgba(255, 255, 255, 0.07);
border-radius: 8px;
}
.profile-card__cover::after {
content: "";
position: absolute;
inset: 0;
z-index: 1;
background: linear-gradient(180deg, transparent 58%, rgba(0, 0, 0, 0.7) 100%);
pointer-events: none;
}
.profile-card__image {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.profile-card__progress {
position: absolute;
right: 10px;
bottom: 6px;
left: 10px;
z-index: 2;
height: 3px;
overflow: hidden;
background: rgba(255, 255, 255, 0.12);
border-radius: 999px;
}
.profile-card__progress-fill {
display: block;
width: 60%;
height: 100%;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.profile-section--recent .profile-card:nth-child(1) .profile-card__progress-fill { width: 59.6%; }
.profile-section--recent .profile-card:nth-child(2) .profile-card__progress-fill { width: 24.7%; }
.profile-section--recent .profile-card:nth-child(3) .profile-card__progress-fill { width: 79.8%; }
.profile-card__episodes {
position: absolute;
bottom: 10px;
left: 10px;
z-index: 2;
color: #f2f2f4;
font-size: 11px;
font-weight: 500;
line-height: 14px;
white-space: nowrap;
}
.profile-card__badge {
position: absolute;
top: 4px;
right: 4px;
z-index: 2;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 30px;
height: 20px;
padding: 0 5px;
color: #141414;
background: linear-gradient(135deg, #fadc44 15%, #f9c24e 85%);
border-radius: 6px;
font-size: 11px;
font-weight: 500;
line-height: 14px;
white-space: nowrap;
}
.profile-card__badge:not(.profile-card__badge--hot) {
color: #141414;
background: linear-gradient(135deg, #fadc44 15%, #f9c24e 85%);
}
.profile-card__badge--hot,
.profile-card__badge[data-badge="hot"] {
color: #fff;
background: linear-gradient(135deg, #f04050 15%, #d01030 85%);
}
.profile-card__title {
display: block;
overflow: hidden;
color: #f2f2f4;
font-size: 14px;
font-weight: 600;
line-height: 20px;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-card__meta {
display: block;
overflow: hidden;
color: #a1a1aa;
font-size: 11px;
font-weight: 400;
line-height: 16px;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-card__remaining { display: none; }
.profile-promo {
display: flex;
flex-direction: column;
gap: 8px;
width: 100%;
max-width: none;
margin: 0;
padding: 8px var(--profile-gutter);
}
.profile-ad {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
width: 100%;
aspect-ratio: 343 / 98;
min-height: 0;
background: #232328;
border: 1px solid rgba(255, 255, 255, 0.07);
border-radius: 12px;
text-align: center;
}
.profile-ad__icon { width: 20px; height: 20px; object-fit: contain; }
.profile-ad__title {
color: #a1a1aa;
font-size: 15px;
font-weight: 600;
line-height: 21px;
}
.profile-ad__mobile-size { display: inline; }
.profile-ad__desktop-size { display: none; }
.profile-ad__meta {
color: #7c7c86;
font-size: 11px;
line-height: 16px;
}
.profile-ad__badge {
position: absolute;
top: 8px;
right: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
height: 20px;
padding: 0 6px;
color: #f2f2f4;
background: rgba(0, 0, 0, 0.6);
border-radius: 999px;
font-size: 11px;
font-weight: 500;
line-height: 14px;
}
/* The shared footer's compact profile arrangement in the mobile design. */
.profile-page .site-footer__brand { gap: 18px; }
.profile-page .site-footer__links {
flex-wrap: wrap;
gap: 12px 16px;
}
.profile-page .footer-col { flex-wrap: nowrap; }
.profile-page .footer-col:first-child,
.profile-page .footer-col:nth-child(2) a:last-child,
.profile-page .footer-col:nth-child(3) a:last-child { display: none; }
.profile-page .footer-download {
display: flex;
flex-basis: 100%;
justify-content: center;
padding: 0;
border: 0;
background: none;
}
.profile-page .footer-download .qr-box,
.profile-page .footer-download__copy strong,
.profile-page .footer-download__copy p,
.profile-page .footer-download__copy .icon { display: none; }
.profile-page .footer-download .btn {
height: 20px;
padding: 0;
color: var(--text-muted);
background: none;
font-size: 13px;
line-height: 20px;
}
.profile-page .site-footer__rule { display: none; }
.profile-page .site-footer__legal p:first-child {
order: 2;
width: 100%;
padding-top: 16px;
margin-top: 16px;
border-top: 1px solid var(--line-soft);
}
.profile-page .site-footer__legal p:last-child { order: 1; }
.profile-page .site-footer__adult { display: none; }
.profile-page .site-footer__rights { display: none; }
.profile-page .site-footer__mobile-adult { display: inline; }
}
+557
View File
@@ -0,0 +1,557 @@
/* Personal center: desktop layout based on the 1440px design frame. */
.profile-page {
min-height: 100vh;
padding-top: var(--site-header-height, 72px);
background: var(--bg);
}
.profile-hero {
position: relative;
overflow: hidden;
background: linear-gradient(180deg, #2a0d22 0%, #150a17 60%, #0b0b0d 100%);
}
.profile-hero::before {
position: absolute;
top: -140px;
left: -120px;
width: 620px;
height: 360px;
border-radius: 50%;
background: var(--accent);
filter: blur(80px);
opacity: .2;
content: "";
pointer-events: none;
}
.profile-hero__inner,
.profile-stats,
.profile-tabs,
.profile-main,
.profile-promo {
width: min(calc(100% - 48px), var(--page-width));
margin-inline: auto;
}
.profile-hero__inner {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: 32px;
padding-block: 36px 28px;
}
.profile-identity {
display: flex;
align-items: center;
gap: 24px;
min-width: 0;
}
.profile-identity__avatar {
width: 96px;
height: 96px;
flex: 0 0 96px;
border: 3px solid rgba(255, 255, 255, .24);
border-radius: 50%;
object-fit: cover;
}
.profile-identity__copy {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
min-width: 0;
}
.profile-identity__name {
max-width: 100%;
margin: 0;
overflow: hidden;
color: var(--text);
font-size: 32px;
font-weight: 600;
line-height: 40px;
letter-spacing: -.01em;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-identity__meta {
margin: 0;
color: var(--text-muted);
font-size: 13px;
line-height: 18px;
letter-spacing: .06em;
}
.profile-identity__edit {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
height: 36px;
padding-inline: 12px;
border: 1px solid rgba(255, 255, 255, .24);
border-radius: 999px;
color: var(--text);
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
}
.profile-identity__edit img,
.profile-wallet__label img {
width: 16px;
height: 16px;
flex: 0 0 16px;
}
.profile-wallet {
display: flex;
align-items: center;
gap: 28px;
min-height: 120px;
padding: 18px 24px;
border: 1px solid var(--line-soft);
border-radius: 16px;
background: var(--bg-elevated);
}
.profile-wallet__label {
display: flex;
align-items: center;
gap: 8px;
margin: 0;
color: var(--text);
font-size: 15px;
font-weight: 600;
line-height: 21px;
white-space: nowrap;
}
.profile-wallet__amount {
display: block;
margin: 4px 0 0;
color: var(--gold);
font-family: Inter, var(--font);
font-size: 28px;
font-weight: 600;
line-height: 34px;
}
.profile-wallet__hint {
margin: 2px 0 0;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
white-space: nowrap;
}
.profile-wallet__actions {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
flex: 0 0 auto;
}
.profile-wallet__recharge {
display: inline-flex;
align-items: center;
justify-content: center;
height: 40px;
padding-inline: 16px;
border-radius: 999px;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
color: #fff;
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
}
.profile-wallet__details {
color: var(--text-muted);
font-size: 12px;
line-height: 18px;
white-space: nowrap;
text-decoration: none;
}
.profile-wallet__details:hover {
color: var(--text);
}
.profile-stats {
position: relative;
display: flex;
align-items: center;
gap: 40px;
padding: 18px 0 22px;
border-top: 1px solid var(--line-soft);
}
.profile-stat {
display: flex;
flex-direction: column;
gap: 2px;
}
.profile-stat__value {
color: var(--text);
font-family: Inter, var(--font);
font-size: 20px;
font-weight: 600;
line-height: 26px;
white-space: nowrap;
}
.profile-stat__label {
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.profile-tabs {
padding-top: 4px;
border-bottom: 1px solid var(--line-soft);
}
.profile-tabs__inner {
display: flex;
align-items: flex-start;
gap: 32px;
height: 38px;
}
.profile-tabs__link {
position: relative;
display: inline-flex;
flex-direction: column;
align-items: center;
height: 100%;
padding: 4px 0 0;
color: var(--text-muted);
font-size: 16px;
font-weight: 600;
line-height: 22px;
white-space: nowrap;
}
.profile-tabs__link::after {
position: absolute;
bottom: 0;
left: 50%;
width: 24px;
height: 2px;
transform: translateX(-50%);
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
content: "";
opacity: 0;
}
.profile-tabs__link.is-active {
color: var(--text);
}
.profile-tabs__link.is-active::after {
opacity: 1;
}
.profile-section {
display: flex;
flex-direction: column;
gap: 20px;
}
.profile-section--recent {
padding-block: 28px 20px;
}
.profile-section--favorites {
padding-block: 20px;
}
.profile-section__head,
.profile-section__heading {
display: flex;
align-items: center;
}
.profile-section__head {
justify-content: space-between;
gap: 20px;
}
.profile-section__heading {
gap: 14px;
min-width: 0;
}
.profile-section__title {
margin: 0;
color: var(--text);
font-size: 22px;
font-weight: 600;
line-height: 30px;
white-space: nowrap;
}
.profile-section__subtitle {
color: var(--text-dim);
font-size: 14px;
line-height: 22px;
white-space: nowrap;
}
.profile-section__more {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
white-space: nowrap;
}
.profile-section__more img {
width: 16px;
height: 16px;
}
.profile-grid {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 32px 24px;
}
.profile-section__empty {
grid-column: 1 / -1;
margin: 8px 0 32px;
color: var(--text-muted);
}
.profile-card {
display: flex;
flex-direction: column;
gap: 10px;
min-width: 0;
}
.profile-card__cover {
position: relative;
display: block;
width: 100%;
aspect-ratio: 3 / 4;
overflow: hidden;
border: 1px solid var(--line-soft);
border-radius: 12px;
background: var(--bg-panel);
}
.profile-card__cover::after {
position: absolute;
inset: 58% 0 0;
z-index: 1;
background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .7));
content: "";
pointer-events: none;
}
.profile-card__image {
width: 100%;
height: 100%;
object-fit: cover;
}
.profile-card__episodes {
position: absolute;
bottom: 10px;
left: 10px;
z-index: 2;
color: var(--text);
font-size: 12px;
font-weight: 500;
line-height: 16px;
text-shadow: 0 1px 4px #000;
}
.profile-card__progress {
position: absolute;
right: 10px;
bottom: 6px;
left: 10px;
z-index: 2;
height: 3px;
overflow: hidden;
border-radius: 999px;
background: rgba(255, 255, 255, .12);
}
.profile-card__progress-fill {
display: block;
width: var(--progress, 0%);
height: 100%;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.profile-card__badge {
position: absolute;
top: 4px;
right: 4px;
z-index: 2;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 36px;
height: 20px;
padding-inline: 8px;
border-radius: 6px;
background: linear-gradient(135deg, #fadc44 15%, #f9c24e 85%);
color: #141414;
font-size: 11px;
font-weight: 500;
line-height: 14px;
white-space: nowrap;
}
.profile-card__badge--hot {
background: linear-gradient(135deg, #f04050 15%, #d01030 85%);
color: #fff;
}
.profile-card__title {
margin: 0;
overflow: hidden;
color: var(--text);
font-size: 16px;
font-weight: 600;
line-height: 22px;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-card__title a {
color: inherit;
text-decoration: none;
}
.profile-card__title a:hover {
color: var(--accent);
}
.profile-card__meta {
margin: 0;
overflow: hidden;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-promo {
display: grid;
width: 100%;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
margin-inline: 0;
padding-block: 8px 40px;
}
.profile-ad {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 6px;
width: 100%;
aspect-ratio: 592 / 169;
border: 1px solid var(--line-soft);
border-radius: 12px;
background: #232328;
text-align: center;
}
.profile-ad__icon {
width: 24px;
height: 24px;
color: var(--text-muted);
}
.profile-ad__title {
margin: 0;
color: var(--text-muted);
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.profile-ad__mobile-size {
display: none;
}
.profile-ad__meta {
margin: 0;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.profile-ad__badge {
position: absolute;
top: 8px;
right: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
height: 20px;
padding-inline: 6px;
border-radius: 999px;
background: rgba(0, 0, 0, .6);
color: var(--text);
font-size: 11px;
font-weight: 500;
line-height: 14px;
}
@media (min-width: 901px) {
.profile-page .site-footer__inner {
gap: 32px;
padding-bottom: 31px;
}
.profile-page .site-footer__legal {
flex-direction: row;
justify-content: space-between;
gap: 24px;
}
.profile-page .site-footer__legal p:last-child {
text-align: right;
}
}
/* 账户列表使用上游总数进行服务端分页。 */
.account-pagination {
display: flex;
align-items: center;
justify-content: center;
gap: 20px;
margin: 24px 0;
color: var(--text-muted);
font-size: 13px;
}
.account-pagination a {
color: var(--text);
border: 1px solid var(--line);
border-radius: 20px;
padding: 7px 14px;
}
+155
View File
@@ -0,0 +1,155 @@
/* 公共广告位统一规范
* PC:双列,固定高 169
* H5:单列两行,宽度 100%(占满所属内容容器),比例 343/98
*/
.promo-rail {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
width: 100%;
max-width: 100%;
min-width: 0;
margin: 0;
padding: 24px 0;
box-sizing: border-box;
}
.promo-card {
position: relative;
display: block;
overflow: hidden;
width: 100%;
max-width: 100%;
min-width: 0;
height: 169px;
border-radius: var(--radius-md);
background: #232328;
box-sizing: border-box;
}
.promo-card img {
width: 100%;
height: 100%;
max-width: 100%;
display: block;
object-fit: cover;
}
.promo-card__tag {
position: absolute;
top: 12px;
right: 12px;
z-index: 1;
}
/* 页面广告容器:默认占满一行 */
.play-promo,
.list-promo,
.list-mid-promo,
.list-bottom-promo,
.series-list-promo {
flex: 0 0 100%;
width: 100%;
max-width: 100%;
min-width: 0;
box-sizing: border-box;
}
.play-promo .promo-rail {
padding: 12px 0;
}
.play-promo--bottom .promo-rail {
padding: 12px 0 0;
}
.list-bottom-promo {
padding-bottom: 24px;
}
@media (max-width: 768px) {
/* H5:纵向两行,宽度 100% */
.promo-rail {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 8px;
width: 100%;
max-width: 100%;
margin: 0;
padding: 8px 0;
}
.promo-card {
flex: 0 0 auto;
width: 100%;
max-width: 100%;
height: auto;
min-height: 98px;
aspect-ratio: 343 / 98;
border-radius: var(--radius-md);
border: 1px solid var(--line-soft);
}
.promo-card img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
max-width: none;
object-fit: cover;
}
.promo-card__tag {
top: 8px;
right: 8px;
}
/* 与页面内容区 gutter 对齐(首页 .main > .promo-rail、播放页、列表底部) */
.main > .promo-rail,
.play-promo,
.list-bottom-promo {
padding-left: var(--h5-gutter, 16px);
padding-right: var(--h5-gutter, 16px);
}
.play-promo {
padding-top: 8px;
padding-bottom: 8px;
}
.play-promo .promo-rail,
.play-promo--bottom .promo-rail,
.list-bottom-promo .promo-rail,
.main > .promo-rail {
padding-top: 0;
padding-bottom: 0;
}
.play-promo--bottom {
padding-top: 8px;
padding-bottom: 0;
}
.list-bottom-promo {
padding-top: 0;
padding-bottom: 8px;
}
/* 已在带 gutter 的 list-body / grid 内:不再重复左右边距 */
.list-body .promo-rail,
.list-body .list-mid-promo,
.list-body .list-promo,
.list-body .series-list-promo,
.grid--list .list-mid-promo,
.grid--series-list .series-list-promo {
padding-left: 0;
padding-right: 0;
}
.list-mid-promo.only-h5,
.series-list-promo.only-h5 {
display: block !important;
}
}
+152
View File
@@ -0,0 +1,152 @@
/* 已购剧集 H5:以 Figma 375px 画板为基准。 */
@media (max-width: 768px) {
.purchased-main {
display: flex;
flex-direction: column;
gap: 8px;
width: 100%;
max-width: none;
min-width: 0;
margin: 0;
padding: 12px var(--profile-gutter, 16px) 20px;
}
.purchased-note {
margin: 0;
color: #7c7c86;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.purchased-list {
display: flex;
flex-direction: column;
width: 100%;
min-width: 0;
margin: 0;
padding: 0;
list-style: none;
}
.purchased-item {
display: flex;
align-items: center;
gap: clamp(8px, 3.2vw, 14px);
width: 100%;
min-width: 0;
min-height: 89px;
padding: 12px 0;
border-bottom: 1px solid rgba(255, 255, 255, .07);
}
.purchased-item__cover {
display: block;
flex: 0 0 clamp(41px, 12.8vw, 56px);
width: clamp(41px, 12.8vw, 56px);
height: clamp(55px, 17.066667vw, 75px);
overflow: hidden;
border-radius: 6px;
background: #141417;
}
.purchased-item__cover img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.purchased-item__body {
display: flex;
flex: 1 1 0;
flex-direction: column;
align-items: flex-start;
gap: 5px;
min-width: 0;
}
.purchased-item__title {
display: block;
max-width: 100%;
overflow: hidden;
margin: 0;
color: #f2f2f4;
font-size: clamp(13px, 4vw, 15px);
font-weight: 600;
line-height: 21px;
text-overflow: ellipsis;
white-space: nowrap;
}
.purchased-item__info {
display: block;
max-width: 100%;
color: #7c7c86;
font-size: clamp(10px, 2.933333vw, 11px);
font-weight: 400;
line-height: 16px;
white-space: normal;
}
.purchased-item__mobile-date {
display: inline;
white-space: nowrap;
}
.purchased-item__date {
display: none;
}
.purchased-item__progress {
display: block;
width: min(140px, 100%);
height: 3px;
overflow: hidden;
border-radius: 999px;
background: rgba(255, 255, 255, .12);
}
.purchased-item__progress > span {
display: block;
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.purchased-item__resume {
display: inline-flex;
flex: 0 0 clamp(67px, 20.8vw, 88px);
align-items: center;
justify-content: center;
gap: 6px;
width: clamp(67px, 20.8vw, 88px);
height: 32px;
padding: 0 8px;
border: 1px solid rgba(255, 255, 255, .24);
border-radius: 999px;
background: transparent;
color: #f2f2f4;
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
}
.purchased-item__resume svg,
.purchased-item__resume img {
display: block;
flex: 0 0 16px;
width: 16px;
height: 16px;
}
.purchased-item__resume-desktop { display: none; }
.purchased-item__resume-mobile { display: inline; }
}
@media (max-width: 359px) {
.purchased-page .profile-tabs__inner {
gap: 16px;
}
}
+148
View File
@@ -0,0 +1,148 @@
/* 已购剧集:1440px 桌面稿,沿用个人中心公共页头与页签。 */
.purchased-main {
display: flex;
flex-direction: column;
gap: 16px;
width: min(calc(100% - 48px), var(--page-width));
margin-inline: auto;
padding: 24px 0 40px;
}
.purchased-note {
margin: 0;
color: var(--text-dim);
font-size: 13px;
font-weight: 400;
line-height: 20px;
}
.purchased-list {
min-width: 0;
}
.purchased-item {
display: grid;
grid-template-columns: 56px minmax(0, 1fr) 120px 106px;
align-items: center;
gap: 16px;
min-width: 0;
min-height: 104px;
padding-block: 14px;
border-bottom: 1px solid var(--line-soft);
}
.purchased-item__cover {
display: block;
width: 56px;
height: 75px;
overflow: hidden;
border-radius: 6px;
background: var(--bg-panel);
}
.purchased-item__cover img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.purchased-item__body {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
min-width: 0;
}
.purchased-item__title {
display: block;
max-width: 100%;
margin: 0;
overflow: hidden;
color: var(--text);
font-size: 16px;
font-weight: 600;
line-height: 22px;
text-overflow: ellipsis;
white-space: nowrap;
}
.purchased-item__info {
display: block;
max-width: 100%;
margin: 0;
overflow: hidden;
color: var(--text-muted);
font-size: 13px;
font-weight: 400;
line-height: 20px;
text-overflow: ellipsis;
white-space: nowrap;
}
.purchased-item__progress {
display: block;
width: 240px;
max-width: 100%;
height: 3px;
overflow: hidden;
border-radius: 999px;
background: var(--line);
}
.purchased-item__progress > span {
display: block;
width: var(--progress, 100%);
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.purchased-item__date {
color: var(--text-dim);
font-size: 12px;
font-weight: 400;
line-height: 18px;
white-space: nowrap;
}
.purchased-item__mobile-date,
.purchased-item__resume-mobile {
display: none;
}
.purchased-item__resume {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 106px;
height: 36px;
padding-inline: 12px;
border: 1px solid rgba(255, 255, 255, .24);
border-radius: 999px;
color: var(--text);
font-size: 14px;
font-weight: 500;
line-height: 20px;
white-space: nowrap;
}
.purchased-item__resume img,
.purchased-item__resume svg {
display: block;
width: 16px;
height: 16px;
flex: 0 0 16px;
}
.purchased-item__resume:hover {
border-color: rgba(255, 255, 255, .36);
color: var(--text);
}
.purchased-item__resume:focus-visible {
outline: 2px solid var(--accent-hot);
outline-offset: 3px;
}
+350
View File
@@ -0,0 +1,350 @@
/* 排行榜页 */
body.page-rank .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.rank-tabs {
display: inline-flex;
align-items: flex-end;
gap: 28px;
}
.rank-tabs__item {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 10px;
color: var(--text-muted);
font-size: 16px;
font-weight: 600;
line-height: 22px;
text-decoration: none;
}
.rank-tabs__item::after {
content: "";
width: 24px;
height: 2px;
border-radius: 1px;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
opacity: 0;
}
.rank-tabs__item.is-active {
color: var(--text);
}
.rank-tabs__item.is-active::after {
opacity: 1;
}
.page-rank .list-body--rank {
padding-top: 20px;
padding-bottom: 24px;
gap: 28px;
}
.grid--rank-list {
display: flex;
flex-wrap: wrap;
align-content: flex-start;
align-items: flex-start;
gap: 24px;
align-self: stretch;
}
.rank-card {
display: flex;
justify-content: flex-start;
align-items: flex-start;
width: 220px;
color: inherit;
}
.rank-card__cover {
position: relative;
display: block;
align-self: stretch;
width: 144px;
height: 192px;
overflow: hidden;
border-radius: 12px;
border: 1px solid var(--line-soft);
text-decoration: none;
background:
linear-gradient(180deg, rgba(0, 0, 0, 0) 58%, rgba(0, 0, 0, 0.7) 100%),
var(--cover) center / cover no-repeat,
#1a1a1f;
}
.rank-card__rank {
display: inline-flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-start;
align-self: stretch;
width: 76px;
padding-bottom: 52px;
box-sizing: border-box;
}
.rank-card__no {
color: #7c7c86;
font-family: Inter, var(--font);
font-size: 56px;
font-weight: 700;
line-height: 56px;
}
.rank-card__no.is-top {
background: linear-gradient(180deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
}
.rank-card__body {
display: inline-flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 10px;
width: 144px;
min-width: 0;
}
.rank-card__cover .card__ep {
left: 10px;
bottom: 10px;
top: auto;
right: auto;
color: #f2f2f4;
font-size: 12px;
font-weight: 500;
line-height: 16px;
}
.rank-card__info {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 10px;
align-self: stretch;
min-width: 0;
}
.rank-card__title {
margin: 0;
align-self: stretch;
color: #f2f2f4;
font-size: 16px;
font-weight: 600;
line-height: 22px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.rank-card__title a {
color: inherit;
text-decoration: none;
}
.rank-card__meta {
margin: 0;
align-self: stretch;
color: #a1a1aa;
font-size: 13px;
font-weight: 400;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.rank-card__meta a {
color: inherit;
text-decoration: none;
}
.rank-card__meta a:hover {
color: var(--text);
}
.rank-card__heat,
.rank-card__play {
display: none;
}
@media (max-width: 768px) {
body.page-rank .site-header {
display: none !important;
}
.page-rank .list-hero {
padding: 16px var(--h5-gutter) 8px;
gap: 12px;
}
.page-rank .list-hero__intro {
gap: 8px;
}
.page-rank .list-hero__title {
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.page-rank .list-hero__desc {
color: #a1a1aa;
font-size: 13px;
font-weight: 400;
line-height: 20px;
}
.rank-tabs {
gap: 20px;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.rank-tabs::-webkit-scrollbar {
display: none;
}
.rank-tabs__item {
flex-shrink: 0;
gap: 8px;
font-size: 15px;
font-weight: 600;
line-height: 21px;
}
.rank-tabs__item::after {
width: 24px;
}
.page-rank .list-body--rank {
padding: 14px var(--h5-gutter) 20px;
gap: 14px;
}
.grid--rank-list {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
gap: 0;
width: 100%;
}
.rank-card {
display: flex;
align-items: center;
gap: 12px;
width: 100%;
padding: 10px 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.rank-card__rank {
flex-shrink: 0;
width: 34px;
padding: 0;
align-self: center;
}
.rank-card__no {
font-size: 24px;
font-weight: 600;
line-height: 30px;
}
.rank-card__body {
display: flex;
flex-direction: row;
align-items: center;
gap: 12px;
flex: 1 1 0;
width: auto;
min-width: 0;
}
.rank-card__cover {
flex-shrink: 0;
width: 54px;
height: 72px;
border-radius: 6px;
border: 0;
align-self: center;
}
.rank-card__cover .card__ep {
display: none;
}
.rank-card__info {
flex: 1 1 0;
width: auto;
min-width: 0;
gap: 4px;
}
.rank-card__title {
font-size: 15px;
font-weight: 600;
line-height: 21px;
}
.rank-card__meta {
color: #7c7c86;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.rank-card__heat {
display: inline-flex;
align-items: center;
gap: 3px;
margin: 0;
color: #ff4a7b;
font-size: 11px;
font-weight: 400;
line-height: 16px;
}
.rank-card__heat .icon {
width: 11px;
height: 11px;
}
.rank-card__play {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
flex-shrink: 0;
height: 32px;
padding: 0 12px;
border-radius: 999px;
outline: 1px solid rgba(255, 255, 255, 0.24);
outline-offset: -1px;
border: 0;
color: #f2f2f4;
font-size: 14px;
font-weight: 500;
line-height: 20px;
text-decoration: none;
}
.rank-card__play .icon {
width: 16px;
height: 16px;
}
}
+12
View File
@@ -0,0 +1,12 @@
/* 最近上新页 */
body.page-recently .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
@media (max-width: 768px) {
body.page-recently .site-header {
display: none !important;
}
}
+117
View File
@@ -0,0 +1,117 @@
@media (max-width: 768px) {
.recharge-page {
--recharge-gutter: clamp(14px, 4.266667vw, 18px);
padding-top: 0;
}
.recharge-page .site-header { display: none; }
.subpage-header {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 56px;
padding: 0 var(--recharge-gutter);
border-bottom: 1px solid var(--line-soft);
background: var(--bg);
}
.subpage-header__button { display: flex; align-items: center; justify-content: center; width: 28px; height: 36px; }
.subpage-header__button img { width: 22px; height: 22px; }
.subpage-header__title { color: var(--text); font-size: 16px; font-weight: 600; line-height: 24px; }
.recharge-main { width: 100%; margin: 0; padding: 16px 0 0; }
.recharge-breadcrumb,
.recharge-intro,
.recharge-balance__guide { display: none; }
.recharge-balance {
width: auto;
height: 110px;
margin: 0 var(--recharge-gutter);
padding: 18px;
border-radius: 16px;
}
.recharge-balance__main { gap: 14px; }
.recharge-balance__coin { width: 72px; height: 72px; flex-basis: 72px; }
.recharge-balance__label { font-size: 11px; line-height: 16px; }
.recharge-balance__copy strong { margin-top: 2px; font-size: 28px; line-height: 34px; }
.recharge-balance__copy small { font-size: 13px; line-height: 20px; }
.recharge-balance__copy p { margin-top: 0; font-size: 11px; line-height: 16px; }
.recharge-packages { margin-top: 20px; padding: 0 var(--recharge-gutter); }
.recharge-section-heading { gap: 10px; height: 22px; min-height: 22px; }
.recharge-section-heading h2,
.recharge-payment > h2 { font-size: 16px; line-height: 22px; }
.recharge-section-heading span { font-size: 12px; line-height: 18px; white-space: nowrap; }
.recharge-packages__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 12px; }
.recharge-package { gap: 3px; height: 99px; padding: 12px; border-radius: 12px; }
.recharge-package__title { gap: 5px; font-size: 15px; line-height: 21px; white-space: nowrap; }
.recharge-package__title img { width: 14px; height: 14px; }
.recharge-package__hint { font-size: 11px; line-height: 16px; }
.recharge-package__price { font-size: 20px; line-height: 26px; }
.recharge-package__selected { top: 12px; right: 12px; width: 16px; height: 16px; }
.recharge-package__badge { top: -2px; right: 9px; height: 21px; padding-inline: 7px; font-size: 10px; }
.recharge-packages__note { display: none; }
.recharge-payment { margin-top: 16px; padding: 0 var(--recharge-gutter); }
.recharge-payment__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 12px; }
.recharge-method { gap: 10px; padding: 0 12px; }
.recharge-payment__checkout { flex-direction: column; gap: 11px; margin-top: 11px; }
.recharge-payment__checkout button { width: 100%; height: 48px; font-size: 16px; }
.recharge-payment__checkout p { font-size: 11px; line-height: 18px; text-align: center; }
.recharge-payment__status { text-align: center; }
.recharge-history { margin-top: 22px; padding: 0 var(--recharge-gutter) 22px; }
.recharge-history__head { height: 26px; }
.recharge-history__head h2 { font-size: 18px; line-height: 26px; }
.recharge-history__filters,
.recharge-history__export { display: none; }
.recharge-history__more { display: flex; align-items: center; gap: 2px; margin-left: auto; padding: 0; border: 0; background: none; color: var(--text-muted); font-size: 12px; line-height: 18px; }
.recharge-history__more img { width: 14px; height: 14px; }
.recharge-history__table { height: auto; margin-top: 8px; padding: 0; border: 0; border-radius: 0; background: none; }
.recharge-history__columns { display: none; }
.recharge-history__row { display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: 20px 16px; align-content: center; height: 64px; border-bottom: 1px solid var(--line-soft); font-size: 14px; line-height: 20px; }
.recharge-history__kind { grid-column: 1; grid-row: 1; }
.recharge-history__detail-line { display: flex; align-items: center; gap: 8px; grid-column: 1; grid-row: 2; min-width: 0; }
.recharge-history__description,
.recharge-history__time { color: var(--text-dim); font-size: 11px; line-height: 16px; white-space: nowrap; }
.recharge-history__description { overflow: hidden; text-overflow: ellipsis; }
.recharge-history__time { flex: 0 0 auto; }
.recharge-history__amount { align-self: center; grid-column: 2; grid-row: 1 / 3; font-size: 16px; line-height: 20px; }
.only-desktop { display: none; }
.only-mobile { display: inline; }
.recharge-pagination { display: none; }
.recharge-page .site-footer { background: #141417; }
.recharge-page .site-footer__inner { padding: 32px 16px 27px; gap: 18px; }
.recharge-page .site-footer__brand { gap: 18px; }
.recharge-page .site-footer__links { flex-wrap: wrap; gap: 12px 16px; }
.recharge-page .footer-col { flex-wrap: nowrap; }
.recharge-page .footer-col:first-child,
.recharge-page .footer-col:nth-child(2) a:last-child,
.recharge-page .footer-col:nth-child(3) a:last-child { display: none; }
.recharge-page .footer-download { display: flex; flex-basis: 100%; justify-content: center; padding: 0; border: 0; background: none; }
.recharge-page .footer-download .qr-box,
.recharge-page .footer-download__copy strong,
.recharge-page .footer-download__copy p,
.recharge-page .footer-download__copy .icon { display: none; }
.recharge-page .footer-download .btn { height: 20px; padding: 0; color: var(--text-muted); background: none; font-size: 13px; line-height: 20px; }
.recharge-page .site-footer__rule { display: none; }
.recharge-page .site-footer__legal { flex-direction: column; align-items: center; gap: 0; }
.recharge-page .site-footer__legal p:first-child { order: 2; width: 100%; padding-top: 16px; margin-top: 16px; border-top: 1px solid var(--line-soft); }
.recharge-page .site-footer__legal p:last-child { order: 1; }
.recharge-page .site-footer__adult,
.recharge-page .site-footer__rights { display: none; }
.recharge-page .site-footer__mobile-adult { display: inline; }
}
@media (max-width: 359px) {
.recharge-balance { height: 110px; padding: 14px; }
.recharge-balance__main { gap: 10px; }
.recharge-balance__coin { width: 64px; height: 64px; flex-basis: 64px; }
.recharge-balance__copy p { line-height: 14px; }
.recharge-balance__note-full { display: none; }
.recharge-balance__note-short { display: inline; }
.recharge-package__title { font-size: 14px; }
.recharge-package__badge { top: -4px; height: 18px; padding-inline: 5px; font-size: 9px; }
}
+516
View File
@@ -0,0 +1,516 @@
.recharge-modal[hidden] {
display: none !important;
}
.recharge-modal {
position: fixed;
inset: 0;
z-index: 320;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
}
.recharge-modal__backdrop {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.7);
}
.recharge-modal__panel {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: stretch;
gap: 16px;
width: 640px;
max-width: 100%;
max-height: calc(100dvh - 48px);
padding: 32px;
overflow-y: auto;
background: #141417;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 20px;
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
scrollbar-width: thin;
}
.recharge-modal__handle {
display: none;
}
.recharge-modal__head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
min-height: 54px;
}
.recharge-modal__heading {
min-width: 0;
display: flex;
flex-direction: column;
gap: 4px;
}
.recharge-modal__heading h2,
.recharge-modal__subtitle {
margin: 0;
}
.recharge-modal__heading h2 {
color: #f2f2f4;
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.recharge-modal__subtitle {
color: #a1a1aa;
font-size: 13px;
font-weight: 400;
line-height: 20px;
white-space: nowrap;
}
.recharge-modal__subtitle--mobile {
display: none;
}
.recharge-modal__balance {
display: inline-flex;
align-items: center;
gap: 6px;
flex: none;
padding: 6px 12px;
color: #e9c977;
background: rgba(217, 169, 74, 0.14);
border-radius: 999px;
}
.recharge-modal__balance strong {
font-family: Inter, var(--font);
font-size: 16px;
font-weight: 600;
line-height: 20px;
}
.recharge-modal__coin {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 14px;
width: 14px;
height: 14px;
background: linear-gradient(135deg, #e9c977 15%, #d9a94a 85%);
border: 1px solid #e9c977;
border-radius: 50%;
}
.recharge-modal__coin::before {
content: "";
position: absolute;
inset: 2px;
border: 1px solid rgba(58, 42, 10, 0.45);
border-radius: 50%;
}
.recharge-modal__coin img {
position: relative;
width: 8px;
height: 8px;
}
.recharge-modal__coin--balance {
flex-basis: 16px;
width: 16px;
height: 16px;
}
.recharge-modal__close {
position: absolute;
top: 16px;
right: 16px;
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
background: rgba(255, 255, 255, 0.04);
border-radius: 50%;
}
.recharge-modal__close img {
width: 18px;
height: 18px;
}
.recharge-modal__packages {
display: grid;
grid-template-columns: repeat(3, 181px);
gap: 12px;
}
.recharge-modal__package {
position: relative;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 4px;
width: 181px;
height: 99px;
padding: 12px;
text-align: left;
background: #141417;
border: 1px solid rgba(255, 255, 255, 0.07);
border-radius: 12px;
}
.recharge-modal__package.is-selected {
background: rgba(217, 169, 74, 0.14);
border: 1.5px solid #d9a94a;
}
.recharge-modal__package-top {
display: flex;
align-items: center;
justify-content: space-between;
gap: 4px;
width: 100%;
min-height: 21px;
}
.recharge-modal__package-name {
display: inline-flex;
align-items: center;
gap: 6px;
white-space: nowrap;
color: #f2f2f4;
font-size: 15px;
font-weight: 600;
line-height: 21px;
}
.recharge-modal__package.is-selected .recharge-modal__package-name,
.recharge-modal__package.is-selected .recharge-modal__package-price {
color: #e9c977;
}
.recharge-modal__selected-icon {
display: none;
flex: none;
width: 14px;
height: 14px;
}
.recharge-modal__package.is-selected .recharge-modal__selected-icon {
display: block;
}
.recharge-modal__package-detail {
color: #7c7c86;
font-size: 12px;
font-weight: 400;
line-height: 18px;
white-space: nowrap;
}
.recharge-modal__package-price {
color: #f2f2f4;
font-family: Inter, var(--font);
font-size: 20px;
font-weight: 600;
line-height: 26px;
}
.recharge-modal__package-badge {
position: absolute;
top: -1px;
right: 10px;
display: inline-flex;
align-items: center;
justify-content: center;
height: 20px;
padding: 0 8px;
color: #141414;
background: linear-gradient(135deg, #e9c977 15%, #d9a94a 85%);
border-radius: 6px;
font-size: 11px;
font-weight: 500;
line-height: 14px;
}
.recharge-modal__methods {
display: grid;
grid-template-columns: repeat(2, 278px);
gap: 12px;
}
.recharge-modal__method {
display: flex;
align-items: center;
gap: 10px;
width: 278px;
height: 52px;
padding: 0 16px;
text-align: left;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 12px;
}
.recharge-modal__method.is-selected {
background: rgba(236, 35, 127, 0.1);
border-color: rgba(236, 35, 127, 0.3);
}
.recharge-modal__method-check {
display: inline-flex;
align-items: center;
justify-content: center;
flex: none;
width: 18px;
height: 18px;
border: 1px solid rgba(255, 255, 255, 0.24);
border-radius: 50%;
}
.recharge-modal__method-check img {
display: none;
width: 12px;
height: 12px;
}
.recharge-modal__method.is-selected .recharge-modal__method-check {
border: 0;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
}
.recharge-modal__method.is-selected .recharge-modal__method-check img {
display: block;
}
.recharge-modal__method-copy {
display: flex;
flex-direction: column;
gap: 1px;
min-width: 0;
color: #f2f2f4;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.recharge-modal__method-copy small {
color: #7c7c86;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.recharge-modal__pay {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 52px;
padding: 0 28px;
color: #fff;
background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%);
border-radius: 999px;
font-size: 16px;
font-weight: 500;
line-height: 24px;
}
.recharge-modal__status {
margin: -8px 0 0;
color: #a1a1aa;
font-size: 12px;
line-height: 18px;
text-align: center;
}
.recharge-modal__status.is-ok {
color: #6ee7a8;
}
.recharge-modal__empty {
margin: 0;
grid-column: 1 / -1;
color: rgba(255, 255, 255, 0.56);
font-size: 13px;
line-height: 20px;
}
.recharge-modal__foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
color: #7c7c86;
font-size: 12px;
font-weight: 400;
line-height: 18px;
white-space: nowrap;
}
.recharge-modal__foot a {
display: inline-flex;
align-items: center;
gap: 5px;
color: #a1a1aa;
}
.recharge-modal__foot img {
width: 12px;
height: 12px;
}
.recharge-modal__close:focus-visible,
.recharge-modal__package:focus-visible,
.recharge-modal__method:focus-visible,
.recharge-modal__pay:focus-visible,
.recharge-modal__foot a:focus-visible {
outline: 2px solid #ff4a7b;
outline-offset: 2px;
}
@media (max-width: 768px) {
.recharge-modal {
align-items: flex-end;
justify-content: stretch;
padding: 0;
}
.recharge-modal__panel {
width: 100%;
max-width: none;
max-height: 100dvh;
padding: 12px 20px 24px;
gap: 14px;
border: 0;
border-radius: 20px 20px 0 0;
box-shadow: none;
}
.recharge-modal__handle {
display: flex;
justify-content: center;
align-items: center;
flex: none;
height: 4px;
}
.recharge-modal__handle::before {
content: "";
width: 36px;
height: 4px;
background: rgba(255, 255, 255, 0.24);
border-radius: 2px;
}
.recharge-modal__head {
min-height: 46px;
}
.recharge-modal__heading {
gap: 2px;
}
.recharge-modal__heading h2 {
font-size: 18px;
line-height: 26px;
}
.recharge-modal__subtitle {
font-size: 12px;
line-height: 18px;
}
.recharge-modal__subtitle--desktop,
.recharge-modal__balance {
display: none;
}
.recharge-modal__subtitle--mobile {
display: block;
}
.recharge-modal__close {
position: static;
flex: none;
}
.recharge-modal__packages {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.recharge-modal__package {
width: 100%;
}
.recharge-modal__package-detail {
font-size: clamp(10px, 3.2vw, 12px);
}
.recharge-modal__methods {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.recharge-modal__method {
width: 100%;
padding: 0 12px;
}
.recharge-modal__method-copy small {
font-size: 11px;
line-height: 16px;
}
.recharge-modal__pay {
height: 48px;
padding: 0 22px;
font-size: 15px;
line-height: 22px;
}
.recharge-modal__foot {
font-size: 11px;
line-height: 16px;
}
.recharge-modal__foot img {
width: 11px;
height: 11px;
}
}
@media (max-width: 340px) {
.recharge-modal__panel {
padding-inline: 16px;
}
.recharge-modal__package {
padding-inline: 9px;
}
.recharge-modal__package-name {
font-size: 13px;
}
.recharge-modal__package-badge {
top: -8px;
right: 4px;
}
.recharge-modal__method {
gap: 7px;
padding-inline: 9px;
}
}
+271
View File
@@ -0,0 +1,271 @@
.recharge-page {
min-height: 100vh;
padding-top: 72px;
background: var(--bg);
}
.recharge-page [hidden] { display: none !important; }
.subpage-header { display: none; }
.recharge-main {
width: min(calc(100% - 48px), var(--page-width));
margin-inline: auto;
padding: 24px 0 41px;
}
.recharge-breadcrumb {
display: flex;
align-items: center;
gap: 8px;
height: 20px;
color: var(--text-dim);
font-size: 13px;
line-height: 20px;
}
.recharge-breadcrumb span:last-child { color: var(--text-muted); }
.recharge-breadcrumb a:hover { color: var(--text); }
.recharge-intro {
display: flex;
flex-direction: column;
align-items: flex-start;
margin-top: 16px;
}
.recharge-intro__eyebrow {
color: var(--accent-hot);
font-size: 13px;
font-weight: 600;
line-height: 18px;
letter-spacing: .14em;
}
.recharge-intro__eyebrow::before {
display: inline-block;
width: 18px;
height: 2px;
margin: 0 10px 4px 0;
background: var(--accent);
content: "";
}
.recharge-intro h1 {
margin: 12px 0 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 36px;
}
.recharge-intro p {
margin: 12px 0 0;
color: var(--text-muted);
font-size: 15px;
line-height: 24px;
}
.recharge-balance {
display: flex;
align-items: center;
justify-content: space-between;
gap: 32px;
width: 100%;
height: 216px;
margin-top: 24px;
padding: 24px 32px;
border: 1px solid var(--line-soft);
border-radius: 20px;
background: linear-gradient(90deg, #2a0d22 0%, #150a17 55%, #141417 100%);
}
.recharge-balance__main {
display: flex;
align-items: center;
gap: 24px;
min-width: 0;
}
.recharge-balance__coin {
width: 120px;
height: 120px;
flex: 0 0 120px;
object-fit: contain;
}
.recharge-balance__copy { min-width: 0; }
.recharge-balance__label,
.recharge-balance__guide h2 {
color: var(--text-dim);
font-size: 12px;
font-weight: 500;
line-height: 18px;
}
.recharge-balance__copy strong {
display: block;
margin-top: 4px;
color: var(--gold);
font-family: Inter, var(--font);
font-size: 40px;
font-weight: 600;
line-height: 46px;
}
.recharge-balance__copy small {
color: var(--text);
font-family: var(--font);
font-size: 15px;
font-weight: 600;
line-height: 22px;
}
.recharge-balance__copy p {
margin: 3px 0 0;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
white-space: nowrap;
}
.recharge-balance__note-short { display: none; }
.recharge-balance__guide {
display: flex;
flex: 0 0 360px;
flex-direction: column;
gap: 9px;
}
.recharge-balance__guide h2 { margin: 0; }
.recharge-balance__tip { display: flex; align-items: flex-start; gap: 8px; }
.recharge-balance__tip > img { width: 16px; height: 16px; flex: 0 0 16px; }
.recharge-balance__tip > div { display: flex; flex-direction: column; gap: 2px; }
.recharge-balance__tip strong { color: var(--text); font-size: 13px; font-weight: 600; line-height: 18px; }
.recharge-balance__tip span { color: var(--text-dim); font-size: 12px; line-height: 18px; }
.recharge-packages { margin-top: 32px; }
.recharge-section-heading { display: flex; align-items: center; gap: 14px; min-height: 30px; }
.recharge-section-heading h2,
.recharge-payment > h2,
.recharge-history__head h2 {
margin: 0;
color: var(--text);
font-size: 20px;
font-weight: 600;
line-height: 26px;
}
.recharge-section-heading span { color: var(--text-dim); font-size: 13px; line-height: 20px; }
.recharge-packages__grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 20px;
}
.recharge-package {
position: relative;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 5px;
min-width: 0;
height: 124px;
padding: 18px 20px;
border: 1px solid var(--line-soft);
border-radius: 16px;
background: var(--bg-elevated);
color: var(--text);
text-align: left;
cursor: pointer;
}
.recharge-package.is-selected {
border: 1.5px solid #d9a94a;
background: rgba(217, 169, 74, .14);
}
.recharge-package__title { display: flex; align-items: center; gap: 6px; font-size: 18px; font-weight: 600; line-height: 26px; }
.recharge-package__title img { width: 16px; height: 16px; }
.recharge-package__hint { color: var(--text-dim); font-size: 12px; line-height: 18px; white-space: nowrap; }
.recharge-package__price { margin-top: auto; color: var(--text); font-family: Inter, var(--font); font-size: 24px; font-weight: 600; line-height: 30px; }
.recharge-package.is-selected .recharge-package__title,
.recharge-package.is-selected .recharge-package__price { color: var(--gold); }
.recharge-package__selected { position: absolute; top: 18px; right: 20px; width: 18px; height: 18px; display: none; }
.recharge-package.is-selected .recharge-package__selected { display: block; }
.recharge-package__badge { position: absolute; top: -2px; right: 10px; display: flex; align-items: center; justify-content: center; height: 21px; padding: 0 8px; border-radius: 5px; background: linear-gradient(135deg, #ffe7a0, #e9c977); color: #382506; font-size: 11px; font-weight: 600; line-height: 16px; }
.recharge-packages__note { display: flex; align-items: center; gap: 8px; min-height: 24px; margin-top: 20px; }
.recharge-packages__note span { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border: 1px solid rgba(236,35,127,.34); border-radius: 999px; background: rgba(236,35,127,.08); color: var(--accent-hot); font-size: 12px; font-weight: 500; white-space: nowrap; }
.recharge-packages__note p { margin: 0; color: var(--text-dim); font-size: 12px; line-height: 18px; }
.recharge-data-empty { margin: 16px 0 0; color: var(--text-dim); font-size: 13px; line-height: 20px; }
.recharge-payment { margin-top: 28px; }
.recharge-payment__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-top: 20px; }
.recharge-method { display: flex; align-items: center; gap: 10px; height: 52px; min-width: 0; padding: 0 14px; border: 1px solid var(--line); border-radius: 12px; background: #242427; color: var(--text); text-align: left; cursor: pointer; }
.recharge-method.is-selected { border-color: rgba(236,35,127,.45); background: rgba(236,35,127,.12); }
.recharge-method__radio { display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex: 0 0 18px; border: 1px solid #68686d; border-radius: 50%; }
.recharge-method__radio img { display: none; width: 12px; height: 12px; }
.recharge-method.is-selected .recharge-method__radio { border-color: transparent; background: linear-gradient(135deg,#ff4a7b,#ec237f); }
.recharge-method.is-selected .recharge-method__radio img { display: block; }
.recharge-method > span:last-child { display: flex; flex-direction: column; }
.recharge-method strong { font-size: 14px; font-weight: 500; line-height: 20px; }
.recharge-method small { color: var(--text-dim); font-size: 12px; line-height: 18px; }
.recharge-payment__checkout { display: flex; align-items: center; gap: 16px; margin-top: 28px; }
.recharge-payment__checkout button { display: flex; align-items: center; justify-content: center; width: 320px; height: 56px; border: 0; border-radius: 999px; background: linear-gradient(105deg,#ff4a7b 0%,#ec237f 52%,#93226f 100%); color: #fff; font-size: 16px; font-weight: 600; line-height: 24px; cursor: pointer; }
.recharge-payment__checkout button:disabled { cursor: not-allowed; opacity: .5; }
.recharge-payment__checkout p { margin: 0; color: var(--text-dim); font-size: 12px; line-height: 18px; }
.recharge-payment__status { margin: 8px 0 0; color: var(--text-muted); font-size: 12px; line-height: 18px; }
.recharge-payment__status.is-success { color: #39c98a; }
.recharge-history { margin-top: 40px; scroll-margin-top: calc(var(--site-header-height, 72px) + 16px); }
.recharge-history__head { display: flex; align-items: center; gap: 14px; height: 30px; }
.recharge-history__filters { display: flex; align-items: center; gap: 18px; align-self: stretch; }
.recharge-history__filters button { position: relative; padding: 0; border: 0; background: none; color: var(--text-dim); font-size: 13px; font-weight: 500; cursor: pointer; }
.recharge-history__filters button.is-active { color: var(--text); }
.recharge-history__filters button.is-active::after { position: absolute; right: 0; bottom: -7px; left: 0; height: 2px; background: var(--accent); content: ""; }
.recharge-history__export { display: flex; align-items: center; gap: 3px; margin-left: auto; padding: 0; border: 0; background: none; color: var(--text-muted); font-size: 13px; cursor: pointer; }
.recharge-history__export img { width: 16px; height: 16px; }
.recharge-history__more { display: none; }
.recharge-history__table { height: 310px; margin-top: 16px; padding: 4px 24px; border: 1px solid var(--line-soft); border-radius: 16px; background: var(--bg-elevated); }
.recharge-history__columns,
.recharge-history__row { display: grid; grid-template-columns: 200px minmax(0,1fr) 200px 120px; align-items: center; }
.recharge-history__columns { height: 45px; border-bottom: 1px solid var(--line-soft); color: var(--text-dim); font-size: 12px; line-height: 18px; }
.recharge-history__columns span:last-child,
.recharge-history__amount { text-align: right; }
.recharge-history__row { height: 51px; border-bottom: 1px solid var(--line-soft); color: var(--text-muted); font-size: 13px; line-height: 20px; }
.recharge-history__row:last-child { border-bottom: 0; }
.recharge-history__kind { color: var(--text); }
.recharge-history__detail-line { display: contents; }
.recharge-history__time { color: var(--text-dim); }
.recharge-history__amount { color: #f35b69; font-family: Inter, var(--font); font-size: 15px; font-weight: 600; }
.recharge-history__amount.is-credit { color: #39c98a; }
.recharge-history__empty { margin: 0; padding: 36px 0; color: var(--text-dim); font-size: 13px; text-align: center; }
.only-mobile { display: none; }
.recharge-pagination,
.recharge-pagination [data-recharge-pages] { display: flex; align-items: center; justify-content: center; gap: 8px; }
.recharge-pagination { margin-top: 16px; }
.recharge-pagination button { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-elevated); color: var(--text-muted); font-family: Inter, var(--font); font-size: 16px; font-weight: 600; cursor: pointer; }
.recharge-pagination button.is-active { border-color: transparent; background: linear-gradient(135deg,#ff4a7b,#ec237f 52%,#93226f); color: #fff; }
.recharge-pagination button:disabled { opacity: .45; cursor: default; }
.recharge-pagination button img { width: 16px; height: 16px; }
.recharge-pagination > button:first-child img { transform: rotate(180deg); }
.recharge-pagination__total { color: var(--text-dim); font-size: 12px; line-height: 18px; }
.recharge-page button:focus-visible,
.recharge-page a:focus-visible { outline: 2px solid var(--accent-hot); outline-offset: 3px; }
@media (max-width: 1080px) and (min-width: 769px) {
.recharge-balance__guide { flex-basis: 300px; }
.recharge-history__columns,
.recharge-history__row { grid-template-columns: 140px minmax(0,1fr) 175px 90px; }
}
@media (min-width: 901px) {
.recharge-page .site-footer__inner { gap: 32px; padding-bottom: 32px; }
.recharge-page .site-footer__legal { flex-direction: row; justify-content: space-between; gap: 24px; }
.recharge-page .site-footer__legal p:last-child { text-align: right; }
}
+255
View File
@@ -0,0 +1,255 @@
/* H5 注册页 */
body.page-register {
min-height: 100vh;
background: var(--bg);
}
.page-register .page-subheader {
display: flex;
border-bottom: 0;
}
.register-page {
min-height: 100vh;
padding: 56px 0 32px;
box-sizing: border-box;
}
.register-page__inner {
width: 100%;
max-width: 440px;
margin: 0 auto;
padding: 24px var(--h5-gutter);
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
box-sizing: border-box;
}
.register-page__brand {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
.register-page__logo {
width: 64px;
height: 64px;
border-radius: 12px;
object-fit: cover;
box-shadow: 0 8px 24px rgba(236, 35, 127, 0.4);
}
.register-page__content {
align-self: stretch;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 18px;
}
.register-page__intro {
align-self: stretch;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
}
.register-page__title {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 38px;
}
.register-page__desc {
margin: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.register-page__form {
align-self: stretch;
display: flex;
flex-direction: column;
gap: 16px;
}
.register-page__field {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
}
.register-page__label {
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.register-page__control {
align-self: stretch;
height: 48px;
padding: 0 16px;
display: flex;
align-items: center;
gap: 10px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid transparent;
border-radius: 12px;
outline: 1px solid transparent;
outline-offset: -1px;
}
.register-page__control:focus-within {
outline-color: rgba(236, 35, 127, 0.45);
}
.register-page__field.is-error .register-page__control {
outline-color: #ff5a5f;
}
.register-page__error {
display: inline-flex;
align-items: center;
gap: 6px;
color: #ff5a5f;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.register-page__error[hidden] {
display: none !important;
}
.register-page__error-icon {
width: 14px;
height: 14px;
flex-shrink: 0;
}
.register-page__control > .icon {
width: 18px;
height: 18px;
flex-shrink: 0;
}
.register-page__input {
flex: 1 1 0;
min-width: 0;
height: 100%;
padding: 0;
border: 0;
outline: none;
background: transparent;
color: var(--text);
font: inherit;
font-size: 15px;
line-height: 24px;
}
.register-page__input::placeholder {
color: var(--text-dim);
}
.register-page__toggle {
width: 18px;
height: 18px;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-dim);
}
.register-page__toggle .icon {
width: 18px;
height: 18px;
}
.register-page__agree {
display: flex;
align-items: flex-start;
gap: 10px;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
cursor: pointer;
}
.register-page__agree a {
color: inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
.register-page__checkbox {
position: absolute;
opacity: 0;
width: 1px;
height: 1px;
pointer-events: none;
}
.register-page__check {
width: 18px;
height: 18px;
flex-shrink: 0;
margin-top: 1px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 4px;
background: transparent;
border: 1px solid rgba(255, 255, 255, 0.24);
}
.register-page__checkbox:checked + .register-page__check {
border-color: transparent;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.register-page__checkbox:checked + .register-page__check::after {
content: "";
width: 10px;
height: 6px;
border-left: 1.5px solid #fff;
border-bottom: 1.5px solid #fff;
transform: translateY(-1px) rotate(-45deg);
}
.register-page__submit {
align-self: stretch;
height: 52px;
padding: 0 28px;
font-size: 16px;
line-height: 24px;
}
.register-page__switch {
margin: 0;
align-self: stretch;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.register-page__switch a {
color: #ff4a7b;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
+304
View File
@@ -0,0 +1,304 @@
/* PC 注册弹窗 */
.register-pop {
position: fixed;
inset: 0;
z-index: 290;
display: none;
align-items: center;
justify-content: center;
padding: 24px;
}
.register-pop.is-open {
display: flex;
}
.register-pop__mask {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.7);
}
.register-pop__panel {
position: relative;
z-index: 1;
width: 440px;
max-width: 100%;
padding: 32px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 20px;
background: #141417;
border: 1px solid var(--line);
border-radius: var(--radius-xl);
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
overflow: hidden;
}
.register-pop__close {
position: absolute;
top: 16px;
right: 16px;
width: 32px;
height: 32px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.04);
border-radius: 999px;
}
.register-pop__close .icon {
width: 18px;
height: 18px;
}
.register-pop__intro {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
padding-right: 40px;
}
.register-pop__title {
margin: 0;
color: var(--text);
font-size: 28px;
font-weight: 600;
line-height: 38px;
}
.register-pop__desc {
margin: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.register-pop__form {
align-self: stretch;
display: flex;
flex-direction: column;
gap: 16px;
}
.register-pop__field {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
}
.register-pop__label {
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.register-pop__control {
align-self: stretch;
height: 48px;
padding: 0 16px;
display: flex;
align-items: center;
gap: 10px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid transparent;
border-radius: 12px;
outline: 1px solid transparent;
outline-offset: -1px;
}
.register-pop__control:focus-within {
outline-color: rgba(236, 35, 127, 0.45);
}
.register-pop__field.is-error .register-pop__control {
outline-color: #ff5a5f;
}
.register-pop__error {
display: inline-flex;
align-items: center;
gap: 6px;
color: #ff5a5f;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.register-pop__error[hidden] {
display: none !important;
}
.register-pop__error-icon {
width: 14px;
height: 14px;
flex-shrink: 0;
}
.register-pop__control > .icon {
width: 18px;
height: 18px;
flex-shrink: 0;
}
.register-pop__input {
flex: 1 1 0;
min-width: 0;
height: 100%;
padding: 0;
border: 0;
outline: none;
background: transparent;
color: var(--text);
font: inherit;
font-size: 15px;
line-height: 24px;
}
.register-pop__input::placeholder {
color: var(--text-dim);
}
.register-pop__toggle {
width: 18px;
height: 18px;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-dim);
}
.register-pop__toggle .icon {
width: 18px;
height: 18px;
}
.register-pop__agree {
display: flex;
align-items: flex-start;
gap: 10px;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
cursor: pointer;
}
.register-pop__agree a {
color: inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
.register-pop__checkbox {
position: absolute;
opacity: 0;
width: 1px;
height: 1px;
pointer-events: none;
}
.register-pop__check {
width: 18px;
height: 18px;
flex-shrink: 0;
margin-top: 1px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 4px;
background: transparent;
border: 1px solid rgba(255, 255, 255, 0.24);
}
.register-pop__checkbox:checked + .register-pop__check {
border-color: transparent;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
}
.register-pop__checkbox:checked + .register-pop__check::after {
content: "";
width: 10px;
height: 6px;
border-left: 1.5px solid #fff;
border-bottom: 1.5px solid #fff;
transform: translateY(-1px) rotate(-45deg);
}
.register-pop__submit {
align-self: stretch;
height: 52px;
padding: 0 28px;
font-size: 16px;
line-height: 24px;
}
.register-pop__submit.is-loading,
.register-pop__submit:disabled {
opacity: 0.72;
cursor: wait;
}
.register-pop__tip {
margin: 0;
align-self: stretch;
padding: 8px 12px;
border-radius: 8px;
font-size: 13px;
line-height: 20px;
background: rgba(255, 74, 123, 0.1);
color: #ff4a7b;
}
.register-pop__tip.is-success {
background: rgba(30, 120, 70, 0.12);
color: #1e7846;
}
.register-pop__tip[hidden] {
display: none !important;
}
.register-pop__switch {
margin: 0;
align-self: stretch;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.register-pop__switch a {
color: #ff4a7b;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
@media (max-width: 768px) {
.register-pop {
padding: 16px;
}
.register-pop__panel {
max-height: calc(100vh - 32px);
max-height: calc(100dvh - 32px);
padding: 24px 20px;
border-radius: 18px;
overflow-y: auto;
}
.register-pop__title {
font-size: 24px;
line-height: 32px;
}
}
+219
View File
@@ -0,0 +1,219 @@
/* Search result content. Header and footer styles live in their shared components. */
.search-results__mobile-count { display: none; }
/* H5 搜索顶栏:桌面隐藏,窄屏替换 site-header */
.search-h5-header {
display: none;
position: fixed;
top: 0;
left: 0;
z-index: 100;
box-sizing: border-box;
align-items: center;
gap: 8px;
width: 100%;
height: 56px;
padding-inline: 12px;
background: #0b0b0d;
border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.search-h5-header__back {
display: grid;
flex: 0 0 36px;
place-items: center;
width: 36px;
height: 36px;
border-radius: 999px;
}
.search-h5-header__back img {
display: block;
width: 22px;
height: 22px;
}
.search-h5-header__form {
display: flex;
flex: 1 1 0;
align-items: center;
gap: 8px;
min-width: 0;
height: 36px;
padding-inline: 14px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid #ec237f;
border-radius: 999px;
}
.search-h5-header__search-icon {
display: block;
flex: 0 0 18px;
width: 18px;
height: 18px;
}
.search-h5-header__input {
flex: 1 1 0;
min-width: 0;
height: 100%;
padding: 0;
color: #f2f2f4;
background: transparent;
border: 0;
outline: 0;
font: 400 14px / 22px var(--font, "PingFang SC", sans-serif);
appearance: none;
}
.search-h5-header__input::placeholder {
color: #7c7c86;
opacity: 1;
}
.search-h5-header__input::-webkit-search-cancel-button,
.search-h5-header__input::-webkit-search-decoration {
appearance: none;
}
.search-h5-header__clear {
display: grid;
flex: 0 0 16px;
place-items: center;
width: 16px;
height: 16px;
padding: 0;
border: 0;
background: transparent;
cursor: pointer;
}
.search-h5-header__clear[hidden] {
display: none;
}
.search-h5-header__clear img {
display: block;
width: 100%;
height: 100%;
}
.search-h5-header__cancel {
flex: 0 0 auto;
color: #a1a1aa;
font-size: 14px;
font-weight: 400;
line-height: 22px;
white-space: nowrap;
text-decoration: none;
}
.search-main { min-height: 50vh; padding-top: var(--site-header-height, 72px); }
.search-heading,
.search-results,
.search-recommendations {
width: min(calc(100% - 48px), 1200px);
margin-inline: auto;
}
.search-heading { padding: 36px 0 8px; }
.search-heading__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.search-heading__kicker {
display: flex;
align-items: center;
gap: 10px;
margin: 0;
color: var(--accent-hot);
font-size: 13px;
font-weight: 500;
line-height: 18px;
letter-spacing: .12em;
}
.search-heading__kicker span { width: 18px; height: 2px; background: var(--accent); }
.search-heading h1,
.search-heading h2 { margin: 0; font-size: 28px; font-weight: 600; line-height: 36px; letter-spacing: -.01em; }
.search-heading__description { margin: 0; color: var(--text-muted); font-size: 15px; line-height: 24px; }
.search-results { display: flex; flex-direction: column; gap: 24px; padding: 20px 0 24px; scroll-margin-top: calc(var(--site-header-height, 72px) + 12px); }
.search-card-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 32px 24px; }
.search-card { display: flex; flex-direction: column; min-width: 0; gap: 10px; }
.search-card[hidden] { display: none !important; }
.search-card__cover {
position: relative;
display: block;
width: 100%;
aspect-ratio: 3 / 4;
overflow: hidden;
border: 1px solid var(--line-soft);
border-radius: 12px;
background: var(--bg-panel);
}
.search-card__cover > img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.search-card__scrim { position: absolute; inset: 58% 0 0; background: linear-gradient(180deg, transparent, rgba(0,0,0,.7)); }
.search-card__episodes { position: absolute; left: 10px; bottom: 10px; color: var(--text); font-size: 12px; font-weight: 500; line-height: 16px; text-shadow: 0 1px 4px #000; }
.search-card__badge { position: absolute; right: 4px; top: 4px; min-width: 36px; height: 20px; display: grid; place-items: center; padding: 0 8px; border-radius: 6px; background: linear-gradient(135deg,#f04050,#d01030); color: white; font-size: 11px; font-weight: 500; line-height: 14px; }
.search-card__badge--original { background: linear-gradient(135deg,#fadc44,#f9c24e); color: #141414; }
.search-card__title { margin: 0; overflow: hidden; color: var(--text); font-size: 16px; font-weight: 600; line-height: 22px; text-overflow: ellipsis; white-space: nowrap; }
.search-card__meta { margin: 0; overflow: hidden; color: var(--text-muted); font-size: 13px; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; }
.search-pagination { display: flex; align-items: center; justify-content: center; gap: 8px; }
.search-pagination__pages { display: flex; align-items: center; gap: 8px; }
.search-pagination button { width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center; border: 1px solid var(--line-soft); border-radius: 8px; background: var(--bg-elevated); color: var(--text-muted); font: 600 16px/20px Inter,var(--font); }
.search-pagination button.is-current { border-color: transparent; background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%); color: white; }
.search-pagination button:disabled { opacity: .45; cursor: default; }
.search-pagination button img { width: 16px; height: 16px; }
.search-pagination__ellipsis { width: 36px; height: 36px; display: grid; place-items: center; color: var(--text-dim); font: 600 16px/20px Inter,var(--font); }
.search-pagination > span { margin-left: 8px; color: var(--text-dim); font-size: 12px; line-height: 18px; }
.search-heading--empty { padding-bottom: 8px; }
.search-empty { width: min(calc(100% - 48px),1200px); margin-inline: auto; display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 96px 0; text-align: center; }
.search-empty__icon { width: 96px; height: 96px; display: grid; place-items: center; border: 1px solid var(--line-soft); border-radius: 50%; background: var(--bg-elevated); }
.search-empty__icon img { width: 40px; height: 40px; }
.search-empty h1 { margin: 0; font-size: 20px; font-weight: 600; line-height: 28px; }
.search-empty p { margin: 0; color: var(--text-muted); font-size: 14px; line-height: 22px; }
.search-empty .btn { height: 48px; padding-inline: 22px; font-size: 15px; line-height: 22px; }
.search-recommendations { padding-bottom: 40px; }
.search-recommendations__heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.search-recommendations__heading h2 { margin: 0; font-size: 24px; font-weight: 600; line-height: 32px; }
.search-recommendations__heading a { display: flex; align-items: center; gap: 2px; color: var(--text-muted); font-size: 14px; line-height: 20px; }
.search-recommendations__heading img { width: 16px; height: 16px; }
.search-recommendations__more-label--h5 { display: none; }
@media (max-width: 1100px) and (min-width: 901px) {
.search-card-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 900px) {
body.search-page .site-header { display: none !important; }
.search-h5-header { display: flex; }
.search-main {
padding-top: 56px;
}
.search-heading,
.search-heading--empty { display: none; }
.search-results { width: auto; display: flex; gap: 14px; padding: 12px 16px 24px; }
.search-results__mobile-count { display: block; margin: 0; color: var(--text-dim); font-size: 12px; line-height: 18px; }
.search-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px 8px; }
.search-card { gap: 6px; }
.search-card__cover { border-radius: 8px; aspect-ratio: 109 / 145; }
.search-card__episodes { left: 10px; bottom: 10px; font-size: 11px; line-height: 14px; }
.search-card__badge { right: 4px; top: 4px; height: 18px; min-width: 32px; padding: 0 6px; font-size: 10px; }
.search-card__title { font-size: 14px; line-height: 20px; }
.search-card__meta { font-size: 11px; line-height: 16px; }
.search-pagination { flex-wrap: wrap; row-gap: 12px; }
.search-pagination > span { flex-basis: 100%; margin-left: 0; text-align: center; }
.search-empty { width: auto; padding: 56px 16px; }
.search-recommendations { width: auto; padding: 0 16px 24px; }
.search-recommendations__heading { margin-bottom: 14px; }
.search-recommendations__heading h2 { font-size: 18px; line-height: 26px; }
.search-recommendations__heading a { font-size: 13px; line-height: 20px; }
.search-recommendations__heading img { width: 14px; height: 14px; }
.search-recommendations__more-label--pc { display: none; }
.search-recommendations__more-label--h5 { display: inline; }
}
+201
View File
@@ -0,0 +1,201 @@
/* 剧集列表页 / 首页视频更多页 */
body.page-series .site-header,
body.page-more-video .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.grid--series-list {
display: flex;
flex-wrap: wrap;
gap: 24px;
align-content: flex-start;
}
.series-list-promo {
flex: 0 0 100%;
width: 100%;
}
.series-list-card {
width: 282px;
display: flex;
flex-direction: column;
gap: 10px;
min-width: 0;
}
.series-list-card__cover {
position: relative;
display: block;
overflow: hidden;
width: 100%;
height: 159px;
box-sizing: border-box;
border-radius: var(--radius-md);
border: 1px solid transparent;
box-shadow: inset 0 0 0 1px var(--line-soft);
isolation: isolate;
background-color: #141417;
background-image:
linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.7) 100%),
var(--cover);
background-position: center, center;
background-size: cover, cover;
background-repeat: no-repeat, no-repeat;
background-clip: padding-box;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transition: box-shadow 180ms ease;
}
.series-list-card__play {
position: absolute;
right: 10px;
bottom: 10px;
z-index: 2;
display: inline-flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border-radius: 999px;
background: rgba(11, 11, 13, 0.72);
border: 1px solid rgba(255, 255, 255, 0.24);
pointer-events: none;
}
.series-list-card__play .icon {
width: 18px;
height: 18px;
margin-left: 2px;
}
/* Figma HGW/封面卡:横版封面悬浮态(对齐短剧 card__cover) */
.series-list-card__cover::before {
position: absolute;
inset: 0;
z-index: 3;
border-radius: inherit;
background: rgba(0, 0, 0, 0.6);
content: "";
opacity: 0;
pointer-events: none;
transition: opacity 180ms ease;
}
.series-list-card__cover::after {
position: absolute;
top: 50%;
left: 50%;
z-index: 4;
box-sizing: border-box;
width: 100px;
height: 76px;
padding-top: 54px;
background:
url("../images/play.svg") center 13px / 18px 18px no-repeat,
radial-gradient(
circle at 50% 22px,
rgba(11, 11, 13, 0.72) 0 21px,
rgba(255, 255, 255, 0.24) 21px 22px,
transparent 22px
);
color: #f2f2f4;
content: "立即播放";
font-size: 12px;
font-weight: 500;
line-height: 16px;
text-align: center;
opacity: 0;
pointer-events: none;
transform: translate(-50%, calc(-50% + 6px));
transition:
opacity 180ms ease,
transform 180ms ease;
}
.series-list-card__cover:focus-visible {
box-shadow: inset 0 0 0 1px rgba(236, 35, 127, 0.45);
}
.series-list-card__cover:focus-visible::before,
.series-list-card__cover:focus-visible::after {
opacity: 1;
}
.series-list-card__cover:focus-visible::after {
transform: translate(-50%, -50%);
}
@media (hover: hover) and (pointer: fine) {
.series-list-card__cover:hover {
box-shadow: inset 0 0 0 1px rgba(236, 35, 127, 0.45);
}
.series-list-card__cover:hover::before,
.series-list-card__cover:hover::after {
opacity: 1;
}
.series-list-card__cover:hover::after {
transform: translate(-50%, -50%);
}
}
.series-list-card .card__title {
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.series-list-card .card__meta {
font-size: 13px;
line-height: 20px;
}
.series-list-card .card__ep {
bottom: 10px;
}
@media (max-width: 768px) {
.grid--series-list {
gap: 14px 9px;
}
.series-list-card {
width: calc((100% - 9px) / 2);
gap: 8px;
}
.series-list-card__cover {
height: auto;
aspect-ratio: 167 / 94;
}
.series-list-card__play {
width: 36px;
height: 36px;
}
.series-list-card__play .icon {
width: 15px;
height: 15px;
}
.series-list-card .card__title {
font-size: 15px;
line-height: 21px;
}
.series-list-card .card__meta {
font-size: 12px;
line-height: 18px;
}
.series-list-card .card__ep {
font-size: 12px;
line-height: 16px;
}
}
+65
View File
@@ -0,0 +1,65 @@
.setting-main { width: min(calc(100% - 48px), var(--page-width)); margin: 0 auto; padding: 24px 0 40px; }
.setting-layout { max-width: 900px; margin: 0 auto; }
.setting-card { display: flex; flex-direction: column; gap: 24px; min-width: 0; padding: 32px; border: 1px solid var(--line-soft); border-radius: 16px; background: #141417; }
.setting-section { display: flex; flex-direction: column; gap: 24px; scroll-margin-top: 90px; }
.setting-section__title { margin: 0; color: var(--text); font-size: 18px; font-weight: 600; line-height: 26px; }
.setting-avatar { display: flex; align-items: center; gap: 16px; }
.setting-avatar__image { flex: 0 0 72px; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }
.setting-avatar__button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 36px; padding: 0 12px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; color: var(--text); font-size: 14px; cursor: pointer; }
.setting-avatar__button img { width: 16px; height: 16px; }
.setting-avatar__file { position: absolute; width: 1px; height: 1px; opacity: 0; }
.setting-avatar__hint { margin: 8px 0 0; color: var(--text-dim); font-size: 12px; line-height: 18px; }
.setting-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.setting-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: var(--text-muted); font-size: 14px; font-weight: 500; line-height: 20px; }
.setting-field input, .setting-field textarea, .setting-field__action { width: 100%; min-width: 0; min-height: 48px; padding: 12px 16px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; outline: none; background: rgba(255,255,255,.06); color: var(--text); font: 400 15px/24px var(--font); }
.setting-field textarea { min-height: 96px; resize: vertical; }
.setting-field input:focus, .setting-field textarea:focus { border-color: #ec237f; }
.setting-field input[readonly] { color: var(--text-muted); cursor: default; }
.setting-field small { color: var(--text-dim); font-size: 12px; font-weight: 400; line-height: 18px; }
.setting-field__action { color: #ff4a7b; text-align: right; cursor: pointer; }
.setting-field__value-action { position: relative; min-width: 0; }
.setting-field__value-action input { padding-right: 72px; }
.setting-field__inline-action { position: absolute; top: 50%; right: 16px; color: #ff4a7b; font-size: 14px; font-weight: 500; line-height: 20px; transform: translateY(-50%); cursor: pointer; }
.setting-field--intro { max-width: 100%; }
.setting-actions { display: flex; align-items: center; gap: 12px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.setting-actions button { min-height: 48px; padding: 0 22px; border-radius: 999px; color: #fff; font-size: 15px; font-weight: 500; cursor: pointer; }
.setting-actions__save { border: 0; background: linear-gradient(135deg, #ff4a7b 15%, #ec237f 51%, #93226f 85%); }
.setting-actions__logout { border: 1px solid rgba(255,255,255,.24); background: transparent; }
.setting-actions__unavailable { margin-left: auto; color: var(--text-dim); font-size: 13px; }
.setting-status { margin: -8px 0 0; min-height: 20px; color: #ff858b; font-size: 13px; line-height: 20px; }
.setting-status.is-success { color: #84d9a1; }
.setting-login-state { padding: 80px 16px; text-align: center; color: var(--text-muted); }
.setting-login-state h2 { color: var(--text); }
.setting-login-state a { color: #ff4a7b; }
.setting-password-pop { position: fixed; inset: 0; z-index: 295; display: flex; align-items: center; justify-content: center; padding: 24px; }
.setting-password-pop[hidden] { display: none !important; }
.setting-password-pop__mask { position: absolute; inset: 0; width: 100%; height: 100%; background: rgba(0,0,0,.72); cursor: default; }
.setting-password-pop__panel { position: relative; z-index: 1; width: 440px; max-width: 100%; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-xl); background: #141417; box-shadow: 0 24px 64px rgba(0,0,0,.55); }
.setting-password-pop__close { position: absolute; top: 16px; right: 16px; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.04); }
.setting-password-pop__close .icon { width: 18px; height: 18px; }
.setting-password-pop__intro { padding-right: 40px; }
.setting-password-pop__intro h2 { margin: 0; color: var(--text); font-size: 28px; font-weight: 600; line-height: 38px; }
.setting-password-pop__intro p { margin: 6px 0 0; color: var(--text-muted); font-size: 14px; line-height: 22px; }
.setting-password-pop__form { display: flex; flex-direction: column; gap: 16px; margin-top: 20px; }
.setting-password-pop__status { min-height: 18px; margin: -4px 0 0; color: #ff858b; font-size: 12px; line-height: 18px; }
.setting-password-pop__status.is-success { color: #84d9a1; }
.setting-password-pop__submit { width: 100%; min-height: 52px; border: 0; border-radius: 999px; color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; }
.setting-password-pop__submit:disabled { opacity: .72; cursor: wait; }
@media (max-width: 768px) {
.setting-main { width: 100%; padding: 0 16px 24px; }
.setting-layout { max-width: none; }
.setting-card { gap: 16px; padding: 16px 0 0; border: 0; border-radius: 0; background: transparent; }
.setting-section { gap: 16px; }
.setting-section__title { display: none; }
.setting-avatar__image { flex-basis: 56px; width: 56px; height: 56px; }
.setting-fields { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.setting-actions { flex-direction: column; align-items: stretch; gap: 16px; padding-top: 16px; }
.setting-actions button { width: 100%; }
.setting-actions__unavailable { margin: 0; text-align: center; }
.setting-status { text-align: center; }
.setting-password-pop { padding: 16px; }
.setting-password-pop__panel { max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); padding: 24px 20px; border-radius: 18px; overflow-y: auto; }
.setting-password-pop__intro h2 { font-size: 24px; line-height: 32px; }
}
+24
View File
@@ -0,0 +1,24 @@
/* 标签作品页 */
body.page-tags .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.list-hero--tags {
gap: 20px;
}
.list-hero--tags .breadcrumb {
margin-bottom: 0;
}
@media (max-width: 768px) {
body.page-tags .site-header {
display: none !important;
}
.list-hero--tags {
gap: 12px;
}
}
+77
View File
@@ -0,0 +1,77 @@
/* Toast 提示:对齐站点深色主题,仅成功 / 失败两种状态 */
.site-toast {
position: fixed;
left: 50%;
top: 16px;
z-index: 400;
transform: translateX(-50%);
pointer-events: none;
max-width: min(92vw, 420px);
}
.site-toast[hidden] {
display: none;
}
.site-toast__panel {
display: inline-flex;
align-items: center;
gap: 10px;
min-height: 44px;
padding: 12px 18px;
border-radius: var(--radius-md);
border: 1px solid var(--line);
background: var(--bg);
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
color: var(--text);
opacity: 0;
transform: translateY(-8px);
transition: opacity 0.22s ease, transform 0.22s ease;
}
.site-toast.is-visible .site-toast__panel {
opacity: 1;
transform: translateY(0);
}
.site-toast__icon {
width: 18px;
height: 18px;
flex-shrink: 0;
display: none;
}
.site-toast__icon[hidden] {
display: none !important;
}
.site-toast.is-success .site-toast__icon[data-toast-icon-success]:not([hidden]),
.site-toast.is-error .site-toast__icon[data-toast-icon-error]:not([hidden]) {
display: block;
}
.site-toast__text {
margin: 0;
font-size: 14px;
line-height: 1.45;
font-weight: 500;
word-break: break-word;
}
.site-toast.is-success .site-toast__panel {
border-color: rgba(233, 201, 119, 0.35);
background: var(--bg);
}
.site-toast.is-error .site-toast__panel {
border-color: rgba(255, 90, 95, 0.4);
background: var(--bg);
}
@media (max-width: 768px) {
.site-toast {
top: 16px;
bottom: auto;
}
}
+179
View File
@@ -0,0 +1,179 @@
/* 专题列表页 */
body.page-topic .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.topic-grid--list {
display: flex;
flex-wrap: wrap;
gap: 24px;
align-content: flex-start;
}
.topic-card {
display: flex;
align-items: center;
justify-content: space-between;
width: 384px;
height: 200px;
padding-left: 24px;
overflow: hidden;
background: var(--bg-panel);
border: 1px solid var(--line-soft);
border-radius: var(--radius-lg);
color: inherit;
text-decoration: none;
transition: border-color 0.2s ease, transform 0.2s ease;
}
.topic-card:hover {
border-color: rgba(236, 35, 127, 0.35);
}
.topic-card__info {
display: flex;
flex: 1 1 0;
flex-direction: column;
align-items: flex-start;
gap: 10px;
min-width: 0;
padding-right: 8px;
}
.topic-card__title {
margin: 0;
align-self: stretch;
color: var(--text);
font-size: 18px;
font-weight: 600;
line-height: 26px;
}
.topic-card__desc {
margin: 0;
align-self: stretch;
color: var(--text-muted);
font-size: 13px;
font-weight: 400;
line-height: 20px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
line-clamp: 2;
overflow: hidden;
word-break: break-word;
}
.topic-card__count {
margin: 0;
color: var(--text-dim);
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.topic-card__stack {
position: relative;
width: 150px;
height: 200px;
flex-shrink: 0;
}
.topic-card__stack img {
position: absolute;
width: 72px;
height: 96px;
border-radius: var(--radius-sm);
border: 1px solid var(--line);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.45);
object-fit: cover;
}
.topic-card__stack img:nth-child(1) {
left: 4px;
top: 92px;
opacity: 0.65;
}
.topic-card__stack img:nth-child(2) {
left: 38px;
top: 72px;
opacity: 0.85;
}
.topic-card__stack img:nth-child(3) {
left: 72px;
top: 52px;
}
@media (max-width: 768px) {
body.page-topic .site-header {
display: none !important;
}
.page-topic .list-body {
padding-top: 14px;
padding-bottom: 20px;
gap: 14px;
}
.topic-grid--list {
gap: 12px;
}
.topic-card {
width: 100%;
height: 150px;
padding-left: 16px;
border-radius: var(--radius-md);
}
.topic-card__info {
gap: 6px;
padding: 0;
}
.topic-card__title {
font-size: 15px;
line-height: 21px;
}
.topic-card__desc {
font-size: 12px;
line-height: 18px;
}
.topic-card__count {
font-size: 11px;
line-height: 16px;
}
.topic-card__stack {
width: 112px;
height: 150px;
}
.topic-card__stack img {
width: 56px;
height: 75px;
border-radius: 6px;
box-shadow: 0 6px 14px rgba(0, 0, 0, 0.45);
}
.topic-card__stack img:nth-child(1) {
left: 4px;
top: 66px;
}
.topic-card__stack img:nth-child(2) {
left: 30px;
top: 52px;
}
.topic-card__stack img:nth-child(3) {
left: 56px;
top: 38px;
}
}
+527
View File
@@ -0,0 +1,527 @@
/* 专题详情页 */
body.page-topic-detail .site-header {
background: transparent;
border-bottom-color: transparent;
}
.topic-detail-hero {
position: relative;
overflow: hidden;
min-height: 420px;
padding-top: var(--site-header-height, 72px);
background: var(--bg);
}
.topic-detail-hero__bg,
.topic-detail-hero__mask {
position: absolute;
inset: 0;
pointer-events: none;
}
.topic-detail-hero__bg {
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.55;
filter: blur(42px);
transform: scale(1.18);
transform-origin: center center;
}
.topic-detail-hero__mask {
background:
linear-gradient(
90deg,
rgba(11, 11, 13, 0.72) 0%,
rgba(11, 11, 13, 0.35) 42%,
rgba(11, 11, 13, 0.2) 100%
),
linear-gradient(
180deg,
rgba(11, 11, 13, 0.35) 0%,
rgba(11, 11, 13, 0.45) 55%,
#0b0b0d 100%
);
}
.topic-detail-hero__inner {
position: relative;
z-index: 1;
display: flex;
align-items: center;
justify-content: space-between;
flex-direction: row;
gap: 48px;
min-height: 348px;
padding: 36px 0 48px;
background: transparent;
}
.topic-detail-hero__content {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 14px;
width: min(640px, 100%);
min-width: 0;
}
.topic-detail-hero__content .breadcrumb {
margin-bottom: 2px;
}
.topic-detail-hero__title {
margin: 0;
color: var(--text);
font-size: 40px;
font-weight: 600;
line-height: 48px;
letter-spacing: 0.2px;
}
.topic-detail-hero__desc {
margin: 0;
max-width: 560px;
color: var(--text-muted);
font-size: 16px;
font-weight: 400;
line-height: 26px;
}
.topic-detail-hero__meta {
margin: 2px 0 4px;
color: var(--text-dim);
font-size: 13px;
font-weight: 400;
line-height: 18px;
letter-spacing: 0.4px;
}
.topic-detail-hero__actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px;
margin-top: 6px;
}
.topic-detail-hero__actions .btn .icon {
width: 22px;
height: 22px;
}
.topic-detail-hero__play {
min-width: 200px;
}
.topic-detail-hero__collect {
min-width: 148px;
}
.topic-detail-hero__stack {
position: relative;
flex-shrink: 0;
width: 360px;
height: 280px;
}
.topic-detail-hero__stack img {
position: absolute;
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.12);
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
object-fit: cover;
background: #1a1a1f;
}
.topic-detail-hero__stack img:nth-child(1) {
left: 8px;
top: 52px;
z-index: 1;
width: 152px;
height: 202px;
opacity: 0.62;
}
.topic-detail-hero__stack img:nth-child(2) {
left: 84px;
top: 28px;
z-index: 2;
width: 168px;
height: 224px;
opacity: 0.85;
}
.topic-detail-hero__stack img:nth-child(3) {
left: 168px;
top: 0;
z-index: 3;
width: 188px;
height: 252px;
opacity: 1;
border-color: transparent;
box-shadow:
0 0 0 2px rgba(255, 74, 123, 0.9),
0 0 28px rgba(236, 35, 127, 0.35),
0 20px 48px rgba(0, 0, 0, 0.55);
}
.topic-detail-section {
display: flex;
flex-direction: column;
gap: 24px;
padding: 28px 0 24px;
}
.topic-detail-section--more {
gap: 20px;
padding: 8px 0 40px;
}
.topic-detail-section__head {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 16px;
}
.topic-detail-section__left {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
gap: 14px;
min-width: 0;
}
.topic-detail-section__title {
margin: 0;
color: var(--text);
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.topic-detail-section__count {
color: var(--text-dim);
font-size: 14px;
font-weight: 400;
line-height: 22px;
padding-bottom: 4px;
}
.topic-detail-sort {
display: inline-flex;
align-items: flex-end;
gap: 20px;
flex-shrink: 0;
margin-left: 6px;
}
.topic-detail-sort__item {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 6px;
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
text-decoration: none;
}
.topic-detail-sort__item::after {
content: "";
width: 24px;
height: 2px;
border-radius: 1px;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
opacity: 0;
}
.topic-detail-sort__item.is-active {
color: var(--text);
}
.topic-detail-sort__item.is-active::after {
opacity: 1;
}
.topic-detail-sort-dropdown {
display: none;
position: relative;
flex-shrink: 0;
}
.topic-detail-sort-link {
display: inline-flex;
align-items: center;
gap: 2px;
margin: 0;
padding: 0;
color: var(--text-muted);
background: transparent;
border: 0;
font: inherit;
font-size: 13px;
font-weight: 400;
line-height: 20px;
cursor: pointer;
appearance: none;
}
.topic-detail-sort-link .icon,
.topic-detail-sort-link__caret {
width: 14px;
height: 14px;
transition: transform 0.18s ease;
}
.topic-detail-sort-dropdown.is-open .topic-detail-sort-link__caret {
transform: rotate(-90deg);
}
.topic-detail-sort-menu {
position: absolute;
top: calc(100% + 8px);
right: 0;
z-index: 20;
min-width: 112px;
padding: 6px;
background: #1b1b1f;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 10px;
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}
.topic-detail-sort-menu[hidden] {
display: none;
}
.topic-detail-sort-menu__item {
display: block;
padding: 10px 12px;
color: var(--text-muted);
border-radius: 8px;
font-size: 13px;
font-weight: 400;
line-height: 20px;
text-decoration: none;
white-space: nowrap;
}
.topic-detail-sort-menu__item.is-active,
.topic-detail-sort-menu__item:active {
color: var(--text);
background: rgba(255, 255, 255, 0.06);
}
@media (max-width: 768px) {
body.page-topic-detail .site-header {
display: none !important;
}
.topic-detail-hero {
min-height: 0;
padding-top: 0;
}
.topic-detail-hero .page-subheader {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
}
.topic-detail-hero .page-subheader--overlay.is-scrolled {
background: rgba(11, 11, 13, 0.88);
border-bottom-color: var(--line-soft);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
}
.topic-detail-hero__bg {
opacity: 0.5;
filter: blur(28px);
transform: scale(1.12);
}
.topic-detail-hero__mask {
background: linear-gradient(
180deg,
rgba(11, 11, 13, 0.55) 0%,
rgba(11, 11, 13, 0.5) 40%,
#0b0b0d 100%
);
}
.topic-detail-hero__inner {
flex-direction: row;
align-items: center;
gap: 14px;
min-height: 0;
padding: 68px var(--h5-gutter) 20px;
}
.topic-detail-hero__content {
flex: 1 1 0;
width: auto;
gap: 10px;
}
.topic-detail-hero__title {
font-size: 22px;
line-height: 30px;
}
.topic-detail-hero__desc {
max-width: none;
font-size: 13px;
line-height: 20px;
}
.topic-detail-hero__meta {
margin: 0;
font-size: 11px;
line-height: 16px;
letter-spacing: 0;
}
.topic-detail-hero__actions {
width: auto;
margin-top: 2px;
}
.topic-detail-hero__play {
min-width: 0;
}
.topic-detail-hero__actions .btn--lg {
height: 40px;
padding: 0 16px;
font-size: 14px;
line-height: 20px;
flex: 0 0 auto;
}
.topic-detail-hero__actions .btn .icon {
width: 18px;
height: 18px;
}
.topic-detail-hero__stack {
width: 120px;
height: 150px;
margin: 0;
}
.topic-detail-hero__stack img {
border-radius: var(--radius-sm);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);
}
.topic-detail-hero__stack img:nth-child(1) {
left: 0;
top: 40px;
width: 72px;
height: 96px;
}
.topic-detail-hero__stack img:nth-child(2) {
left: 22px;
top: 22px;
width: 72px;
height: 96px;
}
.topic-detail-hero__stack img:nth-child(3) {
left: 44px;
top: 4px;
width: 72px;
height: 96px;
box-shadow:
0 0 0 1.5px rgba(255, 74, 123, 0.85),
0 8px 20px rgba(0, 0, 0, 0.5);
}
.topic-detail-section {
gap: 14px;
padding: 16px var(--h5-gutter) 16px;
}
.topic-detail-section--more {
gap: 14px;
padding: 8px 0 24px;
}
.topic-detail-section__head--padded {
padding: 0 var(--h5-gutter);
}
.topic-detail-section__left {
align-items: baseline;
gap: 10px;
}
.topic-detail-section__title {
font-size: 18px;
line-height: 26px;
}
.topic-detail-section__count {
font-size: 12px;
line-height: 18px;
}
.topic-detail-sort-dropdown {
display: block;
}
.topic-detail-section .grid--list {
gap: 14px 8px;
}
.topic-detail-section .card--list {
width: calc((100% - 16px) / 3);
gap: 6px;
}
.topic-grid--more {
flex-wrap: nowrap;
gap: 10px;
overflow-x: auto;
scrollbar-width: none;
padding: 0 var(--h5-gutter);
}
.topic-grid--more::-webkit-scrollbar {
display: none;
}
.topic-grid--more .topic-card {
width: 280px;
height: 140px;
flex-shrink: 0;
padding-left: 16px;
border-radius: var(--radius-md);
}
.topic-grid--more .topic-card__stack {
width: 112px;
height: 140px;
}
.topic-grid--more .topic-card__stack img:nth-child(1) {
top: 56px;
}
.topic-grid--more .topic-card__stack img:nth-child(2) {
top: 42px;
}
.topic-grid--more .topic-card__stack img:nth-child(3) {
top: 28px;
}
}