mirror of
https://github.com/antd-tiny-vue/antd-tiny-vue.git
synced 2024-11-10 17:49:18 +08:00
81 lines
1.8 KiB
TypeScript
81 lines
1.8 KiB
TypeScript
|
import type { GenerateStyle } from '../../theme/internal'
|
||
|
import type { ButtonToken } from '.'
|
||
|
|
||
|
const genButtonBorderStyle = (buttonTypeCls: string, borderColor: string) => ({
|
||
|
// Border
|
||
|
[`> span, > ${buttonTypeCls}`]: {
|
||
|
'&:not(:last-child)': {
|
||
|
[`&, & > ${buttonTypeCls}`]: {
|
||
|
'&:not(:disabled)': {
|
||
|
borderInlineEndColor: borderColor
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
'&:not(:first-child)': {
|
||
|
[`&, & > ${buttonTypeCls}`]: {
|
||
|
'&:not(:disabled)': {
|
||
|
borderInlineStartColor: borderColor
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
const genGroupStyle: GenerateStyle<ButtonToken> = token => {
|
||
|
const { componentCls, fontSize, lineWidth, colorPrimaryHover, colorErrorHover } = token
|
||
|
|
||
|
return {
|
||
|
[`${componentCls}-group`]: [
|
||
|
{
|
||
|
position: 'relative',
|
||
|
display: 'inline-flex',
|
||
|
|
||
|
// Border
|
||
|
[`> span, > ${componentCls}`]: {
|
||
|
'&:not(:last-child)': {
|
||
|
[`&, & > ${componentCls}`]: {
|
||
|
borderStartEndRadius: 0,
|
||
|
borderEndEndRadius: 0
|
||
|
}
|
||
|
},
|
||
|
|
||
|
'&:not(:first-child)': {
|
||
|
marginInlineStart: -lineWidth,
|
||
|
|
||
|
[`&, & > ${componentCls}`]: {
|
||
|
borderStartStartRadius: 0,
|
||
|
borderEndStartRadius: 0
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
[componentCls]: {
|
||
|
position: 'relative',
|
||
|
zIndex: 1,
|
||
|
|
||
|
[`&:hover,
|
||
|
&:focus,
|
||
|
&:active`]: {
|
||
|
zIndex: 2
|
||
|
},
|
||
|
|
||
|
'&[disabled]': {
|
||
|
zIndex: 0
|
||
|
}
|
||
|
},
|
||
|
|
||
|
[`${componentCls}-icon-only`]: {
|
||
|
fontSize
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// Border Color
|
||
|
genButtonBorderStyle(`${componentCls}-primary`, colorPrimaryHover),
|
||
|
genButtonBorderStyle(`${componentCls}-danger`, colorErrorHover)
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default genGroupStyle
|