完成大量美化

This commit is contained in:
2026-05-01 14:44:18 +08:00
parent 1d0f0ae0ef
commit 6b65b24b0f
49 changed files with 2487 additions and 9019 deletions

View File

@@ -10,7 +10,7 @@
height: 100vh;
background-color: var(--color-bg-primary);
color: var(--color-text-primary);
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
font-family: var(--font-body); /* 全局使用微软雅黑 */
overflow: hidden;
}
@@ -25,18 +25,69 @@
margin-top: 0; /* Ensure panels start from top */
}
/* Smooth transitions for theme changes */
.app,
.app * {
/* Smooth transitions for theme changes - only apply to specific properties */
.app {
transition: background-color var(--transition-normal),
color var(--transition-normal),
border-color var(--transition-normal),
box-shadow var(--transition-normal);
color var(--transition-normal);
}
.app * {
/* Remove global transition to improve performance */
}
/* ==================== Panel Layout - Proportional Ratio ==================== */
/* CSS Variables for layout ratios */
:root {
/* Fixed mode: 1 : 3.5 : 1.25 (default) */
--left-fixed: 1fr;
--middle-fixed: 3.5fr;
--right-fixed: 1.25fr;
/* Expanded mode: 1.8 : 2 : 1 */
--left-expanded: 1.8fr;
--middle-expanded: 2fr;
--right-expanded: 1fr;
}
.main-container {
display: grid;
flex: 1;
overflow: hidden;
position: relative;
min-width: 0;
gap: 0; /* Panels have their own borders */
padding: 0;
margin-top: 0; /* Ensure panels start from top */
transition: grid-template-columns 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Wrapper containers for hover detection */
.sidebar-left-wrapper,
.chat-area-wrapper,
.sidebar-right-wrapper {
min-width: 0;
min-height: 0; /* 允许 flex/grid 收缩 */
overflow: hidden;
display: flex; /* 确保子元素可以占满高度 */
flex-direction: column;
transition: flex-basis 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Fixed mode (default): 1 : 3.5 : 1.25 */
.app.chat-mode .main-container,
.sidebar-mode-fixed ~ .chat-area-wrapper {
grid-template-columns: var(--left-fixed) var(--middle-fixed) var(--right-fixed);
}
/* Expanded mode: 1.8 : 2 : 1 */
.app.edit-mode .main-container,
.sidebar-mode-expanded,
.sidebar-mode-smart.sidebar-expanded {
grid-template-columns: var(--left-expanded) var(--middle-expanded) var(--right-expanded) !important;
}
/* ==================== Panel Layout - 1:2:1 Ratio ==================== */
.sidebar-left {
flex: 0 0 25%; /* 左侧 25% */
min-width: 0;
max-width: none;
background-color: var(--color-bg-secondary);
@@ -48,9 +99,15 @@
transition: box-shadow var(--transition-normal);
}
/* Highlight left sidebar in edit mode */
.app.edit-mode .sidebar-left {
box-shadow: 2px 0 8px rgba(102, 126, 234, 0.15);
}
.chat-area {
flex: 0 0 50%; /* 中间 50% */
flex: 1; /* 占据 wrapper 的全部高度 */
min-width: 0;
min-height: 0; /* 允许 flex 收缩 */
display: flex;
flex-direction: column;
background-color: var(--color-bg-primary);
@@ -80,7 +137,6 @@
}
.sidebar-right {
flex: 0 0 25%; /* 右侧 25% */
min-width: 0;
max-width: none;
background-color: var(--color-bg-secondary);
@@ -92,6 +148,11 @@
transition: box-shadow var(--transition-normal);
}
/* Slightly fade right sidebar in edit mode */
.app.edit-mode .sidebar-right {
opacity: 0.85;
}
/* Custom scrollbar for webkit browsers */
.sidebar-left::-webkit-scrollbar,
.sidebar-right::-webkit-scrollbar {
@@ -113,3 +174,59 @@
.sidebar-right::-webkit-scrollbar-thumb:hover {
background-color: var(--color-scrollbar-hover);
}
/* ==================== Responsive Breakpoints ==================== */
/* Large screens (>1920px) - Add minimum width constraints */
@media (min-width: 1920px) {
.app.chat-mode .main-container,
.sidebar-mode-fixed ~ .chat-area-wrapper {
grid-template-columns: minmax(280px, var(--left-fixed)) var(--middle-fixed) minmax(340px, var(--right-fixed));
}
.app.edit-mode .main-container,
.sidebar-mode-expanded,
.sidebar-mode-smart.sidebar-expanded {
grid-template-columns: minmax(350px, var(--left-expanded)) var(--middle-expanded) minmax(250px, var(--right-expanded)) !important;
}
}
/* Medium screens (1024px - 1439px) - Compress ratios */
@media (min-width: 1024px) and (max-width: 1439px) {
:root {
--left-chat: 0.9fr;
--middle-chat: 3.8fr;
--right-chat: 1.1fr;
--left-edit: 1.3fr;
--middle-edit: 2.7fr;
--right-edit: 0.9fr;
}
}
/* Small screens (<1024px) - Hide right sidebar */
@media (max-width: 1023px) {
.app.chat-mode .main-container,
.app.edit-mode .main-container,
.sidebar-mode-fixed ~ .chat-area-wrapper,
.sidebar-mode-expanded,
.sidebar-mode-smart.sidebar-expanded {
grid-template-columns: 1fr 3fr;
}
.sidebar-right {
display: none;
}
}
/* Mobile/Tablet (<768px) - Single column layout */
@media (max-width: 767px) {
.main-container {
grid-template-columns: 1fr;
}
.sidebar-left,
.sidebar-right {
display: none;
}
}