Skip to content

Commit

Permalink
fix(pro:layout): dark theme overlay menu style error (#1771)
Browse files Browse the repository at this point in the history
  • Loading branch information
sallerli1 committed Dec 11, 2023
1 parent c099b1a commit 98c6d98
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 15 deletions.
6 changes: 0 additions & 6 deletions packages/components/menu/style/mixins.less
Expand Up @@ -120,11 +120,5 @@
border-bottom-color: transparent;
}
}

&-dark.@{menu-prefix}-inline,
&-dark.@{menu-prefix}-vertical,
&-dark.@{menu-prefix}-horizontal {
box-shadow: none;
}
}
}
38 changes: 38 additions & 0 deletions packages/components/menu/theme/dark.ts
@@ -0,0 +1,38 @@
/**
* @license
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/IDuxFE/idux/blob/main/LICENSE
*/

import type { CertainThemeTokens, GlobalThemeTokens, ThemeTokenAlgorithms } from '@idux/components/theme'

import { getDefaultThemeTokens } from './default'
export function getDarkThemeTokens(
tokens: GlobalThemeTokens,
algorithms: ThemeTokenAlgorithms,
): CertainThemeTokens<'menu'> {
const defaultTokens = getDefaultThemeTokens(tokens, algorithms)

return {
...defaultTokens,

darkItemColor: defaultTokens.itemColor,
darkItemColorHover: defaultTokens.itemColorHover,
darkItemColorActive: defaultTokens.itemColorActive,
darkItemColorDisabled: defaultTokens.itemColorDisabled,
darkItemGroupColor: defaultTokens.itemGroupColor,
darkItemFontWeightActive: defaultTokens.darkItemFontWeightActive,

darkItemBg: defaultTokens.itemBg,
darkItemBgHover: defaultTokens.itemBgHover,
darkItemBgActive: defaultTokens.itemBgActive,
darkItemBgDisabled: defaultTokens.itemBgDisabled,
darkItemGroupBg: defaultTokens.itemGroupBg,

darkHorizontalItemColorHover: defaultTokens.horizontalItemColorHover,
darkHorizontalItemColorActive: defaultTokens.horizontalItemColorActive,
darkHorizontalItemBgHover: defaultTokens.horizontalItemBgHover,
darkHorizontalItemBgActive: defaultTokens.horizontalItemBgActive,
}
}
5 changes: 2 additions & 3 deletions packages/components/menu/theme/index.ts
Expand Up @@ -7,12 +7,11 @@

import type { TokenGetter } from '@idux/components/theme'

import { getDarkThemeTokens } from './dark'
import { getDefaultThemeTokens } from './default'

export const getThemeTokens: TokenGetter<'menu'> = (tokens, presetTheme, algorithms) => {
return presetTheme === 'default'
? getDefaultThemeTokens(tokens, algorithms)
: getDefaultThemeTokens(tokens, algorithms)
return presetTheme === 'default' ? getDefaultThemeTokens(tokens, algorithms) : getDarkThemeTokens(tokens, algorithms)
}

export type { MenuThemeTokens } from './tokens'
4 changes: 3 additions & 1 deletion packages/pro/layout/src/contents/Header.tsx
Expand Up @@ -12,6 +12,7 @@ import { isObject } from 'lodash-es'
import { callEmit } from '@idux/cdk/utils'
import { IxLayoutHeader } from '@idux/components/layout'
import { IxMenu, type MenuClickOptions, type MenuProps } from '@idux/components/menu'
import { useThemeToken } from '@idux/pro/theme'

