din*_*ing 3 javascript css emotion styled-components
https://codesandbox.io/s/w242n1vonw
我有一个使用样式系统和反应情感的项目。
我设计了从基本 CSS 继承的标题,以实现可重用性。
有时我希望能够使用样式系统覆盖属性,例如:
<H1 color='green'/>
Run Code Online (Sandbox Code Playgroud)
当我的基本组件是:
const BaseHeading = ({ theme, ...props }) => css`
color: ${props.color ? props.color : theme.secondary};
`;
Run Code Online (Sandbox Code Playgroud)
但是,如果我想潜在地覆盖十个属性,我需要有条件地重用该道具。这是编写此类功能的惯用方式吗?
小智 9
您可以创建一个新的自定义样式组件,该组件使用 @emotion/styled 中的 styled 函数扩展不同的样式组件。假设您有一个名为 BoldText 的样式组件。
const BoldText = styled("div")`
font-size: 16px;
font-weight: bold;
`;
Run Code Online (Sandbox Code Playgroud)
您可以通过创建一个基于 BoldText 构建的新样式组件来覆盖 BoldText 的某些属性,该组件类似于基于 div 构建 BoldText 的方式。
import styled from "@emotion/styled";
import BoldText from "./BoldText"
const BigBoldText = styled(BoldText)`
font-size: 20px;
`
<BoldText>I'm bold and 16px</BoldText>
<BigBoldText>I'm bold and 20px</BigBoldText>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9719 次 |
| 最近记录: |