ant-design/components/tree/style/directory.ts
𝑾𝒖𝒙𝒉 fb52fbbfd0
style: Improve style z-order to fix some errors (#51448)
Co-authored-by: IsKaros <IsKaros@users.noreply.github.com>
Co-authored-by: ​ <​>
2024-11-18 11:03:58 +08:00

63 lines
1.5 KiB
TypeScript

import type { CSSObject } from '@ant-design/cssinjs';
import type { TreeToken } from '.';
// ============================ Directory =============================
export const genDirectoryStyle = ({
treeCls,
treeNodeCls,
directoryNodeSelectedBg,
directoryNodeSelectedColor,
motionDurationMid,
borderRadius,
controlItemBgHover,
}: TreeToken): CSSObject => ({
[`${treeCls}${treeCls}-directory ${treeNodeCls}`]: {
// >>> Title
[`${treeCls}-node-content-wrapper`]: {
position: 'static',
[`> *:not(${treeCls}-drop-indicator)`]: {
position: 'relative',
},
'&:hover': {
background: 'transparent',
},
// Expand interactive area to whole line
'&:before': {
position: 'absolute',
inset: 0,
transition: `background-color ${motionDurationMid}`,
content: '""',
borderRadius,
},
'&:hover:before': {
background: controlItemBgHover,
},
},
[`${treeCls}-switcher, ${treeCls}-checkbox, ${treeCls}-draggable-icon`]: {
zIndex: 1,
},
// ============= Selected =============
'&-selected': {
[`${treeCls}-switcher, ${treeCls}-draggable-icon`]: {
color: directoryNodeSelectedColor,
},
// >>> Title
[`${treeCls}-node-content-wrapper`]: {
color: directoryNodeSelectedColor,
background: 'transparent',
'&:before, &:hover:before': {
background: directoryNodeSelectedBg,
},
},
},
},
});