ant-design / antd-style

css-in-js library with antd v5 token system
https://ant-design.github.io/antd-style/
MIT License
189 stars 29 forks source link

🧐[问题] css方案 不支持变量嵌套? #42

Closed KeithMo0425 closed 1 year ago

KeithMo0425 commented 1 year ago

🐛 bug 描述

class变量 嵌套生成的css会合并成一个class

.button-wrapper {
  margin-top: 24px;

  ${buttonClass} {
    font-size: 20px;
  }
}

buttonClass 的 样式 会合并到 .button-wrapper里

💻 复现代码

const useStyles = createStyles(({ css }) => {
  const buttonClass = css`
    background-color: #3498db;
    border: none;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    font-size: 16px;
    padding: 12px 24px;

    &:hover {
      background-color: #2980b9;
    }
  `

  const containerClass = css`
    display: flex;
    flex-direction: column;
    align-items: center;

    .button-wrapper {
      margin-top: 24px;

      ${buttonClass} {
        font-size: 20px;
      }
    }
  `
  return {
    buttonClass,
    containerClass,
  }
})

function MyComponent() {
 const { styles } = useStyles()

  return (
    <div className={styles.containerClass}>
        <p>Some content here</p>
        <div className="button-wrapper">
          <button className={styles.buttonClass}>Click me</button>
        </div>
      </div>
  );
}

image

© 版本信息

arvinxx commented 1 year ago

Css方法默认不生成className,你需要这种级联的话,在需要classname的地方加个cx?

KeithMo0425 commented 1 year ago

Css方法默认不生成className,你需要这种级联的话,在需要classname的地方加个cx?

感谢回复,现在已经是这么处理了