import Logo from './Logo'
import { proLayoutToken } from '../token'
Expand All @@ -21,6 +22,7 @@ export default defineComponent({
name: 'IxProLayoutHeader',
setup(_, { slots }) {
const { props, mergedPrefixCls, setActiveKey, headerMenus, activeHeaderKey } = inject(proLayoutToken)!
const { hashId } = useThemeToken('proLayout')

const theme = computed(() => {
const { theme } = props
Expand Down Expand Up @@ -56,7 +58,7 @@ export default defineComponent({
const prefixCls = `${mergedPrefixCls.value}-header`

const innerMenuProps: MenuProps = {
overlayClassName: `${prefixCls}-menu-overlay`,
overlayClassName: `${prefixCls}-menu-overlay ${hashId.value}`,
dataSource: headerMenus.value,
selectedKeys: menuSelectedKeys.value,
mode: 'horizontal',
Expand Down
4 changes: 3 additions & 1 deletion packages/pro/layout/src/contents/Sider.tsx
Expand Up @@ -12,6 +12,7 @@ import { isObject } from 'lodash-es'
import { type VKey, callEmit, useState } from '@idux/cdk/utils'
import { IxLayoutSider, type LayoutSiderProps } from '@idux/components/layout'
import { IxMenu, type MenuClickOptions, type MenuData, type MenuProps } from '@idux/components/menu'
import { useThemeToken } from '@idux/pro/theme'

import Logo from './Logo'
import { proLayoutToken } from '../token'
Expand All @@ -22,6 +23,7 @@ export default defineComponent({
setup(_, { slots }) {
const { props, mergedPrefixCls, activeKey, setActiveKey, activePaths, siderMenus, collapsed, setCollapsed } =
inject(proLayoutToken)!
const { hashId } = useThemeToken('proLayout')

const { expandedKeys, setExpandedKeys } = useExpandedKeys(activePaths, siderMenus)

Expand Down Expand Up @@ -55,7 +57,7 @@ export default defineComponent({
const siderProps = mergeProps(innerSiderProps, props.sider!) as LayoutSiderProps

const innerMenuProps: MenuProps = {
overlayClassName: `${prefixCls}-menu-overlay`,
overlayClassName: `${prefixCls}-menu-overlay ${hashId.value}`,
collapsed: siderProps.collapsed,
dataSource: siderMenus.value,
expandedKeys: expandedKeys.value,
Expand Down
12 changes: 10 additions & 2 deletions packages/pro/layout/style/dark.less
@@ -1,5 +1,5 @@
.@{pro-layout-prefix} {
.darkMenuThemeStyle({
@tokens: {
darkItemColor: var(--ix-pro-layout-dark-menu-item-color);
darkItemColorHover: var(--ix-pro-layout-dark-menu-item-color-hover);
darkItemColorActive: var(--ix-pro-layout-dark-menu-item-color-active);
Expand All @@ -17,7 +17,15 @@
darkHorizontalItemColorActive: var(--ix-pro-layout-dark-menu-horizontal-item-color-active);
darkHorizontalItemBgHover: var(--ix-pro-layout-dark-menu-horizontal-item-bg-hover);
darkHorizontalItemBgActive: var(--ix-pro-layout-dark-menu-horizontal-item-bg-active);
});
};

.darkMenuThemeStyle(@tokens);
&-sider-menu-overlay {
.darkMenuThemeStyle(@tokens);
}
&-header-menu-overlay {
.darkMenuThemeStyle(@tokens);
}

&-header-dark,
&-sider-dark {
Expand Down
12 changes: 10 additions & 2 deletions packages/pro/layout/style/light.less
@@ -1,5 +1,5 @@
.@{pro-layout-prefix} {
.menuThemeStyle({
@tokens: {
itemColor: var(--ix-pro-layout-menu-item-color);
itemColorHover: var(--ix-pro-layout-menu-item-color-hover);
itemColorActive: var(--ix-pro-layout-menu-item-color-active);
Expand All @@ -16,7 +16,15 @@
horizontalItemColorActive: var(--ix-pro-layout-menu-horizontal-item-color-active);
horizontalItemBgHover: var(--ix-pro-layout-menu-horizontal-item-bg-hover);
horizontalItemBgActive: var(--ix-pro-layout-menu-horizontal-item-bg-active);
});
};

.menuThemeStyle(@tokens);
&-sider-menu-overlay {
.menuThemeStyle(@tokens);
}
&-header-menu-overlay {
.menuThemeStyle(@tokens);
}

background-color: var(--ix-pro-layout-content-bg-color);
transition: background-color var(--ix-motion-duration-slow);
Expand Down

0 comments on commit 98c6d98

Please sign in to comment.