avhub/web/style.css
2025-03-21 10:51:08 +08:00

1679 lines
34 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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

:root {
/* 默认深色主题 */
--primary-color: #1bb76e;
--primary-hover: #1da462;
--background-dark: #141518;
--card-dark: #2c2f34;
--header-dark: #1b1b1b;
--text-primary: #ffffff;
--text-secondary: #b4b9c2;
--border-color: #41454c;
}
/* 绿色主题 */
[data-theme="green"] {
--primary-color: #10b981;
--primary-hover: #059669;
--background-dark: #064e3b;
--card-dark: #065f46;
--header-dark: #064e3b;
--text-primary: #ffffff;
--text-secondary: #a7f3d0;
--border-color: #047857;
}
/* 蓝色主题 */
[data-theme="blue"] {
--primary-color: #3b82f6;
--primary-hover: #2563eb;
--background-dark: #1e3a8a;
--card-dark: #1e40af;
--header-dark: #1e3a8a;
--text-primary: #ffffff;
--text-secondary: #bfdbfe;
--border-color: #3b82f6;
}
/* 紫色主题 */
[data-theme="purple"] {
--primary-color: #8b5cf6;
--primary-hover: #7c3aed;
--background-dark: #4c1d95;
--card-dark: #5b21b6;
--header-dark: #4c1d95;
--text-primary: #ffffff;
--text-secondary: #ddd6fe;
--border-color: #7c3aed;
}
/* 橙色主题 */
[data-theme="orange"] {
--primary-color: #f97316;
--primary-hover: #ea580c;
--background-dark: #7c2d12;
--card-dark: #9a3412;
--header-dark: #7c2d12;
--text-primary: #ffffff;
--text-secondary: #fed7aa;
--border-color: #ea580c;
}
/* 粉色主题 */
[data-theme="pink"] {
--primary-color: #ec4899;
--primary-hover: #db2777;
--background-dark: #831843;
--card-dark: #9d174d;
--header-dark: #831843;
--text-primary: #ffffff;
--text-secondary: #fbcfe8;
--border-color: #db2777;
}
/* 主题配色 */
[data-theme="emerald"] {
--primary-color: #10b981;
--primary-hover: #059669;
--background-dark: #064e3b;
--card-dark: #065f46;
--header-dark: #064e3b;
--text-primary: #ffffff;
--text-secondary: #a7f3d0;
--border-color: #047857;
--primary-color-rgb: 16, 185, 129;
}
[data-theme="ocean"] {
--primary-color: #3b82f6;
--primary-hover: #2563eb;
--background-dark: #1e3a8a;
--card-dark: #1e40af;
--header-dark: #1e3a8a;
--text-primary: #ffffff;
--text-secondary: #bfdbfe;
--border-color: #3b82f6;
--primary-color-rgb: 59, 130, 246;
}
[data-theme="amethyst"] {
--primary-color: #8b5cf6;
--primary-hover: #7c3aed;
--background-dark: #4c1d95;
--card-dark: #5b21b6;
--header-dark: #4c1d95;
--text-primary: #ffffff;
--text-secondary: #ddd6fe;
--border-color: #7c3aed;
--primary-color-rgb: 139, 92, 246;
}
/* 浅色主题 */
[data-theme="light"] {
--primary-color: #1bb76e;
--primary-hover: #1da462;
--background-dark: #f3f4f6;
--card-dark: #ffffff;
--header-dark: #ffffff;
--text-primary: #1f2937;
--text-secondary: #4b5563;
--border-color: #e5e7eb;
--primary-color-rgb: 27, 183, 110;
}
/* 浅色主题特殊处理 */
[data-theme="light"] .theme-menu,
[data-theme="light"] .sort-menu {
background: #ffffff;
border-color: #e5e7eb;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
[data-theme="light"] .settings-button {
background: #ffffff;
border-color: #e5e7eb;
color: #1f2937;
}
[data-theme="light"] .magnet-item {
background: #ffffff;
border-color: #e5e7eb;
color: #1f2937;
}
[data-theme="light"] .search-button,
[data-theme="light"] .copy-button {
color: #ffffff;
}
[data-theme="light"] .theme-menu-item {
color: #1f2937;
}
[data-theme="light"] .theme-menu-item:hover {
color: #ffffff;
}
[data-theme="light"] .sort-menu .theme-menu-item {
color: #1f2937;
}
[data-theme="light"] .sort-menu .theme-menu-item:hover {
color: #ffffff;
}
[data-theme="light"] input {
background: #ffffff;
border-color: #e5e7eb;
color: #1f2937;
}
[data-theme="light"] .tab-button {
color: #6b7280;
}
[data-theme="light"] .tab-button:hover {
color: #374151;
}
[data-theme="light"] .tab-button.active {
color: var(--primary-color);
background: rgba(var(--primary-color-rgb), 0.1);
}
[data-theme="light"] .notification {
background: var(--primary-color);
color: #ffffff;
border: 1px solid #e5e7eb;
}
body {
background-color: var(--background-dark);
color: var(--text-primary);
min-height: 100vh;
}
.bg-header {
background-color: var(--header-dark);
}
.bg-card {
background-color: var(--card-dark);
}
.magnet-item {
transition: all 0.2s ease;
background: var(--card-dark);
border: 1px solid var(--border-color);
border-radius: 4px;
overflow: hidden;
animation: fadeIn 0.3s ease-out;
}
.magnet-item:hover {
transform: translateY(-1px);
border-color: var(--primary-color);
}
/* 搜索按钮样式 */
.search-button {
background: var(--primary-color);
color: white;
font-weight: 600;
border-radius: 4px;
transition: all 0.2s ease;
padding: 0.5rem 1rem;
min-width: 100px;
}
.search-button:hover {
background: var(--primary-hover);
transform: translateY(-1px);
}
.search-button:active {
transform: translateY(0);
}
/* 统一按钮样式(复制按钮和下一个按钮) */
.next-button, .copy-button {
background-color: var(--primary-color);
color: white;
font-weight: 600;
border-radius: 4px;
padding: 0.5rem 1rem;
transition: all 0.2s ease;
white-space: nowrap;
flex-shrink: 0;
min-width: fit-content;
position: relative;
overflow: hidden;
}
/* 确保下一个按钮靠右 */
.next-button {
margin-left: auto;
}
.next-button:hover, .copy-button:hover {
background: var(--primary-hover);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(27, 183, 110, 0.2);
}
.next-button::before, .copy-button::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent
);
transition: 0.5s;
}
.next-button:hover::before, .copy-button:hover::before {
left: 100%;
}
/* 视频控制区域样式 */
.video-controls {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.75rem 1rem;
border-radius: 0.5rem;
background: rgba(0, 0, 0, 0.05);
margin: 1rem 0;
gap: 1rem;
}
/* 左侧自动播放开关组 */
.video-controls-left {
display: flex;
align-items: center;
gap: 1rem;
}
/* 自动播放开关容器 */
.autoplay-toggle {
display: flex;
align-items: center;
white-space: nowrap;
flex-shrink: 0;
}
/* 移除旧的margin-left设置 */
.video-controls .autoplay-toggle + .autoplay-toggle {
margin-left: 0;
}
.tab-container {
display: flex;
gap: 8px;
padding: 4px;
background: var(--card-dark);
border-radius: 8px;
border: 1px solid var(--border-color);
}
.tab-button {
padding: 8px 16px;
border-radius: 6px;
font-weight: 500;
transition: all 0.2s;
color: var(--text-secondary);
}
.tab-button:hover {
color: var(--text-primary);
}
.tab-button.active {
color: var(--primary-color);
background: rgba(var(--primary-color-rgb), 0.1);
}
.tab-content {
display: block;
}
.tab-content.hidden {
display: none;
}
.tag {
display: inline-flex;
align-items: center;
padding: 4px 12px;
border-radius: 16px;
font-size: 12px;
font-weight: 500;
color: white;
}
.tag[data-type="hd"] {
background: #3b82f6;
}
.tag[data-type="subtitle"] {
background: #22c55e;
}
.tag[data-type="uncensored"] {
background: #ef4444;
}
.tag[data-type="chinese"] {
background: #a855f7;
}
.tag[data-type="leak"] {
background: #f59e0b;
}
/* 修改标签颜色 */
.tag[data-type="hd"] {
background: rgba(59, 130, 246, 0.1);
color: #3b82f6;
border-color: rgba(59, 130, 246, 0.2);
}
.tag[data-type="subtitle"] {
background: rgba(34, 197, 94, 0.1);
color: #22c55e;
border-color: rgba(34, 197, 94, 0.2);
}
.tag[data-type="uncensored"] {
background: rgba(239, 68, 68, 0.1);
color: #ef4444;
border-color: rgba(239, 68, 68, 0.2);
}
.tag[data-type="chinese"] {
background: rgba(168, 85, 247, 0.1);
color: #a855f7;
border-color: rgba(168, 85, 247, 0.2);
}
.tag[data-type="leak"] {
background: rgba(245, 158, 11, 0.1);
color: #f59e0b;
border-color: rgba(245, 158, 11, 0.2);
}
/* 亮色主题下的标签样式微调 */
[data-theme="light"] .tag {
opacity: 0.9;
}
/* 设置区域样式 */
.settings-container {
position: fixed;
top: 16px;
right: 5%;
display: flex;
gap: 8px;
z-index: 1000;
}
/* 设置按钮样式 */
.settings-button {
position: relative;
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
height: 40px;
background: var(--card-dark);
border: 1px solid var(--border-color);
border-radius: 6px;
color: var(--text-primary);
font-size: 14px;
cursor: pointer;
transition: all 0.2s;
}
.settings-button svg {
width: 20px;
height: 20px;
}
/* 语言切换按钮文字样式 */
.language-text {
line-height: 20px;
}
/* 主题切换按钮样式 */
#themeToggle {
padding: 8px;
width: 40px;
}
/* 主题菜单样式 */
.theme-menu {
position: absolute;
top: 100%;
right: 0;
margin-top: 8px;
background: var(--card-dark);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 4px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
backdrop-filter: blur(8px);
width: max-content;
min-width: 100px;
z-index: 1001;
}
.theme-menu-item {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
width: 100%;
border-radius: 6px;
transition: all 0.2s;
cursor: pointer;
}
/* 亮色主题下的菜单样式 */
[data-theme="light"] .theme-menu {
background: #ffffff;
border-color: #e5e7eb;
}
[data-theme="light"] .theme-menu-item {
color: #1f2937;
}
[data-theme="light"] .theme-menu-item:hover {
background: rgba(var(--primary-color-rgb), 0.1);
}
/* 深色主题下的菜单样式 */
[data-theme="dark"] .theme-menu {
background: #1f2937;
border-color: #374151;
}
[data-theme="dark"] .theme-menu-item {
color: #ffffff;
}
[data-theme="dark"] .theme-menu-item:hover {
background: rgba(var(--primary-color-rgb), 0.1);
}
/* 主题选项图标颜色 */
.theme-menu-item[data-theme="dark"] svg {
color: #94a3b8;
}
.theme-menu-item[data-theme="light"] svg {
color: #fbbf24;
}
.theme-menu-item[data-theme="emerald"] svg {
color: #10b981;
}
.theme-menu-item[data-theme="ocean"] svg {
color: #3b82f6;
}
.theme-menu-item[data-theme="amethyst"] svg {
color: #8b5cf6;
}
/* 主题选项悬停效果 */
.theme-menu-item:hover {
background: rgba(var(--primary-color-rgb), 0.1);
}
/* 当前选中的主题样式 */
.theme-menu-item[data-active="true"] {
background: rgba(var(--primary-color-rgb), 0.1);
}
.theme-menu-item svg {
width: 20px;
height: 20px;
flex-shrink: 0;
}
/* 搜索框样式修复 */
[data-theme="light"] input {
background: #ffffff;
border: 1px solid #e5e7eb;
color: #1f2937;
}
[data-theme="light"] input::placeholder {
color: #9ca3af;
}
#searchInput {
background: var(--card-dark);
border: 1px solid var(--border-color);
color: var(--text-primary);
border-radius: 6px;
}
#searchInput::placeholder {
color: var(--text-secondary);
}
/* 排序按钮容器样式 */
.sort-button-container {
position: relative;
display: flex;
justify-content: flex-end;
margin-bottom: 16px;
}
/* 排序按钮样式 */
#sortButton {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
background: var(--card-dark);
border: 1px solid var(--border-color);
border-radius: 6px;
color: var(--text-primary);
font-size: 14px;
cursor: pointer;
transition: all 0.2s;
min-width: 120px;
}
#sortButton:hover {
border-color: var(--primary-color);
color: var(--text-primary);
}
#sortButton svg {
flex-shrink: 0;
}
#sortButton span {
white-space: nowrap;
}
/* 排序菜单样式优化 */
.sort-menu {
position: absolute;
top: 100%;
right: 0;
margin-top: 8px;
background: var(--card-dark);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 4px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
backdrop-filter: blur(8px);
width: max-content;
min-width: 120px;
max-width: 160px;
z-index: 100;
}
.sort-menu .theme-menu-item {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
width: 100%;
color: var(--text-primary);
transition: all 0.2s;
border-radius: 6px;
font-size: 14px;
}
.sort-menu .theme-menu-item:hover {
background: var(--primary-color);
color: white;
}
.sort-menu .theme-menu-item svg {
width: 16px;
height: 16px;
flex-shrink: 0;
}
.sort-menu .theme-menu-item span {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* 语言切换按钮样式 */
.language-menu {
position: absolute;
top: 100%;
right: 0;
margin-top: 8px;
background: var(--card-dark);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 4px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
backdrop-filter: blur(8px);
width: max-content;
min-width: 100px;
z-index: 1001;
}
.language-menu .theme-menu-item {
padding: 8px 12px;
gap: 8px;
}
.language-menu .theme-menu-item svg {
flex-shrink: 0;
width: 16px;
height: 16px;
}
.language-menu .theme-menu-item span {
flex-grow: 1;
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
}
/* 当前选中的语言样式 */
.language-menu .theme-menu-item[data-active="true"] {
color: var(--primary-color);
background: rgba(var(--primary-color-rgb), 0.1);
}
.language-menu .theme-menu-item[data-active="true"]:hover {
color: white;
background: var(--primary-color);
}
/* 确保语言切换按钮与主题切换按钮大小一致 */
#languageToggle {
display: flex;
align-items: center;
justify-content: center;
}
/* 输入框和选择框样式优化 */
input, select {
background: var(--card-dark);
border: 1px solid var(--border-color);
color: var(--text-primary);
border-radius: 4px;
transition: all 0.2s ease;
padding: 8px 12px;
}
/* 输入框占位符颜色 */
input::placeholder {
color: var(--text-secondary);
}
/* 选择框选项样式 */
select option {
background: var(--card-dark);
color: var(--text-primary);
padding: 8px;
}
/* 排序选择框样式 */
#sortSelect {
background-color: var(--card-dark);
color: var(--text-primary);
border: 1px solid var(--border-color);
padding: 6px 28px 6px 12px;
cursor: pointer;
appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23b4b9c2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 8px center;
background-size: 16px;
}
#sortSelect:hover {
border-color: var(--primary-color);
}
#sortSelect:focus {
outline: none;
border-color: var(--primary-color);
box-shadow: 0 0 0 2px rgba(27, 183, 110, 0.2);
}
/* 暗色主题下的输入框和选择框 */
body:not(.light-theme) input,
body:not(.light-theme) select {
background: rgba(255, 255, 255, 0.05);
border-color: rgba(255, 255, 255, 0.1);
color: var(--text-primary);
}
body:not(.light-theme) input:hover,
body:not(.light-theme) select:hover {
border-color: rgba(255, 255, 255, 0.2);
}
body:not(.light-theme) input:focus,
body:not(.light-theme) select:focus {
border-color: var(--primary-color);
background: rgba(255, 255, 255, 0.1);
}
body:not(.light-theme) input::placeholder {
color: rgba(255, 255, 255, 0.5);
}
/* 暗色主题下的选择框选项 */
body:not(.light-theme) select option {
background: var(--background-dark);
color: var(--text-primary);
}
/* 亮色主题下的输入框和选择框 */
body.light-theme input,
body.light-theme select {
background: #ffffff;
border: 1px solid #e5e7eb;
color: #333333;
}
body.light-theme input::placeholder {
color: #9ca3af;
}
body.light-theme input:hover,
body.light-theme select:hover {
border-color: #d1d5db;
}
body.light-theme input:focus,
body.light-theme select:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 2px rgba(27, 183, 110, 0.1);
}
body.light-theme select option {
background: #ffffff;
color: #333333;
}
/* 消息通知样式 */
.notification {
position: fixed;
bottom: 24px;
right: 24px;
background: var(--primary-color);
color: #ffffff;
padding: 12px 24px;
border-radius: 8px;
font-weight: 500;
opacity: 0;
transform: translateY(20px);
transition: all 0.3s ease;
z-index: 1000;
display: flex;
align-items: center;
gap: 8px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.notification.show {
opacity: 1;
transform: translateY(0);
}
.notification svg {
width: 20px;
height: 20px;
}
/* 修复复制按钮点击后的文字颜色 */
[data-theme="light"] .copy-button.success {
background: #10b981;
color: #ffffff;
}
[data-theme="light"] .copy-button.copied {
background: #10b981;
color: #ffffff;
}
/* 确保复制按钮在所有状态下文字颜色保持一致 */
.copy-button,
.copy-button:hover,
.copy-button:active,
.copy-button.success,
.copy-button.copied {
color: #ffffff;
}
[data-theme="light"] .copy-button,
[data-theme="light"] .copy-button:hover,
[data-theme="light"] .copy-button:active,
[data-theme="light"] .copy-button.success,
[data-theme="light"] .copy-button.copied {
color: #ffffff;
}
/* 修改加载容器样式 */
.loading-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 16px;
padding: 32px;
width: 100%;
background: transparent;
box-shadow: none;
}
/* 加载动画圆圈 */
.loading-spinner {
width: 40px;
height: 40px;
border: 3px solid var(--border-color);
border-top-color: var(--primary-color);
border-radius: 50%;
animation: loading-spin 1s linear infinite;
margin: 0 auto;
display: block;
}
/* 加载动画旋转效果 */
@keyframes loading-spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* 加载文本样式 */
.loading-text {
color: var(--text-secondary);
font-size: 14px;
text-align: center;
}
/* 确保浅色主题下的加载状态也是完全透明的 */
[data-theme="light"] .loading-container {
background: transparent;
box-shadow: none;
}
/* 搜索结果容器 */
#searchResults {
position: relative;
z-index: 1;
}
/* 搜索结果中的加载容器 */
#searchResults .loading-container {
box-shadow: none;
}
/* Logo 样式 */
.logo-container {
position: fixed;
top: 16px;
left: 16px;
z-index: 50;
background: rgba(0, 0, 0, 0.2);
padding: 4px 8px;
border-radius: 8px;
backdrop-filter: blur(8px);
}
.logo {
display: inline-flex;
align-items: center;
font-family: Arial, sans-serif;
font-weight: 800;
font-size: 32px;
text-decoration: none;
padding: 4px 8px;
border-radius: 6px;
transition: all 0.2s ease;
letter-spacing: 0.5px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.logo:hover {
transform: translateY(-1px);
filter: brightness(1.1);
}
.logo-av {
color: #ffffff;
}
.logo-hub {
color: #000000;
background-color: #ff9000;
padding: 2px 8px;
border-radius: 4px;
margin-left: 1px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
/* 亮色主题适配 */
[data-theme="light"] .logo-container {
background: rgba(255, 255, 255, 0.2);
}
[data-theme="light"] .logo-av {
color: #000000;
}
/* 移动端适配 */
@media (max-width: 640px) {
.logo {
font-size: 24px;
}
.logo-container {
padding: 2px 6px;
}
}
/* 语言图标样式 */
.lang-icon {
font-size: 16px;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
}
/* 回到顶部按钮样式 */
.back-to-top {
position: fixed;
bottom: 30px;
right: 30px;
background-color: var(--primary-color);
color: var(--text-color);
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s ease;
z-index: 100;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
.back-to-top:hover {
transform: translateY(-3px);
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}
.back-to-top.hidden {
opacity: 0;
visibility: hidden;
transform: translateY(20px);
pointer-events: none;
}
.back-to-top svg {
width: 20px;
height: 20px;
}
/* 视频源地址容器样式 */
.video-source {
background: var(--bg-color);
border: 1px solid var(--border-color);
margin-bottom: 1rem;
display: flex;
align-items: center;
flex-wrap: nowrap; /* 防止换行 */
gap: 0.5rem;
padding: 0.75rem 1rem;
}
/* 视频源URL容器 */
.video-source .flex-grow {
min-width: 0; /* 允许容器缩小 */
flex-shrink: 1; /* 允许收缩 */
}
/* 复制按钮样式 */
.copy-button {
flex-shrink: 0; /* 防止按钮缩小 */
white-space: nowrap; /* 防止文字换行 */
padding: 0.5rem 1rem;
min-width: fit-content; /* 确保按钮宽度适应内容 */
}
/* 源地址URL样式 */
.source-url {
text-overflow: ellipsis; /* 超出显示省略号 */
overflow: hidden;
white-space: nowrap;
}
/* 深色主题适配 */
[data-theme="dark"] .video-source {
background: rgba(255, 255, 255, 0.05);
}
[data-theme="dark"] .source-url {
color: rgba(255, 255, 255, 0.9);
}
/* 封面图片区域样式 */
.cover-image-container {
position: relative;
width: 100%;
max-width: 800px;
margin: 20px auto;
text-align: center;
transition: all 0.3s ease;
border-radius: 12px;
overflow: hidden;
background-color: transparent; /* 移除背景色 */
}
/* 移除点击区域提示框样式 */
.cover-image-container::after {
display: none; /* 移除提示框 */
}
/* 视频控制区域样式 */
.video-controls {
display: flex;
justify-content: space-between; /* 两端对齐 */
align-items: center;
padding: 0.75rem 1rem;
border-radius: 0.5rem;
background: rgba(0, 0, 0, 0.05);
margin: 1rem 0;
gap: 1rem;
}
/* 左侧自动播放开关组 */
.video-controls-left {
display: flex;
align-items: center;
gap: 1rem;
margin-right: auto; /* 确保左侧元素靠左 */
}
/* 自动播放开关容器 */
.autoplay-toggle {
display: flex;
align-items: center;
white-space: nowrap;
flex-shrink: 0;
}
/* 移除旧的margin-left设置 */
.video-controls .autoplay-toggle + .autoplay-toggle {
margin-left: 0; /* 移除旧的margin设置 */
}
/* 下一个按钮样式 */
.next-button {
margin-left: auto; /* 确保按钮靠右 */
}
/* 确保移动端布局正确 */
@media (max-width: 640px) {
.video-controls {
padding: 0.5rem;
gap: 0.5rem;
}
.video-controls-left {
gap: 0.5rem;
}
.autoplay-toggle label {
font-size: 0.875rem;
}
.next-button {
padding: 0.5rem 0.75rem;
}
}
/* 视频播放器容器样式 */
#playerTab .max-w-4xl {
width: 100%;
padding: 0 1rem;
height: 100%;
display: flex;
flex-direction: column;
}
/* 视频播放器容器 */
#playerTab .relative {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
}
/* 视频播放器过渡动画 */
#videoPlayer {
max-height: calc(100vh - 300px); /* 减小最大高度,为按钮留出空间 */
object-fit: contain;
background-color: #000;
transition: all 0.3s ease-in-out;
min-height: 200px;
width: 100%;
margin: 0 auto;
}
/* 视频加载中状态 */
#videoPlayer.loading {
opacity: 0.6;
filter: brightness(0.8);
}
/* 下一个按钮容器 */
#playerTab .flex.justify-center {
margin-top: 1rem;
padding-bottom: 1rem;
flex-shrink: 0; /* 防止按钮被压缩 */
}
/* 视频播放器过渡动画 */
#videoPlayer {
max-height: calc(100vh - 300px); /* 减小最大高度,为按钮留出空间 */
object-fit: contain;
background-color: #000;
transition: all 0.3s ease-in-out;
min-height: 200px;
width: 100%;
margin: 0 auto;
}
/* 视频加载中状态 */
#videoPlayer.loading {
opacity: 0.6;
filter: brightness(0.8);
}
/* NSFW 警告样式 */
.nsfw-warning {
color: #dc2626;
font-weight: bold;
font-size: 1.1rem;
padding: 0.5rem;
background-color: rgba(220, 38, 38, 0.1);
border-radius: 0.375rem;
border: 1px solid rgba(220, 38, 38, 0.2);
}
/* 自动播放开关样式 */
.toggle-switch {
position: relative;
display: inline-block;
width: 44px;
height: 24px;
background-color: #ccc;
border-radius: 12px;
transition: all 0.3s;
}
.toggle-switch::after {
content: '';
position: absolute;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: white;
top: 2px;
left: 2px;
transition: all 0.3s;
}
#autoplayToggle:checked + label .toggle-switch {
background-color: var(--primary-color);
}
#autoplayToggle:checked + label .toggle-switch::after {
transform: translateX(20px);
}
#autoNextToggle:checked + label .toggle-switch {
background-color: var(--primary-color);
}
#autoNextToggle:checked + label .toggle-switch::after {
transform: translateX(20px);
}
/* 适配移动端全屏问题 */
#videoPlayer::-webkit-media-controls {
will-change: transform;
}
#videoPlayer::-webkit-media-controls-panel {
display: flex !important;
opacity: 1 !important;
}
#videoPlayer::-webkit-media-controls-play-button {
display: flex !important;
opacity: 1 !important;
}
/* 确保视频控件在全屏时可见 */
#videoPlayer:fullscreen::-webkit-media-controls-panel,
#videoPlayer:-webkit-full-screen::-webkit-media-controls-panel {
display: flex !important;
opacity: 1 !important;
}
/* 修改消息通知样式,确保在浅色主题下字体为白色 */
[data-theme="light"] .notification {
background: var(--primary-color);
color: #ffffff;
}
/* 特殊处理加载中状态的通知 */
[data-theme="light"] .notification.loading {
background: #f3f4f6;
color: #1f2937;
border: 1px solid #e5e7eb;
}
[data-theme="light"] .notification.loading svg {
color: #1f2937;
}
/* 优化视频播放页面在浅色主题下的对比度 */
[data-theme="light"] .video-source {
background: #f3f4f6;
border-color: #e5e7eb;
}
[data-theme="light"] .source-url {
color: #1f2937;
}
[data-theme="light"] .source-label {
color: #4b5563;
}
[data-theme="light"] .video-controls {
background: #f3f4f6;
border: 1px solid #e5e7eb;
color: #1f2937;
}
[data-theme="light"] .toggle-switch {
background-color: #d1d5db;
}
[data-theme="light"] .nsfw-warning {
background-color: rgba(220, 38, 38, 0.1);
border-color: rgba(220, 38, 38, 0.2);
color: #dc2626;
}
/* 确保复制按钮在浅色主题下的文字颜色为白色 */
[data-theme="light"] .copy-button {
color: #ffffff;
}
/* 确保下一个按钮在浅色主题下的文字颜色为白色 */
[data-theme="light"] .next-button {
color: #ffffff;
}
/* 主题图标样式优化 */
[data-theme="dark"] #themeToggle svg {
color: #94a3b8;
}
[data-theme="light"] #themeToggle svg {
color: #fbbf24;
}
/* 修改主题菜单中的图标 */
.theme-menu-item[data-theme="dark"] svg {
/* 月亮图标 */
color: #94a3b8;
}
.theme-menu-item[data-theme="light"] svg {
/* 太阳图标 */
color: #fbbf24;
}
.theme-menu-item[data-theme="emerald"] svg {
/* 翠绿主题图标 */
color: #10b981;
}
.theme-menu-item[data-theme="ocean"] svg {
/* 海蓝主题图标 */
color: #3b82f6;
}
.theme-menu-item[data-theme="amethyst"] svg {
/* 紫晶主题图标 */
color: #8b5cf6;
}
/* 修复日间主题下自动播放文字颜色 */
[data-theme="light"] .autoplay-toggle label {
color: #1f2937;
}
/* 里番合集描述文本样式 */
.collection-description {
text-align: center;
color: var(--text-secondary);
margin-bottom: 2rem;
padding: 1rem;
font-size: 0.9rem;
border-bottom: 1px solid var(--border-color);
max-width: 6xl;
margin-left: auto;
margin-right: auto;
}
[data-theme="light"] .collection-description {
color: #6b7280;
}
/* 封面图开关样式 */
.cover-toggle {
display: flex;
align-items: center;
}
.cover-toggle .toggle-switch {
position: relative;
display: inline-block;
width: 44px;
height: 24px;
background-color: #ccc;
border-radius: 12px;
transition: all 0.3s;
}
.cover-toggle .toggle-switch::after {
content: '';
position: absolute;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: white;
top: 2px;
left: 2px;
transition: all 0.3s;
}
#coverToggle:checked + label .toggle-switch {
background-color: var(--primary-color);
}
#coverToggle:checked + label .toggle-switch::after {
transform: translateX(20px);
}
/* 浅色主题下的封面图开关样式 */
[data-theme="light"] .cover-toggle label {
color: #1f2937;
}
[data-theme="light"] .cover-toggle .toggle-switch {
background-color: #d1d5db;
}
[data-theme="light"] #coverToggle:checked + label .toggle-switch {
background-color: var(--primary-color);
}
/* Footer 样式 */
footer {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: var(--card-dark);
border-top: 1px solid var(--border-color);
z-index: 30;
padding: 1rem 0;
}
/* 为主要内容添加底部内边距,防止被 footer 遮挡 */
main {
padding-bottom: 80px;
}
/* 亮色主题下的 footer 样式 */
[data-theme="light"] footer {
background: #ffffff;
border-color: #e5e7eb;
}
/* 确保返回顶部按钮在 footer 上方 */
.back-to-top {
z-index: 50;
margin-bottom: 60px;
}
/* 添加模态框加载指示器 */
.modal-loading {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 50px;
height: 50px;
border: 5px solid rgba(255, 255, 255, 0.3);
border-radius: 50%;
border-top-color: var(--primary-color);
animation: spin 1s ease-in-out infinite;
z-index: 10;
}
@keyframes spin {
to { transform: translate(-50%, -50%) rotate(360deg); }
}
/* 确保模态框内容区域有相对定位 */
.modal-content {
position: relative;
max-width: 90%;
max-height: 90vh;
min-height: 200px;
min-width: 200px;
display: flex;
justify-content: center;
align-items: center;
}
/* 改进模态框图片加载过程 */
.modal-image {
max-width: 100%;
max-height: 90vh;
object-fit: contain;
border-radius: 8px;
box-shadow: 0 5px 25px rgba(0, 0, 0, 0.5);
transition: opacity 0.3s ease, transform 0.3s ease;
opacity: 0;
}
.image-modal.active .modal-image {
opacity: 1;
animation: zoomIn 0.3s forwards;
}
/* 添加键盘事件处理支持ESC关闭和方向键切换图片 */
.image-modal.active {
opacity: 1;
visibility: visible;
}
/* 添加图片加载失败时的提示 */
.modal-image.error::before {
content: '图片加载失败';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: white;
background: rgba(0, 0, 0, 0.7);
padding: 10px 20px;
border-radius: 4px;
font-size: 14px;
}
/* 全宽预览图样式 */
.fullwidth-preview {
width: 96vw !important;
max-width: 96vw !important;
height: auto !important;
max-height: 90vh !important;
object-fit: contain !important;
}
/* 改进模态框样式以适应全宽图片 */
.modal-content {
position: relative;
max-width: 96vw;
max-height: 90vh;
min-height: 200px;
min-width: 200px;
display: flex;
justify-content: center;
align-items: center;
}
/* 确保模态框内容居中 */
.image-modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.95);
display: flex;
justify-content: center;
align-items: center;
z-index: 1000;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
}
/* 改进模态框图片加载过程 */
.modal-image {
max-width: 100%;
max-height: 90vh;
object-fit: contain;
border-radius: 8px;
box-shadow: 0 5px 25px rgba(0, 0, 0, 0.5);
transition: opacity 0.3s ease, transform 0.3s ease;
opacity: 0;
}
/* 添加图片加载错误状态 */
.modal-image.error {
min-width: 300px;
min-height: 200px;
background-color: rgba(0, 0, 0, 0.3);
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
.modal-image.error::after {
content: '图片加载失败';
position: absolute;
color: white;
font-size: 16px;
}
/* 添加提示文本 */
.image-modal::after {
content: '点击任意位置关闭';
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
color: rgba(255, 255, 255, 0.6);
font-size: 14px;
padding: 8px 16px;
background: rgba(0, 0, 0, 0.5);
border-radius: 4px;
pointer-events: none;
}
/* 热门搜索词区域样式 */
.hot-searches {
padding: 8px 12px;
background: var(--card-dark);
border: 1px solid var(--border-color);
border-radius: 8px;
margin: 0 4px;
}
/* 热门搜索标签样式 */
.hot-search-tag {
display: inline-flex;
align-items: center;
padding: 4px 12px;
border-radius: 16px;
font-size: 13px;
background: rgba(var(--primary-color-rgb), 0.1);
color: var(--primary-color);
cursor: pointer;
transition: all 0.2s;
border: 1px solid rgba(var(--primary-color-rgb), 0.2);
}
.hot-search-tag:hover {
background: rgba(var(--primary-color-rgb), 0.15);
transform: translateY(-1px);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
/* 热门搜索文字样式 */
.hot-searches .label-text {
color: var(--text-primary);
font-weight: 500;
}
/* 日间主题适配 */
[data-theme="light"] .hot-searches {
background: #ffffff;
border-color: #e5e7eb;
}
[data-theme="light"] .hot-search-tag {
background: rgba(var(--primary-color-rgb), 0.08);
border-color: rgba(var(--primary-color-rgb), 0.15);
}
[data-theme="light"] .hot-search-tag:hover {
background: rgba(var(--primary-color-rgb), 0.12);
}
[data-theme="light"] .hot-searches .label-text {
color: #374151;
}