🤖

Styled-Componentを使ったハンバーガーメニュー🍔

2022/10/23に公開

やりたいこと

CSSで日頃から使っているハンバーガーメニューをReact環境のStyled-Componentを使っての実装

記事を書いた理由

違うプロジェクトでいちいち書くのが面倒だし、忘れちゃうのでコピペ用に置いとこうと思った

JSX側コード


//JSX側
<Styled.ListItem>
   <Styled.HumbergerButton onClick={hundleMenu}>
      <Styled.HumbergerSpan className={toggleMenu ? "active" : ""} />
      <Styled.HumbergerSpan className={toggleMenu ? "active" : ""} />
      <Styled.HumbergerSpan className={toggleMenu ? "active" : ""} /> 
   </Styled.HumbergerButton>
</Styled.ListItem>

Styled-Component側コード

//Styled-component側
export const HumbergerButton = styled.div``;

export const HumbergerSpan = styled.span`
  display: inline-block;
  position: absolute;
  right: 14px;
  height: 3px;
  border-radius: 2px;
  background: black;
  width: 8%;
  :nth-of-type(1) {
    top: 15px;
  }
  :nth-of-type(2) {
    top: 23px;
  }
  :nth-of-type(3) {
    top: 31px;
  }
  &.active {
    :nth-of-type(1) {
      top: 18px;
      right: 18px;
      transform: translateY(6px) rotate(-45deg);
      width: 8%;
    }
    :nth-of-type(2) {
      opacity: 0;
    }
    :nth-of-type(3) {
      top: 30px;
      right: 18px;
      transform: translateY(-6px) rotate(45deg);
      width: 8%;
    }
  }
`;

HumbergerButtonに関してButtonなのにdivになってますけど?

これに関してはおっしゃる通りです
もし、見た人は変数名と中身は同一のものにしてください。。。😭

Discussion