이제 Header 컴포넌트를 만들어 봅시다. 이 컴포넌트도 포스트 페이지, 포스트 목록 페이지에서 사용되기 때문에 common 디렉터리에 작성합니다.

    components/common/Header.js

    import React from 'react';
    import styled from 'styled-components';
    import Responsive from './Responsive';
    import Button from './Button';
    
    const HeaderBlock = styled.div`
      position: fixed;
      width: 100%;
      background: white;
      box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.08);
    `;
    
    /**
     * Responsive 컴포넌트의 속성에 스타일을 추가해서 새로운 컴포넌트 생성
     */
    const Wrapper = styled(Responsive)`
      height: 4rem;
      display: flex;
      align-items: center;
      justify-content: space-between; /* 자식 엘리먼트 사이의 여백을 최대로 설정 */
      .logo {
        font-size: 1.125rem;
        font-weight: 800;
        letter-spacing: 2px;
      }
      .right {
        display: flex;
        align-items: center;
      }
    `;
    
    /**
     * 헤더가 fixed로 되어 있기 때문에 페이지의 콘텐츠가 4rem 아래에 나타나도록 해 주는 컴포넌트
     */
    const Spacer = styled.div`
      height: 4rem;
    `;
    
    const Header = () => {
      return (
        <>
          <HeaderBlock>
            <Wrapper>
              <div className="logo">REACTERS</div>
              <div className="right">
                <Button>로그인</Button>
              </div>
            </Wrapper>
          </HeaderBlock>
          <Spacer />
        </>
      );
    };
    
    export default Header;

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.