React - Animation(SVG)

tyghu77·2023년 5월 31일
0
const Wrapper = styled(motion.div)`
  height: 100vh;
  width: 100vw;
  display: flex;
  justify-content: center;
  align-items: center;
`;

const Svg = styled.svg`
  width: 300px;
  height: 300px;
  path {
    stroke: white;
    stroke-width: 2;
  }
`;
const svgVarient = {
  start: { pathLength: 0, fill: "rgba(255, 255, 255, 0)" },
  end: {
    pathLength: 1,
    fill: "rgba(255, 255, 255, 1)",
  },
};
function App() {
  return (
    <Wrapper>
      <Svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
        <motion.path
          variants={svgVarient}
          initial="start"
          animate="end"
          transition={{
            default: { duration: 3 },
            fill: { duration: 1, delay: 1 },
          }}
          d="~~~"
        />
      </Svg>
    </Wrapper>
  );
}

export default App;

transition을 세부적으로 나눌 수 있는데, default는 모든 요소에 적용되는 것이고, 나머지는 transition을 적용할
특성을 쓰면 그 항목에만 적용이 된다. fill을 썼으니 svg의 fill요소에만 해당 transition이 적용된 것이다.

svg는 path를 가지고있고 path는 fill특성을 가지고있다. 이 fill을 바꾸면 색상을 바꿀 수 있다. currentColor는 svg가 색상을 가질 것이라는 뜻이다.

profile
배운것을 기록하자

0개의 댓글