Files
mayfly-go/frontend/src/theme/element.scss
2025-08-19 19:44:14 +08:00

296 lines
7.2 KiB
SCSS

@use 'mixins/index' as mixins;
/* NavMenu 导航菜单
------------------------------- */
$radius: 6px;
$menuHeight: 42px !important;
$spacing: 8px;
// 鼠标 hover 时颜色
.el-menu-hover-bg-color {
background-color: #f0f8ff !important; // 更舒适的悬停背景色
}
// 默认样式修改
.el-menu {
border-right: none !important;
width: 220px;
}
.el-menu-item,
.el-sub-menu__title {
height: $menuHeight;
line-height: $menuHeight;
border-radius: $radius;
color: #5a5a5a; // 统一调整菜单字体颜色为更舒适的深灰色
transition: all 0.2s ease;
// 第三方图标字体间距/大小设置
.icon,
.fa {
@include mixins.generalIcon;
}
}
.el-menu-item {
margin: 2px $spacing;
width: calc(100% - #{2 * $spacing});
}
// 修复点击左侧菜单折叠再展开时,宽度不跟随问题
.el-menu--collapse {
width: 64px !important;
// 菜单收起时,图标不居中问题
.el-menu-item,
.el-sub-menu__title {
margin: 4px 0;
width: auto;
.iconfont,
.fa {
margin-right: 0 !important;
}
}
.el-sub-menu__title {
padding-right: 0 !important;
}
}
// 外部链接时
.el-menu-item a,
.el-menu-item a:hover,
.el-menu-item i,
.el-sub-menu__title i {
color: inherit;
text-decoration: none;
}
// 水平菜单、横向菜单高亮 背景色,鼠标 hover 时,有子级菜单的背景色
.el-menu-item.is-active,
.el-sub-menu.is-active>.el-sub-menu__title,
.el-sub-menu:not(.is-opened):hover .el-sub-menu__title {
@extend .el-menu-hover-bg-color;
color: #409eff;
}
.el-menu-item:hover {
@extend .el-menu-hover-bg-color;
transform: translateX(2px);
}
// 确保展开的子菜单项在hover时也使用统一的样式
.el-sub-menu.is-opened .el-sub-menu__title:hover {
@extend .el-menu-hover-bg-color;
}
// 只有直接激活的菜单项才应用高亮样式
.el-menu-item.is-active {
color: #409eff !important;
}
// 只有当前路由匹配的菜单项才应用高亮样式
.el-menu-item.is-active:not(.is-disabled) {
color: #409eff !important;
}
// 重置所有子菜单标题的默认样式,确保与普通菜单项一致
.el-sub-menu .el-sub-menu__title {
color: #5a5a5a !important;
}
// 只有真正激活且未展开的子菜单才应用高亮样式
.el-sub-menu.is-active:not(.is-opened)>.el-sub-menu__title {
color: #409eff !important;
}
// 展开的子菜单保持默认样式
.el-sub-menu.is-active.is-opened>.el-sub-menu__title {
background-color: unset !important;
color: #5a5a5a !important;
}
// 水平菜单、横向菜单折叠 a 标签
.el-popper.is-dark a {
color: var(--el-color-white) !important;
text-decoration: none;
}
// 水平菜单、横向菜单折叠背景色
.el-popper.is-pure.is-light {
// 水平菜单
.el-menu--vertical {
background: #fafafa; // 更舒适的背景色
.el-sub-menu.is-active .el-sub-menu__title {
color: var(--el-menu-active-color);
}
}
// 横向菜单
.el-menu--horizontal {
.el-menu-item,
.el-sub-menu {
color: var(--bg-topBarColor);
}
}
}
// 横向菜单(经典、横向)布局
.el-menu.el-menu--horizontal {
border-bottom: none !important;
width: 100% !important;
.el-menu-item,
.el-sub-menu__title {
color: var(--bg-topBarColor);
padding: 0 10px !important; // 减小内边距
border-bottom: none !important;
}
// 为水平菜单的子菜单项正确处理箭头图标位置
.el-sub-menu {
.el-sub-menu__title {
padding-right: 22px !important; // 调整箭头图标空间
border-bottom: none !important;
}
// 确保水平菜单的箭头图标正确显示在右侧
.el-sub-menu__icon-arrow {
right: 8px !important;
margin-top: -6px !important;
}
}
// 移除可能的伪元素下划线
.el-menu-item::after,
.el-sub-menu__title::after {
display: none !important;
}
}
// 暗黑模式下的菜单样式
html.dark {
.el-menu-hover-bg-color {
background-color: #2c2c2c !important; // 暗黑模式下的悬停背景色
}
.el-menu-item,
.el-sub-menu__title {
color: #b2b2b2; // 暗黑模式下的菜单字体颜色
}
.el-menu-item.is-active,
.el-menu-item.is-active:not(.is-disabled) {
color: #409eff !important;
}
// 重置所有子菜单标题的默认样式,确保与普通菜单项一致 - 暗黑模式
.el-sub-menu .el-sub-menu__title {
color: #b2b2b2 !important;
}
// 只有真正激活且未展开的子菜单才应用高亮样式 - 暗黑模式
.el-sub-menu.is-active:not(.is-opened)>.el-sub-menu__title {
color: #409eff !important;
}
// 展开的子菜单保持默认样式 - 暗黑模式
.el-sub-menu.is-active.is-opened>.el-sub-menu__title {
background-color: unset !important;
color: #b2b2b2 !important;
}
// 水平菜单、横向菜单折叠背景色 - 暗黑模式
.el-popper.is-pure.is-light {
// 水平菜单
.el-menu--vertical {
background: #1f1f1f; // 暗黑模式下的背景色
}
}
// 横向菜单(经典、横向)布局 - 暗黑模式
.el-menu.el-menu--horizontal {
.el-menu-item,
.el-sub-menu__title {
color: #b2b2b2; // 暗黑模式下的字体颜色
}
}
.el-menu {
background-color: #1f1f1f; // 暗黑模式下的菜单背景色
}
// 确保暗黑模式下展开的子菜单项在hover时也使用统一的样式
.el-sub-menu.is-opened .el-sub-menu__title:hover {
@extend .el-menu-hover-bg-color;
}
}
/* Tabs 标签页
------------------------------- */
/* Dropdown 下拉菜单
------------------------------- */
.el-dropdown-menu {
list-style: none !important;
/*修复 Dropdown 下拉菜单样式问题 2022.03.04*/
}
.el-dropdown-menu .el-dropdown-menu__item {
white-space: nowrap;
&:not(.is-disabled):hover {
background-color: var(--el-dropdown-menuItem-hover-fill);
color: var(--el-dropdown-menuItem-hover-color);
}
}
/* Card 卡片
------------------------------- */
.el-card__header {
padding: 15px 20px;
}
/* Breadcrumb 面包屑
------------------------------- */
.el-breadcrumb__inner a:hover,
.el-breadcrumb__inner.is-link:hover {
color: var(--el-color-primary);
}
.el-breadcrumb__inner a,
.el-breadcrumb__inner.is-link {
color: var(--bg-topBarColor);
font-weight: normal;
}
// el-tooltip使用自定义主题时的样式
.el-popper.is-customized {
/* Set padding to ensure the height is 32px */
// padding: 6px 12px;
background: linear-gradient(90deg, rgb(159, 229, 151), rgb(204, 229, 129));
}
.el-popper.is-customized .el-popper__arrow::before {
background: linear-gradient(45deg, #b2e68d, #bce689);
right: 0;
}
/* Dialog 对话框
------------------------------- */
.el-dialog {
border-radius: 6px;
/* 设置圆角 */
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
/* 添加轻微阴影效果 */
border: 1px solid var(--el-border-color-lighter);
}