5. vue.js 웹페이지 만들기
웹페이지 디자인 갈아엎기

- 기존의 디자인이 마음에 들지 않아 컬러와 배치를 바꿔볼 생각이다.
- 자바스크립트로 글자가 위로 올라오는 애니메이션도 추가해본다.
- 메뉴 바는 vue.js에서 제공하는 방식으로 진행해본다.
색상
#494e5f 배경색
#ffe7d4 글자색
#fefefa 흰색
기본 화면 구현

- 기본적인 이름과 링크는 구현했다.
- 상단의 아이콘들은 추후 변경해주도록 한다.
메뉴바 구현
왼쪽에 들어갈 메뉴 바는 vue.js에서 제공하는 방식으로 구현할 예정이다.
Animated Navbar using CSS, Vue and Vue Router
- 역시나 뭔가 잘 안된다.
- 그대로 코딩해도 아무것도 나타나지 않았다.
vue+tailwind+sidebar
시간을 너무 많이 잡아먹어 이미 구현되어있는 훌륭한 코드를 사용하기로 했다.
| [side nav bar by Hananxx | Navigations, Pages](https://tailwindcomponents.com/component/side-nav-bar) | 
- 이곳에서 제공하는 코드를 사용해보도록 한다.
- 물론, 웹사이트의 전체적인 구성과 맞도록 커스터마이즈를 해야 한다.
결과

- 이전보다는 깔끔해진 것 같다.
- 메뉴 갯수를 줄이고 간격을 조정한 뒤, 애니메이션 작업을 할 예정이다.
타이핑 애니메이션
원래 글자가 위로 올라오는 애니메이션을 할 예정이었지만, 타이핑 애니메이션이 눈에 띄어서 대체하기로 하였다.
<div class="py-40 mx-20">
  <div class=" flex items-stretch ">
    <div class="wrapper">
      <div id="static-txt" class="text-white px-2 mr-10 flex">I'M</div>
      <ul id="dynamic-txts" class="text-yellow-500 ">
        <li><span>Lajancia</span></li>
        <li><span>Developer</span></li>
        <li><span>Writer</span></li>
        <li><span>Illustrator</span></li>
      </ul>
    </div>
  </div>
  <style>
    .wrapper {
      display: flex;
    }
    .wrapper #static-txt {
      font-size: 120px;
    }
    .wrapper #dynamic-txts {
      line-height: 180px;
      height: 180px;
      overflow: hidden;
    }
    #dynamic-txts li {
      list-style: none;
      position: relative;
      font-size: 120px;
      font-weight: 500;
      top: 0;
      position: relative;
      animation: slide 12s steps(4) infinite;
    }
    @keyframes slide {
      100% {
        top: -720px;
      }
    }
    #dynamic-txts li::after {
      content: "";
      position: absolute;
      left: 0;
      height: 100%;
      background-color: #151515;
      width: 100%;
      border-left: 2px solid white;
      animation: typing 3s steps(10) infinite;
    }
    @keyframes typing {
      40%,
      60% {
        left: calc(100% + 30px);
      }
      100% {
        left: 0;
      }
    }
  </style>
</div>
- tailwindcss로 하기에는 몇가지 제약 사항이 있었기에 css도 병행하여 사용한다.
- 문제는 이러한 식으로 개발이 되면 기존에 추가했던 몇가지 텍스트가 가려져버리는 문제가 있다. 이부분은 추후에 해결하도록 한다.
결과
https://user-images.githubusercontent.com/50996139/145754436-ddf68c56-5bdd-4af1-aba1-5a3f92dc515f.mov
추가사항
- 이제 메뉴의 컨텐츠들을 세부적으로 수정해야 한다.
- 기존의 github blog를 가장 위에 둔다.
- blender 오브젝트를 볼 수 있도록 해본다.
- 이력서 등록
- 로그인? 은 일단 데이터베이스 구축을 스터디하는 김에 함께 만들어보자.