A Pen by Saijo George on CodePen.
Created
June 2, 2021 02:49
-
-
Save CodeMyUI/3e5d616db42c26cc7bbeeb00ea629474 to your computer and use it in GitHub Desktop.
NESubscribe
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#wrap | |
%form.signup | |
%input.email{:type => "email", :placeholder => "email", :maxlength => "24"}/ | |
%input.submit{:type => "submit", :value => "Subscribe"}/ | |
.field | |
.pipe | |
-10.times do | |
.fireworks | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$( ".email" ).keyup(function() { | |
var emailText = $('.email').val(); | |
$(".field p").remove(); | |
$(".field").append("<p data-splitting='chars'>" + emailText + "</p>"); | |
Splitting(); | |
}); | |
$(function() { | |
$('.email').on('keypress', function(e) { | |
if (e.which == 32) | |
return false; | |
}); | |
}); | |
$('.signup').submit(function(event){ | |
event.preventDefault(); | |
$(".email").blur(); | |
$("#wrap").addClass("run"); | |
setTimeout(function(){ | |
$('.email').val(''); | |
$( ".field p" ).remove(); | |
$("#wrap").removeClass("run"); | |
}, 7000); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> | |
<script src="https://unpkg.com/splitting@1.0.5/dist/splitting.min.js"></script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$o: #ffa440; | |
$g: #01a500; | |
$b: #6a88fe; | |
$elastic: cubic-bezier(0.175, 0.885, 0.32, 1.275); | |
body{ | |
display:grid; | |
place-items:center; | |
height:100vh; | |
font-family:'Press Start 2P'; | |
overflow:hidden; | |
background:$b; | |
.fireworks{ | |
position:absolute; | |
height:16px; | |
width:16px; | |
transform:scale(2); | |
background:url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/383755/NES%20-%20Super%20Mario%20Bros%20-%20Items%20Objects%20and%20NPCs.png'); | |
image-rendering: pixelated; | |
background-size:16px 49px; | |
z-index:9; | |
background-position:50% 0px; | |
opacity:0; | |
@keyframes fade{ | |
to{ | |
opacity:0; | |
} | |
} | |
@keyframes boom{ | |
from{ | |
background-position:50% 0px; | |
opacity:1; | |
} | |
to{ | |
background-position:50% -32px; | |
opacity:1; | |
} | |
} | |
} | |
&:before{ | |
content:''; | |
position:absolute; | |
width:100%; | |
height:50%; | |
box-shadow:inset 0 5px 0 0 #222; | |
top:calc(50% + 25px); | |
background-color: #222; | |
background-image: linear-gradient(335deg, #e54f08 23px, transparent 23px), | |
linear-gradient(155deg, #e54f08 23px, transparent 23px), | |
linear-gradient(335deg, #e54f08 23px, transparent 23px), | |
linear-gradient(155deg, #e54f08 23px, transparent 23px); | |
background-size: 58px 58px; | |
background-position: 0px 2px, 4px 35px, 29px 31px, 34px 6px; | |
} | |
#wrap{ | |
width:600px; | |
height:60px; | |
position:relative; | |
.submit{ | |
cursor:pointer; | |
&:hover{ | |
& ~ .pipe{ | |
&:after{ | |
letter-spacing:2px; | |
} | |
} | |
} | |
} | |
.email{ | |
&:focus{ | |
& ~ .field{ | |
&:after{ | |
transform:translate(0, -50%) scale(1); | |
transition-delay:0s; | |
} | |
} | |
} | |
} | |
&.run{ | |
& ~ .fireworks{ | |
animation:boom 0.5s steps(2, end) 1 forwards, fade 0s ease-in-out 1 forwards; | |
top:15%; | |
@for $i from 1 through 10{ | |
&:nth-of-type(3n){ | |
transform:scale(3); | |
} | |
&:nth-of-type(4n){ | |
transform:scale(1); | |
} | |
&:nth-of-type(#{$i}){ | |
animation-delay:#{($i/10) + 2.5}s, #{($i/10) + 3.25}s; | |
&:nth-of-type(even){ | |
top:25%; | |
animation-delay:#{($i/10) + 2.75}s, #{($i/10) + 3.5}s; | |
} | |
left:calc(75% - #{($i * 50)}px); | |
} | |
} | |
} | |
.field{ | |
overflow:hidden; | |
&:before{ | |
transition-delay:4s; | |
transform:translateX(600px); | |
} | |
} | |
.pipe{ | |
width:100vw; | |
transition:1.5s $elastic; | |
transition-delay:0.3s; | |
&:after{ | |
transition-delay:0s, 0s; | |
transform:scaleY(0); | |
} | |
&:before{ | |
top:-12.5%; | |
height:125%; | |
} | |
} | |
div{ | |
p{ | |
.word{ | |
span{ | |
animation:grow2 0.5s ease-in-out 1 forwards, run2 1.5s ease-in 1 forwards; | |
@keyframes grow2{ | |
to{ | |
transform:translateX(0px) translateY(-4px); | |
} | |
} | |
@keyframes run2{ | |
from{ | |
transform:translateX(0px) translateY(-4px); | |
} | |
to{ | |
transform:translateX(500px) translateY(-4px); | |
} | |
} | |
&:before{ | |
animation:grow 0.5s ease-in-out 1 forwards, run 0.35s steps(3, start) infinite; | |
animation-delay:0s, 0.5s; | |
} | |
@for $i from 1 through 40{ | |
&:nth-of-type(#{(40 - $i)}){ | |
animation-delay:#{$i/30}s, #{($i/30) + 0.5}s; | |
&:before{ | |
animation-delay:#{$i/30}s, #{($i/30) + 0.5}s; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
input{ | |
opacity:0; | |
z-index:9; | |
} | |
input, div{ | |
position:absolute; | |
height:100%; | |
box-sizing:border-box; | |
width:25%; | |
left:75%; | |
top:0; | |
&.pipe{ | |
background:linear-gradient(to bottom, $g 75%, lighten($g, 40%) 75%, lighten($g, 40%) 85%, $g 85%); | |
box-shadow:inset 0 0 0 5px #222; | |
transition:0.75s $elastic; | |
&:after{ | |
content:'SUBMIT'; | |
position:absolute; | |
height:100%; | |
width:100%; | |
display:flex; | |
justify-content:center; | |
align-items:center; | |
color:#fff; | |
transition:transform 0.25s $elastic, letter-spacing 0.25s $elastic; | |
transition-delay:1s, 0s; | |
} | |
&:before{ | |
content:''; | |
position:absolute; | |
width:25px; | |
top:50%; | |
background:inherit; | |
box-shadow:inherit; | |
left:-20px; | |
height:0px; | |
transition:0.3s $elastic; | |
} | |
} | |
&.field{ | |
display:flex; | |
align-items:center; | |
justify-content:flex-start; | |
transition:0.75s ease-in-out; | |
clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); | |
p{ | |
background:#fff; | |
box-shadow:inset 0 5px 0 0 #222, inset 0 -5px 0 0 #222, inset 5px 0 0 0 #222; | |
position:relative; | |
z-index:10; | |
} | |
&:after{ | |
content:''; | |
height:30px; | |
width:4px; | |
background:#222; | |
margin-left:20px; | |
position:absolute; | |
left:0; | |
top:50%; | |
transform:translate(0, -50%) scale(0); | |
z-index:9; | |
animation:flash 0.5s linear infinite alternate; | |
transition:0s ease-in-out; | |
transition-delay:3s; | |
@keyframes flash{ | |
0%{ | |
opacity:0; | |
} | |
50%{ | |
opacity:0; | |
} | |
50.01%{ | |
opacity:1; | |
} | |
100%{ | |
opacity:1; | |
} | |
} | |
} | |
&:before{ | |
content:''; | |
transition:0.75s ease-in-out; | |
position:absolute; | |
width:calc(100% + 5px); | |
height:100%; | |
box-shadow:inset 0 0 0 5px #222; | |
left:0; | |
top:0; | |
background:#fff; | |
} | |
p, .word{ | |
position:absolute; | |
box-sizing:border-box; | |
width:100%; | |
height:100%; | |
top:0; | |
left:0; | |
display:flex; | |
justify-content:flex-start; | |
align-items:center; | |
margin:0; | |
} | |
.word{ | |
padding-left:15px; | |
} | |
span.char{ | |
font-size:18px; | |
width:18px; | |
height:18px; | |
display:flex; | |
justify-content:center; | |
align-items:center; | |
position:relative; | |
color:#222; | |
transform:translateX(0px) translateY(5px); | |
&:before{ | |
content:''; | |
position:absolute; | |
left:calc(50% - 1.25px); | |
top:calc(50% + 25px); | |
width:48px; | |
height:60px; | |
background:url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/383755/mariohead.png'); | |
image-rendering: pixelated; | |
background-size:192px 96px; | |
background-position:-48px 100%; | |
transform:translate(-50%, -50%) scale(0.85); | |
clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); | |
@keyframes run{ | |
from{ | |
background-position:-96px 100%; | |
} | |
to{ | |
background-position:48px 100%; | |
} | |
} | |
@keyframes grow{ | |
to{ | |
clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); | |
} | |
} | |
} | |
} | |
} | |
&.email, &.field{ | |
width:75%; | |
left:0; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment