template

<div class="wrapper">
  <div id="title" class="scene">
    <div id="logo">
      <transition-group name="logo-magic" appear>
      <img id="title_sleeping" key="title_sleeping" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/title_sleeping.png" srcset="https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/title_sleeping2x.png 2x">
      <img id="title_duty" key="title_duty" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/title_duty.png" srcset="https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/title_duty2x.png 2x">
      <img id="title_shading" key="title_shading" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/title_shading.png" srcset="https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/title_shading2x.png 2x">
      <img id="title_sparkles" key="title_sparkles" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/title_sparkles.png" srcset="https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/title_sparkles2x.png 2x">
        <p key="author" id="title_author">as retold in CSS and Vue.js by <a href="https://twitter.com/rachelnabors">@RachelNabors</a></p>
        <p key="sleeping-beauty" id="title_sb" class="inline">It's <em>Sleeping Beauty.</em> </p>
        <p key="in-space" id="title_in-space" class="inline">In space.</p>        
        </transition-group>
    </div>
  </div>
</div>

Script

export default {
  data: {
    state: "loaded"
  }
}

style

@import url('https://fonts.googleapis.com/css?family=Kalam|Nova+Mono');

/* Animations up top, woo woo! */
.logo-magic-enter-active {
  transition: 
    opacity 2s,
    transform 2s;
}

.logo-magic-enter {
  opacity: 0;
}

#title_duty.logo-magic-enter {
  transform: translateY(20%);
}

#title_duty.logo-magic-enter-active {
  transition-delay: 1s;
}

#title_shading.logo-magic-enter-active {
  transition-delay: 3s;
}

#title_sparkles.logo-magic-enter-active,
p.logo-magic-enter-active {
  transition-delay: 4s;
  transition-duration: 1s;
}

#title_sb.logo-magic-enter-active {
  transition-delay: 5.5s;
}

#title_in-space.logo-magic-enter-active {
  transition-delay: 7s;
}


/* Boring stuff here. */
#logo {
  position: absolute;
  top: 50%; left: 50%;
  text-align: center; 
  transform: translate(-50%, -50%);
  width: 493px;
}

#logo img {
  position: absolute;
  top: 0; left: 0;
}

#logo #title_sleeping {
  position: relative;
}

p {
  color: #eed2fc;
  font-family: 'Kalam', cursive;
  margin: .5em 0;
}

a:link {
  color: #4dcce4;
}

a:visited {
  color: #8e56ca;
}

a:hover, a:active, a:focus {
  color: #5152e4;
}

.inline { 
  display: inline-block;
  margin-right: .5em;
}

body {
  background: #000;
}

.wrapper {
  max-width: 683px;
  margin: 0 auto;
}

.scene {
  overflow: hidden;
  position: relative;  
}

#title {
  background: 
    url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/bg_stars1.png) fixed,
    url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/bg_stars2.png) fixed,
    url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/bg_cloud1.png) -50% -50% fixed,
    url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/bg_cloud2.png) 0 -70% fixed, 
    #000;
  min-height: 100vh; width: 100%;
  position: relative;
}

@media
only screen and (-webkit-min-device-pixel-ratio: 1.25),
only screen and ( min--moz-device-pixel-ratio: 1.25),
only screen and ( -o-min-device-pixel-ratio: 1.25/1),
only screen and ( min-device-pixel-ratio: 1.25),
only screen and ( min-resolution: 200dpi),
only screen and ( min-resolution: 1.25dppx) {
  #starfield {
    background: 
      url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/bg_stars1_2x.png) fixed,
      url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/bg_stars2_2x.png) fixed,
      url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/bg_cloud1_2x.png) -50% -50% fixed,
      url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/641/bg_cloud2_2x.png) 0 -70% fixed, 
      #000;
    background-size: 683px 512px, 683px 512px, 750px 600px, 400px 600px, 50% 50%;
  }
}

 

이걸 토대로 포트폴리오에 들어갈 나의 메인페이지를 구상해보자

'프로그래밍 > Vue.js' 카테고리의 다른 글

계산기 소스 리뷰  (0) 2019.06.04
Vue todolist 만들기  (0) 2019.06.04