tools/styles.css

416 lines
8.7 KiB
CSS
Raw 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.

/* 自定义样式用于增强Tailwind CSS框架 */
/* 暗黑模式样式 */
.dark-mode {
--bg-color: #121212;
--text-color: #ffffff;
--card-bg: #1e1e1e;
--border-color: #444;
--hover-color: #2d2d2d;
--sidebar-bg: #1a1a1a;
--sidebar-hover: #252525;
--sidebar-border: #444;
--button-text: #ffffff;
--tag-bg: #2a2a2a;
--tag-text: #ffffff;
--tag-border: #555;
}
body.dark-mode {
background-color: var(--bg-color);
color: var(--text-color);
}
.dark-mode nav,
.dark-mode footer,
.dark-mode .bg-white {
background-color: var(--card-bg) !important;
border-color: var(--border-color) !important;
}
.dark-mode .border,
.dark-mode .border-t,
.dark-mode .border-b {
border-color: var(--border-color) !important;
}
.dark-mode .text-gray-900 {
color: var(--text-color) !important;
}
.dark-mode .text-gray-600,
.dark-mode .text-gray-500,
.dark-mode .text-gray-700 {
color: #d0d0d0 !important;
}
.dark-mode input,
.dark-mode select {
background-color: #252525;
border-color: var(--border-color);
color: var(--text-color);
}
.dark-mode input::placeholder {
color: #9ca3af;
}
.dark-mode .hover\:bg-gray-200:hover {
background-color: var(--hover-color) !important;
}
.dark-mode .bg-gray-100 {
background-color: #252525 !important;
}
.dark-mode .hover\:bg-gray-200:hover {
background-color: #3a3a3a !important;
}
.dark-mode .bg-gray-50 {
background-color: #1a1a1a !important;
}
/* 侧边栏暗黑模式 */
.dark-mode #sidebar {
background-color: var(--sidebar-bg);
border-right-color: var(--sidebar-border);
}
.dark-mode #sidebar .border-b,
.dark-mode #sidebar .border-t {
border-color: var(--sidebar-border);
}
.dark-mode #sidebar .hover\:bg-gray-100:hover {
background-color: var(--sidebar-hover) !important;
}
.dark-mode #sidebar .active-nav-item {
background-color: var(--sidebar-hover);
}
.dark-mode #sidebar .bg-gray-50 {
background-color: #151515 !important;
}
.dark-mode #sidebar .bg-gray-200 {
background-color: #444 !important;
}
/* 工具标签样式增强 - 暗黑模式 */
.dark-mode button.px-3.py-1\.5:not(.bg-gray-800),
.dark-mode .px-3.py-1\.5.bg-gray-100 {
background-color: var(--tag-bg) !important;
color: var(--tag-text) !important;
border: 1px solid var(--tag-border) !important;
}
.dark-mode button.px-3.py-1\.5:hover:not(.bg-gray-800),
.dark-mode .px-3.py-1\.5.bg-gray-100:hover {
background-color: #3d3d3d !important;
}
/* 全部按钮特殊样式 */
.dark-mode button.px-3.py-1\.5.bg-gray-800 {
background-color: #4a4a4a !important;
color: #ffffff !important;
}
/* 统计卡片文字增强 */
.dark-mode .text-gray-500.text-sm {
color: #c0c0c0 !important;
}
.dark-mode .text-2xl.font-bold {
color: #ffffff !important;
text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}
/* 质量滑块样式 */
input[type=range] {
-webkit-appearance: none;
height: 5px;
border-radius: 5px;
background: #e2e8f0;
outline: none;
}
.dark-mode input[type=range] {
background: #4b5563;
}
input[type=range]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 18px;
height: 18px;
border-radius: 50%;
background: #1f2937;
cursor: pointer;
}
.dark-mode input[type=range]::-webkit-slider-thumb {
background: #d1d5db;
}
/* 切换开关样式 */
input:checked ~ div.w-5 {
transform: translateX(100%);
}
input:checked ~ div.bg-gray-300 {
background-color: #6b7280;
}
.dark-mode input:checked ~ div.w-5 {
transform: translateX(100%);
}
.dark-mode input:checked ~ div.bg-gray-300 {
background-color: #6b7280;
}
/* 文件拖放区域 */
#upload-container.drag-over {
border-color: #4b5563;
background-color: rgba(243, 244, 246, 0.1);
}
.dark-mode #upload-container.drag-over {
border-color: #9ca3af;
background-color: rgba(30, 30, 30, 0.5);
}
/* 动画效果 */
.fade-in {
animation: fadeIn 0.3s ease-in;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
/* 侧边栏动画 */
.active-nav-item {
background-color: #f3f4f6;
position: relative;
}
.active-nav-item::before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 4px;
background-color: #1f2937;
}
.dark-mode .active-nav-item::before {
background-color: #60a5fa;
}
/* 卡片悬停效果 */
.hover-card-shadow:hover {
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
transform: translateY(-2px);
}
.dark-mode .hover-card-shadow:hover {
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2);
}
/* 按钮渐变 */
.btn-gradient {
background: linear-gradient(45deg, #1a202c, #2d3748);
transition: all 0.3s ease;
}
.btn-gradient:hover {
background: linear-gradient(45deg, #111827, #1f2937);
transform: translateY(-1px);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.dark-mode .btn-gradient {
background: linear-gradient(45deg, #2d3748, #4a5568);
}
.dark-mode .btn-gradient:hover {
background: linear-gradient(45deg, #4a5568, #6b7280);
}
/* 顶部信息卡片渐变线 */
.gradient-line {
height: 4px;
background: linear-gradient(90deg, #3b82f6, #8b5cf6, #ec4899);
border-radius: 0 0 4px 4px;
}
/* 滚动条美化 */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
background: #a1a1a1;
}
.dark-mode ::-webkit-scrollbar-track {
background: #2d3748;
}
.dark-mode ::-webkit-scrollbar-thumb {
background: #4a5568;
}
.dark-mode ::-webkit-scrollbar-thumb:hover {
background: #6b7280;
}
/* 卡片加载动画 */
.pulse {
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.5;
}
}
/* 悬浮按钮 */
.fab-button {
position: fixed;
bottom: 30px;
right: 30px;
width: 56px;
height: 56px;
border-radius: 50%;
background-color: #1f2937;
color: white;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
transition: all 0.3s ease;
z-index: 10;
}
.fab-button:hover {
transform: scale(1.1);
box-shadow: 0 6px 14px rgba(0, 0, 0, 0.25);
}
.dark-mode .fab-button {
background-color: #3b82f6;
}
/* 菜单动画 */
.menu-dropdown {
transform-origin: top;
transition: transform 0.2s ease, opacity 0.2s ease;
transform: scaleY(0);
opacity: 0;
}
.menu-dropdown.open {
transform: scaleY(1);
opacity: 1;
}
/* 图标旋转动画 */
.icon-rotate {
transition: transform 0.3s ease;
}
.icon-rotate.rotate {
transform: rotate(180deg);
}
/* 响应式调整 */
@media (max-width: 640px) {
h1 {
font-size: 1.5rem;
}
.container {
padding-left: 1rem;
padding-right: 1rem;
}
.fab-button {
width: 48px;
height: 48px;
bottom: 20px;
right: 20px;
}
}
/* 顶部信息卡片按钮样式 - 暗黑模式 */
/* 浏览工具按钮 */
.dark-mode a.inline-flex.items-center.bg-white.bg-opacity-20 {
background-color: rgba(255, 255, 255, 0.15) !important;
color: #ffffff !important;
border: 1px solid rgba(255, 255, 255, 0.3) !important;
}
.dark-mode a.inline-flex.items-center.bg-white.bg-opacity-20:hover {
background-color: rgba(255, 255, 255, 0.25) !important;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
/* 收藏工具按钮 */
.dark-mode button.inline-flex.items-center.bg-white.text-gray-800,
.dark-mode button.bg-white.text-gray-800 {
background-color: #2d2d2d !important;
color: #ffffff !important;
border: 1px solid #555 !important;
}
.dark-mode button.inline-flex.items-center.bg-white.text-gray-800:hover,
.dark-mode button.bg-white.text-gray-800:hover {
background-color: #3d3d3d !important;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
/* 收藏工具图标高亮 */
.dark-mode button.inline-flex.items-center.bg-white.text-gray-800 i.fas.fa-star,
.dark-mode button.bg-white.text-gray-800 i.fas.fa-star {
color: #fbbf24 !important; /* 星星图标使用金黄色 */
}
/* 禁用按钮样式 - 暗黑模式 */
.dark-mode button.bg-gray-300.text-gray-500,
.dark-mode button.inline-flex.bg-gray-300.text-gray-500 {
background-color: #3a3a3a !important;
color: #a0a0a0 !important;
border: 1px solid #555 !important;
}
/* 按钮旁的禁用图标按钮 */
.dark-mode button.text-gray-300.cursor-not-allowed {
color: #666666 !important;
}
/* 开发中的标签 */
.dark-mode span.bg-purple-100.text-purple-600 {
background-color: rgba(124, 58, 237, 0.2) !important;
color: #c084fc !important;
}