ant-design/components/table/style/fixed.tsx
afc163 9b95a30ec9
refactor: Table to CSS-IN-JS (#35584)
* style: add basic styles of table

* style: add basic border styles of table

* style: add more styles of table

* style: add more styles of table

* style: add pagination and summary styles

* add more styles

* style: add cell-ellipsis styles

* style: add Radius style

* style: add basic styles of table

* style: add basic border styles of table

* style: add more styles of table

* style: add more styles of table

* style: add pagination and summary styles

* add more styles

* style: add cell-ellipsis styles

* style: add Radius style

* style: add sorter style

* style: add sorter style

* style: add filter style

* style: add filter style

* style: add filter style

* style: fix filter and sort style

* style: fix bordered style

* style: fix bordered style

* style: fix bordered style

* style: add size style

* style: fix size style

* style: add selection style

* style: format code

* style: add sticky code

* style: add expand code

* style: add expand code

* style: add expand code

* style: add fixed code

* add fixed style

* style: fix diff place

* style: use number as px string

* chore: improve function name

* chore: use token

* style: rtl styles

* chore: fix marigin and padding logical properties

* fix: rtl styles

* fix: table filter dropdown style

* chore: remove useStyle

* chore: revert classNames

* fix: test case

* fix shadow in rtl

* Apply suggestions from code review

* chore: sub filter tree

* style: fix tree dropdown padding

Co-authored-by: zombiej <smith3816@gmail.com>
2022-05-31 10:10:35 +08:00

120 lines
3.1 KiB
TypeScript

import type { CSSObject } from '@ant-design/cssinjs';
import { TinyColor } from '@ctrl/tinycolor';
import type { GenerateStyle } from '../../_util/theme';
import type { TableToken } from './index';
const genFixedStyle: GenerateStyle<TableToken, CSSObject> = token => {
const { componentCls } = token;
// FIXME
const shadowColor = new TinyColor('rgba(0, 0, 0, 0.15)').darken(5).toRgbString();
return {
[`${componentCls}-wrapper`]: {
[`
${componentCls}-cell-fix-left,
${componentCls}-cell-fix-right
`]: {
position: 'sticky !important' as 'sticky',
zIndex: token.zIndexTableFixed,
background: token.tableBg,
},
[`
${componentCls}-cell-fix-left-first::after,
${componentCls}-cell-fix-left-last::after
`]: {
position: 'absolute',
top: 0,
right: {
_skip_check_: true,
value: 0,
},
bottom: -1,
width: 30,
transform: 'translateX(100%)',
transition: `box-shadow ${token.motionDurationSlow}`,
content: '""',
pointerEvents: 'none',
},
[`
${componentCls}-cell-fix-right-first::after,
${componentCls}-cell-fix-right-last::after
`]: {
position: 'absolute',
top: 0,
bottom: -1,
left: {
_skip_check_: true,
value: 0,
},
width: 30,
transform: 'translateX(-100%)',
transition: `box-shadow ${token.motionDurationSlow}`,
content: '""',
pointerEvents: 'none',
},
[`${componentCls}-container`]: {
'&::before, &::after': {
position: 'absolute',
top: 0,
bottom: 0,
zIndex: 1,
width: 30,
transition: `box-shadow ${token.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;