100dayscss #023 #Quotes Layout Pure css, flashy purple gradient text with background-clip masking, animation sequence to reveal words & brackets
A Pen by khuongyolo on CodePen.
<div class="frame"> | |
<div class="circle"></div> | |
<div class="line left"></div> | |
<div class="line right"></div> | |
<div class="bracket left"></div> | |
<div class="bracket right"></div> | |
<div class="small top"><span class="first-letter">c</span>ollect</div> | |
<div class="big">Moments</div> | |
<div class="small bottom">Not <span class="first-letter">T</span>hings</div> | |
<div class="hide top"></div> | |
<div class="hide bottom"></div> | |
</div> |
100dayscss #023 #Quotes Layout Pure css, flashy purple gradient text with background-clip masking, animation sequence to reveal words & brackets
A Pen by khuongyolo on CodePen.
// jQuery v3.3.1 is supported |
<script src="https://100dayscss.com/codepen/js/jquery.min.js"></script> |
@import url(https://fonts.googleapis.com/css?family=Open+Sans:800,300); | |
@import url('https://fonts.googleapis.com/css?family=Yesteryear'); | |
$lines-color : fade-out(#fff, .3); | |
body { | |
background: #643a7a; | |
} | |
.frame { | |
position: absolute; | |
top: 50%; | |
left: 50%; | |
width: 400px; | |
height: 400px; | |
margin-top: -200px; | |
margin-left: -200px; | |
border-radius: 2px; | |
box-shadow: .5rem .5rem 1rem rgba(0, 0, 0, 0.6); | |
overflow: hidden; | |
background: #201c29; | |
color: #fff; | |
font-family: 'Open Sans', Helvetica, sans-serif; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
} | |
.circle { | |
position: absolute; | |
z-index: 10; | |
height: 20px; | |
width: 20px; | |
top: 50%; | |
left: 50%; | |
transform: translate(-50%, -50%); | |
background-image: linear-gradient(45deg, #ff049f, #9a0fe0 45%); | |
border-radius: 50%; | |
animation: circle 1s ease-in-out; | |
animation-fill-mode: forwards; | |
} | |
.line { | |
position: absolute; | |
z-index: 10; | |
width: 150px; | |
height: 1px; | |
top: 198px; | |
transform: scaleX(0); | |
} | |
.line.left { | |
left: 50px; | |
transform-origin: 100% 50%; | |
animation: lines 1s ease-in-out 0.8s, line-left 1s steps(1) 0.8s; | |
background: $lines-color; | |
} | |
.line.right { | |
right: 50px; | |
background: $lines-color; | |
transform-origin: 0% 50%; | |
animation: lines 1s ease-in-out 0.8s, line-right 1s steps(1) 0.8s; | |
} | |
.bracket { | |
position: absolute; | |
z-index: 10; | |
height: 130px; | |
width: 1px; | |
top: 137px; | |
background: $lines-color; | |
animation: bracket .4s ease-out 1.7s; | |
animation-fill-mode: both; | |
} | |
.bracket:before, .bracket:after { | |
position: absolute; | |
display: block; | |
content: ''; | |
width: 25px; | |
height: 1px; | |
} | |
.bracket.right:before, .bracket.right:after { | |
background: $lines-color; | |
} | |
.bracket.left { | |
left: 50px; | |
} | |
.bracket.left:before { | |
top: 0; | |
left: 0; | |
transform-origin: 0% 50%; | |
animation: bracket-line .2s ease-out 2.1s; | |
animation-fill-mode: both; | |
} | |
.bracket.left:after { | |
bottom: 0; | |
left: 0; | |
transform-origin: 0% 50%; | |
animation: bracket-line .2s ease-out 2.1s; | |
animation-fill-mode: both; | |
} | |
.bracket.left:before, .bracket.left:after { | |
background: $lines-color; | |
} | |
.bracket.right { | |
right: 50px; | |
} | |
.bracket.right:before { | |
top: 0; | |
right: 0; | |
transform-origin: 100% 50%; | |
animation: bracket-line .2s ease-out 2.1s; | |
animation-fill-mode: both; | |
} | |
.bracket.right:after { | |
bottom: 0; | |
right: 0; | |
transform-origin: 100% 50%; | |
animation: bracket-line .2s ease-out 2.1s; | |
animation-fill-mode: both; | |
} | |
.big { | |
position: absolute; | |
z-index: 5; | |
top: 173px; | |
width: 400px; | |
text-align: center; | |
font-size: 5rem; | |
letter-spacing: 2px; | |
color: #fff; | |
line-height: 50px; | |
font-family: "yesteryear", cursive; | |
background-image: linear-gradient(33deg, #9a0fe0 25%, #ff049f); | |
-webkit-text-fill-color: transparent; | |
background-clip: text; | |
transition: 0.2s ease-in; | |
} | |
.hide { | |
position: absolute; | |
z-index: 7; | |
width: 400px; | |
height: 50px; | |
background: #201c29; | |
left: 0; | |
animation: reveal .4s ease-out 1.7s; | |
animation-fill-mode: both; | |
} | |
.hide.top { | |
bottom: 49%; | |
transform-origin: 50% 0%; | |
} | |
.hide.bottom { | |
top: 49%; | |
transform-origin: 50% 100%; | |
} | |
.small { | |
position: absolute; | |
z-index: 10; | |
width: 400px; | |
text-align: center; | |
left: 0; | |
font-weight: 300; | |
font-size: 1.8rem; | |
color: #FFFFFF; | |
line-height: 30px; | |
word-spacing: .7rem; | |
text-transform: uppercase; | |
} | |
.first-letter { | |
font-family: yesteryear, cursive; | |
font-size: 3.5rem; | |
background-image: linear-gradient(33deg, #9a0fe0 25%, #ff049f); | |
-webkit-text-fill-color: transparent; | |
background-clip: text; | |
} | |
.small.top { | |
top: 8rem; | |
animation: small-top .5s ease-out 2.2s; | |
animation-fill-mode: both; | |
} | |
.small.bottom { | |
bottom: 8rem; | |
animation: small-bottom .5s ease-out 2.2s; | |
animation-fill-mode: both; | |
} | |
@keyframes circle { | |
0% { | |
transform: scale(1); | |
} | |
50% { | |
transform: scale(1.1); | |
} | |
90%, 100% { | |
transform: scale(0); | |
} | |
} | |
@keyframes lines { | |
0% { | |
transform: scaleX(0); | |
} | |
50% { | |
transform: scaleX(1); | |
} | |
100% { | |
transform: scaleX(0); | |
} | |
} | |
@keyframes line-left { | |
0% { | |
transform-origin: 100% 50%; | |
} | |
50%, 100% { | |
transform-origin: 0% 50%; | |
} | |
} | |
@keyframes line-right { | |
0% { | |
transform-origin: 0% 50%; | |
} | |
50%, 100% { | |
transform-origin: 100% 50%; | |
} | |
} | |
@keyframes bracket { | |
0% { | |
transform: scaleY(0); | |
} | |
100% { | |
transform: scaleY(1); | |
} | |
} | |
@keyframes bracket-line { | |
0% { | |
transform: scaleX(0); | |
} | |
100% { | |
transform: scaleX(1); | |
} | |
} | |
@keyframes reveal { | |
0% { | |
transform: scaleY(1); | |
} | |
100% { | |
transform: scaleY(0); | |
} | |
} | |
@keyframes small-top { | |
0% { | |
transform: translateX(-20px); | |
opacity: 0; | |
} | |
100% { | |
transform: translateX(0); | |
opacity: 1; | |
} | |
} | |
@keyframes small-bottom { | |
0% { | |
transform: translateX(20px); | |
opacity: 0; | |
} | |
100% { | |
transform: translateX(0); | |
opacity: 1; | |
} | |
} |