如何在蚂蚁设计组件中使用css-in-js?

时间:2019-09-23 18:15:58

标签: css reactjs antd jss css-in-js

实际上,一个ReactJS Web应用程序继承了我的应用程序,并由CRAAnt-Design进行了初始化。我只是使用Material-UI,而没有使用和设计的经验。

Material-UI处理样式的方式很棒,但是AntD使用less处理CSS。我很难像古代人一样工作。

我进行了很多搜索,但没有找到在Ant Design项目中使用JSS [ JS中的CSS ]的方法。

我的意思是这样:

import { AntDCompo } from 'antd';
import { Styled , injectStyled } from 'react-jss';

const MyCompo = ({ classes }) => (
  <AntDCompo className={classes.container} />
);

const styles = Styled({
  container: {
    color: '#f00',
  },
});

export default injectStyled(styles)(MyCompo);

但是在Ant Design中,文档只是像古老的东西一样声明:

import { AntDCompo } from 'antd';
import styles from 'myCompoStyles.less';

const MyCompo = () => (
  <AntDCompo className={styles.container} />
);

我该怎么做?还是可以将JSS用于AndD组件?

1 个答案:

答案 0 :(得分:0)

就像每个CSS-in-JS一样,您可以定位普通的CSS属性:

import { Icon } from 'antd';
const DarkHoverStyle = styled(Icon)`
  color: gray;
  :hover {
    color: palevioletred;
  }
`;

在某些情况下,您可能需要定位特定的antd CSS类

const GlobalStyle = createGlobalStyle`
  .ant-tooltip-inner {
    background-color: palevioletred;
    color: black;
  }
`;

在下一个示例中,我们设置了Icon的悬停颜色和Tooltip组件的默认样式(更改了默认的黑色背景):

export default function App() {
  return (
    <FlexBox>
      <GlobalStyle />
      <Tooltip title="Github Icon">
        <DarkHoverStyle type="github" style={{ fontSize: 100 }} />
      </Tooltip>
    </FlexBox>
  );
}

Edit react-antd-styled-template