Styled Components - ์• ๋‹ˆ๋ฉ”์ด์…˜, ์ปดํฌ๋„ŒํŠธ ์„ ํƒ์ž, ์ค‘์ฒฉ ์Šคํƒ€์ผ๋ง

 

์ด๋ฒˆ์— ๋”๋“ฌ์–ด๋ณผ ๊ธฐ์–ต์€ .. 

 

keyframes ๋„ const ๋กœ ๋”ฐ๋กœ ๋นผ์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฑฐ + styled component ์กฐ๊ฑด๋ฌธ์ฒ˜๋Ÿผ ์“ฐ๊ธฐ !!


โœ… ํšŒ์ „ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋งŒ๋“ค๊ธฐ

๋จผ์ € keyframes๋ฅผ ์‚ฌ์šฉํ•ด ํšŒ์ „ํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ •์˜ํ•œ๋‹ค.

import styled, { keyframes } from "styled-components"; 

const rotationAnimation = keyframes` 
	0% { 
    	transform: rotate(0deg); 
        border-radius: 0px; 
    } 
    50% { 
    	border-radius: 100px; 
    } 
    100% { 
    	transform: rotate(360deg); 
        border-radius: 0px; 
    } 
`;

โœ… Box ์ปดํฌ๋„ŒํŠธ์— ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ

 
const Box = styled.div` 
	height: 200px; 
    width: 200px; 
    background-color: tomato; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    animation: ${rotationAnimation} 1s linear infinite; 
    
    ${Emoji} { 
    	&:hover { 
        	font-size: 98px; 
        } 
    } 
`;

 

  • animation: ${rotationAnimation} 1s linear infinite: Box๊ฐ€ ๋ฌดํ•œํžˆ ํšŒ์ „
  • ${Emoji} &:hover: Box ์•ˆ์˜ Emoji ์ปดํฌ๋„ŒํŠธ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด font-size๊ฐ€ ์ปค์ง

โœ… Emoji ์ปดํฌ๋„ŒํŠธ ์ •์˜

 
const Emoji = styled.span` 
	font-size: 36px; 
`;

โœ… ์‚ฌ์šฉ

function App() { 
	return ( 
    	<Wrapper> 
        	<Box> 
            	<Emoji>๐Ÿคฉ</Emoji> 
            </Box> 
        	<Emoji>๐Ÿ”ฅ</Emoji> 
       	</Wrapper> 
    ); 
}

๊ฒฐ๊ณผ:

  • ํ•˜๋‚˜์˜ Box๋Š” ํšŒ์ „ํ•˜๊ณ , ๊ทธ ์•ˆ์˜ ์ด๋ชจ์ง€๋Š” ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ์ปค์ง
  • ๋ฐ”๊นฅ์— ์žˆ๋Š” ์ด๋ชจ์ง€๋Š” ํšŒ์ „ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ํ‘œ์‹œ๋จ
  • ๋งˆ์น˜ If ๋ฌธ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค ! 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€