-
Styled-Components 의 애니메이션 과 Pseudo Selector 를 배워보자!React/Styled-Components 2023. 2. 20. 21:34
📌 css 에서 keyframe 을 사용한 animation 은 styled-components에서 어떻게 구현할까?
...(중략) const animation1 = keyframes` from { transform:rotate(0deg); border-radius: 0px; } to { transform:rotate(360deg); border-radius: 100px; } `; ...(중략) const AnimationBox1 = styled.div` height: 200px; width: 200px; background-color: black; animation: ${animation1} 10s linear infinite; `; ...(중략)
📌 styled-components 안에서 pseudo selector 를 이용할 수 도 있다! (전체코드)
const animation1 = keyframes` from { transform:rotate(0deg); border-radius: 0px; } to { transform:rotate(360deg); border-radius: 100px; } `; const animation2 = keyframes` 0% { transform:rotate(0deg); border-radius: 0px; } 50% { transform:rotate(360deg); border-radius: 100px; } 100% { transform:rotate(0deg); border-radius: 0px; } `; const AnimationBox1 = styled.div` height: 200px; width: 200px; background-color: black; animation: ${animation1} 10s linear infinite; `; const AnimationBox2 = styled(AnimationBox1)` display: flex; align-items: center; justify-content: center; animation: ${animation2} 10s linear infinite; //아래와 같이 사용도 된다!🔥 span { font-size: 20px; &:hover { font-size: 60px; } &:active { font-size: 100px; } } `; function App() { return ( <> <AnimationBox1 /> <AnimationBox2> <span>😊</span> </AnimationBox2> </> ) }
📌 결과물
📌 styled-components 안에 또 styled-components 를 집어넣어 pseudo selector ${ } 를 이용할 수 도 있다.
...(중략) const Emoji = styled.span` font-size: 36px; `; const AnimationBox1 = styled.div` height: 200px; width: 200px; background-color: black; animation: ${animation1} 10s linear infinite; `; const AnimationBox2 = styled(AnimationBox1)` display: flex; align-items: center; justify-content: center; animation: ${animation2} 10s linear infinite; ${Emoji} { font-size: 20px; &:hover { font-size: 60px; } &:active { font-size: 100px; } } `; function App() { return ( <> <AnimationBox2> <Emoji>😊</Emoji> </AnimationBox2> </> ) }
'React > Styled-Components' 카테고리의 다른 글
Styled-Components 의 as 와 attrs 를 알아보자! (0) 2023.02.20 Styled-Components 리액트 스타일 컴포넌트 props 와 extending (0) 2023.02.20 Styled-Components / React 리액트 스타일 컴포넌트 공부하기 (0) 2023.02.20