Add AutoRobot directory with Windows line endings
This commit is contained in:
313
AutoRobot/Windows/Robot/Web/src/styles/panel-shared.css
Normal file
313
AutoRobot/Windows/Robot/Web/src/styles/panel-shared.css
Normal file
@@ -0,0 +1,313 @@
|
||||
/* 面板组件共享样式 */
|
||||
|
||||
/* 引入变量文件 */
|
||||
@import './variables.css';
|
||||
|
||||
/* 面板基础样式 */
|
||||
.dock-panel {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background-color: var(--color-background);
|
||||
border: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
/* 面板标题栏样式 */
|
||||
.dock-panel-titlebar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 var(--spacing-md);
|
||||
height: var(--panel-titlebar-height);
|
||||
background-color: var(--color-background-secondary);
|
||||
cursor: grab;
|
||||
user-select: none;
|
||||
font-size: var(--font-size-sm);
|
||||
font-weight: 500;
|
||||
transition: all var(--transition-fast);
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.dock-panel-titlebar:hover {
|
||||
background-color: var(--color-background-tertiary);
|
||||
}
|
||||
|
||||
.dock-panel-titlebar:active {
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
/* 面板内容区域样式 */
|
||||
.dock-panel-content {
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
position: relative;
|
||||
background-color: var(--color-background);
|
||||
}
|
||||
|
||||
/* 面板图标样式 */
|
||||
.dock-panel-icon {
|
||||
font-size: var(--font-size-base);
|
||||
margin-right: 6px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--color-text-primary);
|
||||
}
|
||||
|
||||
/* 面板标题样式 */
|
||||
.dock-panel-title {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
flex: 1;
|
||||
color: var(--color-text-primary);
|
||||
}
|
||||
|
||||
/* 面板操作按钮容器 */
|
||||
.dock-panel-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
/* 面板按钮基础样式 */
|
||||
.dock-panel-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
padding: 2px 4px;
|
||||
border-radius: var(--panel-border-radius);
|
||||
color: var(--color-text-secondary);
|
||||
font-size: var(--font-size-xs);
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: all var(--transition-fast);
|
||||
}
|
||||
|
||||
.dock-panel-btn:hover {
|
||||
background-color: var(--color-background-tertiary);
|
||||
color: var(--color-text-primary);
|
||||
}
|
||||
|
||||
/* 关闭按钮特殊样式 */
|
||||
.dock-panel-close-btn:hover {
|
||||
background-color: #ef4444 !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
/* 空面板内容样式 */
|
||||
.dock-panel-empty-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
color: var(--color-text-tertiary);
|
||||
font-size: var(--font-size-sm);
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
/* 面板位置相关样式 */
|
||||
.dock-panel-left, .dock-panel-right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dock-panel-top, .dock-panel-bottom {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* 位置相关面板样式 */
|
||||
.dock-panel-left {
|
||||
border-right: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.dock-panel-right {
|
||||
border-left: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.dock-panel-top {
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.dock-panel-bottom {
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
/* 面板折叠状态样式 */
|
||||
.dock-panel-collapsed {
|
||||
background-color: var(--color-background-tertiary);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.dock-panel-collapsed .dock-panel-titlebar {
|
||||
padding: 0;
|
||||
min-width: 40px;
|
||||
min-height: 40px;
|
||||
background-color: var(--color-background-tertiary);
|
||||
z-index: var(--z-index-panel);
|
||||
}
|
||||
|
||||
.dock-panel-collapsed .dock-panel-content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* 左侧/右侧面板折叠样式 */
|
||||
.dock-panel-left.collapsed, .dock-panel-right.collapsed {
|
||||
width: var(--panel-titlebar-height-collapsed);
|
||||
}
|
||||
|
||||
.dock-panel-left.collapsed .dock-panel-titlebar,
|
||||
.dock-panel-right.collapsed .dock-panel-titlebar {
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
/* 顶部/底部面板折叠样式 */
|
||||
.dock-panel-top.collapsed, .dock-panel-bottom.collapsed {
|
||||
height: var(--panel-titlebar-height-collapsed);
|
||||
}
|
||||
|
||||
.dock-panel-top.collapsed .dock-panel-titlebar,
|
||||
.dock-panel-bottom.collapsed .dock-panel-titlebar {
|
||||
justify-content: center;
|
||||
flex-direction: row;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
/* 折叠状态下的展开按钮 */
|
||||
.dock-panel-expand-btn {
|
||||
background: var(--color-background-secondary);
|
||||
border: 1px solid var(--color-border);
|
||||
cursor: pointer;
|
||||
padding: var(--spacing-sm);
|
||||
border-radius: var(--panel-border-radius);
|
||||
color: var(--color-text-primary);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: all var(--transition-fast);
|
||||
}
|
||||
|
||||
.dock-panel-expand-btn:hover {
|
||||
background-color: var(--color-background-tertiary);
|
||||
border-color: var(--color-border-hover);
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* 面板区域容器样式 */
|
||||
.panel-area-left, .panel-area-right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
background-color: var(--color-background);
|
||||
}
|
||||
|
||||
.panel-area-top, .panel-area-bottom {
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
background-color: var(--color-background);
|
||||
}
|
||||
|
||||
/* 面板区域位置样式 */
|
||||
.panel-area-left {
|
||||
border-right: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.panel-area-right {
|
||||
border-left: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.panel-area-top {
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.panel-area-bottom {
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
/* 面板分隔条样式 */
|
||||
.dock-panel-separator {
|
||||
background-color: var(--color-border);
|
||||
transition: background-color var(--transition-fast);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.dock-panel-separator:hover {
|
||||
background-color: var(--color-border-hover);
|
||||
}
|
||||
|
||||
/* 垂直分隔条(适用于上下方向面板之间) */
|
||||
.dock-panel-separator-vertical {
|
||||
width: var(--panel-separator-size);
|
||||
cursor: col-resize;
|
||||
z-index: var(--z-index-base);
|
||||
}
|
||||
|
||||
/* 水平分隔条(适用于左右方向面板之间) */
|
||||
.dock-panel-separator-horizontal {
|
||||
height: var(--panel-separator-size);
|
||||
cursor: row-resize;
|
||||
z-index: var(--z-index-base);
|
||||
}
|
||||
|
||||
/* 面板区域之间的分隔条 - 保持原始尺寸 */
|
||||
.dock-panel-container > div[class*="cursor-col-resize"],
|
||||
.dock-panel-container > div[class*="cursor-row-resize"] {
|
||||
background-color: var(--color-border);
|
||||
transition: background-color var(--transition-fast);
|
||||
}
|
||||
|
||||
/* 面板区域之间的分隔条 - 鼠标悬停效果 */
|
||||
.dock-panel-container > div[class*="cursor-col-resize"]:hover,
|
||||
.dock-panel-container > div[class*="cursor-row-resize"]:hover {
|
||||
background-color: var(--color-border-hover);
|
||||
}
|
||||
|
||||
/* 子面板之间的分隔条 - 使用更小的尺寸 */
|
||||
.panel-area-left .dock-panel-separator-horizontal,
|
||||
.panel-area-right .dock-panel-separator-horizontal {
|
||||
height: 4px;
|
||||
}
|
||||
|
||||
.panel-area-top .dock-panel-separator-vertical,
|
||||
.panel-area-bottom .dock-panel-separator-vertical {
|
||||
width: 4px;
|
||||
}
|
||||
|
||||
/* 面板过渡动画 */
|
||||
.dock-panel-enter-active,
|
||||
.dock-panel-leave-active {
|
||||
transition: all var(--transition-normal);
|
||||
}
|
||||
|
||||
.dock-panel-enter-from,
|
||||
.dock-panel-leave-to {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
|
||||
/* 停靠预览动画 */
|
||||
@keyframes dockPreviewPulse {
|
||||
0% { opacity: 0.5; }
|
||||
50% { opacity: 0.7; }
|
||||
100% { opacity: 0.5; }
|
||||
}
|
||||
|
||||
.dock-preview {
|
||||
animation: dockPreviewPulse 1.5s infinite;
|
||||
}
|
||||
|
||||
/* 过渡动画通用类 */
|
||||
.panel-transition {
|
||||
transition: all var(--transition-fast) ease;
|
||||
}
|
||||
Reference in New Issue
Block a user