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 ๋ฌธ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค ! 

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€