Files
DinQuant/quantdinger_vue/src/layouts/BasicLayout.less
T
TIANHE f43312a858 creat
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2025-12-29 03:06:49 +08:00

424 lines
11 KiB
Plaintext
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.
@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;
}
}
}