424 lines
11 KiB
Plaintext
424 lines
11 KiB
Plaintext
@import '~ant-design-vue/es/style/themes/default.less';
|
||||
|
|
|
|||
|
|
/* ========== 完全隐藏 ant-layout-footer ========== */
|
|||
|
|
:global {
|
|||
|
|
/* 全局隐藏所有 ant-layout-footer */
|
|||
|
|
.ant-layout-footer,
|
|||
|
|
footer.ant-layout-footer,
|
|||
|
|
.ant-pro-layout .ant-layout-footer,
|
|||
|
|
.ant-layout .ant-layout-footer {
|
|||
|
|
display: none !important;
|
|||
|
|
height: 0 !important;
|
|||
|
|
padding: 0 !important;
|
|||
|
|
margin: 0 !important;
|
|||
|
|
border: none !important;
|
|||
|
|
min-height: 0 !important;
|
|||
|
|
visibility: hidden !important;
|
|||
|
|
overflow: hidden !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* ========== ant-layout-header 主题适配 ========== */
|
|||
|
|
/* 全局样式:根据 body 或 layout 的主题类自动适配 */
|
|||
|
|
:global {
|
|||
|
|
/* 暗黑主题下的 ant-layout-header */
|
|||
|
|
body.dark .ant-layout-header,
|
|||
|
|
body.realdark .ant-layout-header,
|
|||
|
|
.ant-layout.dark .ant-layout-header,
|
|||
|
|
.ant-layout.realdark .ant-layout-header,
|
|||
|
|
.ant-pro-layout.dark .ant-layout-header,
|
|||
|
|
.ant-pro-layout.realdark .ant-layout-header {
|
|||
|
|
background: #001529 !important;
|
|||
|
|
border-bottom: 1px solid #1f1f1f !important;
|
|||
|
|
box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08) !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
/* Header 内的所有文字和图标 */
|
|||
|
|
* {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* Header 内的图标按钮 */
|
|||
|
|
.anticon {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
color: #1890ff !important;
|
|||
|
|
background: rgba(255, 255, 255, 0.08) !important;
|
|||
|
|
border-radius: 4px;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* Header 内的链接 */
|
|||
|
|
a {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
color: #1890ff !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* Header 内的工具提示容器 */
|
|||
|
|
.ant-tooltip-open {
|
|||
|
|
.anticon {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/* 浅色主题下的 ant-layout-header(确保覆盖默认样式) */
|
|||
|
|
body.light .ant-layout-header,
|
|||
|
|
.ant-layout.light .ant-layout-header,
|
|||
|
|
.ant-pro-layout.light .ant-layout-header {
|
|||
|
|
background: #fff !important;
|
|||
|
|
border-bottom: 1px solid #e8e8e8 !important;
|
|||
|
|
box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08) !important;
|
|||
|
|
color: rgba(0, 0, 0, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* ========== ant-layout-content 主题适配(中间页面内容区域) ========== */
|
|||
|
|
/* 暗黑主题下的内容区域 */
|
|||
|
|
body.dark .ant-layout-content,
|
|||
|
|
body.realdark .ant-layout-content,
|
|||
|
|
.ant-layout.dark .ant-layout-content,
|
|||
|
|
.ant-layout.realdark .ant-layout-content,
|
|||
|
|
.ant-pro-layout.dark .ant-layout-content,
|
|||
|
|
.ant-pro-layout.realdark .ant-layout-content {
|
|||
|
|
background: #141414 !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/* 浅色主题下的内容区域 */
|
|||
|
|
body.light .ant-layout-content,
|
|||
|
|
.ant-layout.light .ant-layout-content,
|
|||
|
|
.ant-pro-layout.light .ant-layout-content {
|
|||
|
|
background: #f0f2f5 !important;
|
|||
|
|
color: rgba(0, 0, 0, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/* ========== GlobalHeader 核心样式(基于 .ant-pro-global-header) ========== */
|
|||
|
|
/* 暗黑主题下的 .ant-pro-global-header - 这是控制顶部标题栏的关键样式 */
|
|||
|
|
body.dark .ant-pro-global-header,
|
|||
|
|
body.realdark .ant-pro-global-header,
|
|||
|
|
.ant-layout.dark .ant-pro-global-header,
|
|||
|
|
.ant-layout.realdark .ant-pro-global-header,
|
|||
|
|
.ant-pro-layout.dark .ant-pro-global-header,
|
|||
|
|
.ant-pro-layout.realdark .ant-pro-global-header,
|
|||
|
|
body.dark .ant-layout-header .ant-pro-global-header,
|
|||
|
|
body.realdark .ant-layout-header .ant-pro-global-header,
|
|||
|
|
.ant-pro-layout.dark .ant-layout-header .ant-pro-global-header,
|
|||
|
|
.ant-pro-layout.realdark .ant-layout-header .ant-pro-global-header {
|
|||
|
|
/* 核心:背景色和边框 */
|
|||
|
|
background: #001529 !important;
|
|||
|
|
border-bottom: 1px solid #1f1f1f !important;
|
|||
|
|
box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08) !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
/* 强制所有子元素文字颜色 */
|
|||
|
|
* {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* Logo 区域 */
|
|||
|
|
.ant-pro-global-header-logo {
|
|||
|
|
background: transparent !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
h1 {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
img {
|
|||
|
|
opacity: 0.9;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
* {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* Header 内容区域(中间部分,包含刷新按钮等) */
|
|||
|
|
.ant-pro-global-header-content {
|
|||
|
|
background: transparent !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
* {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 刷新按钮等图标 */
|
|||
|
|
.anticon {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
color: #1890ff !important;
|
|||
|
|
background: rgba(255, 255, 255, 0.08) !important;
|
|||
|
|
border-radius: 4px;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 工具提示内的图标 */
|
|||
|
|
.ant-tooltip-open .anticon {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* Header 右侧内容区域(包含头像、语言选择、设置按钮) */
|
|||
|
|
.ant-pro-global-header-index-right {
|
|||
|
|
background: transparent !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
* {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 操作按钮(头像、语言、设置) */
|
|||
|
|
.ant-pro-global-header-index-action {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
color: #1890ff !important;
|
|||
|
|
background: rgba(255, 255, 255, 0.08) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.anticon {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 头像区域 */
|
|||
|
|
.ant-pro-account-avatar {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
span {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.antd-pro-global-header-index-avatar {
|
|||
|
|
background: rgba(255, 255, 255, 0.25) !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 下拉菜单触发器 */
|
|||
|
|
.ant-pro-drop-down,
|
|||
|
|
.ant-dropdown-trigger {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
color: #1890ff !important;
|
|||
|
|
background: rgba(255, 255, 255, 0.08) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.anticon {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 链接样式 */
|
|||
|
|
a {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
color: #1890ff !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 所有图标 */
|
|||
|
|
.anticon {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
color: #1890ff !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 浅色主题下的 .ant-pro-global-header */
|
|||
|
|
body.light .ant-pro-global-header,
|
|||
|
|
.ant-layout.light .ant-pro-global-header,
|
|||
|
|
.ant-pro-layout.light .ant-pro-global-header,
|
|||
|
|
body.light .ant-layout-header .ant-pro-global-header,
|
|||
|
|
.ant-pro-layout.light .ant-layout-header .ant-pro-global-header {
|
|||
|
|
background: #fff !important;
|
|||
|
|
border-bottom: 1px solid #e8e8e8 !important;
|
|||
|
|
color: rgba(0, 0, 0, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* ========== 全局布局主题适配 - 强化覆盖 ========== */
|
|||
|
|
:global(.ant-pro-layout) {
|
|||
|
|
/* 暗黑主题下的完整布局 */
|
|||
|
|
&.dark,
|
|||
|
|
&.realdark {
|
|||
|
|
/* 0. 基础 Layout 背景 - 确保整体背景变暗 */
|
|||
|
|
:global(.ant-layout) {
|
|||
|
|
background-color: #001529 !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 1. 顶部 Header */
|
|||
|
|
:global(.ant-layout-header) {
|
|||
|
|
background: #001529 !important;
|
|||
|
|
border-bottom: 1px solid #1f1f1f !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
:global(.ant-pro-global-header) {
|
|||
|
|
background: #001529 !important;
|
|||
|
|
border-bottom: none !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
* {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 2. 中间内容区域 */
|
|||
|
|
:global(.ant-layout-content) {
|
|||
|
|
background: #141414 !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
:global(.ant-pro-basicLayout-content) {
|
|||
|
|
background: #141414 !important;
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 浅色主题下的完整布局 */
|
|||
|
|
&.light {
|
|||
|
|
/* 0. 基础 Layout 背景 */
|
|||
|
|
:global(.ant-layout) {
|
|||
|
|
background-color: #f0f2f5 !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 1. 顶部 Header */
|
|||
|
|
:global(.ant-layout-header) {
|
|||
|
|
background: #fff !important;
|
|||
|
|
border-bottom: 1px solid #e8e8e8 !important;
|
|||
|
|
color: rgba(0, 0, 0, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 2. 中间内容区域 */
|
|||
|
|
:global(.ant-layout-content) {
|
|||
|
|
background: #f0f2f5 !important;
|
|||
|
|
color: rgba(0, 0, 0, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
:global(.ant-pro-basicLayout-content) {
|
|||
|
|
background: #f0f2f5 !important;
|
|||
|
|
color: rgba(0, 0, 0, 0.85) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.ant-pro-global-header-index-right {
|
|||
|
|
margin-right: 8px;
|
|||
|
|
|
|||
|
|
&.ant-pro-global-header-index-dark {
|
|||
|
|
.ant-pro-global-header-index-action {
|
|||
|
|
color: hsl(0deg 0% 100% / 85%);
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
background: #1890ff;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 暗黑主题下的头像下拉菜单 */
|
|||
|
|
.ant-pro-account-avatar {
|
|||
|
|
color: rgba(255, 255, 255, 0.85);
|
|||
|
|
|
|||
|
|
.antd-pro-global-header-index-avatar {
|
|||
|
|
background: rgba(255, 255, 255, 0.25) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
span {
|
|||
|
|
color: rgba(255, 255, 255, 0.85);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 语言选择器和设置按钮 */
|
|||
|
|
.ant-pro-drop-down {
|
|||
|
|
color: rgba(255, 255, 255, 0.85);
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
color: #1890ff;
|
|||
|
|
background: rgba(255, 255, 255, 0.08);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 浅色主题下的头像样式 */
|
|||
|
|
.ant-pro-account-avatar {
|
|||
|
|
.antd-pro-global-header-index-avatar {
|
|||
|
|
margin: ~'calc((@{layout-header-height} - 24px) / 2)' 0;
|
|||
|
|
margin-right: 8px;
|
|||
|
|
color: @primary-color;
|
|||
|
|
vertical-align: top;
|
|||
|
|
background: rgb(255 255 255 / 85%);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.menu {
|
|||
|
|
.anticon {
|
|||
|
|
margin-right: 8px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.ant-dropdown-menu-item {
|
|||
|
|
min-width: 100px;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 暗黑主题下的下拉菜单样式 */
|
|||
|
|
:global {
|
|||
|
|
.ant-pro-layout.dark,
|
|||
|
|
.ant-pro-layout.realdark {
|
|||
|
|
.ant-dropdown-menu {
|
|||
|
|
background: #1f1f1f !important;
|
|||
|
|
border: 1px solid #303030 !important;
|
|||
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
|
|||
|
|
|
|||
|
|
.ant-dropdown-menu-item {
|
|||
|
|
color: rgba(255, 255, 255, 0.85) !important;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
background: #262626 !important;
|
|||
|
|
color: #1890ff !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.ant-dropdown-menu-item-divider {
|
|||
|
|
background: #303030 !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 手机端适配 */
|
|||
|
|
@media (max-width: 768px) {
|
|||
|
|
:global {
|
|||
|
|
/* 使用更具体的选择器强制覆盖 */
|
|||
|
|
.ant-layout-header .ant-pro-global-header .ant-pro-global-header-logo,
|
|||
|
|
.ant-pro-layout .ant-layout-header .ant-pro-global-header .ant-pro-global-header-logo,
|
|||
|
|
body .ant-layout-header .ant-pro-global-header .ant-pro-global-header-logo,
|
|||
|
|
.ant-pro-global-header-logo {
|
|||
|
|
padding: 0 !important;
|
|||
|
|
padding-left: 0 !important;
|
|||
|
|
padding-right: 0 !important;
|
|||
|
|
padding-top: 0 !important;
|
|||
|
|
padding-bottom: 0 !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|