antd
Version:
An enterprise-class UI design language and React components implementation
36 lines • 1.48 kB
JavaScript
import { genCompactItemStyle } from '../../style/compact-item';
import { genCompactItemVerticalStyle } from '../../style/compact-item-vertical';
import { genSubStyleComponent } from '../../theme/internal';
import { prepareComponentToken, prepareToken } from './token';
const genButtonCompactStyle = token => {
const {
componentCls,
colorPrimaryHover,
lineWidth,
calc
} = token;
const insetOffset = calc(lineWidth).mul(-1).equal();
const getCompactBorderStyle = vertical => {
const selector = `${componentCls}-compact${vertical ? '-vertical' : ''}-item${componentCls}-primary:not([disabled])`;
return {
[`${selector} + ${selector}::before`]: {
position: 'absolute',
top: vertical ? insetOffset : 0,
insetInlineStart: vertical ? 0 : insetOffset,
backgroundColor: colorPrimaryHover,
content: '""',
width: vertical ? '100%' : lineWidth,
height: vertical ? lineWidth : '100%'
}
};
};
// Special styles for Primary Button
return Object.assign(Object.assign({}, getCompactBorderStyle()), getCompactBorderStyle(true));
};
// ============================== Export ==============================
export default genSubStyleComponent(['Button', 'compact'], token => {
const buttonToken = prepareToken(token);
return [
// Space Compact
genCompactItemStyle(buttonToken), genCompactItemVerticalStyle(buttonToken), genButtonCompactStyle(buttonToken)];
}, prepareComponentToken);