ant-design/components/table/style/fixed.ts
lijianan a1f77f3694
feat: Table support cssVar (#45856)
* feat: Table support cssVar

* fix: fix

* fix: fix

* Update check-cssinjs.tsx

Signed-off-by: lijianan <574980606@qq.com>

* Update components/table/style/fixed.ts

Co-authored-by: MadCcc <madccc@foxmail.com>
Signed-off-by: lijianan <574980606@qq.com>

* fix: fix

* fix: fix

* fix: fix

* fix: fix

* fix: fix

* fix: fix

* fix: fix

* fix: fix

* feat: optimize token

* chore: update

---------

Signed-off-by: lijianan <574980606@qq.com>
Co-authored-by: MadCcc <madccc@foxmail.com>
Co-authored-by: MadCcc <1075746765@qq.com>
2023-11-17 13:46:41 +08:00

135 lines
3.4 KiB
TypeScript

import type { CSSObject } from '@ant-design/cssinjs';
import type { GenerateStyle } from '../../theme/internal';
import type { TableToken } from './index';
const genFixedStyle: GenerateStyle<TableToken, CSSObject> = (token) => {
const {
componentCls,
lineWidth,
colorSplit,
motionDurationSlow,
zIndexTableFixed,
tableBg,
zIndexTableSticky,
calc,
} = token;
const shadowColor = colorSplit;
// Follow style is magic of shadow which should not follow token:
return {
[`${componentCls}-wrapper`]: {
[`
${componentCls}-cell-fix-left,
${componentCls}-cell-fix-right
`]: {
position: 'sticky !important' as 'sticky',
zIndex: zIndexTableFixed,
background: tableBg,
},
[`
${componentCls}-cell-fix-left-first::after,
${componentCls}-cell-fix-left-last::after
`]: {
position: 'absolute',
top: 0,
right: {
_skip_check_: true,
value: 0,
},
bottom: calc(lineWidth).mul(-1).equal(),
width: 30,
transform: 'translateX(100%)',
transition: `box-shadow ${motionDurationSlow}`,
content: '""',
pointerEvents: 'none',
},
[`${componentCls}-cell-fix-left-all::after`]: {
display: 'none',
},
[`
${componentCls}-cell-fix-right-first::after,
${componentCls}-cell-fix-right-last::after
`]: {
position: 'absolute',
top: 0,
bottom: calc(lineWidth).mul(-1).equal(),
left: {
_skip_check_: true,
value: 0,
},
width: 30,
transform: 'translateX(-100%)',
transition: `box-shadow ${motionDurationSlow}`,
content: '""',
pointerEvents: 'none',
},
[`${componentCls}-container`]: {
'&::before, &::after': {
position: 'absolute',
top: 0,
bottom: 0,
zIndex: calc(zIndexTableSticky).add(1).equal({ unit: false }),
width: 30,
transition: `box-shadow ${motionDurationSlow}`,
content: '""',
pointerEvents: 'none',
},
'&::before': {
insetInlineStart: 0,
},
'&::after': {
insetInlineEnd: 0,
},
},
[`${componentCls}-ping-left`]: {
[`&:not(${componentCls}-has-fix-left) ${componentCls}-container`]: {
position: 'relative',
'&::before': {
boxShadow: `inset 10px 0 8px -8px ${shadowColor}`,
},
},
[`
${componentCls}-cell-fix-left-first::after,
${componentCls}-cell-fix-left-last::after
`]: {
boxShadow: `inset 10px 0 8px -8px ${shadowColor}`,
},
[`${componentCls}-cell-fix-left-last::before`]: {
backgroundColor: 'transparent !important',
},
},
[`${componentCls}-ping-right`]: {
[`&:not(${componentCls}-has-fix-right) ${componentCls}-container`]: {
position: 'relative',
'&::after': {
boxShadow: `inset -10px 0 8px -8px ${shadowColor}`,
},
},
[`
${componentCls}-cell-fix-right-first::after,
${componentCls}-cell-fix-right-last::after
`]: {
boxShadow: `inset -10px 0 8px -8px ${shadowColor}`,
},
},
},
};
};
export default genFixedStyle;