안녕하세요
스타일드 컴포넌트 프로퍼티에 따라 다른 css 보여주기 본문
1. 컴포넌트에 다크모드 일 때는 박스쉐도우를 넣고 싶지 않다.
2. 컴포넌트에 darkMode 라는 프로퍼티를 만든다.
3. props에 대해서 darkMode가 아닐 때 box-shadow가 나타나도록 한다.
4. 컴포넌트의 타입에는 darkMode?:boolean 으로 타입을 지정해준다.
const MainVisualImgBox = styled.div<{ isDarkMode: boolean }>`
box-shadow: ${(props) => !props.isDarkMode && `2px 2px 7px -2px ${props.theme.mainBlack}`};
`;
4-2. 베리에이션 여러가지 css를 한 번에 적용하고 싶을 때는 css`` 함수를 사용한다.
const ToggleCircle = styled.div<{ isDarkMode: boolean }>`
position: absolute;
top: 4px;
bottom: 4px;
left: 5px;
width: calc(50% - 8px);
border-radius: ${borderRadius.round};
background: ${(props) => props.theme.navBackground};
transition: left 0.3s;
${(props) =>
props.isDarkMode &&
css`
left: 44px;
@media (max-width: 1200px) {
left: 37px;
}
`}
`;
<ToggleCircle isDarkMode={isDarkMode} />
'데이터시각화-KMG > Styled-Component' 카테고리의 다른 글
styled-component 다크모드: "css variable"로 구현하자 themeProvider 대신에 (0) | 2023.07.09 |
---|---|
스타일드 컴포넌트 참고 글 (0) | 2023.06.21 |
styled-component @font-face 폰트 깜빡임 문제 (0) | 2023.06.16 |
스타일드 컴포넌트 css 프롭스 전달 방법 (0) | 2023.05.11 |
스타일드 컴포넌트 이벤트 전달 방법 (0) | 2023.05.10 |