220 lines
5.1 KiB
JavaScript
220 lines
5.1 KiB
JavaScript
/*
|
|
.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {
|
|
margin-bottom: @headingMarginBottom;
|
|
color: @headingColor;
|
|
font-weight: @fontWeight;
|
|
fontSize: @fontSize;
|
|
line-height: @lineHeight;
|
|
}
|
|
*/
|
|
import { gold } from '@ant-design/colors';
|
|
import { operationUnit } from '../../style';
|
|
// eslint-disable-next-line import/prefer-default-export
|
|
const getTitleStyle = (fontSize, lineHeight, color, token) => {
|
|
const {
|
|
titleMarginBottom,
|
|
fontWeightStrong
|
|
} = token;
|
|
return {
|
|
marginBottom: titleMarginBottom,
|
|
color,
|
|
fontWeight: fontWeightStrong,
|
|
fontSize,
|
|
lineHeight
|
|
};
|
|
};
|
|
// eslint-disable-next-line import/prefer-default-export
|
|
export const getTitleStyles = token => {
|
|
const headings = [1, 2, 3, 4, 5];
|
|
const styles = {};
|
|
headings.forEach(headingLevel => {
|
|
styles[`
|
|
h${headingLevel}&,
|
|
div&-h${headingLevel},
|
|
div&-h${headingLevel} > textarea,
|
|
h${headingLevel}
|
|
`] = getTitleStyle(token[`fontSizeHeading${headingLevel}`], token[`lineHeightHeading${headingLevel}`], token.colorTextHeading, token);
|
|
});
|
|
return styles;
|
|
};
|
|
export const getLinkStyles = token => {
|
|
const {
|
|
componentCls
|
|
} = token;
|
|
return {
|
|
'a&, a': Object.assign(Object.assign({}, operationUnit(token)), {
|
|
textDecoration: token.linkDecoration,
|
|
'&:active, &:hover': {
|
|
textDecoration: token.linkHoverDecoration
|
|
},
|
|
[`&[disabled], &${componentCls}-disabled`]: {
|
|
color: token.colorTextDisabled,
|
|
cursor: 'not-allowed',
|
|
'&:active, &:hover': {
|
|
color: token.colorTextDisabled
|
|
},
|
|
'&:active': {
|
|
pointerEvents: 'none'
|
|
}
|
|
}
|
|
})
|
|
};
|
|
};
|
|
export const getResetStyles = token => ({
|
|
code: {
|
|
margin: '0 0.2em',
|
|
paddingInline: '0.4em',
|
|
paddingBlock: '0.2em 0.1em',
|
|
fontSize: '85%',
|
|
fontFamily: token.fontFamilyCode,
|
|
background: 'rgba(150, 150, 150, 0.1)',
|
|
border: '1px solid rgba(100, 100, 100, 0.2)',
|
|
borderRadius: 3
|
|
},
|
|
kbd: {
|
|
margin: '0 0.2em',
|
|
paddingInline: '0.4em',
|
|
paddingBlock: '0.15em 0.1em',
|
|
fontSize: '90%',
|
|
fontFamily: token.fontFamilyCode,
|
|
background: 'rgba(150, 150, 150, 0.06)',
|
|
border: '1px solid rgba(100, 100, 100, 0.2)',
|
|
borderBottomWidth: 2,
|
|
borderRadius: 3
|
|
},
|
|
mark: {
|
|
padding: 0,
|
|
// FIXME hardcode in v4
|
|
backgroundColor: gold[2]
|
|
},
|
|
'u, ins': {
|
|
textDecoration: 'underline',
|
|
textDecorationSkipInk: 'auto'
|
|
},
|
|
's, del': {
|
|
textDecoration: 'line-through'
|
|
},
|
|
strong: {
|
|
fontWeight: 600
|
|
},
|
|
// list
|
|
'ul, ol': {
|
|
marginInline: 0,
|
|
marginBlock: '0 1em',
|
|
padding: 0,
|
|
li: {
|
|
marginInline: '20px 0',
|
|
marginBlock: 0,
|
|
paddingInline: '4px 0',
|
|
paddingBlock: 0
|
|
}
|
|
},
|
|
ul: {
|
|
listStyleType: 'circle',
|
|
ul: {
|
|
listStyleType: 'disc'
|
|
}
|
|
},
|
|
ol: {
|
|
listStyleType: 'decimal'
|
|
},
|
|
// pre & block
|
|
'pre, blockquote': {
|
|
margin: '1em 0'
|
|
},
|
|
pre: {
|
|
padding: '0.4em 0.6em',
|
|
whiteSpace: 'pre-wrap',
|
|
wordWrap: 'break-word',
|
|
background: 'rgba(150, 150, 150, 0.1)',
|
|
border: '1px solid rgba(100, 100, 100, 0.2)',
|
|
borderRadius: 3,
|
|
fontFamily: token.fontFamilyCode,
|
|
// Compatible for marked
|
|
code: {
|
|
display: 'inline',
|
|
margin: 0,
|
|
padding: 0,
|
|
fontSize: 'inherit',
|
|
fontFamily: 'inherit',
|
|
background: 'transparent',
|
|
border: 0
|
|
}
|
|
},
|
|
blockquote: {
|
|
paddingInline: '0.6em 0',
|
|
paddingBlock: 0,
|
|
borderInlineStart: '4px solid rgba(100, 100, 100, 0.2)',
|
|
opacity: 0.85
|
|
}
|
|
});
|
|
export const getEditableStyles = token => {
|
|
const {
|
|
componentCls,
|
|
paddingSM
|
|
} = token;
|
|
const inputShift = paddingSM;
|
|
return {
|
|
'&-edit-content': {
|
|
position: 'relative',
|
|
'div&': {
|
|
insetInlineStart: -token.paddingSM,
|
|
marginTop: -inputShift,
|
|
marginBottom: `calc(1em - ${inputShift}px)`
|
|
},
|
|
[`${componentCls}-edit-content-confirm`]: {
|
|
position: 'absolute',
|
|
insetInlineEnd: token.marginXS + 2,
|
|
insetBlockEnd: token.marginXS,
|
|
color: token.colorTextDescription,
|
|
// default style
|
|
fontWeight: 'normal',
|
|
fontSize: token.fontSize,
|
|
fontStyle: 'normal',
|
|
pointerEvents: 'none'
|
|
},
|
|
textarea: {
|
|
margin: '0!important',
|
|
// Fix Editable Textarea flash in Firefox
|
|
MozTransition: 'none',
|
|
height: '1em'
|
|
}
|
|
}
|
|
};
|
|
};
|
|
export const getCopyableStyles = token => ({
|
|
'&-copy-success': {
|
|
[`
|
|
&,
|
|
&:hover,
|
|
&:focus`]: {
|
|
color: token.colorSuccess
|
|
}
|
|
}
|
|
});
|
|
export const getEllipsisStyles = () => ({
|
|
[`
|
|
a&-ellipsis,
|
|
span&-ellipsis
|
|
`]: {
|
|
display: 'inline-block',
|
|
maxWidth: '100%'
|
|
},
|
|
'&-single-line': {
|
|
whiteSpace: 'nowrap'
|
|
},
|
|
'&-ellipsis-single-line': {
|
|
overflow: 'hidden',
|
|
textOverflow: 'ellipsis',
|
|
// https://blog.csdn.net/iefreer/article/details/50421025
|
|
'a&, span&': {
|
|
verticalAlign: 'bottom'
|
|
}
|
|
},
|
|
'&-ellipsis-multiple-line': {
|
|
display: '-webkit-box',
|
|
overflow: 'hidden',
|
|
WebkitLineClamp: 3,
|
|
WebkitBoxOrient: 'vertical'
|
|
}
|
|
}); |